Transformers documentation
myt5
Este modelo foi publicado no HF papers em 2024-03-15 e contribuído para o Hugging Face Transformers em 2024-10-06.
myt5
Visão geral
O modelo myt5 foi proposto em MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling por Tomasz Limisiewicz, Terra Blevins, Hila Gonen, Orevaoghene Ahia e Luke Zettlemoyer. MyT5 (Myte T5) é um modelo de linguagem multilíngue baseado na arquitetura T5. O modelo utiliza uma representação morfologicamente orientada por bytes (MYTE) descrita em nosso artigo. O MYTE utiliza codepoints correspondentes a morfemas, em contraste com os caracteres usados na codificação UTF-8. Como pré-requisito, utilizamos segmentação morfológica não supervisionada (Morfessor) para obter inventários de morfemas para 99 idiomas. No entanto, a etapa de segmentação morfológica não é necessária ao usar o inventário de morfemas predefinido do hub (veja: Tomli/myt5-base).
O resumo do artigo é o seguinte:
Uma consideração fundamental no modelamento de linguagem multilíngue é como representar da melhor forma idiomas com vocabulários e sistemas de escrita diversos. Embora os métodos contemporâneos de codificação de texto cubram a maioria dos sistemas de escrita do mundo, eles apresentam viés em favor dos idiomas de alto recurso do Ocidente Global. Como resultado, os textos de idiomas sub-representados tendem a ser segmentados em sequências longas de unidades linguisticamente sem sentido. Para abordar essas disparidades, introduzimos um novo paradigma que codifica as mesmas informações com segmentos de tamanho consistente entre idiomas diversos. Nossa convenção de codificação (MYTE) é baseada em morfemas, pois seus inventários são mais equilibrados entre idiomas do que os caracteres, que são usados em métodos anteriores. Mostramos que o MYTE produz codificações mais curtas para todos os 99 idiomas analisados, com as melhorias mais notáveis para idiomas não europeus e sistemas de escrita não latinos. Isso, por sua vez, melhora o desempenho do LM multilíngue e reduz a lacuna de perplexidade entre idiomas diversos.
Este modelo foi contribuído por Tomasz Limisiewicz. O código original pode ser encontrado aqui.
MyT5Tokenizer
classe transformers.MyT5Tokenizer
< source >( vocab_fileeos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'extra_ids = 125additional_special_tokens = None**kwargs )
Parâmetros
- vocab_file (
str) — O arquivo que contém as regras de reescrita de bytes. - eos_token (
str, opcional, padrão"</s>") — O token de fim de sequência. - unk_token (
str, opcional, padrão"<unk>") — O token desconhecido. Um token que não está no vocabulário não pode ser convertido em um ID e é definido como este token em vez disso. - pad_token (
str, opcional, padrão"<pad>") — O token usado para preenchimento, por exemplo, ao agrupar sequências de comprimentos diferentes. - extra_ids (
int, opcional, padrão 125) — Adiciona um número de ids extras ao final do vocabulário para uso como sentinels. Esses tokens são acessíveis como “id{%d}>”, em que “{%d}” é um número entre 0 e extra_ids-1. Os tokens extras são indexados a partir do final do vocabulário até o início (“ ” é o último token do vocabulário, como no pré-processamento do ByT5, veja aqui). - additional_special_tokens (
list[str], opcional) — Tokens especiais adicionais usados pelo tokenizer.
Construa um tokenizador MyT5.
Este tokenizer herda de PreTrainedTokenizer, que contém a maioria dos métodos principais. Os usuários devem consultar essa superclasse para obter mais informações sobre esses métodos.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Parâmetros
- token_ids_0 (
list[int]) — Lista de IDs aos quais os tokens especiais serão adicionados. - token_ids_1 (
list[int], opcional) — Lista opcional de IDs para pares de sequências.
Retorna
list[int]
Lista de IDs de entrada com os tokens especiais apropriados.
Construa as entradas do modelo a partir de uma sequência ou de um par de sequências para tarefas de classificação de sequência, concatenando e adicionando tokens especiais. Uma sequência tem o seguinte formato:
- sequência única:
X </s> - par de sequências:
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]
Parâmetros
- token_ids_0 (
list[int]) — Lista de IDs. - token_ids_1 (
list[int], opcional) — Lista opcional de IDs para pares de sequências. - already_has_special_tokens (
bool, opcional, padrãoFalse) — Indica se a lista de tokens já está formatada com tokens especiais para o modelo.
Retorna
list[int]
Uma lista de inteiros no intervalo [0, 1]: 1 para um token especial, 0 para um token de sequência.
Recupera os ids de sequência de uma lista de tokens que não possui tokens especiais adicionados. Este método é chamado ao adicionar tokens especiais usando o método prepare_for_model do tokenizer.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Cria uma máscara a partir das duas sequências passadas para ser usada em uma tarefa de classificação de par de sequências. O MyT5 não faz uso de ids de tipo de token, portanto, uma lista de zeros é retornada.