# 구성

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

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

## PreTrainedConfig[[transformers.PreTrainedConfig]]

#### transformers.PreTrainedConfig[[transformers.PreTrainedConfig]]

```python
transformers.PreTrainedConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L299)

**매개변수:**

name_or_path (`str`, *선택 사항*, 기본값 `""`) : 구성이 해당 메서드로 생성된 경우, [PreTrainedModel.from_pretrained()](/docs/transformers/v5.23.0/ko/main_classes/model#transformers.PreTrainedModel.from_pretrained)에 전달된 문자열을 `pretrained_model_name_or_path`로 저장합니다.

output_hidden_states (`bool`, *선택 사항*, 기본값 `False`) : 모델이 모든 hidden-states를 반환할지 여부.

output_attentions (`bool`, *선택 사항*, 기본값 `False`) : 모델이 모든 attention을 반환할지 여부.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 모델이 일반 tuple 대신 [ModelOutput](/docs/transformers/v5.23.0/ko/main_classes/output#transformers.utils.ModelOutput)을 반환할지 여부.

is_encoder_decoder (`bool`, *선택 사항*, 기본값 `False`) : 모델이 인코더/디코더로 사용되는지 여부입니다.

chunk_size_feed_forward (`int`, *선택 사항*, 기본값 `0`) : 잔차 어텐션 블록 내 모든 feed forward 레이어의 chunk size입니다. chunk size가 `0`이면 feed forward 레이어가 chunking되지 않습니다. chunk size가 n이면 feed forward 레이어가 한 번에 `n` < sequence_length개의 임베딩을 처리합니다. feed forward chunking에 대한 자세한 내용은 [Feed Forward Chunking은 어떻게 작동하나요?](../glossary.html#feed-forward-chunking)를 참고하세요.

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](/docs/transformers/v5.23.0/ko/model_doc/auto#transformers.AutoConfig)에서 올바른 객체를 재구성하는 데 사용됩니다.
- **attribute_map** (`dict[str, str]`) -- 모델에 특화된 속성 이름을 속성의 표준화된 이름으로 매핑하는 dict입니다.
- **base_model_tp_plan** (`dict[str, Any]`) -- `model.tensor_parallel`이 호출될 때, 베이스 모델의 서브모듈 FQN을 해당 서브모듈에 적용되는 텐서 병렬 계획으로 매핑하는 dict입니다.
- **base_model_fsdp_plan** (`dict[Any, str]`) -- 베이스 모델의 서브 모듈을 FSDP2 샤딩 전략(예: `"free_full_weight"` / `"keep_full_weight"`)으로 매핑하는 dict입니다. 키는 와일드카드 모듈 경로(예: `"layers.*"`) 또는 단일 `fully_shard` 호출로 그룹화된 경로 튜플일 수 있습니다.
- **base_model_pp_plan** (`dict[str, tuple[list[str]]]`) -- base model의 하위 모듈을 사용자가 해당 하위 모듈을 적절한 장치에 배치할 수 있도록 하는 pipeline parallel plan으로 매핑하는 dict입니다.

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

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

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

#### push_to_hub[[transformers.PreTrainedConfig.push_to_hub]]

```python
push_to_hub(repo_id: str, commit_message: str | None = None, commit_description: str | None = None, private: bool | None = None, token: bool | str | None = None, revision: str | None = None, create_pr: bool = False, max_shard_size: int | str | None = '50GB', tags: list[str] | None = None)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/utils/hub.py#L822)

**매개변수:**

repo_id (`str`) : 설정을 푸시할 저장소의 이름입니다. 특정 조직에 푸시할 경우 조직 이름을 포함해야 합니다.

commit_message (`str`, *선택 사항*) : push할 때 커밋할 메시지입니다. 기본값은 `"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에 구성 파일을 업로드합니다.

예:

```python
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[[transformers.PreTrainedConfig.default_config_fields]]

```python
default_config_fields()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1474)

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

#### dict_dtype_to_str[[transformers.PreTrainedConfig.dict_dtype_to_str]]

```python
dict_dtype_to_str(d: dict[str, Any])
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1395)

전달된 딕셔너리와 그 안의 중첩 딕셔너리에 *dtype* 키가 있는지 확인하고, None이 아니라면 torch.dtype을 타입 이름만 가진 문자열로 변환합니다. 예를 들어, `torch.float32`는 *"float32"* 문자열로 변환되어 json 형식으로 저장할 수 있습니다.

#### from_dict[[transformers.PreTrainedConfig.from_dict]]

```python
from_dict(config_dict: dict[str, Any], **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1054)

**매개변수:**

config_dict (`dict[str, Any]`) : 설정 객체를 인스턴스화하는 데 사용되는 사전. 이러한 사전은 [get_config_dict()](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig.get_config_dict) 메서드를 활용하여 사전 학습된 체크포인트에서 가져올 수 있습니다.

kwargs (`dict[str, Any]`) : 설정 객체를 초기화할 때 사용할 추가 매개변수.

**반환값:** [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)

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

Python 매개변수 사전에서 [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)를 초기화합니다.

#### from_json_file[[transformers.PreTrainedConfig.from_json_file]]

```python
from_json_file(json_file: str | os.PathLike)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1115)

**매개변수:**

json_file (`str` 또는 `os.PathLike`) : 매개변수가 포함된 JSON 파일의 경로.

**반환값:** [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)

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

JSON 파일의 경로에서 [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)를 인스턴스화합니다.

#### from_pretrained[[transformers.PreTrainedConfig.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike, cache_dir: str | os.PathLike | None = None, force_download: bool = False, local_files_only: bool = False, token: str | bool | None = None, revision: str = 'main', **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L797)

**매개변수:**

pretrained_model_name_or_path (`str` 또는 `os.PathLike`) : 다음 중 하나일 수 있습니다. - huggingface.co의 모델 저장소에 호스팅된 사전 학습된 모델 구성의 *model id*인 문자열. - [save_pretrained()](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig.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 기반 시스템을 사용하므로, `revision`은 git에서 허용하는 모든 식별자, 즉 브랜치 이름, 태그 이름 또는 커밋 id가 될 수 있습니다. Hub에서 만든 pull request를 테스트하려면 `revision="refs/pr/<pr_number>"`를 전달할 수 있습니다.

return_unused_kwargs (`bool`, *선택 사항*, 기본값 `False`) : `False`인 경우, 이 함수는 최종 구성 객체만 반환합니다. `True`인 경우, 이 함수는 `Tuple(config, unused_kwargs)`를 반환하며, 여기서 *unused_kwargs*는 키가 구성 속성이 아닌 키/값 쌍으로 구성된 사전입니다. 즉, `kwargs` 중 `config`를 업데이트하는 데 사용되지 않고 무시되는 부분입니다.

subfolder (`str`, *선택 사항*, 기본값 `""`) : 관련 파일이 huggingface.co의 모델 저장소 내 하위 폴더에 있는 경우, 여기에 폴더 이름을 지정할 수 있습니다.

kwargs (`dict[str, Any]`, *선택*) : kwargs의 값 중 설정 속성에 해당하는 키는 로드된 값을 덮어쓰는 데 사용됩니다. 키가 설정 속성이 *아닌* 키/값 쌍에 대한 동작은 `return_unused_kwargs` 키워드 매개변수로 제어됩니다.

**반환값:** [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)

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

프리트레이닝 모델 구성에서 [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)(또는 파생 클래스)를 인스턴스화합니다.

예:

```python
# 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[[transformers.PreTrainedConfig.get_config_dict]]

```python
get_config_dict(pretrained_model_name_or_path: str | os.PathLike, **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L909)

**매개변수:**

pretrained_model_name_or_path (`str` 또는 `os.PathLike`) : 매개변수 사전(dictionary)을 가져오려는 사전 학습된 체크포인트의 식별자입니다.

**반환값:** `tuple[Dict, Dict]`

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

`pretrained_model_name_or_path`에서 [PreTrainedConfig](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig)를 `from_dict`를 사용하여 인스턴스화할 때 사용할 매개변수 사전으로 해석합니다.

#### get_mtp_config[[transformers.PreTrainedConfig.get_mtp_config]]

```python
get_mtp_config()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1596)

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

#### get_text_config[[transformers.PreTrainedConfig.get_text_config]]

```python
get_text_config(decoder = None, encoder = None)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1519)

**매개변수:**

decoder (`Optional[bool]`, *선택*) : `True`로 설정하면 decoder config 이름만 검색합니다.

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

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

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

#### is_custom_code[[transformers.PreTrainedConfig.is_custom_code]]

```python
is_custom_code()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1468)

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

#### is_remote_code[[transformers.PreTrainedConfig.is_remote_code]]

```python
is_remote_code()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1462)

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

#### register_for_auto_class[[transformers.PreTrainedConfig.register_for_auto_class]]

```python
register_for_auto_class(auto_class = 'AutoConfig')
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1440)

**매개변수:**

auto_class (`str` 또는 `type`, *선택 사항*, 기본값 `"AutoConfig"`) : 이 새로운 구성을 등록할 auto 클래스입니다.

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

#### save_pretrained[[transformers.PreTrainedConfig.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L735)

**매개변수:**

save_directory (`str` 또는 `os.PathLike`) : 설정 JSON 파일을 저장할 디렉터리(존재하지 않으면 생성됩니다).

push_to_hub (`bool`, *선택 사항*, 기본값 `False`) : 모델을 저장한 후 Hugging Face 모델 허브에 푸시할지 여부입니다. `repo_id`를 사용하여 푸시할 저장소를 지정할 수 있으며, 지정하지 않으면 네임스페이스 내 `save_directory`의 이름이 기본값으로 사용됩니다.

kwargs (`dict[str, Any]`, *선택*) : [push_to_hub()](/docs/transformers/v5.23.0/ko/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub) 메서드에 함께 전달되는 추가 키워드 인자입니다.

`save_directory` 디렉토리에 구성 객체를 저장하여 [from_pretrained()](/docs/transformers/v5.23.0/ko/main_classes/configuration#transformers.PreTrainedConfig.from_pretrained) 클래스 메서드를 사용해 다시 로드할 수 있도록 합니다.

#### to_dict[[transformers.PreTrainedConfig.to_dict]]

```python
to_dict()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1261)

**반환값:** `dict[str, Any]`

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

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

#### to_diff_dict[[transformers.PreTrainedConfig.to_diff_dict]]

```python
to_diff_dict()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1199)

**반환값:** dict[str, Any]

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

클래스의 `config` 속성은 항상 유지하면서 가독성을 높이기 위해 기본 config 속성에 해당하는 모든 속성을 제거합니다. Python dictionary로 직렬화합니다.

#### to_json_file[[transformers.PreTrainedConfig.to_json_file]]

```python
to_json_file(json_file_path: str | os.PathLike, use_diff: bool = True)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1333)

**매개변수:**

json_file_path (`str` 또는 `os.PathLike`) : 이 구성 인스턴스의 매개변수가 저장될 JSON 파일의 경로.

use_diff (`bool`, *선택 사항*, 기본값 `True`) : `True`로 설정하면, config 인스턴스와 기본 `PreTrainedConfig()` 간의 차이만 JSON 파일에 직렬화됩니다.

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

#### to_json_string[[transformers.PreTrainedConfig.to_json_string]]

```python
to_json_string(use_diff: bool = True)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1311)

**매개변수:**

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

**반환값:** `str`

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

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

#### 업데이트[[transformers.PreTrainedConfig.update]]

```python
update(config_dict: dict[str, Any])
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1347)

**매개변수:**

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

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

#### update_from_string[[transformers.PreTrainedConfig.update_from_string]]

```python
update_from_string(update_str: str)
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L1357)

**매개변수:**

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[[transformers.PreTrainedConfig.validate]]

```python
validate()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/huggingface_hub/dataclasses.py#L247)

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

#### validate_architecture[[transformers.PreTrainedConfig.validate_architecture]]

```python
validate_architecture()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L670)

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

#### validate_layer_type[[transformers.PreTrainedConfig.validate_layer_type]]

```python
validate_layer_type()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L703)

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

#### validate_token_ids[[transformers.PreTrainedConfig.validate_token_ids]]

```python
validate_token_ids()
```

[소스](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/configuration_utils.py#L687)

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

