# Конфигурация

Базовый класс [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) реализует общие методы для загрузки/сохранения конфигурации из локального файла или каталога, а также из конфигурации предобученной модели, предоставляемой библиотекой (скачанной из репозитория AWS S3 HuggingFace).

Каждый производный класс конфигурации реализует атрибуты, специфичные для модели. Общие атрибуты, присутствующие во всех классах конфигурации: `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/main/src/transformers/configuration_utils.py#L299)

**Параметры:**

name_or_path (`str`, *необязательный*, по умолчанию `""`) : Сохраняет строку, переданную в [PreTrainedModel.from_pretrained()](/docs/transformers/main/ru/main_classes/model#transformers.PreTrainedModel.from_pretrained) в качестве `pretrained_model_name_or_path`, если конфигурация была создана с помощью такого метода.

output_hidden_states (`bool`, *необязательный*, по умолчанию `False`) : Должна ли модель возвращать все скрытые состояния.

output_attentions (`bool`, *необязательный*, по умолчанию `False`) : Указывает, должен ли модель возвращать все значения внимания.

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Указывает, должен ли модель возвращать [ModelOutput](/docs/transformers/main/ru/main_classes/output#transformers.utils.ModelOutput) вместо обычного кортежа.

is_encoder_decoder (`bool`, *необязательный*, по умолчанию `False`) : Используется ли модель в качестве энкодера/декодера.

chunk_size_feed_forward (`int`, *optional*, по умолчанию `0`) : Размер блока (chunk size) для всех слоёв feed forward в блоках residual attention. Размер блока `0` означает, что слой feed forward не разбивается на блоки. Размер блока n означает, что слой feed forward обрабатывает `n` < sequence_length эмбеддингов за один раз. Подробнее о разбиении слоёв feed forward на блоки см. в разделе [Как работает Feed Forward Chunking?](../glossary.html#feed-forward-chunking).

per_layer_config (`dict[int | str, dict[str, Any]]`, *необязательный*) : Разреженное отображение индексов слоёв на переопределения атрибутов конфигурации. Каждый ключ — это индекс слоя, а каждое значение содержит атрибуты, отличающиеся от глобальной конфигурации для данного слоя.

tie_last_hidden_states (`bool`, *optional*) : Указывает, должно ли `hidden_states[-1]` представлять собой `last_hidden_state` после применения финальной нормализации, а не скрытое состояние до финальной нормализации. Если значение не задано, используется встроенное по умолчанию значение модели.

**Параметры для задач дообучения:**

architectures (`list[str]`, *необязательный*) : Архитектуры моделей, которые можно использовать с предобученными весами модели.

id2label (`dict[int, str]`, *необязательный*) : Соответствие от индекса (например, индекса предсказания или целевого индекса) к метке.

label2id (`dict[str, int]`, *необязательный*) : Соответствие меток индексам для модели.

num_labels (`int`, *optional*) : Количество меток, используемых в последнем слое, добавляемом к модели, как правило, для задачи классификации.

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/main/ru/model_doc/auto#transformers.AutoConfig).
- **attribute_map** (`dict[str, str]`) — словарь, сопоставляющий имена атрибутов, специфичные для модели, со стандартизованными именами атрибутов.
- **base_model_tp_plan** (`dict[str, Any]`) — словарь, сопоставляющий FQN подмодулей базовой модели с планом тензорного параллелизма, применяемым к подмодулю при вызове `model.tensor_parallel`.
- **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`) — размер скрытого слоя модели.
- **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/main/src/transformers/utils/hub.py#L822)

**Параметры:**

repo_id (`str`) : Имя репозитория, в который вы хотите отправить конфигурацию. При отправке в конкретную организацию оно должно содержать имя вашей организации.

commit_message (`str`, *необязательный*) : Сообщение для коммита при выполнении push. По умолчанию используется `"Upload config"`.

commit_description (`str`, *необязательный*) : Описание коммита, который будет создан

private (`bool`, *optional*) : Указывает, нужно ли сделать репозиторий приватным. Если `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.

Загрузите файл конфигурации в 🤗 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/main/src/transformers/configuration_utils.py#L1471)

Получает значения по умолчанию для каждого аннотированного поля в dataclass, что используется для сохранения diff-dict. Для конфигураций, созданных в v4 с пользовательским `__init__`, возвращается пустой словарь, в результате чего в `self.__dict__` сохраняются все ключи. Для более новых конфигураций возвращаются ключи, у которых значения по умолчанию объявлены как поля, а не в `__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/main/src/transformers/configuration_utils.py#L1392)

Проверяет, содержит ли переданный словарь и его вложенные словари ключ *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/main/src/transformers/configuration_utils.py#L1051)

**Параметры:**

config_dict (`dict[str, Any]`) : Словарь, который будет использован для создания объекта конфигурации. Такой словарь можно получить из предобученной контрольной точки, используя метод [get_config_dict()](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig.get_config_dict).

kwargs (`dict[str, Any]`) : Дополнительные параметры, из которых инициализируется объект конфигурации.

**Возвращает:** [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig)

Объект конфигурации, созданный из этих параметров.

Создаёт экземпляр [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) из словаря параметров на Python.

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

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

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1112)

**Параметры:**

json_file (`str` или `os.PathLike`) : Путь к JSON-файлу, содержащему параметры.

**Возвращает:** [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig)

Объект конфигурации, созданный из этого JSON-файла.

Создаёт экземпляр [PreTrainedConfig](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig) из пути к JSON-файлу с параметрами.

#### 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/main/src/transformers/configuration_utils.py#L794)

**Параметры:**

pretrained_model_name_or_path (`str` или `os.PathLike`) : Может быть одним из следующих:  - строка, *model id* конфигурации предобученной модели, размещённой в репозитории моделей на huggingface.co. - путь к *каталогу*, содержащему файл конфигурации, сохранённый с помощью метода [save_pretrained()](/docs/transformers/main/ru/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.    Чтобы протестировать pull request, который вы создали на Hub, можно передать `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/main/ru/main_classes/configuration#transformers.PreTrainedConfig)

Объект конфигурации, созданный из этой предобученной модели.

Создайте экземпляр [PreTrainedConfig](/docs/transformers/main/ru/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/main/src/transformers/configuration_utils.py#L906)

**Параметры:**

pretrained_model_name_or_path (`str` или `os.PathLike`) : Идентификатор предобученной контрольной точки, из которой мы хотим получить словарь параметров.

**Возвращает:** `tuple[Dict, Dict]`

Словарь(и), который(е) будет использован для создания объекта конфигурации.

По `pretrained_model_name_or_path` формируется словарь параметров, который используется для создания экземпляра [PreTrainedConfig](/docs/transformers/main/ru/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/main/src/transformers/configuration_utils.py#L1593)

Возвращает текстовый конфиг mtp, используемый для создания модели MTP. Поскольку слои MTP создаются путём инициализации тех же классов, что и в основной модели, необходимо переопределить свойства конфига, зависящие от индекса, такие как `layer_types` или `mtp_layer_types`, чтобы создать корректные слои 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/main/src/transformers/configuration_utils.py#L1516)

**Параметры:**

decoder (`Optional[bool]`, *необязательный*) : Если установлено значение `True`, выполняется поиск только имён конфигураций декодера.

encoder (`Optional[bool]`, *необязательный*) : Если установлено в `True`, выполняется поиск только имён конфигураций энкодера.

Возвращает текстовую конфигурацию, связанную с текстовым входом (кодером) или текстовым выходом (декодером) модели. Аргументы `decoder` и `encoder` можно использовать для указания, какой конец модели нас интересует, что полезно для моделей, имеющих как текстовый вход, так и текстовый выход.

Существует три возможных результата использования этого метода:
1. В большинстве моделей возвращается сам исходный экземпляр конфигурации.
2. В более новых (2024+) составных моделях он возвращает текстовую секцию конфигурации, которая вложена под набором допустимых имён.
3. В более старых (2023-) составных моделях при `encoder=True` отбрасываются параметры только декодера, и наоборот.

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

```python
is_custom_code()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1465)

Возвращает, является ли текущий конфиг кастомным кодом, то есть загруженным с хабом или определённым в пользовательском модуле/сессии.

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

```python
is_remote_code()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1459)

Возвращает, является ли текущий конфиг кастомным кодом, то есть кодом, загруженным с хаба, или классом, который мы только что зарегистрировали через `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/main/src/transformers/configuration_utils.py#L1437)

**Параметры:**

auto_class (`str` или `type`, *необязательный*, по умолчанию `"AutoConfig"`) : Автоматический класс, с которым будет зарегистрирована эта новая конфигурация.

Зарегистрируйте этот класс с указанным автоклассом. Это следует использовать только для пользовательских конфигураций, так как конфигурации из библиотеки уже сопоставлены с `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/main/src/transformers/configuration_utils.py#L732)

**Параметры:**

save_directory (`str` или `os.PathLike`) : Каталог, в котором будет сохранён файл конфигурации JSON (будет создан, если не существует).

push_to_hub (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли после сохранения модели загрузить её в Hugging Face model hub. Репозиторий, в который нужно загрузить модель, можно указать с помощью `repo_id` (по умолчанию используется имя `save_directory` в вашем пространстве имён).

kwargs (`dict[str, Any]`, *необязательный*) : Дополнительные именованные аргументы, передаваемые в метод [push_to_hub()](/docs/transformers/main/ru/main_classes/model#transformers.utils.PushToHubMixin.push_to_hub).

Сохраните объект конфигурации в каталог `save_directory`, чтобы его можно было загрузить с помощью метода класса [from_pretrained()](/docs/transformers/main/ru/main_classes/configuration#transformers.PreTrainedConfig.from_pretrained).

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

```python
to_dict()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1258)

**Возвращает:** `dict[str, Any]`

Словарь всех атрибутов, из которых состоит этот экземпляр конфигурации.

Сериализует этот экземпляр в словарь Python.

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

```python
to_diff_dict()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1196)

**Возвращает:** dict[str, Any]

Словарь всех атрибутов, из которых состоит этот экземпляр конфигурации.

Удаляет все атрибуты конфигурации, соответствующие атрибутам конфигурации по умолчанию, для лучшей читаемости, при этом всегда сохраняя атрибут `config` из класса. Сериализует в словарь Python.

#### 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/main/src/transformers/configuration_utils.py#L1330)

**Параметры:**

json_file_path (`str` или `os.PathLike`) : Путь к JSON-файлу, в котором будут сохранены параметры этого экземпляра конфигурации.

use_diff (`bool`, *необязательный*, по умолчанию `True`) : Если установлено в `True`, в JSON-файл сериализуется только разница между экземпляром конфигурации и конфигурацией по умолчанию `PreTrainedConfig()`.

Сохраните этот экземпляр в файл JSON.

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

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

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1308)

**Параметры:**

use_diff (`bool`, *необязательный*, по умолчанию `True`) : Если установлено в `True`, в JSON-строку сериализуется только разница между экземпляром конфигурации и конфигурацией по умолчанию `PreTrainedConfig()`.

**Возвращает:** `str`

Строка, содержащая все атрибуты, из которых состоит данный экземпляр конфигурации, в формате JSON.

Сериализует этот экземпляр в строку JSON.

#### обновление[[transformers.PreTrainedConfig.update]]

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

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L1344)

**Параметры:**

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/main/src/transformers/configuration_utils.py#L1354)

**Параметры:**

update_str (`str`) : строка с атрибутами, которые следует обновить для этого класса.

Обновляет атрибуты этого класса атрибутами из `update_str`.

Ожидаемый формат: целые числа, числа с плавающей точкой и строки передаются как есть, а для булевых значений используйте `true` или `false`. Например: "n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index"

Ключи, которые необходимо изменить, должны уже существовать в объекте конфигурации.

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

```python
validate()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/huggingface_hub/dataclasses.py#L247)

Запустите валидаторы класса на экземпляре.

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

```python
validate_architecture()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L667)

Часть валидации, работающей на базе `@strict`. Проверяет архитектуру конфигурации.

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

```python
validate_layer_type()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L700)

Проверьте, что `mlp_layer_types` и `layer_types` определены корректно.

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

```python
validate_token_ids()
```

[Источник](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L684)

Часть валидации, работающей на базе `@strict`. Проверяет содержимое специальных токенов.

