Transformers documentation

구성

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

구성

기본 클래스 PreTrainedConfig은 로컬 파일 또는 디렉터리, 또는 라이브러리가 제공하는 사전 학습된 모델 구성( HuggingFace의 AWS S3 저장소에서 다운로드됨)에서 구성을 로드/저장하는 데 사용되는 공통 메서드를 구현합니다.

각 파생된 config 클래스는 모델별 특유의 속성을 구현합니다. 모든 config 클래스에 공통으로 존재하는 속성은 hidden_size, num_attention_heads, num_hidden_layers입니다. 텍스트 모델은 추가로 vocab_size를 구현합니다.

PreTrainedConfig

클래스 transformers.PreTrainedConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None )

매개변수

  • name_or_path (str, 선택 사항, 기본값 "") — 구성(configuration)이 해당 메서드로 생성된 경우, PreTrainedModel.from_pretrained()에 전달된 문자열을 pretrained_model_name_or_path로 저장합니다.
  • output_hidden_states (bool, 선택 사항, 기본값 False) — 모델이 모든 hidden-states를 반환할지 여부.
  • output_attentions (bool, 선택 사항, 기본값 False) — 모델이 모든 어텐션을 반환할지 여부.
  • return_dict (bool, 선택 사항, 기본값 True) — 모델이 일반 튜플 대신 ModelOutput을 반환할지 여부.
  • is_encoder_decoder (bool, 선택 사항, 기본값 False) — 모델이 인코더/디코더로 사용되는지 여부입니다.
  • chunk_size_feed_forward (int, 선택 사항, 기본값 0) — 잔차 어텐션 블록 내 모든 피드 포워드 레이어의 청크 크기입니다. 청크 크기가 0인 경우 피드 포워드 레이어가 청크되지 않습니다. 청크 크기가 n인 경우 피드 포워드 레이어가 한 번에 n < sequence_length개의 임베딩을 처리합니다. 피드 포워드 청킹에 대한 자세한 내용은 피드 포워드 청킹은 어떻게 작동하나요?를 참조하세요.
  • per_layer_config (dict[int | str, dict[str, Any]], 선택 사항) — 레이어 인덱스에서 설정 속성 오버라이드로의 희소 매핑입니다. 각 키는 레이어 인덱스이며, 각 값은 해당 레이어에서 전역 설정과 다른 속성을 포함합니다.
  • tie_last_hidden_states (bool, 선택 사항) — hidden_states[-1]이 최종 정규화 전의 hidden state가 아니라 최종 정규화 후의 last_hidden_state여야 하는지 여부입니다. 설정하지 않으면 모델의 기본값이 사용됩니다.

파인튜닝 작업용 매개변수

  • architectures (list[str], 선택 사항) — 모델 사전 학습된 가중치와 함께 사용할 수 있는 모델 아키텍처입니다.
  • id2label (dict[int, str], 선택 사항) — 인덱스(예: 예측 인덱스 또는 대상 인덱스)에서 라벨로 매핑하는 맵입니다.
  • label2id (dict[str, int], 선택 사항) — 모델에서 라벨을 인덱스로 매핑하는 딕셔너리입니다.
  • num_labels (int, 선택 사항) — 모델에 추가되는 마지막 레이어에서 사용할 라벨의 수입니다. 일반적으로 분류 작업에 사용됩니다.
  • problem_type (str, 선택 사항) — XxxForSequenceClassification 모델의 문제 유형입니다. "regression", "single_label_classification" 또는 "multi_label_classification" 중 하나여야 합니다.

PyTorch 전용 파라미터

  • dtype (str, 선택 사항) — 가중치의 dtype입니다. 이 속성을 사용하여 모델을 기본이 아닌 dtype(보통 float32)로 초기화하여 최적의 저장소 할당을 할 수 있습니다. 예를 들어, 저장된 모델이 float16인 경우, float16 가중치를 로드하는 데 필요한 최소한의 메모리만 사용하여 로드하는 것이 이상적입니다.

모든 설정 클래스의 기본 클래스입니다. 모든 모델의 설정에 공통적인 몇 가지 매개변수를 처리하며, 설정을 로드/다운로드/저장하는 메서드를 제공합니다.

설정 파일은 로드하고 디스크에 저장할 수 있습니다. 설정 파일을 로드하고 이 파일로 모델을 초기화하는 것은 모델 가중치를 로드하지 않습니다. 모델의 설정에만 영향을 미칩니다.

클래스 속성(파생 클래스에 의해 재정의됨):

  • model_type (str) — 모델 유형 식별자로, JSON 파일에 직렬화되며 AutoConfig에서 올바른 객체를 재구성하는 데 사용됩니다.
  • attribute_map (dict[str, str]) — 모델 특유의 속성 이름을 속성의 표준화된 이름으로 매핑하는 dict입니다.
  • base_model_tp_plan (dict[str, Any]) — model.tensor_parallel이 호출될 때 서브 모듈에 적용되는 텐서 병렬 계획을 기본 모델의 서브 모듈 FQN에 매핑하는 딕셔너리입니다.
  • base_model_fsdp_plan (dict[Any, str]) — 베이스 모델의 서브 모듈을 FSDP2 샤딩 전략(예: "free_full_weight" / "keep_full_weight")으로 매핑하는 딕셔너리입니다. 키는 와일드카드 모듈 경로(예: "layers.*") 또는 단일 fully_shard 호출로 그룹화된 경로들의 튜플일 수 있습니다.
  • base_model_pp_plan (dict[str, tuple[list[str]]]) — 기본 모델의 하위 모듈을 사용자가 해당 하위 모듈을 적절한 장치에 배치할 수 있도록 하는 파이프라인 병렬 계획으로 매핑하는 딕셔너리입니다.

공통 속성(모든 하위 클래스에 존재):

  • vocab_size (int) — 어휘에 포함된 토큰의 수로, 임베딩 행렬의 첫 번째 차원과 동일합니다 (ViT와 같이 텍스트 모달리티가 없는 모델에서는 이 속성이 없을 수 있습니다).
  • hidden_size (int) — 모델의 hidden size입니다.
  • num_attention_heads (int) — 모델의 멀티헤드 어텐션 레이어에서 사용되는 어텐션 헤드의 수입니다.
  • num_hidden_layers (int) — 모델의 블록 수입니다.

모델 설정에서 시퀀스 생성을 위한 파라미터를 설정하는 것은 더 이상 권장되지 않습니다. 하위 호환성을 위해 일부 파라미터를 로드하는 것은 여전히 가능하지만, 이를 덮어쓰기 시도하면 예외가 발생합니다. [~transformers.GenerationConfig]에서 설정해야 합니다. 개별 파라미터에 대한 자세한 정보는 [~transformers.GenerationConfig]의 문서를 확인하세요.

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

매개변수

  • repo_id (str) — 설정 파일을 푸시하려는 저장소의 이름입니다. 특정 조직에 푸시할 경우 조직 이름을 포함해야 합니다.
  • commit_message (str, 선택 사항) — 푸시할 때 커밋할 메시지입니다. 기본값은 "Upload config"입니다.
  • commit_description (str, 선택 사항) — 생성될 커밋의 설명
  • private (bool, 선택 사항) — 리포지토리를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 리포지토리는 공개됩니다. 리포지토리가 이미 존재하면 이 값은 무시됩니다.
  • token (bool 또는 str, 선택 사항) — 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다. True(기본값)인 경우, hf auth login 실행 시 생성된 토큰(~/.huggingface에 저장됨)을 사용합니다.
  • revision (str, 선택 사항) — 업로드된 파일을 푸시할 브랜치.
  • create_pr (bool, 선택 사항, 기본값 False) — 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.
  • max_shard_size (int 또는 str, 선택 사항, 기본값 "50GB") — 모델에만 적용됩니다. 샤딩되기 전 체크포인트의 최대 크기입니다. 샤딩된 각 체크포인트의 크기는 이 크기보다 작아집니다. 문자열로 표현하는 경우, 숫자 뒤에 단위(예: "5MB")가 따라와야 합니다.
  • tags (list[str], 선택) — Hub에 push할 태그 목록.

🤗 Model Hub에 구성 파일을 업로드합니다.

예:

from transformers import AutoConfig

config = AutoConfig.from_pretrained("google-bert/bert-base-cased")

# Push the config to your namespace with the name "my-finetuned-bert".
config.push_to_hub("my-finetuned-bert")

# Push the config to an organization with the name "my-finetuned-bert".
config.push_to_hub("huggingface/my-finetuned-bert")

default_config_fields

< >

( )

dataclass의 각 주석 달린 필드에 대한 기본값을 가져오며, diff-dict를 저장하는 데 사용됩니다. custom __init__로 v4에서 생성된 config의 경우 빈 dict를 반환하므로 self.__dict__의 모든 키가 저장됩니다. 더 새로운 config의 경우 __post_init__가 아닌 필드로 선언된 기본값이 있는 키를 반환하여, 직렬화된 json 파일에서 해당 특정 필드만 제외합니다.

dict_dtype_to_str

< >

( d: dict[str, Any] )

전달된 사전 및 그 중첩된 사전에 dtype 키가 있는지 확인하고, None이 아닌 경우 torch.dtype을 타입 이름만 포함된 문자열로 변환합니다. 예를 들어, torch.float32는 “float32” 문자열로 변환되어 json 형식으로 저장될 수 있습니다.

from_dict

< >

( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig

매개변수

  • config_dict (dict[str, Any]) — 구성 객체를 인스턴스화하는 데 사용되는 사전. 이러한 사전은 get_config_dict() 메서드를 활용하여 사전 학습된 체크포인트에서 가져올 수 있습니다.
  • kwargs (dict[str, Any]) — 구성 객체를 초기화할 때 사용할 추가 매개변수.

반환값

PreTrainedConfig

해당 파라미터에서 인스턴스화된 구성 객체.

Python 매개변수 사전에서 PreTrainedConfig를 초기화합니다.

from_json_file

< >

( json_file: str | os.PathLike ) → PreTrainedConfig

매개변수

  • json_file (str 또는 os.PathLike) — 파라미터를 포함하는 JSON 파일의 경로.

반환값

PreTrainedConfig

해당 JSON 파일에서 인스턴스화된 구성 객체입니다.

JSON 파일의 경로에서 PreTrainedConfig를 인스턴스화합니다.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs ) → PreTrainedConfig

매개변수

  • pretrained_model_name_or_path (str 또는 os.PathLike) — 다음 중 하나일 수 있습니다:
    • 문자열, huggingface.co의 모델 저장소에 호스팅된 사전 학습된 모델 구성의 model id.
    • save_pretrained() 메서드를 사용하여 설정 파일을 저장한 디렉터리의 경로, 예: ./my_model_directory/.
    • 저장된 구성 JSON 파일의 경로, 예: ./my_model_directory/configuration.json.
  • cache_dir (str 또는 os.PathLike, 선택 사항) — 표준 캐시를 사용하지 않을 경우, 다운로드한 사전 학습 모델 구성을 캐시할 디렉터리의 경로입니다.
  • force_download (bool, 선택 사항, 기본값 False) — 설정 파일을 (재)다운로드를 강제하고, 캐시된 버전이 존재하는 경우 이를 덮어쓸지 여부.
  • proxies (dict[str, str], 선택) — 프로토콜 또는 엔드포인트별로 사용할 프록시 서버의 사전입니다. 예: {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. 각 요청에 프록시가 사용됩니다.
  • token (str 또는 bool, 선택 사항) — 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다. True이거나 지정되지 않은 경우, hf auth login 실행 시 생성된 토큰(~/.huggingface에 저장됨)을 사용합니다.
  • revision (str, 선택 사항, 기본값은 "main") — 사용할 특정 모델 버전입니다. huggingface.co에서 모델과 기타 아티팩트를 저장하기 위해 git 기반 시스템을 사용하므로, 브랜치 이름, 태그 이름, 커밋 ID일 수 있습니다. 따라서 revision 은 git에서 허용하는 모든 식별자를 사용할 수 있습니다.

    Hub에서 만든 pull request를 테스트하려면 revision="refs/pr/<pr_number>"를 전달할 수 있습니다.

  • return_unused_kwargs (bool, 선택 사항, 기본값은 False) — 이 값이 False, 면 이 함수는 최종 configuration 객체만 반환합니다.

    True인 경우, 이 함수는 unused_kwargs가 구성 속성이 아닌 키/값 쌍으로 이루어진 사전인 Tuple(config, unused_kwargs)을 반환합니다. 즉, config를 업데이트하는 데 사용되지 않고 무시되는 kwargs의 부분입니다.

  • subfolder (str, 선택 사항, 기본값 "") — huggingface.co의 모델 저장소에서 관련 파일이 하위 폴더에 있는 경우, 여기에 폴더 이름을 지정할 수 있습니다.
  • kwargs (dict[str, Any], 선택) — kwargs의 값 중 구성 속성인 키에 해당하는 값은 로드된 값을 덮어쓰는 데 사용됩니다. 키가 구성 속성이 아닌 키/값 쌍에 대한 동작은 return_unused_kwargs 키워드 매개변수에 의해 제어됩니다.

반환값

PreTrainedConfig

이 사전 학습된 모델에서 인스턴스화된 구성 객체.

프리트레이닝 모델 구성에서 PreTrainedConfig(또는 파생 클래스)를 인스턴스화합니다.

예:

# We can't instantiate directly the base class *PreTrainedConfig* so let's show the examples on a
# derived class: BertConfig
config = BertConfig.from_pretrained(
    "google-bert/bert-base-uncased"
)  # Download configuration from huggingface.co and cache.
config = BertConfig.from_pretrained(
    "./test/saved_model/"
)  # E.g. config (or model) was saved using *save_pretrained('./test/saved_model/')*
config = BertConfig.from_pretrained("./test/saved_model/my_configuration.json")
config = BertConfig.from_pretrained("google-bert/bert-base-uncased", output_attentions=True, foo=False)
assert config.output_attentions == True
config, unused_kwargs = BertConfig.from_pretrained(
    "google-bert/bert-base-uncased", output_attentions=True, foo=False, return_unused_kwargs=True
)
assert config.output_attentions == True
assert unused_kwargs == {"foo": False}

get_config_dict

< >

( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]

매개변수

  • pretrained_model_name_or_path (str 또는 os.PathLike) — 파라미터 사전(dictionary)을 가져오려는 사전 학습된 체크포인트의 식별자입니다.

반환값

tuple[Dict, Dict]

구성 객체를 인스턴스화하는 데 사용될 사전(들).

pretrained_model_name_or_path에서 PreTrainedConfig를 from_dict를 사용하여 인스턴스화할 때 사용할 매개변수 사전으로 해석합니다.

get_mtp_config

< >

( )

MTP 모델 생성에 사용할 mtp 텍스트 설정을 반환합니다. MTP 레이어는 메인 모델과 동일한 클래스를 인스턴스화하여 생성되므로, layer_types 또는 mtp_layer_types와 같은 인덱스별 설정 속성을 덮어써야 올바른 MTP 레이어를 생성하고 레이어의 인덱싱 문제를 방지할 수 있습니다(MTP 레이어는 레이어 인덱싱을 0부터 다시 시작하기 때문).

get_text_config

< >

( decoder = Noneencoder = None )

매개변수

  • decoder (Optional[bool], 선택) — True로 설정하면 decoder 설정 이름만 검색합니다.
  • encoder (Optional[bool], 선택) — True로 설정하면 인코더 설정 이름만 검색합니다.

모델의 텍스트 입력(인코더) 또는 텍스트 출력(디코더)과 관련된 텍스트 설정을 반환합니다. decoder 및 encoder 입력 인수를 사용하여 모델의 어느 쪽에 관심이 있는지 지정할 수 있으며, 이는 텍스트 입력 및 출력 모달리티를 모두 갖춘 모델에서 유용합니다.

이 메서드를 사용하면 세 가지 결과가 가능합니다:

  1. 대부분의 모델에서는 원래의 config 인스턴스 자체를 반환합니다.
  2. 2024년 이후의 새로운 복합 모델에서는 유효한 이름 집합 아래에 중첩된 config의 텍스트 섹션을 반환합니다.
  3. 2023년 이전의 구형 복합 모델에서는 encoder=True인 경우 decoder 전용 매개변수를 삭제하고, 그 반대인 경우에도 마찬가지입니다.

is_custom_code

< >

( )

현재 설정이 커스텀 코드인지 반환합니다. 즉, 허브에서 로드된 코드이거나 사용자 특정 모듈/세션에서 정의된 코드인 경우입니다.

is_remote_code

< >

( )

현재 설정이 커스텀 코드인지, 즉 허브에서 로드된 코드인지, 아니면 register_for_auto_class를 통해 방금 등록한 클래스인지 여부를 반환합니다.

register_for_auto_class

< >

( auto_class = 'AutoConfig' )

매개변수

  • auto_class (str 또는 type, 선택 사항, 기본값 "AutoConfig") — 이 새 구성을 등록할 auto class입니다.

이 클래스를 주어진 auto class에 등록합니다. 라이브러리에 포함된 구성은 이미 AutoConfig에 매핑되어 있으므로, 이 메서드는 사용자 정의 구성에만 사용해야 합니다.

save_pretrained

< >

( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )

매개변수

  • save_directory (str 또는 os.PathLike) — 설정 JSON 파일이 저장될 디렉터리(존재하지 않으면 생성됩니다).
  • push_to_hub (bool, 선택 사항, 기본값 False) — 모델을 저장한 후 Hugging Face 모델 허브에 푸시할지 여부입니다. repo_id를 사용하여 푸시할 저장소를 지정할 수 있으며, 지정하지 않으면 네임스페이스 내 save_directory의 이름이 기본값으로 사용됩니다.
  • kwargs (dict[str, Any], 선택) — push_to_hub() 메서드에 함께 전달되는 추가 키워드 인자입니다.

save_directory 디렉토리에 구성 객체를 저장하여 from_pretrained() 클래스 메서드를 사용해 다시 로드할 수 있도록 합니다.

to_dict

< >

( ) → dict[str, Any]

반환값

dict[str, Any]

이 구성 인스턴스를 구성하는 모든 속성의 사전입니다.

이 인스턴스를 Python 딕셔너리로 직렬화합니다.

to_diff_dict

< >

( ) → dict[str, Any]

반환값

dict[str, Any]

이 구성 인스턴스를 구성하는 모든 속성의 사전입니다.

더 나은 가독성을 위해 기본 설정 속성에 해당하는 모든 속성을 제거하되, 클래스의 config 속성은 항상 유지합니다. Python 딕셔너리로 직렬화합니다.

to_json_file

< >

( json_file_path: str | os.PathLikeuse_diff: bool = True )

매개변수

  • json_file_path (str 또는 os.PathLike) — 이 구성 인스턴스의 매개변수가 저장될 JSON 파일의 경로입니다.
  • use_diff (bool, 선택 사항, 기본값 True) — True로 설정하면, config 인스턴스와 기본 PreTrainedConfig() 사이의 차이만 JSON 파일에 직렬화됩니다.

이 인스턴스를 JSON 파일로 저장합니다.

to_json_string

< >

( use_diff: bool = True ) → str

매개변수

  • use_diff (bool, 선택 사항, 기본값 True) — True로 설정하면, config 인스턴스와 기본 PreTrainedConfig() 사이의 차이만 JSON 문자열로 직렬화됩니다.

반환값

str

이 구성 인스턴스를 구성하는 모든 속성이 포함된 JSON 형식의 문자열.

이 인스턴스를 JSON 문자열로 직렬화합니다.

업데이트

< >

( config_dict: dict[str, Any] )

매개변수

  • config_dict (dict[str, Any]) — 이 클래스에서 업데이트해야 할 속성의 사전.

config_dict의 속성으로 이 클래스의 속성을 업데이트합니다.

update_from_string

< >

( update_str: str )

매개변수

  • update_str (str) — 이 클래스에서 업데이트해야 할 속성을 가진 문자열.

update_str의 속성으로 이 클래스의 속성을 업데이트합니다.

기대되는 형식은 int, float, string은 그대로 사용하고, boolean은 true 또는 false를 사용하는 것입니다. 예를 들어: “n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”

변경할 키는 이미 config 객체에 존재해야 합니다.

validate

< >

( )

인스턴스에서 클래스 검증기를 실행합니다.

validate_architecture

< >

( )

@strict 기반 검증의 일부입니다. config의 아키텍처를 검증합니다.

validate_layer_type

< >

( )

mlp_layer_types와 layer_types가 올바르게 정의되었는지 확인하세요.

validate_token_ids

< >

( )

@strict 기반 검증의 일부입니다. 특수 토큰의 내용을 검증합니다.

Update on GitHub