Transformers documentation

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

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

Базовый класс PreTrainedConfig реализует общие методы для загрузки/сохранения конфигурации из локального файла или каталога, либо из конфигурации предобученной модели, предоставляемой библиотекой (скачанной из репозитория AWS S3 HuggingFace).

Каждый производный класс конфигурации реализует атрибуты, специфичные для модели. Общие атрибуты, присутствующие во всех классах конфигурации: 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, необязательный, по умолчанию "") — Сохраняет строку, переданную в PreTrainedModel.from_pretrained(), как pretrained_model_name_or_path, если конфигурация была создана с помощью такого метода.
  • output_hidden_states (bool, необязательный, по умолчанию False) — Следует ли модели возвращать все скрытые состояния.
  • 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] представлять собой 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]) — Словарь, сопоставляющий имена атрибутов, специфичные для модели, со стандартизованным написанием атрибутов.
  • 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

< >

( 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, 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.

Примеры:

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. Для конфигураций, созданных в v4 с кастомным __init__, возвращает пустой словарь, тем самым сохраняя все ключи в self.__dict__. Для более новых конфигураций возвращает ключи, для которых значения по умолчанию объявлены как поля, а не в __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

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

Создаёт экземпляр PreTrainedConfig из словаря параметров на Python.

from_json_file

< >

( json_file: str | os.PathLike ) → PreTrainedConfig

Параметры

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

Возвращает

PreTrainedConfig

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

Создаёт экземпляр PreTrainedConfig из пути к JSON-файлу с параметрами.

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) — Это может быть:
    • строка, model id конфигурации предобученной модели, размещенной в репозитории моделей на huggingface.co.
    • путь к каталогу, содержащему файл конфигурации, сохранённый с помощью метода 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

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

Создайте экземпляр 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) — Идентификатор предобученной контрольной точки, из которой мы хотим получить словарь параметров.

Возвращает

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, выполняется поиск только имён конфигураций декодера.
  • encoder (Optional[bool], необязательный) — Если установлено в True, выполняется поиск только имён конфигураций энкодера.

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

Существует три возможных результата использования этого метода:

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

is_custom_code

< >

( )

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

is_remote_code

< >

( )

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

register_for_auto_class

< >

( auto_class = 'AutoConfig' )

Параметры

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

Зарегистрируйте этот класс с указанным автоклассом. Это следует использовать только для пользовательских конфигураций, так как конфигурации из библиотеки уже сопоставлены с 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 model hub. С помощью 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 or os.PathLike) — Путь к JSON-файлу, в котором будут сохранены параметры этого экземпляра конфигурации.
  • use_diff (bool, необязательный, по умолчанию True) — Если установлено в True, в JSON-файл сериализуется только разница между экземпляром конфигурации и значениями по умолчанию PreTrainedConfig().

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

to_json_string

< >

( use_diff: bool = True ) → str

Параметры

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

Возвращает

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.

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

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

validate

< >

( )

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

validate_architecture

< >

( )

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

validate_layer_type

< >

( )

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

validate_token_ids

< >

( )

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

Update on GitHub