Transformers documentation
myt5
Эта модель была опубликована в HF papers 15.03.2024 и добавлена в Hugging Face Transformers 06.10.2024.
myt5
Обзор
Модель myt5 была предложена в статье MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling Томаша Лимисевича, Терры Блевинс, Хилы Гонен, Ореваогене Ахия и Люка Зеттлемойера. MyT5 (Myte T5) — это мультиязыковая языковая модель, основанная на архитектуре T5. Модель использует представление mорфологически-ориентированных байтов (MYTE), описанное в нашей статье. MYTE использует кодовые точки, соответствующие морфемам, в отличие от символов, используемых в кодировке UTF-8. В качестве предварительного этапа мы использовали неуправляемую морфологическую сегментацию (Morfessor) для получения списков морфем для 99 языков. Однако этап морфологической сегментации не требуется при использовании предопределенного списка морфем из hub (см.: Tomli/myt5-base).
Аннотация из статьи следующая:
Ключевой вопрос при создании многоязычных языковых моделей — как наилучшим образом представлять языки с разнообразными словарями и системами письма. Хотя современные методы кодирования текста охватывают большинство мировых систем письма, они демонстрируют смещение в пользу высоко-ресурсных языков глобального Запада. В результате тексты на недостаточно представленных языках, как правило, сегментируются в длинные последовательности лингвистически бессмысленных единиц. Чтобы устранить эти диспропорции, мы предлагаем новую парадигму, кодирующую ту же информацию с помощью сегментов согласованного размера для различных языков. Наша конвенция кодирования (MYTE) основана на морфемах, поскольку их наборы более сбалансированы между языками, чем наборы символов, используемые в предыдущих методах. Мы показываем, что MYTE обеспечивает более короткие кодирования для всех 99 проанализированных языков, при этом наиболее значительные улучшения наблюдаются для неевропейских языков и нелатинских систем письма. Это, в свою очередь, повышает качество многоязычных языковых моделей и сокращает разрыв в показателе перплексии между различными языками.
Эта модель была предоставлена Tomasz Limisiewicz. Исходный код можно найти здесь.
MyT5Tokenizer
класс transformers.MyT5Tokenizer
< source >( vocab_fileeos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'extra_ids = 125additional_special_tokens = None**kwargs )
Параметры
- vocab_file (
str) — Файл, содержащий правила переписывания байтов. - eos_token (
str, необязательный, по умолчанию"</s>") — Токен конца последовательности. - unk_token (
str, необязательный, по умолчанию"<unk>") — Токен неизвестного слова. Токен, отсутствующий в словаре, не может быть преобразован в ID, поэтому вместо него используется этот токен. - pad_token (
str, необязательный, по умолчанию"<pad>") — Токен, используемый для выравнивания, например, при пакетной обработке последовательностей разной длины. - extra_ids (
int, необязательный, по умолчанию 125) — Добавляет указанное количество дополнительных идентификаторов в конец словаря для использования в качестве маркеров. Эти токены доступны как «id{%d}>», где «{%d}» — число от 0 до extra_ids-1. Дополнительные токены индексируются от конца словаря к началу (« » — последний токен в словаре, как в предобработке ByT5, см. здесь). - additional_special_tokens (
list[str], необязательный) — Дополнительные специальные токены, используемые токенизатором.
Создайте токенизатор MyT5.
Этот токенизатор наследуется от PreTrainedTokenizer, который содержит большинство основных методов. За дополнительной информацией об этих методах следует обращаться к этому суперклассу.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов, к которым будут добавлены специальные токены. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.
Возвращает
list[int]
Список идентификаторов входных токенов с соответствующими специальными токенами.
Создайте входные данные модели из последовательности или пары последовательностей для задач классификации последовательностей, объединяя их и добавляя специальные токены. Последовательность имеет следующий формат:
- одна последовательность:
X </s> - пара последовательностей:
A </s> B </s>
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]
Параметры
- token_ids_0 (
list[int]) — Список идентификаторов. - token_ids_1 (
list[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей. - already_has_special_tokens (
bool, необязательный, по умолчаниюFalse) — Указывает, содержит ли список токенов уже отформатированные специальные токены для модели.
Возвращает
list[int]
Список целых чисел в диапазоне [0, 1]: 1 для специального токена, 0 для токена последовательности.
Получить идентификаторы последовательностей из списка токенов, в который не добавлены специальные токены. Этот метод вызывается при добавлении специальных токенов с помощью метода prepare_for_model токенизатора.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Создаёт маску на основе двух переданных последовательностей для использования в задаче классификации пар последовательностей. MyT5 не использует идентификаторы типов токенов, поэтому возвращается список нулей.