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

Токенизатор

Токенайзер отвечает за подготовку входных данных для модели. Библиотека содержит токенайзеры для всех моделей. Большинство токенайзеров доступны в двух вариантах: полная реализация на Python и «быстрая» реализация, основанная на Rust-библиотеке 🤗 Tokenizers. «Быстрые» реализации позволяют:

  1. значительное ускорение, особенно при пакетной токенизации и
  2. дополнительные методы для отображения между исходной строкой (символы и слова) и пространством токенов (например, получение индекса токена, содержащего заданный символ, или диапазона символов, соответствующего заданному токену).

Базовые классы PreTrainedTokenizer и PreTrainedTokenizerFast реализуют общие методы для кодирования строковых входных данных в модельные входные данные (см. ниже) и для создания/сохранения токенизаторов на Python и «Fast»-токенизаторов из локального файла или каталога, а также из предобученного токенизатора, предоставляемого библиотекой (скачанного из репозитория AWS S3 HuggingFace). Оба класса опираются на PreTrainedTokenizerBase, который содержит общие методы.

Таким образом, PreTrainedTokenizer и PreTrainedTokenizerFast реализуют основные методы для работы со всеми токенизаторами:

  • Токенизация (разбиение строк на подсловесные токены), преобразование строк токенов в идентификаторы и обратно, а также кодирование/декодирование (то есть токенизация и преобразование в целые числа).
  • Добавление новых токенов в словарь независимо от базовой структуры (BPE, SentencePiece…).
  • Управление специальными токенами (например, mask, beginning-of-sentence и т. д.): их добавление, назначение соответствующих атрибутов в токенизаторе для удобного доступа, а также обеспечение того, чтобы они не разбивались при токенизации.

Класс BatchEncoding хранит результат методов кодирования PreTrainedTokenizerBase (__call__, encode_plus и batch_encode_plus) и наследуется от словаря Python. Если токенизатор является чисто Python-токенизатором, этот класс ведёт себя как стандартный словарь Python и хранит различные входные данные модели, вычисленные этими методами (input_ids, attention_mask…). Если же используется «Fast»-токенизатор (то есть основанный на библиотеке tokenizers от HuggingFace), этот класс дополнительно предоставляет несколько продвинутых методов выравнивания, которые позволяют сопоставлять исходную строку (символы и слова) с пространством токенов (например, получить индекс токена, содержащего заданный символ, или диапазон символов, соответствующий заданному токену).

Мультимодальный токенизатор

Помимо этого, каждый токенизатор может быть «мультимодальным», что означает, что он хранит все соответствующие специальные токены в качестве атрибутов токенизатора для более удобного доступа. Например, если токенизатор загружен из модели «зрение-язык», такой как LLaVA, вы сможете обратиться к tokenizer.image_token_id, чтобы получить специальный токен изображения, используемый в качестве плейсхолдера.

Чтобы добавить дополнительные специальные токены для любого типа токенизатора, необходимо добавить следующие строки и сохранить токенизатор. Дополнительные специальные токены не обязательно должны быть связаны с модальностью — это может быть любой элемент, к которому модели часто нужен доступ. В приведённом ниже коде токенизатор в output_dir получит прямой доступ к трём дополнительным специальным токенам.

vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)

PreTrainedTokenizer

класс transformers.PythonBackend

< >

( **kwargs )

Параметры

  • model_max_length (int, необязательный) — Максимальная длина (в токенах) входных данных для трансформерной модели. При загрузке токенизатора с помощью from_pretrained() это значение устанавливается в соответствии с параметром, сохраненным для соответствующей модели в max_model_input_sizes (см. выше). Если значение не указано, по умолчанию используется VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • truncation_side (str, необязательный) — Сторона, на которой модель должна применять усечение. Значение должно выбираться из [‘right’, ‘left’]. Значение по умолчанию берется из атрибута класса с тем же именем.
  • chat_template (str, необязательный) — Строка шаблона Jinja, используемая для форматирования списков сообщений чата. Полное описание см. по адресу https://huggingface.co/docs/transformers/chat_templating.
  • model_input_names (list[string], необязательный) — Список входных данных, принимаемых прямой передачей модели (например, "token_type_ids" или "attention_mask"). Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • bos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий начало предложения.
  • eos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий конец предложения.
  • unk_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий токен вне словаря.
  • sep_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, разделяющий два разных предложения в одном входном тексте (используется, например, в BERT).
  • pad_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, используемый для приведения массивов токенов к одинаковому размеру в целях батчинга. Затем он игнорируется механизмами внимания или вычислением функции потерь.
  • cls_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий класс входных данных (используется, например, в BERT).
  • mask_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий замаскированный токен (используется в задачах предварительного обучения с маскированием, например, в BERT). Будет связан с self.mask_token и self.mask_token_id.
  • extra_special_tokens (список str или tokenizers.AddedToken, необязательно) — Список дополнительных специальных токенов, специфичных для модели. Добавьте их сюда, чтобы они пропускались при декодировании, если skip_special_tokens установлен в True. Если они не входят в словарь, они будут добавлены в конец словаря.
  • split_special_tokens (bool, необязательный, по умолчанию False) — Определяет, следует ли разделять специальные токены в процессе токенизации. Передача этого параметра влияет на внутреннее состояние токенизатора. По умолчанию специальные токены не разделяются. Это означает, что если <s> является bos_token, то tokenizer.tokenize("<s>") = ['<s>]. В противном случае, если split_special_tokens=True, то tokenizer.tokenize("<s>") вернёт ['<','s', '>'].

Базовый класс для всех медленных токенизаторов.

Наследуется от PreTrainedTokenizerBase.

Обработка всех общих методов токенизации и специальных токенов, а также методов загрузки, кэширования и загрузки предобученных токенизаторов, а также добавления токенов в словарь.

Этот класс также содержит добавленные токены в унифицированном виде поверх всех токенизаторов, поэтому нам не нужно обрабатывать специфические методы расширения словаря различных базовых структур словаря (BPE, sentencepiece…).

Атрибуты класса (переопределяются производными классами)

  • vocab_files_names (dict[str, str]) — Словарь, в котором ключами являются имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а значениями — имена файлов для сохранения соответствующих файлов (строки).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — словарь словарей, где ключи верхнего уровня — это имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а ключи нижнего уровня — это short-cut-names предобученных моделей, а соответствующие значения — это url на соответствующий файл предобученного словаря.
  • model_input_names (list[str]) — Список входных данных, ожидаемых в прямом проходе модели.
  • padding_side (str) — Значение по умолчанию для стороны, на которой модель должна применять отступы. Должно быть 'right' или 'left'.
  • truncation_side (str) — Значение по умолчанию для стороны, на которой модель должна применять усечение. Должно быть 'right' или 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Параметры

  • text (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если последовательности предоставлены в виде списка строк (предварительно токенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_pair (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если последовательности предоставлены в виде списка строк (предварительно токенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_target (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей, которые будут закодированы как целевые тексты. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности предоставлены в виде списка строк (предтокенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_pair_target (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей, которые будут закодированы как целевые тексты. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности предоставлены в виде списка строк (предтокенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • tokenizer_kwargs (dict[str, Any], необязательный) — Дополнительные kwargs для передачи в токенизатор. Они будут объединены с явными параметрами и другими kwargs, при этом явные параметры имеют приоритет.
  • add_special_tokens (bool, необязательный, по умолчанию True) — Указывает, следует ли добавлять специальные токены при кодировании последовательностей. Для этого используется базовая функция PretrainedTokenizerBase.build_inputs_with_special_tokens, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены bos или eos.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан. Обрезка выполняется посимвольно: если предоставлена пара последовательностей (или батч пар), то токен удаляется из самой длинной последовательности в паре.
    • 'only_first': Обрезка до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не задан. Если предоставлена пара последовательностей (или батч пар), будет обрезана только первая последовательность пары.
    • 'only_second': Обрезка до максимальной длины, указанной аргументом max_length, или до максимальной допустимой длины входа для модели, если этот аргумент не задан. Это приводит к обрезке только второй последовательности в паре, если предоставлена пара последовательностей (или батч пар).
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

    Если параметр не задан или установлен в None, будет использована предопределённая максимальная длина модели, если одна из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • return_token_type_ids (bool, необязательный) — Возвращать ли идентификаторы типов токенов. Если значение не указано, идентификаторы типов токенов будут возвращены в соответствии со значением по умолчанию для конкретного токенизатора, заданным атрибутом return_outputs .

    Что такое идентификаторы типов токенов?

  • return_attention_mask (bool, необязательный) — Возвращать ли маску внимания. Если значение не указано, маска внимания будет возвращена в соответствии со значением по умолчанию для конкретного токенизатора, определяемым атрибутом return_outputs .

    Что такое маски внимания?

  • return_overflowing_tokens (bool, необязательный, по умолчанию False) — Возвращать ли последовательности токенов, выходящие за пределы длины. Если передается пара последовательностей входных идентификаторов (или батч пар) с truncation_strategy = longest_first или True, вместо возврата переполненных токенов будет выброшена ошибка.
  • return_special_tokens_mask (bool, необязательный, по умолчанию False) — Возвращать ли информацию о маске специальных токенов.
  • return_offsets_mapping (bool, необязательный, по умолчанию False) — Возвращать ли (char_start, char_end) для каждого токена.

    Это доступно только для быстрых токенизаторов, наследующих от PreTrainedTokenizerFast. Если используется токенизатор на Python, этот метод вызовет NotImplementedError.

  • return_length (bool, необязательный, по умолчанию False) — Возвращать ли длины закодированных входных данных.
  • verbose (bool, необязательный, по умолчанию True) — Выводить ли дополнительную информацию и предупреждения.
  • **kwargs — передаются в метод self.tokenize()

Возвращает

BatchEncoding

BatchEncoding со следующими полями:

  • input_ids — список идентификаторов токенов, которые передаются в модель.

    Что такое входные идентификаторы?

  • token_type_ids — список идентификаторов типов токенов, передаваемых в модель (если return_token_type_ids=True или если “token_type_ids” входит в self.model_input_names).

    Что такое идентификаторы типов токенов?

  • attention_mask — список индексов, указывающих, на какие токены модель должна обращать внимание (когда return_attention_mask=True или если “attention_mask” входит в self.model_input_names).

    Что такое маски внимания?

  • overflowing_tokens — список переполненных последовательностей токенов (если указано max_length и return_overflowing_tokens=True).

  • num_truncated_tokens — количество отсечённых токенов (если указано max_length и return_overflowing_tokens=True).

  • special_tokens_mask — список нулей и единиц, где 1 указывает на добавленные специальные токены, а 0 — на обычные токены последовательности (когда add_special_tokens=True и return_special_tokens_mask=True).

  • length — длина входных данных (когда return_length=True)

Основной метод для токенизации и подготовки одной или нескольких последовательностей или одной или нескольких пар последовательностей для модели.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Параметры

  • new_tokens (str, tokenizers.AddedToken или последовательность str или tokenizers.AddedToken) — Токены добавляются только в том случае, если их ещё нет в словаре. tokenizers.AddedToken оборачивает строковый токен, позволяя настроить его поведение: должен ли этот токен соответствовать только одному слову, должен ли этот токен удалять все возможные пробельные символы слева, должен ли этот токен удалять все возможные пробельные символы справа и т. д.
  • special_tokens (bool, необязательный, по умолчанию False) — Указывает, является ли токен специальным. Это в основном влияет на поведение нормализации. См. подробности о tokenizers.AddedToken в библиотеке HuggingFace tokenizers.

Возвращает

int

Количество токенов, добавленных в словарь.

#TODO удалить это отсюда! PreTrainedTokenizerBase не должен зависеть от AddedToken.

Добавьте список новых токенов. Если новые токены отсутствуют в словаре, они добавляются в конец. Таким образом, добавленные токены и токены из словаря алгоритма токенизации обрабатываются по-разному.

Быстрые токенизаторы с претокенизатором Metaspace с использованием prepend_scheme="always" (например, NLLB) добавляют "▁" к тексту, следующему за добавленным токеном. После tokenizer.add_tokens(["abcd"]) строка "abcdgym" токенизируется как ["abcd", "▁gym"] и декодируется в "abcd gym". Если добавленные токены могут появляться внутри слов, переключите претокенизатор

в prepend_scheme="first", чтобы префикс добавлялся только к началу входных данных:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Примеры:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Параметры

  • special_tokens_dict (словарь str в str, tokenizers.AddedToken, или Sequence[Union[str, AddedToken]]) — Ключи должны входить в список предопределенных специальных атрибутов: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Токены добавляются только в том случае, если их ещё нет в словаре (проверяется, назначает ли токенизатор им индекс unk_token).

  • replace_extra_special_tokens (bool, необязательный, по умолчанию True) — Если True, существующий список дополнительных специальных токенов будет заменён списком, переданным в special_tokens_dict. В противном случае extra_special_tokens будет дополнен. В первом случае токены НЕ будут удалены из полного словаря токенизатора — они лишь помечаются как несущественные (не-специальные) токены. Помните, что это влияет только на то, какие токены пропускаются при декодировании, но не на added_tokens_encoder и added_tokens_decoder. Это означает, что предыдущие extra_special_tokens остаются добавленными токенами и не будут разбиваться моделью.

Возвращает

int

Количество токенов, добавленных в словарь.

Добавляет словарь специальных токенов (eos, pad, cls и т. д.) в энкодер и связывает их с атрибутами класса. Если специальные токены отсутствуют в словаре, они добавляются в него (индексация начинается с последнего индекса текущего словаря).

При добавлении новых токенов в словарь необходимо также изменить размер матрицы эмбеддингов токенов модели, чтобы её матрица эмбеддингов соответствовала токенизатору.

Для этого используйте метод resize_token_embeddings().

Использование add_special_tokens гарантирует, что ваши специальные токены можно использовать несколькими способами:

  • Специальные токены можно пропустить при декодировании, используя skip_special_tokens = True.
  • Специальные токены тщательно обрабатываются токенизатором (они никогда не разбиваются), аналогично AddedTokens.
  • Вы можете легко обращаться к специальным токенам с помощью атрибутов класса токенизатора, таких как tokenizer.cls_token. Это упрощает разработку скриптов обучения и дообучения, не привязанных к конкретной модели.

По возможности, специальные токены уже зарегистрированы для предоставленных предобученных моделей (например, BertTokenizer cls_token уже зарегистрирован как '[CLS]', а для XLM он также зарегистрирован как '</s>').

Примеры:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Параметры

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — список словарей с ключами «role» и «content», представляющий историю чата на данный момент.
  • tools (list[Union[Dict, Callable]], необязательный) — Список инструментов (вызываемых функций), доступных модели. Если шаблон не поддерживает вызов функций, этот аргумент не будет иметь эффекта. Каждый инструмент должен передаваться в формате JSON Schema, указывающем имя, описание и типы аргументов инструмента. Подробнее см. в нашем руководстве по использованию инструментов.
  • documents (list[dict[str, str]], необязательный) — Список словарей, представляющих документы, доступные модели при выполнении RAG (retrieval-augmented generation). Если шаблон не поддерживает RAG, этот аргумент не будет влиять на результат. Рекомендуется, чтобы каждый документ был словарем, содержащим ключи “title” и “text”.
  • chat_template (str, необязательный) — Шаблон Jinja, используемый для этого преобразования. Обычно не нужно передавать в этот аргумент ничего, так как по умолчанию используется шаблон модели.
  • add_generation_prompt (bool, необязательный) — Если этот параметр установлен, к отформатированному выводу будет добавлен промпт с токеном(ами), указывающими на начало сообщения ассистента. Это полезно, когда вы хотите сгенерировать ответ от модели. Обратите внимание, что этот аргумент будет передан в шаблон чата, поэтому для того, чтобы он имел какой-либо эффект, он должен поддерживаться в шаблоне.
  • continue_final_message (bool or str, необязательный) — Если этот параметр задан, чат будет сформирован так, чтобы последнее сообщение в чате было незавершённым, без токенов EOS. Модель продолжит это сообщение, а не начнёт новое. Это позволяет «предзаполнить» часть ответа модели. Если передана строка, она будет использована в качестве ключа для поля, которое нужно продолжить (например, “reasoning_content”). Не может использоваться одновременно с add_generation_prompt.
  • tokenize (bool, по умолчанию True) — Определяет, следует ли токенизировать вывод. Если False, выводом будет строка.
  • sanitize_control_tokens (bool, по умолчанию False) — Если установлено, управляющие токены, встречающиеся в сообщениях, инструментах или документах, кодируются как обычный текст, так что только управляющие токены, записанные самим шаблоном чата, кодируются как токены. Управляющие токены — это специальные токены токенизатора, плюс добавленные токены в tokenizer.chat_control_tokens. Если эта переменная не задана, управляющие токены выводятся из добавленных токенов, которые встречаются в тексте шаблона чата и строковых литералах. Санитизируются только целые управляющие токены, поэтому, если шаблон объединяет строки из входных данных в управляющие токены (например, '<|' + message['role'] + '|>'), эти строки должны быть проверены отдельно. Ключи словарей также не санитизируются.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Выберите стратегию дополнения возвращаемых последовательностей (с учётом стороны дополнения модели и индекса дополнения) из следующих вариантов:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, по умолчанию False) — Определяет, нужно ли обрезать последовательности до максимальной длины. Не имеет эффекта, если tokenize равно False.
  • max_length (int, необязательный) — Максимальная длина (в токенах), используемая для дополнения или усечения. Не влияет на результат, если tokenize равно False. Если значение не указано, по умолчанию будет использован атрибут max_length токенизатора.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Не имеет эффекта, если tokenize — False. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты NumPy np.ndarray.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать словарь с именованными выводами. Не имеет значения, если tokenize равно False.
  • tokenizer_kwargs (dict[str -- Any], необязательный): Дополнительные аргументы для передачи в токенизатор.
  • return_assistant_tokens_mask (bool, по умолчанию False) — Возвращать ли маску токенов, сгенерированных ассистентом. Для токенов, сгенерированных ассистентом, в маске будет значение 1. Для токенов пользователя и системы — 0. Эта функция доступна только для шаблонов чата, поддерживающих её через ключевое слово {% generation %}.
  • **kwargs — Дополнительные аргументы kwargs для передачи в рендер шаблона. Будут доступны для чат-шаблона.

Возвращает

Union[list[int], Dict]

Список идентификаторов токенов, представляющий токенизированный чат на данный момент, включая управляющие токены. Этот вывод готов к передаче в модель, как напрямую, так и через методы вроде generate(). Если return_dict установлен, будет возвращен словарь с результатами токенизатора.

Преобразует список словарей с ключами "role" и "content" в список идентификаторов токенов. Этот метод предназначен для использования с чат-моделями и читает атрибут chat_template токенизатора, чтобы определить формат и управляющие токены, используемые при преобразовании.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Параметры

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Список токенизированных входных идентификаторов. Может быть получен с помощью метода __call__.
  • skip_special_tokens (bool, необязательный, по умолчанию False) — Удалять ли специальные токены при декодировании.
  • clean_up_tokenization_spaces (bool, необязательный) — Определяет, следует ли очищать пробелы токенизации. Если None, по умолчанию используется self.clean_up_tokenization_spaces.
  • kwargs (дополнительные именованные аргументы, необязательный) — Будут переданы в метод декодирования, специфичный для базовой модели.

Возвращает

list[str]

Список декодированных предложений.

Преобразуйте список списков идентификаторов токенов в список строк, вызвав decode.

Этот метод предоставляется для обратной совместимости. Метод decode теперь нативно обрабатывает пакетный ввод, поэтому вы можете использовать decode напрямую вместо batch_decode.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Параметры

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Одна последовательность или батч (список последовательностей) токенизированных входных идентификаторов. Может быть получен с помощью метода __call__.
  • skip_special_tokens (bool, необязательный, по умолчанию False) — Удалять ли специальные токены при декодировании.
  • kwargs (дополнительные именованные аргументы, необязательный) — Будут переданы в метод декодирования, специфичный для базовой модели.

Возвращает

Union[str, list[str]]

Декодированная строка для одной последовательности или список декодированных строк для батча последовательностей.

Преобразует последовательность идентификаторов в строку или список последовательностей в список строк, используя токенизатор и словарь, с опциями для удаления специальных токенов и очистки пробелов токенизации.

Аналогично выполнению self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Параметры

  • text (str, list[str] or list[int]) — Первая последовательность для кодирования. Это может быть строка, список строк (токенизированная строка с использованием метода tokenize) или список целых чисел (идентификаторы токенов строки, полученные с помощью метода convert_tokens_to_ids).
  • text_pair (str, list[str] or list[int], необязательный) — Необязательная вторая последовательность для кодирования. Это может быть строка, список строк (токенизированная строка с использованием метода tokenize) или список целых чисел (идентификаторы токенов строки, полученные с помощью метода convert_tokens_to_ids).
  • add_special_tokens (bool, необязательный, по умолчанию True) — Указывает, следует ли добавлять специальные токены при кодировании последовательностей. Для этого используется базовая функция PretrainedTokenizerBase.build_inputs_with_special_tokens, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены bos или eos.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан. Обрезка выполняется посимвольно: если предоставлена пара последовательностей (или батч пар), то токен удаляется из самой длинной последовательности в паре.
    • 'only_first': Обрезка до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не задан. Если предоставлена пара последовательностей (или батч пар), будет обрезана только первая последовательность пары.
    • 'only_second': Обрезка до максимальной длины, указанной аргументом max_length, или до максимальной допустимой длины входа для модели, если этот аргумент не задан. Это приводит к обрезке только второй последовательности в паре, если предоставлена пара последовательностей (или батч пар).
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

    Если параметр не задан или установлен в None, будет использована предопределённая максимальная длина модели, если одна из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • **kwargs — Передаются в метод .tokenize().

Возвращает

list[int], torch.Tensor или np.ndarray

Токенизированные идентификаторы текста.

Преобразует строку в последовательность идентификаторов (целых чисел), используя токенизатор и словарь.

Аналогично выполнению self.convert_tokens_to_ids(self.tokenize(text)).

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 tokenizer".
  • 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 AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

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

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

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов, к которым будут добавлены специальные токены.
  • token_ids_1 (list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.

Возвращает

list[int]

Список входных идентификаторов с соответствующими специальными токенами.

Создайте входные данные модели из последовательности или пары последовательностей, добавив специальные токены.

Этот метод динамически формирует входные данные на основе special_tokens_pattern токенизатора:

  • "none": без специальных токенов
  • "cls_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] или seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 или [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] или [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (собственный префикс/суффикс, хранящийся в токенизаторе)

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов.
  • token_ids_1 (list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.

Возвращает

list[int]

Идентификаторы типов токенов в соответствии с настроенным шаблоном.

Создайте маску из двух переданных последовательностей для использования в задаче классификации пар последовательностей.

Этот метод динамически формирует идентификаторы типов токенов на основе атрибутов конфигурации токенизатора:

  • token_type_ids_pattern: шаблон для использования (“all_zeros” или “bert_style”)
  • token_type_ids_include_special_tokens: Учитывать ли специальные токены при вычислении длины

Примеры:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Возвращает

dict[str, int]

Добавленные токены.

Возвращает добавленные токены словаря в виде словаря «токен — индекс». Результаты могут отличаться от результатов быстрого вызова, поскольку на данный момент токены всегда добавляются, даже если они уже присутствуют в словаре. Это следует исправить.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов первой последовательности.
  • token_ids_1 (list[int], необязательный) — Список идентификаторов второй последовательности.
  • already_has_special_tokens (bool, необязательный, по умолчанию False) — Указывает, содержит ли список токенов уже отформатированные специальные токены для модели.

Возвращает

Список целых чисел в диапазоне [0, 1]

1 для специального токена, 0 для токена последовательности.

Получает идентификаторы последовательностей из списка токенов, в который не добавлены специальные токены. Этот метод вызывается при добавлении специальных токенов с помощью методов prepare_for_model или encode_plus токенизатора.

Этот метод динамически формирует маску специальных токенов на основе special_tokens_pattern токенизатора:

  • "none": без специальных токенов (по умолчанию, возвращает все нули)
  • "cls_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] или seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 или [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] или [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Параметры

  • pair (bool, необязательный, по умолчанию False) — Определяет, следует ли вычислять количество добавленных токенов для пары последовательностей или для одной последовательности.

Возвращает

int

Количество специальных токенов, добавляемых к последовательностям.

Возвращает количество добавленных токенов при кодировании последовательности со специальными токенами.

Эта операция кодирует фиктивный вход и проверяет количество добавленных токенов, поэтому она неэффективна. Не помещайте её внутрь цикла обучения.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Параметры

  • ids — Токенизированные идентификаторы входных данных первой последовательности.
  • pair_ids — Токенизированные идентификаторы входных данных второй последовательности (необязательный параметр).

Готовит последовательность входных идентификаторов для использования в модели. Добавляет специальные токены, обрезает и дополняет последовательность.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Параметры

  • text (str) — Текст для подготовки.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • kwargs (dict[str, Any], необязательный) — Параметры, передаваемые по имени, для использования при токенизации.

Возвращает

tuple[str, dict[str, Any]]

Подготовленный текст и неиспользуемые kwargs.

Выполняет необходимые преобразования перед токенизацией.

Этот метод должен извлекать аргументы из kwargs и возвращать оставшиеся kwargs. В конце процесса кодирования мы проверяем kwargs, чтобы убедиться, что все аргументы были использованы.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Параметры

  • save_directory (str) — Каталог, в котором сохраняется словарь.
  • filename_prefix (str, необязательный) — Необязательный префикс, добавляемый к именам сохраняемых файлов.

Возвращает

tuple[str, ...]

Пути к сохранённым файлам или пустой кортеж, если файлы не были сохранены.

Реализация по умолчанию для распространённых схем сохранения словаря. Сохраняет self.encoder/self.vocab в формате JSON, при необходимости вместе с self.bpe_ranks в качестве слияний. Возвращает пустой кортеж, если словарь отсутствует.

Переопределите этот метод, если вашему токенизатору требуется собственная логика сохранения (например, для моделей SentencePiece, нескольких файлов словаря или специальных форматов файлов).

tokenize

< >

( text: str**kwargs )

Параметры

  • text — последовательность, подлежащая кодированию.
  • **kwargs — Передаются в метод предобработки prepare_for_tokenization, специфичный для модели.

Преобразует строку в последовательность токенов с помощью токенизатора.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Обрезает последовательности в соответствии с указанной стратегией.

PreTrainedTokenizerFast

Класс PreTrainedTokenizerFast зависит от библиотеки tokenizers. Токенайзеры, полученные из библиотеки 🤗 tokenizers, можно очень просто загрузить в 🤗 transformers. Ознакомьтесь со страницей Использование токенайзеров из 🤗 tokenizers, чтобы узнать, как это делается.

класс transformers.TokenizersBackend

< >

( *args**kwargs )

Параметры

  • model_max_length (int, необязательный) — Максимальная длина (в токенах) входных данных для трансформерной модели. При загрузке токенизатора с помощью from_pretrained() это значение устанавливается в соответствии с параметром, сохраненным для соответствующей модели в max_model_input_sizes (см. выше). Если значение не указано, по умолчанию используется VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • truncation_side (str, необязательный) — Сторона, на которой модель должна применять усечение. Значение должно выбираться из [‘right’, ‘left’]. Значение по умолчанию берется из атрибута класса с тем же именем.
  • chat_template (str, необязательный) — Строка шаблона Jinja, используемая для форматирования списков сообщений чата. Полное описание см. по адресу https://huggingface.co/docs/transformers/chat_templating.
  • model_input_names (list[string], необязательный) — Список входных данных, принимаемых прямой передачей модели (например, "token_type_ids" или "attention_mask"). Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • bos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий начало предложения.
  • eos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий конец предложения.
  • unk_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий токен вне словаря.
  • sep_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, разделяющий два разных предложения в одном входном тексте (используется, например, в BERT).
  • pad_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, используемый для приведения массивов токенов к одинаковому размеру в целях батчинга. Затем он игнорируется механизмами внимания или вычислением функции потерь.
  • cls_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий класс входных данных (используется, например, в BERT).
  • mask_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий замаскированный токен (используется в задачах предварительного обучения с маскированием, например, в BERT). Будет связан с self.mask_token и self.mask_token_id.
  • extra_special_tokens (список str или tokenizers.AddedToken, необязательно) — Список дополнительных специальных токенов, специфичных для модели. Добавьте их сюда, чтобы они пропускались при декодировании, если skip_special_tokens установлен в True. Если они не входят в словарь, они будут добавлены в конец словаря.
  • split_special_tokens (bool, необязательный, по умолчанию False) — Определяет, следует ли разделять специальные токены в процессе токенизации. Передача этого параметра влияет на внутреннее состояние токенизатора. По умолчанию специальные токены не разделяются. Это означает, что если <s> является bos_token, то tokenizer.tokenize("<s>") = ['<s>]. В противном случае, если split_special_tokens=True, то tokenizer.tokenize("<s>") вернёт ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Объект tokenizers.Tokenizer из 🤗 tokenizers, от которого требуется создать экземпляр. Подробности см. в разделе Использование токенизаторов из 🤗 tokenizers.
  • tokenizer_file (str) — Путь к локальному JSON-файлу, представляющему ранее сериализованный объект tokenizers.Tokenizer из 🤗 tokenizers.

Базовый класс для всех быстрых токенизаторов (обёртка над библиотекой HuggingFace tokenizers).

Наследуется от PreTrainedTokenizerBase.

Реализует все общие методы токенизации и работы со специальными токенами, а также методы загрузки/кэширования/чтения предобученных токенизаторов, а также добавления токенов в словарь.

Этот класс также содержит добавленные токены в унифицированном виде поверх всех токенизаторов, поэтому нам не нужно обрабатывать специфические методы расширения словаря различных базовых структур данных (BPE, sentencepiece…).

Атрибуты класса (переопределяются производными классами)

  • vocab_files_names (dict[str, str]) — Словарь, в котором ключами являются имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а значениями — имена файлов для сохранения соответствующих файлов (строки).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — словарь словарей, где ключи верхнего уровня — это имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а ключи нижнего уровня — это short-cut-names предобученных моделей, а соответствующие значения — это url на соответствующий файл предобученного словаря.
  • model_input_names (list[str]) — Список входных данных, ожидаемых в прямом проходе модели.
  • padding_side (str) — Значение по умолчанию для стороны, на которой модель должна применять отступы. Должно быть 'right' или 'left'.
  • truncation_side (str) — Значение по умолчанию для стороны, на которой модель должна применять усечение. Должно быть 'right' или 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Параметры

  • text (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если последовательности предоставлены в виде списка строк (предварительно токенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_pair (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если последовательности предоставлены в виде списка строк (предварительно токенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_target (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей, которые будут закодированы как целевые тексты. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности предоставлены в виде списка строк (предтокенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • text_pair_target (str, list[str], list[list[str]], необязательный) — Последовательность или батч последовательностей, которые будут закодированы как целевые тексты. Каждая последовательность может быть строкой или списком строк (предтокенизированная строка). Если последовательности предоставлены в виде списка строк (предтокенизированных), необходимо установить is_split_into_words=True (чтобы устранить неоднозначность с батчем последовательностей).
  • tokenizer_kwargs (dict[str, Any], необязательный) — Дополнительные kwargs для передачи в токенизатор. Они будут объединены с явными параметрами и другими kwargs, при этом явные параметры имеют приоритет.
  • add_special_tokens (bool, необязательный, по умолчанию True) — Указывает, следует ли добавлять специальные токены при кодировании последовательностей. Для этого используется базовая функция PretrainedTokenizerBase.build_inputs_with_special_tokens, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены bos или eos.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан. Обрезка выполняется посимвольно: если предоставлена пара последовательностей (или батч пар), то токен удаляется из самой длинной последовательности в паре.
    • 'only_first': Обрезка до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не задан. Если предоставлена пара последовательностей (или батч пар), будет обрезана только первая последовательность пары.
    • 'only_second': Обрезка до максимальной длины, указанной аргументом max_length, или до максимальной допустимой длины входа для модели, если этот аргумент не задан. Это приводит к обрезке только второй последовательности в паре, если предоставлена пара последовательностей (или батч пар).
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

    Если параметр не задан или установлен в None, будет использована предопределённая максимальная длина модели, если одна из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • return_token_type_ids (bool, необязательный) — Возвращать ли идентификаторы типов токенов. Если значение не указано, идентификаторы типов токенов будут возвращены в соответствии со значением по умолчанию для конкретного токенизатора, заданным атрибутом return_outputs .

    Что такое идентификаторы типов токенов?

  • return_attention_mask (bool, необязательный) — Возвращать ли маску внимания. Если значение не указано, маска внимания будет возвращена в соответствии со значением по умолчанию для конкретного токенизатора, определяемым атрибутом return_outputs .

    Что такое маски внимания?

  • return_overflowing_tokens (bool, необязательный, по умолчанию False) — Возвращать ли последовательности токенов, выходящие за пределы длины. Если передается пара последовательностей входных идентификаторов (или батч пар) с truncation_strategy = longest_first или True, вместо возврата переполненных токенов будет выброшена ошибка.
  • return_special_tokens_mask (bool, необязательный, по умолчанию False) — Возвращать ли информацию о маске специальных токенов.
  • return_offsets_mapping (bool, необязательный, по умолчанию False) — Возвращать ли (char_start, char_end) для каждого токена.

    Это доступно только для быстрых токенизаторов, наследующих от PreTrainedTokenizerFast. Если используется токенизатор на Python, этот метод вызовет NotImplementedError.

  • return_length (bool, необязательный, по умолчанию False) — Возвращать ли длины закодированных входных данных.
  • verbose (bool, необязательный, по умолчанию True) — Выводить ли дополнительную информацию и предупреждения.
  • **kwargs — передаются в метод self.tokenize()

Возвращает

BatchEncoding

BatchEncoding со следующими полями:

  • input_ids — список идентификаторов токенов, которые передаются в модель.

    Что такое входные идентификаторы?

  • token_type_ids — список идентификаторов типов токенов, передаваемых в модель (если return_token_type_ids=True или если “token_type_ids” входит в self.model_input_names).

    Что такое идентификаторы типов токенов?

  • attention_mask — список индексов, указывающих, на какие токены модель должна обращать внимание (когда return_attention_mask=True или если “attention_mask” входит в self.model_input_names).

    Что такое маски внимания?

  • overflowing_tokens — список переполненных последовательностей токенов (если указано max_length и return_overflowing_tokens=True).

  • num_truncated_tokens — количество отсечённых токенов (если указано max_length и return_overflowing_tokens=True).

  • special_tokens_mask — список нулей и единиц, где 1 указывает на добавленные специальные токены, а 0 — на обычные токены последовательности (когда add_special_tokens=True и return_special_tokens_mask=True).

  • length — длина входных данных (когда return_length=True)

Основной метод для токенизации и подготовки одной или нескольких последовательностей или одной или нескольких пар последовательностей для модели.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Параметры

  • new_tokens (str, tokenizers.AddedToken или последовательность str или tokenizers.AddedToken) — Токены добавляются только в том случае, если их ещё нет в словаре. tokenizers.AddedToken оборачивает строковый токен, позволяя настроить его поведение: должен ли этот токен соответствовать только одному слову, должен ли этот токен удалять все возможные пробельные символы слева, должен ли этот токен удалять все возможные пробельные символы справа и т. д.
  • special_tokens (bool, необязательный, по умолчанию False) — Указывает, является ли токен специальным. Это в основном влияет на поведение нормализации. См. подробности о tokenizers.AddedToken в библиотеке HuggingFace tokenizers.

Возвращает

int

Количество токенов, добавленных в словарь.

#TODO удалить это отсюда! PreTrainedTokenizerBase не должен зависеть от AddedToken.

Добавьте список новых токенов. Если новые токены отсутствуют в словаре, они добавляются в конец. Таким образом, добавленные токены и токены из словаря алгоритма токенизации обрабатываются по-разному.

Быстрые токенизаторы с претокенизатором Metaspace с использованием prepend_scheme="always" (например, NLLB) добавляют "▁" к тексту, следующему за добавленным токеном. После tokenizer.add_tokens(["abcd"]) строка "abcdgym" токенизируется как ["abcd", "▁gym"] и декодируется в "abcd gym". Если добавленные токены могут появляться внутри слов, переключите претокенизатор

в prepend_scheme="first", чтобы префикс добавлялся только к началу входных данных:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Примеры:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Параметры

  • special_tokens_dict (словарь str в str, tokenizers.AddedToken, или Sequence[Union[str, AddedToken]]) — Ключи должны входить в список предопределенных специальных атрибутов: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Токены добавляются только в том случае, если их ещё нет в словаре (проверяется, назначает ли токенизатор им индекс unk_token).

  • replace_extra_special_tokens (bool, необязательный, по умолчанию True) — Если True, существующий список дополнительных специальных токенов будет заменён списком, переданным в special_tokens_dict. В противном случае extra_special_tokens будет дополнен. В первом случае токены НЕ будут удалены из полного словаря токенизатора — они лишь помечаются как несущественные (не-специальные) токены. Помните, что это влияет только на то, какие токены пропускаются при декодировании, но не на added_tokens_encoder и added_tokens_decoder. Это означает, что предыдущие extra_special_tokens остаются добавленными токенами и не будут разбиваться моделью.

Возвращает

int

Количество токенов, добавленных в словарь.

Добавляет словарь специальных токенов (eos, pad, cls и т. д.) в энкодер и связывает их с атрибутами класса. Если специальные токены отсутствуют в словаре, они добавляются в него (индексация начинается с последнего индекса текущего словаря).

При добавлении новых токенов в словарь необходимо также изменить размер матрицы эмбеддингов токенов модели, чтобы её матрица эмбеддингов соответствовала токенизатору.

Для этого используйте метод resize_token_embeddings().

Использование add_special_tokens гарантирует, что ваши специальные токены можно использовать несколькими способами:

  • Специальные токены можно пропустить при декодировании, используя skip_special_tokens = True.
  • Специальные токены тщательно обрабатываются токенизатором (они никогда не разбиваются), аналогично AddedTokens.
  • Вы можете легко обращаться к специальным токенам с помощью атрибутов класса токенизатора, таких как tokenizer.cls_token. Это упрощает разработку скриптов обучения и дообучения, не привязанных к конкретной модели.

По возможности, специальные токены уже зарегистрированы для предоставленных предобученных моделей (например, BertTokenizer cls_token уже зарегистрирован как '[CLS]', а для XLM он также зарегистрирован как '</s>').

Примеры:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Параметры

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — список словарей с ключами «role» и «content», представляющий историю чата на данный момент.
  • tools (list[Union[Dict, Callable]], необязательный) — Список инструментов (вызываемых функций), доступных модели. Если шаблон не поддерживает вызов функций, этот аргумент не будет иметь эффекта. Каждый инструмент должен передаваться в формате JSON Schema, указывающем имя, описание и типы аргументов инструмента. Подробнее см. в нашем руководстве по использованию инструментов.
  • documents (list[dict[str, str]], необязательный) — Список словарей, представляющих документы, доступные модели при выполнении RAG (retrieval-augmented generation). Если шаблон не поддерживает RAG, этот аргумент не будет влиять на результат. Рекомендуется, чтобы каждый документ был словарем, содержащим ключи “title” и “text”.
  • chat_template (str, необязательный) — Шаблон Jinja, используемый для этого преобразования. Обычно не нужно передавать в этот аргумент ничего, так как по умолчанию используется шаблон модели.
  • add_generation_prompt (bool, необязательный) — Если этот параметр установлен, к отформатированному выводу будет добавлен промпт с токеном(ами), указывающими на начало сообщения ассистента. Это полезно, когда вы хотите сгенерировать ответ от модели. Обратите внимание, что этот аргумент будет передан в шаблон чата, поэтому для того, чтобы он имел какой-либо эффект, он должен поддерживаться в шаблоне.
  • continue_final_message (bool or str, необязательный) — Если этот параметр задан, чат будет сформирован так, чтобы последнее сообщение в чате было незавершённым, без токенов EOS. Модель продолжит это сообщение, а не начнёт новое. Это позволяет «предзаполнить» часть ответа модели. Если передана строка, она будет использована в качестве ключа для поля, которое нужно продолжить (например, “reasoning_content”). Не может использоваться одновременно с add_generation_prompt.
  • tokenize (bool, по умолчанию True) — Определяет, следует ли токенизировать вывод. Если False, выводом будет строка.
  • sanitize_control_tokens (bool, по умолчанию False) — Если установлено, управляющие токены, встречающиеся в сообщениях, инструментах или документах, кодируются как обычный текст, так что только управляющие токены, записанные самим шаблоном чата, кодируются как токены. Управляющие токены — это специальные токены токенизатора, плюс добавленные токены в tokenizer.chat_control_tokens. Если эта переменная не задана, управляющие токены выводятся из добавленных токенов, которые встречаются в тексте шаблона чата и строковых литералах. Санитизируются только целые управляющие токены, поэтому, если шаблон объединяет строки из входных данных в управляющие токены (например, '<|' + message['role'] + '|>'), эти строки должны быть проверены отдельно. Ключи словарей также не санитизируются.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Выберите стратегию дополнения возвращаемых последовательностей (с учётом стороны дополнения модели и индекса дополнения) из следующих вариантов:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, по умолчанию False) — Определяет, нужно ли обрезать последовательности до максимальной длины. Не имеет эффекта, если tokenize равно False.
  • max_length (int, необязательный) — Максимальная длина (в токенах), используемая для дополнения или усечения. Не влияет на результат, если tokenize равно False. Если значение не указано, по умолчанию будет использован атрибут max_length токенизатора.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Не имеет эффекта, если tokenize — False. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты NumPy np.ndarray.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать словарь с именованными выводами. Не имеет значения, если tokenize равно False.
  • tokenizer_kwargs (dict[str -- Any], необязательный): Дополнительные аргументы для передачи в токенизатор.
  • return_assistant_tokens_mask (bool, по умолчанию False) — Возвращать ли маску токенов, сгенерированных ассистентом. Для токенов, сгенерированных ассистентом, в маске будет значение 1. Для токенов пользователя и системы — 0. Эта функция доступна только для шаблонов чата, поддерживающих её через ключевое слово {% generation %}.
  • **kwargs — Дополнительные аргументы kwargs для передачи в рендер шаблона. Будут доступны для чат-шаблона.

Возвращает

Union[list[int], Dict]

Список идентификаторов токенов, представляющий токенизированный чат на данный момент, включая управляющие токены. Этот вывод готов к передаче в модель, как напрямую, так и через методы вроде generate(). Если return_dict установлен, будет возвращен словарь с результатами токенизатора.

Преобразует список словарей с ключами "role" и "content" в список идентификаторов токенов. Этот метод предназначен для использования с чат-моделями и читает атрибут chat_template токенизатора, чтобы определить формат и управляющие токены, используемые при преобразовании.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Параметры

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Список токенизированных входных идентификаторов. Может быть получен с помощью метода __call__.
  • skip_special_tokens (bool, необязательный, по умолчанию False) — Удалять ли специальные токены при декодировании.
  • clean_up_tokenization_spaces (bool, необязательный) — Определяет, следует ли очищать пробелы токенизации. Если None, по умолчанию используется self.clean_up_tokenization_spaces.
  • kwargs (дополнительные именованные аргументы, необязательный) — Будут переданы в метод декодирования, специфичный для базовой модели.

Возвращает

list[str]

Список декодированных предложений.

Преобразуйте список списков идентификаторов токенов в список строк, вызвав decode.

Этот метод предоставляется для обратной совместимости. Метод decode теперь нативно обрабатывает пакетный ввод, поэтому вы можете использовать decode напрямую вместо batch_decode.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Параметры

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Одна последовательность или батч (список последовательностей) токенизированных входных идентификаторов. Может быть получен с помощью метода __call__.
  • skip_special_tokens (bool, необязательный, по умолчанию False) — Удалять ли специальные токены при декодировании.
  • kwargs (дополнительные именованные аргументы, необязательный) — Будут переданы в метод декодирования, специфичный для базовой модели.

Возвращает

Union[str, list[str]]

Декодированная строка для одной последовательности или список декодированных строк для батча последовательностей.

Преобразует последовательность идентификаторов в строку или список последовательностей в список строк, используя токенизатор и словарь, с опциями для удаления специальных токенов и очистки пробелов токенизации.

Аналогично выполнению self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Параметры

  • text (str, list[str] or list[int]) — Первая последовательность для кодирования. Это может быть строка, список строк (токенизированная строка с использованием метода tokenize) или список целых чисел (идентификаторы токенов строки, полученные с помощью метода convert_tokens_to_ids).
  • text_pair (str, list[str] or list[int], необязательный) — Необязательная вторая последовательность для кодирования. Это может быть строка, список строк (токенизированная строка с использованием метода tokenize) или список целых чисел (идентификаторы токенов строки, полученные с помощью метода convert_tokens_to_ids).
  • add_special_tokens (bool, необязательный, по умолчанию True) — Указывает, следует ли добавлять специальные токены при кодировании последовательностей. Для этого используется базовая функция PretrainedTokenizerBase.build_inputs_with_special_tokens, которая определяет, какие токены автоматически добавляются к входным идентификаторам. Это полезно, если вы хотите автоматически добавлять токены bos или eos.
  • padding (bool, str или PaddingStrategy, необязательный, по умолчанию False) — Включает и управляет выравниванием. Принимает следующие значения:
    • True или 'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).
    • 'max_length': Дополнить до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.
    • False или 'do_not_pad' (по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
  • truncation (bool, str или TruncationStrategy, необязательный, по умолчанию False) — Включает и управляет усечением. Принимает следующие значения:
    • True или 'longest_first': обрезка до максимальной длины, заданной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не указан. Обрезка выполняется посимвольно: если предоставлена пара последовательностей (или батч пар), то токен удаляется из самой длинной последовательности в паре.
    • 'only_first': Обрезка до максимальной длины, указанной аргументом max_length, или до максимально допустимой длины входа для модели, если этот аргумент не задан. Если предоставлена пара последовательностей (или батч пар), будет обрезана только первая последовательность пары.
    • 'only_second': Обрезка до максимальной длины, указанной аргументом max_length, или до максимальной допустимой длины входа для модели, если этот аргумент не задан. Это приводит к обрезке только второй последовательности в паре, если предоставлена пара последовательностей (или батч пар).
    • False или 'do_not_truncate' (по умолчанию): без усечения (т.е. может выдать батч с длиной последовательности, превышающей максимальный допустимый размер входа модели).
  • max_length (int, необязательный) — Управляет максимальной длиной, используемой одним из параметров усечения/дополнения.

    Если параметр не задан или установлен в None, будет использована предопределённая максимальная длина модели, если одна из параметров усечения/дополнения требует указания максимальной длины. Если у модели нет конкретной максимальной длины входных данных (как у XLNet), усечение/дополнение до максимальной длины будет отключено.

  • stride (int, необязательный, по умолчанию 0) — Если задано число вместе с max_length, то переполненные токены, возвращаемые при return_overflowing_tokens=True, будут содержать некоторые токены из конца усечённой последовательности, чтобы обеспечить перекрытие между усечённой и переполненной последовательностями. Значение этого аргумента определяет количество перекрывающихся токенов.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Требуется, чтобы padding был активирован. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты Numpy np.ndarray.
  • **kwargs — Передаются в метод .tokenize().

Возвращает

list[int], torch.Tensor или np.ndarray

Токенизированные идентификаторы текста.

Преобразует строку в последовательность идентификаторов (целых чисел), используя токенизатор и словарь.

Аналогично выполнению self.convert_tokens_to_ids(self.tokenize(text)).

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 tokenizer".
  • 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 AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

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

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

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Создайте бэкенд tokenizers.Tokenizer на основе доступных файлов сериализации (tokenizer.json, sentencepiece models, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Возвращает

dict[str, int]

Добавленные токены.

Возвращает добавленные токены в словаре в виде словаря, сопоставляющего токены с их индексами.

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Параметры

  • pair (bool, необязательный, по умолчанию False) — Определяет, следует ли вычислять количество добавленных токенов для пары последовательностей или для одной последовательности.

Возвращает

int

Количество специальных токенов, добавляемых к последовательностям.

Возвращает количество добавленных токенов при кодировании последовательности со специальными токенами.

Эта операция кодирует фиктивный вход и проверяет количество добавленных токенов, поэтому она неэффективна. Не помещайте её внутрь цикла обучения.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Параметры

  • save_format (str, необязательный) — "mistral" для сохранения в формате tekken.json путём копирования исходного файла (требуется наличие исходного файла словаря tekken). При сохранении имя нормализуется до tekken.json, и созданный токенизатор должен точно совпадать с ним. "hf" или None для формата HuggingFace по умолчанию.
  • kwargs (dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в метод push_to_hub().

Возвращает

Кортеж str

Файлы сохранены.

Сохраните полное состояние токенизатора.

Расширяет save_pretrained() поддержкой save_format для токенизаторов, сконвертированных из нативного файла словаря (например, tekken.json от Mistral). См. базовый метод для legacy_format, filename_prefix и push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Параметры

  • padding_strategy (PaddingStrategy) — Тип применяемой к входным данным операции выравнивания
  • truncation_strategy (TruncationStrategy) — Тип усечения, который будет применён к входным данным
  • max_length (int) — Максимальная длина последовательности.
  • stride (int) — Шаг, используемый при обработке переполнения.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.

Определите стратегии усечения и дополнения для быстрых токенизаторов (предоставленных библиотекой HuggingFace tokenizers) и восстановите настройки токенизатора после их применения.

Предоставленный токенизатор не имеет стратегии отступов (padding) / усечения (truncation) перед управляемым разделом. Если ваш токенизатор ранее установил стратегию отступов / усечения, она будет сброшена до отсутствия отступов / усечения при выходе из управляемого раздела.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Параметры

  • text_iterator (генератор list[str]) — Корпус для обучения. Должен быть генератором батчей текстов, например, список списков текстов, если все данные уже загружены в память.
  • vocab_size (int) — Размер словаря, который вы хотите задать для вашего токенизатора.
  • length (int, необязательный) — Общее количество последовательностей в итераторе. Используется для предоставления осмысленного отслеживания прогресса
  • new_special_tokens (список str или AddedToken, необязательный) — Список новых специальных токенов, которые нужно добавить в токенизатор, который вы обучаете.
  • special_tokens_map (dict[str, str], необязательный) — Если вы хотите переименовать некоторые из специальных токенов, используемых этим токенизатором, передайте в этот аргумент отображение от старого имени специального токена к новому.
  • kwargs (dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в trainer из библиотеки 🤗 Tokenizers.

Возвращает

PreTrainedTokenizerFast

Новый токенизатор того же типа, что и исходный, обученный на text_iterator.

Обучает токенизатор на новом корпусе с теми же параметрами по умолчанию (в части специальных токенов или конвейера токенизации), что и у текущего.

update_post_processor

< >

( )

Обновляет базовый постпроцессор с использованием текущих bos_token и eos_token.

PythonBackend

класс transformers.PythonBackend

< >

( **kwargs )

Параметры

  • model_max_length (int, необязательный) — Максимальная длина (в токенах) входных данных для трансформерной модели. При загрузке токенизатора с помощью from_pretrained() это значение устанавливается в соответствии с параметром, сохраненным для соответствующей модели в max_model_input_sizes (см. выше). Если значение не указано, по умолчанию используется VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • truncation_side (str, необязательный) — Сторона, на которой модель должна применять усечение. Значение должно выбираться из [‘right’, ‘left’]. Значение по умолчанию берется из атрибута класса с тем же именем.
  • chat_template (str, необязательный) — Строка шаблона Jinja, используемая для форматирования списков сообщений чата. Полное описание см. по адресу https://huggingface.co/docs/transformers/chat_templating.
  • model_input_names (list[string], необязательный) — Список входных данных, принимаемых прямой передачей модели (например, "token_type_ids" или "attention_mask"). Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • bos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий начало предложения.
  • eos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий конец предложения.
  • unk_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий токен вне словаря.
  • sep_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, разделяющий два разных предложения в одном входном тексте (используется, например, в BERT).
  • pad_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, используемый для приведения массивов токенов к одинаковому размеру в целях батчинга. Затем он игнорируется механизмами внимания или вычислением функции потерь.
  • cls_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий класс входных данных (используется, например, в BERT).
  • mask_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий замаскированный токен (используется в задачах предварительного обучения с маскированием, например, в BERT). Будет связан с self.mask_token и self.mask_token_id.
  • extra_special_tokens (список str или tokenizers.AddedToken, необязательно) — Список дополнительных специальных токенов, специфичных для модели. Добавьте их сюда, чтобы они пропускались при декодировании, если skip_special_tokens установлен в True. Если они не входят в словарь, они будут добавлены в конец словаря.
  • split_special_tokens (bool, необязательный, по умолчанию False) — Определяет, следует ли разделять специальные токены в процессе токенизации. Передача этого параметра влияет на внутреннее состояние токенизатора. По умолчанию специальные токены не разделяются. Это означает, что если <s> является bos_token, то tokenizer.tokenize("<s>") = ['<s>]. В противном случае, если split_special_tokens=True, то tokenizer.tokenize("<s>") вернёт ['<','s', '>'].

Базовый класс для всех медленных токенизаторов.

Наследуется от PreTrainedTokenizerBase.

Обработка всех общих методов токенизации и специальных токенов, а также методов загрузки, кэширования и загрузки предобученных токенизаторов, а также добавления токенов в словарь.

Этот класс также содержит добавленные токены в унифицированном виде поверх всех токенизаторов, поэтому нам не нужно обрабатывать специфические методы расширения словаря различных базовых структур словаря (BPE, sentencepiece…).

Атрибуты класса (переопределяются производными классами)

  • vocab_files_names (dict[str, str]) — Словарь, в котором ключами являются имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а значениями — имена файлов для сохранения соответствующих файлов (строки).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — словарь словарей, где ключи верхнего уровня — это имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а ключи нижнего уровня — это short-cut-names предобученных моделей, а соответствующие значения — это url на соответствующий файл предобученного словаря.
  • model_input_names (list[str]) — Список входных данных, ожидаемых в прямом проходе модели.
  • padding_side (str) — Значение по умолчанию для стороны, на которой модель должна применять отступы. Должно быть 'right' или 'left'.
  • truncation_side (str) — Значение по умолчанию для стороны, на которой модель должна применять усечение. Должно быть 'right' или 'left'.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов, к которым будут добавлены специальные токены.
  • token_ids_1 (list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.

Возвращает

list[int]

Список входных идентификаторов с соответствующими специальными токенами.

Создайте входные данные модели из последовательности или пары последовательностей, добавив специальные токены.

Этот метод динамически формирует входные данные на основе special_tokens_pattern токенизатора:

  • "none": без специальных токенов
  • "cls_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] или seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 или [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] или [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (собственный префикс/суффикс, хранящийся в токенизаторе)

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов.
  • token_ids_1 (list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.

Возвращает

list[int]

Идентификаторы типов токенов в соответствии с настроенным шаблоном.

Создайте маску из двух переданных последовательностей для использования в задаче классификации пар последовательностей.

Этот метод динамически формирует идентификаторы типов токенов на основе атрибутов конфигурации токенизатора:

  • token_type_ids_pattern: шаблон для использования (“all_zeros” или “bert_style”)
  • token_type_ids_include_special_tokens: Учитывать ли специальные токены при вычислении длины

Примеры:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Возвращает

dict[str, int]

Добавленные токены.

Возвращает добавленные токены словаря в виде словаря «токен — индекс». Результаты могут отличаться от результатов быстрого вызова, поскольку на данный момент токены всегда добавляются, даже если они уже присутствуют в словаре. Это следует исправить.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Параметры

  • token_ids_0 (list[int]) — Список идентификаторов первой последовательности.
  • token_ids_1 (list[int], необязательный) — Список идентификаторов второй последовательности.
  • already_has_special_tokens (bool, необязательный, по умолчанию False) — Указывает, содержит ли список токенов уже отформатированные специальные токены для модели.

Возвращает

Список целых чисел в диапазоне [0, 1]

1 для специального токена, 0 для токена последовательности.

Получает идентификаторы последовательностей из списка токенов, в который не добавлены специальные токены. Этот метод вызывается при добавлении специальных токенов с помощью методов prepare_for_model или encode_plus токенизатора.

Этот метод динамически формирует маску специальных токенов на основе special_tokens_pattern токенизатора:

  • "none": без специальных токенов (по умолчанию, возвращает все нули)
  • "cls_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] или seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 или [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] или [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] или [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Параметры

  • pair (bool, необязательный, по умолчанию False) — Определяет, следует ли вычислять количество добавленных токенов для пары последовательностей или для одной последовательности.

Возвращает

int

Количество специальных токенов, добавляемых к последовательностям.

Возвращает количество добавленных токенов при кодировании последовательности со специальными токенами.

Эта операция кодирует фиктивный вход и проверяет количество добавленных токенов, поэтому она неэффективна. Не помещайте её внутрь цикла обучения.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Параметры

  • ids — Токенизированные идентификаторы входных данных первой последовательности.
  • pair_ids — Токенизированные идентификаторы входных данных второй последовательности (необязательный параметр).

Готовит последовательность входных идентификаторов для использования в модели. Добавляет специальные токены, обрезает и дополняет последовательность.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Параметры

  • text (str) — Текст для подготовки.
  • is_split_into_words (bool, необязательный, по умолчанию False) — Указывает, является ли вход уже предтокенизированным (например, разбитым на слова). Если установлено в True, токенизатор предполагает, что вход уже разбит на слова (например, по пробелам), и токенизирует их. Это полезно для NER или классификации токенов.
  • kwargs (dict[str, Any], необязательный) — Параметры, передаваемые по имени, для использования при токенизации.

Возвращает

tuple[str, dict[str, Any]]

Подготовленный текст и неиспользуемые kwargs.

Выполняет необходимые преобразования перед токенизацией.

Этот метод должен извлекать аргументы из kwargs и возвращать оставшиеся kwargs. В конце процесса кодирования мы проверяем kwargs, чтобы убедиться, что все аргументы были использованы.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Параметры

  • save_directory (str) — Каталог, в котором сохраняется словарь.
  • filename_prefix (str, необязательный) — Необязательный префикс, добавляемый к именам сохраняемых файлов.

Возвращает

tuple[str, ...]

Пути к сохранённым файлам или пустой кортеж, если файлы не были сохранены.

Реализация по умолчанию для распространённых схем сохранения словаря. Сохраняет self.encoder/self.vocab в формате JSON, при необходимости вместе с self.bpe_ranks в качестве слияний. Возвращает пустой кортеж, если словарь отсутствует.

Переопределите этот метод, если вашему токенизатору требуется собственная логика сохранения (например, для моделей SentencePiece, нескольких файлов словаря или специальных форматов файлов).

tokenize

< >

( text: str**kwargs )

Параметры

  • text — последовательность, подлежащая кодированию.
  • **kwargs — Передаются в метод предобработки prepare_for_tokenization, специфичный для модели.

Преобразует строку в последовательность токенов с помощью токенизатора.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Обрезает последовательности в соответствии с указанной стратегией.

TokenizersBackend

класс transformers.TokenizersBackend

< >

( *args**kwargs )

Параметры

  • model_max_length (int, необязательный) — Максимальная длина (в токенах) входных данных для трансформерной модели. При загрузке токенизатора с помощью from_pretrained() это значение устанавливается в соответствии с параметром, сохраненным для соответствующей модели в max_model_input_sizes (см. выше). Если значение не указано, по умолчанию используется VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • truncation_side (str, необязательный) — Сторона, на которой модель должна применять усечение. Значение должно выбираться из [‘right’, ‘left’]. Значение по умолчанию берется из атрибута класса с тем же именем.
  • chat_template (str, необязательный) — Строка шаблона Jinja, используемая для форматирования списков сообщений чата. Полное описание см. по адресу https://huggingface.co/docs/transformers/chat_templating.
  • model_input_names (list[string], необязательный) — Список входных данных, принимаемых прямой передачей модели (например, "token_type_ids" или "attention_mask"). Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • bos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий начало предложения.
  • eos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий конец предложения.
  • unk_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий токен вне словаря.
  • sep_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, разделяющий два разных предложения в одном входном тексте (используется, например, в BERT).
  • pad_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, используемый для приведения массивов токенов к одинаковому размеру в целях батчинга. Затем он игнорируется механизмами внимания или вычислением функции потерь.
  • cls_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий класс входных данных (используется, например, в BERT).
  • mask_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий замаскированный токен (используется в задачах предварительного обучения с маскированием, например, в BERT). Будет связан с self.mask_token и self.mask_token_id.
  • extra_special_tokens (список str или tokenizers.AddedToken, необязательно) — Список дополнительных специальных токенов, специфичных для модели. Добавьте их сюда, чтобы они пропускались при декодировании, если skip_special_tokens установлен в True. Если они не входят в словарь, они будут добавлены в конец словаря.
  • split_special_tokens (bool, необязательный, по умолчанию False) — Определяет, следует ли разделять специальные токены в процессе токенизации. Передача этого параметра влияет на внутреннее состояние токенизатора. По умолчанию специальные токены не разделяются. Это означает, что если <s> является bos_token, то tokenizer.tokenize("<s>") = ['<s>]. В противном случае, если split_special_tokens=True, то tokenizer.tokenize("<s>") вернёт ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Объект tokenizers.Tokenizer из 🤗 tokenizers, от которого требуется создать экземпляр. Подробности см. в разделе Использование токенизаторов из 🤗 tokenizers.
  • tokenizer_file (str) — Путь к локальному JSON-файлу, представляющему ранее сериализованный объект tokenizers.Tokenizer из 🤗 tokenizers.

Базовый класс для всех быстрых токенизаторов (обёртка над библиотекой HuggingFace tokenizers).

Наследуется от PreTrainedTokenizerBase.

Реализует все общие методы токенизации и работы со специальными токенами, а также методы загрузки/кэширования/чтения предобученных токенизаторов, а также добавления токенов в словарь.

Этот класс также содержит добавленные токены в унифицированном виде поверх всех токенизаторов, поэтому нам не нужно обрабатывать специфические методы расширения словаря различных базовых структур данных (BPE, sentencepiece…).

Атрибуты класса (переопределяются производными классами)

  • vocab_files_names (dict[str, str]) — Словарь, в котором ключами являются имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а значениями — имена файлов для сохранения соответствующих файлов (строки).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — словарь словарей, где ключи верхнего уровня — это имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а ключи нижнего уровня — это short-cut-names предобученных моделей, а соответствующие значения — это url на соответствующий файл предобученного словаря.
  • model_input_names (list[str]) — Список входных данных, ожидаемых в прямом проходе модели.
  • padding_side (str) — Значение по умолчанию для стороны, на которой модель должна применять отступы. Должно быть 'right' или 'left'.
  • truncation_side (str) — Значение по умолчанию для стороны, на которой модель должна применять усечение. Должно быть 'right' или 'left'.

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Создайте бэкенд tokenizers.Tokenizer на основе доступных файлов сериализации (tokenizer.json, sentencepiece models, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Возвращает

dict[str, int]

Добавленные токены.

Возвращает добавленные токены в словаре в виде словаря, сопоставляющего токены с их индексами.

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Параметры

  • pair (bool, необязательный, по умолчанию False) — Определяет, следует ли вычислять количество добавленных токенов для пары последовательностей или для одной последовательности.

Возвращает

int

Количество специальных токенов, добавляемых к последовательностям.

Возвращает количество добавленных токенов при кодировании последовательности со специальными токенами.

Эта операция кодирует фиктивный вход и проверяет количество добавленных токенов, поэтому она неэффективна. Не помещайте её внутрь цикла обучения.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Параметры

  • save_format (str, необязательный) — "mistral" для сохранения в формате tekken.json путём копирования исходного файла (требуется наличие исходного файла словаря tekken). При сохранении имя нормализуется до tekken.json, и созданный токенизатор должен точно совпадать с ним. "hf" или None для формата HuggingFace по умолчанию.
  • kwargs (dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в метод push_to_hub().

Возвращает

Кортеж str

Файлы сохранены.

Сохраните полное состояние токенизатора.

Расширяет save_pretrained() поддержкой save_format для токенизаторов, сконвертированных из нативного файла словаря (например, tekken.json от Mistral). См. базовый метод для legacy_format, filename_prefix и push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Параметры

  • padding_strategy (PaddingStrategy) — Тип применяемой к входным данным операции выравнивания
  • truncation_strategy (TruncationStrategy) — Тип усечения, который будет применён к входным данным
  • max_length (int) — Максимальная длина последовательности.
  • stride (int) — Шаг, используемый при обработке переполнения.
  • pad_to_multiple_of (int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения. Это особенно полезно для использования Tensor Cores на оборудовании NVIDIA с вычислительной способностью >= 7.5 (Volta).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.

Определите стратегии усечения и дополнения для быстрых токенизаторов (предоставленных библиотекой HuggingFace tokenizers) и восстановите настройки токенизатора после их применения.

Предоставленный токенизатор не имеет стратегии отступов (padding) / усечения (truncation) перед управляемым разделом. Если ваш токенизатор ранее установил стратегию отступов / усечения, она будет сброшена до отсутствия отступов / усечения при выходе из управляемого раздела.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Параметры

  • text_iterator (генератор list[str]) — Корпус для обучения. Должен быть генератором батчей текстов, например, список списков текстов, если все данные уже загружены в память.
  • vocab_size (int) — Размер словаря, который вы хотите задать для вашего токенизатора.
  • length (int, необязательный) — Общее количество последовательностей в итераторе. Используется для предоставления осмысленного отслеживания прогресса
  • new_special_tokens (список str или AddedToken, необязательный) — Список новых специальных токенов, которые нужно добавить в токенизатор, который вы обучаете.
  • special_tokens_map (dict[str, str], необязательный) — Если вы хотите переименовать некоторые из специальных токенов, используемых этим токенизатором, передайте в этот аргумент отображение от старого имени специального токена к новому.
  • kwargs (dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в trainer из библиотеки 🤗 Tokenizers.

Возвращает

PreTrainedTokenizerFast

Новый токенизатор того же типа, что и исходный, обученный на text_iterator.

Обучает токенизатор на новом корпусе с теми же параметрами по умолчанию (в части специальных токенов или конвейера токенизации), что и у текущего.

update_post_processor

< >

( )

Обновляет базовый постпроцессор с использованием текущих bos_token и eos_token.

SentencePieceBackend

класс transformers.SentencePieceBackend

< >

( **kwargs )

Параметры

  • model_max_length (int, необязательный) — Максимальная длина (в токенах) входных данных для трансформерной модели. При загрузке токенизатора с помощью from_pretrained() это значение устанавливается в соответствии с параметром, сохраненным для соответствующей модели в max_model_input_sizes (см. выше). Если значение не указано, по умолчанию используется VERY_LARGE_INTEGER (int(1e30)).
  • padding_side (str, необязательный) — Сторона, на которой модель должна применять отступы. Следует выбрать одно из значений [‘right’, ‘left’]. Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • truncation_side (str, необязательный) — Сторона, на которой модель должна применять усечение. Значение должно выбираться из [‘right’, ‘left’]. Значение по умолчанию берется из атрибута класса с тем же именем.
  • chat_template (str, необязательный) — Строка шаблона Jinja, используемая для форматирования списков сообщений чата. Полное описание см. по адресу https://huggingface.co/docs/transformers/chat_templating.
  • model_input_names (list[string], необязательный) — Список входных данных, принимаемых прямой передачей модели (например, "token_type_ids" или "attention_mask"). Значение по умолчанию выбирается из атрибута класса с тем же именем.
  • bos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий начало предложения.
  • eos_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, обозначающий конец предложения.
  • unk_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий токен вне словаря.
  • sep_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, разделяющий два разных предложения в одном входном тексте (используется, например, в BERT).
  • pad_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, используемый для приведения массивов токенов к одинаковому размеру в целях батчинга. Затем он игнорируется механизмами внимания или вычислением функции потерь.
  • cls_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий класс входных данных (используется, например, в BERT).
  • mask_token (str или tokenizers.AddedToken, необязательный) — Специальный токен, представляющий замаскированный токен (используется в задачах предварительного обучения с маскированием, например, в BERT). Будет связан с self.mask_token и self.mask_token_id.
  • extra_special_tokens (список str или tokenizers.AddedToken, необязательно) — Список дополнительных специальных токенов, специфичных для модели. Добавьте их сюда, чтобы они пропускались при декодировании, если skip_special_tokens установлен в True. Если они не входят в словарь, они будут добавлены в конец словаря.
  • split_special_tokens (bool, необязательный, по умолчанию False) — Определяет, следует ли разделять специальные токены в процессе токенизации. Передача этого параметра влияет на внутреннее состояние токенизатора. По умолчанию специальные токены не разделяются. Это означает, что если <s> является bos_token, то tokenizer.tokenize("<s>") = ['<s>]. В противном случае, если split_special_tokens=True, то tokenizer.tokenize("<s>") вернёт ['<','s', '>'].

Базовый класс для токенизаторов на основе SentencePiece, загружаемых из файлов sentencepiece.model.

Наследуется от PreTrainedTokenizer.

Обработка всех общих методов токенизации и специальных токенов, а также методов загрузки, кэширования и загрузки предобученных токенизаторов, а также добавления токенов в словарь.

Этот класс также содержит добавленные токены в унифицированном виде поверх всех токенизаторов, поэтому нам не нужно обрабатывать специфические методы расширения словаря различных базовых структур словаря (BPE, sentencepiece…).

Атрибуты класса (переопределяются производными классами)

  • vocab_files_names (dict[str, str]) — Словарь, в котором ключами являются имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а значениями — имена файлов для сохранения соответствующих файлов (строки).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — словарь словарей, где ключи верхнего уровня — это имена ключевых слов __init__ для каждого файла словаря, необходимого модели, а ключи нижнего уровня — это short-cut-names предобученных моделей, а соответствующие значения — это url на соответствующий файл предобученного словаря.
  • model_input_names (list[str]) — Список входных данных, ожидаемых в прямом проходе модели.
  • padding_side (str) — Значение по умолчанию для стороны, на которой модель должна применять отступы. Должно быть 'right' или 'left'.
  • truncation_side (str) — Значение по умолчанию для стороны, на которой модель должна применять усечение. Должно быть 'right' или 'left'.

convert_tokens_to_string

< >

( tokens: list )

Преобразует последовательность токенов (строку) в одну строку.

get_vocab

< >

( )

Возвращает словарь в виде объекта dict

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

Параметры

  • save_directory (str) — Каталог, в котором сохраняется словарь.
  • filename_prefix (str, необязательный) — Необязательный префикс, добавляемый к именам сохраняемых файлов.

Возвращает

tuple(str)

Пути к сохранённым файлам.

Сохраните словарь sentencepiece (скопируйте исходный файл) в каталог.

BatchEncoding

класс transformers.BatchEncoding

< >

( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )

Параметры

  • data (dict, необязательный) — Словарь списков/массивов/тензоров, возвращаемый методами __call__/encode_plus/batch_encode_plus (‘input_ids’, ‘attention_mask’ и т. д.).
  • encoding (tokenizers.Encoding или Sequence[tokenizers.Encoding], необязательный) — Если токенизатор является быстрым токенизатором, который выводит дополнительную информацию, например, отображение из пространства слов/символов в пространство токенов, то экземпляр tokenizers.Encoding или список экземпляров (для батчей) содержит эту информацию.
  • tensor_type (Union[None, str, TensorType], необязательный) — Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy.
  • prepend_batch_axis (bool, необязательный, по умолчанию False) — Указывает, нужно ли добавлять ось батча при преобразовании в тензоры (см. tensor_type выше). Обратите внимание, что этот параметр действует только в том случае, если параметр tensor_type задан, в противном случае он не имеет эффекта.
  • n_sequences (Optional[int], необязательный) — Количество входных последовательностей, представленных каждым кодированием (None для неизвестного значения, 1 для одной последовательности и 2 для пары последовательностей).

Содержит результат вызова методов call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus и ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus (токены, attention_masks и т. д.).

Этот класс наследуется от словаря Python и может использоваться как словарь. Кроме того, этот класс предоставляет вспомогательные методы для отображения из пространства слов/символов в пространство токенов.

char_to_token

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Параметры

  • batch_or_char_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс символа в последовательности
  • char_index (int, необязательный) — Если в batch_or_char_index указан индекс батча, это может быть индекс символа в последовательности.
  • sequence_index (int, необязательный, по умолчанию 0) — Если в батче закодирована пара последовательностей, этот параметр позволяет указать, к какой из последовательностей в паре (0 или 1) относится указанный индекс символа.

Возвращает

int

Индекс токена или None, если индекс символа относится к токену, содержащему только пробельные символы, и пробелы удаляются с помощью trim_offsets=True.

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

Можно вызвать следующим образом:

  • self.char_to_token(char_index), если размер батча равен 1
  • self.char_to_token(batch_index, char_index), если размер батча больше или равен 1

Этот метод особенно хорошо подходит, когда входные последовательности предоставлены в виде предтокенизированных последовательностей (т. е. слова определяются пользователем). В этом случае он позволяет легко сопоставлять закодированные токены с предоставленными токенизированными словами.

char_to_word

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Параметры

  • batch_or_char_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс символа в исходной строке.
  • char_index (int, необязательный) — Если в batch_or_char_index указан индекс батча, это может быть индекс символа в исходной строке.
  • sequence_index (int, необязательный, по умолчанию 0) — Если в батче закодирована пара последовательностей, этот параметр позволяет указать, к какой из последовательностей в паре (0 или 1) относится указанный индекс символа.

Возвращает

int

Индекс слова, содержащего символ.

Получить слово в исходной строке, соответствующее символу в исходной строке последовательности из пакета.

Можно вызвать следующим образом:

  • self.char_to_word(char_index), если размер батча равен 1
  • self.char_to_word(batch_index, char_index), если размер батча больше 1

Этот метод особенно хорошо подходит, когда входные последовательности предоставлены в виде предтокенизированных последовательностей (т. е. слова определяются пользователем). В этом случае он позволяет легко сопоставлять закодированные токены с предоставленными токенизированными словами.

convert_to_tensors

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

Параметры

  • tensor_type (str или TensorType, необязательный) — Тип тензоров для использования. Если str, должно быть одним из значений перечисления TensorType. Если None, изменения не вносятся.
  • prepend_batch_axis (bool, необязательный, по умолчанию False) — Добавлять или нет размерность батча при конвертации.

Преобразуйте внутреннее содержимое в тензоры.

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Параметры

  • batch_index (int, необязательный, по умолчанию 0) — Индекс для доступа в батче.

Возвращает

list[Optional[int]]

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

Возвращает список, сопоставляющий токены с идентификаторами исходных предложений:

  • None для специальных токенов, добавляемых вокруг или между последовательностями,
  • 0 для токенов, соответствующих словам в первой последовательности,
  • 1 для токенов, соответствующих словам во второй последовательности, если пара последовательностей была закодирована совместно.

до

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

Параметры

  • device (str или torch.device или int) — Устройство, на котором размещаются тензоры.
  • non_blocking (bool) — Выполнять ли копирование асинхронно.

Возвращает

BatchEncoding

Тот же самый экземпляр после модификации.

Отправьте все значения на устройство, вызвав v.to(device, non_blocking=non_blocking) (только PyTorch).

token_to_chars

< >

( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan

Параметры

  • batch_or_token_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс токена в последовательности.
  • token_index (int, необязательный) — Если в batch_or_token_index указан индекс батча, это может быть индекс токена или токенов в последовательности.

Возвращает

CharSpan

Диапазон символов в исходной строке или None, если токен (например, , ) не соответствует никаким символам в исходной строке.

Получите диапазон символов, соответствующий закодированному токену в последовательности из батча.

Диапазоны символов возвращаются в виде CharSpan со следующими полями:

  • start — Индекс первого символа в исходной строке, соответствующий токену.
  • end — Индекс символа, следующего за последним символом в исходной строке, связанной с токеном.

Можно вызвать следующим образом:

  • self.token_to_chars(token_index), если размер батча равен 1
  • self.token_to_chars(batch_index, token_index), если размер батча больше или равен 1

token_to_sequence

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Параметры

  • batch_or_token_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс токена в последовательности.
  • token_index (int, необязательный) — Если в batch_or_token_index указан индекс батча, это может быть индекс токена в последовательности.

Возвращает

int

Индекс входной последовательности, содержащей токен (0 для первой последовательности или 1 для второй последовательности в паре).

Получает индекс последовательности, представленной указанным токеном. В общем случае этот метод возвращает 0 для одиночной последовательности или первой последовательности в паре, а 1 — для второй последовательности в паре.

Можно вызвать следующим образом:

  • self.token_to_sequence(token_index), если размер батча равен 1
  • self.token_to_sequence(batch_index, token_index), если размер батча больше 1

Этот метод особенно хорошо подходит, когда входные последовательности предоставлены в виде предтокенизированных последовательностей (т. е. слова определяются пользователем). В этом случае он позволяет легко сопоставить закодированные токены с предоставленными токенизированными словами.

token_to_word

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Параметры

  • batch_or_token_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс токена в последовательности.
  • token_index (int, необязательный) — Если в batch_or_token_index указан индекс батча, это может быть индекс токена в последовательности.

Возвращает

int

Индекс слова во входной последовательности.

Получить индекс слова, которому соответствует (т. е. которое включает) закодированный токен в последовательности батча.

Можно вызвать следующим образом:

  • self.token_to_word(token_index), если размер батча равен 1
  • self.token_to_word(batch_index, token_index), если размер батча больше 1

Этот метод особенно хорошо подходит, когда входные последовательности предоставлены в виде предтокенизированных последовательностей (т. е. слова определяются пользователем). В этом случае он позволяет легко сопоставить закодированные токены с предоставленными токенизированными словами.

токены

< >

( batch_index: int = 0 ) → list[str]

Параметры

  • batch_index (int, необязательный, по умолчанию 0) — Индекс для доступа в батче.

Возвращает

list[str]

Список токенов на данном индексе.

Возвращает список токенов (подчасти входных строк после разбиения на слова/субслова и до преобразования в целочисленные индексы) для указанного индекса в батче (работает только для вывода быстрого токенизатора).

word_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Параметры

  • batch_index (int, необязательный, по умолчанию 0) — Индекс для доступа в батче.

Возвращает

list[Optional[int]]

Список, указывающий слово, соответствующее каждому токену. Специальные токены, добавленные токенизатором, отображаются в None, а остальные токены — в индекс соответствующего им слова (несколько токенов могут отображаться в один и тот же индекс слова, если они являются его частями).

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

word_to_chars

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan

Параметры

  • batch_or_word_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс слова в последовательности
  • word_index (int, необязательный) — Если в batch_or_word_index указан индекс батча, это может быть индекс слова в последовательности.
  • sequence_index (int, необязательный, по умолчанию 0) — Если в батче закодирована пара последовательностей, этот параметр позволяет указать, к какой из последовательностей в паре (0 или 1) относится предоставленный индекс слова.

Возвращает

CharSpan

Диапазон соответствующих символов в строке. CharSpan является NamedTuple со следующими полями:

  • start: индекс первого символа, связанного со словом в исходной строке
  • end: индекс символа, следующего за последним символом, связанным со словом в исходной строке

Получите диапазон символов в исходной строке, соответствующий указанному слову в последовательности из батча.

Диапазоны символов возвращаются в виде именованного кортежа CharSpan со следующими полями:

  • start: индекс первого символа в исходной строке
  • end: индекс символа, следующего за последним символом в исходной строке

Можно вызвать следующим образом:

  • self.word_to_chars(word_index), если размер батча равен 1
  • self.word_to_chars(batch_index, word_index), если размер батча больше или равен 1

word_to_tokens

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)

Параметры

  • batch_or_word_index (int) — Индекс последовательности в батче. Если батч содержит только одну последовательность, это может быть индекс слова в последовательности.
  • word_index (int, необязательный) — Если в batch_or_word_index указан индекс батча, это может быть индекс слова в последовательности.
  • sequence_index (int, необязательный, по умолчанию 0) — Если в батче закодирована пара последовательностей, этот параметр позволяет указать, к какой из последовательностей в паре (0 или 1) относится предоставленный индекс слова.

Возвращает

(TokenSpan, необязательный)

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

Получите закодированный диапазон токенов, соответствующий слову в последовательности из батча.

Диапазоны токенов возвращаются в виде TokenSpan со следующими полями:

  • start — индекс первого токена.
  • end — индекс токена, следующего за последним токеном.

Можно вызвать следующим образом:

  • self.word_to_tokens(word_index, sequence_index: int = 0), если размер батча равен 1
  • self.word_to_tokens(batch_index, word_index, sequence_index: int = 0), если размер батча больше или равен 1

Этот метод особенно хорошо подходит, когда входные последовательности предоставлены в виде предтокенизированных последовательностей (т. е. слова определяются пользователем). В этом случае он позволяет легко сопоставлять закодированные токены с предоставленными токенизированными словами.

Update on GitHub