Tokenization (NLP) (PT)

From Systems analysis Wiki
Jump to navigation Jump to search

A Tokenização no contexto de modelos de linguagem grandes (LLMs) é um processo fundamental de pré-processamento que consiste em dividir uma sequência de texto em unidades menores e gerenciáveis chamadas tokens. Esses tokens são então convertidos em identificadores numéricos que o modelo pode processar. A tokenização é um primeiro passo crucial, pois afeta diretamente o desempenho, a eficiência, a equidade e a qualidade da compreensão da linguagem pelo modelo.

Conceitos Fundamentais

Token

Um token é uma unidade discreta de texto que um modelo de linguagem processa. Dependendo do método de tokenização escolhido, um token pode representar:

  • Uma palavra inteira (por exemplo, "gato").
  • Parte de uma palavra ou uma subpalavra (por exemplo, "in-", "-feliz-", "-mente").
  • Um único caractere (por exemplo, "a", "b", "c").
  • Um byte (no caso de tokenização em nível de byte).

A cada token único é atribuído um número de índice específico do vocabulário do tokenizador.

Vocabulário do Tokenizador

O vocabulário é o conjunto completo de todos os tokens possíveis que um modelo pode reconhecer. O tamanho do vocabulário é um hiperparâmetro importante:

  • Um vocabulário grande permite representar mais palavras inteiras, o que melhora a compreensão e encurta o comprimento das sequências, mas aumenta o tamanho do modelo e a complexidade do treinamento.
  • Um vocabulário pequeno é mais compacto, mas exige a divisão de palavras raras ou complexas em um número maior de subpalavras, o que pode alongar as sequências e dificultar a captura da semântica.

O tamanho do vocabulário varia muito entre os modelos: de ~50.000 tokens no GPT-2 a mais de 100.000 em modelos modernos, como o GPT-4 (100.277) e o LLaMA-3 (128.000).

Principais Métodos de Tokenização

Existem três níveis principais de granularidade na tokenização.

1. Tokenização em Nível de Palavra (Word-level)

  • Princípio: O texto é dividido em palavras individuais com base em delimitadores (espaços, sinais de pontuação).
  • Vantagens: Intuitivo; as sequências de tokens são mais curtas, o que reduz a carga computacional.
  • Desvantagens:
    • Problema de palavras desconhecidas (Out-of-Vocabulary, OOV): O modelo não consegue processar palavras que não estavam no vocabulário de treinamento, bem como erros de digitação e palavras novas.
    • Grande tamanho do vocabulário: Exige o armazenamento de todas as palavras únicas, o que é especialmente problemático para idiomas com morfologia rica.

2. Tokenização em Nível de Caractere (Character-level)

  • Princípio: O texto é dividido em caracteres individuais.
  • Vantagens:
    • Sem problema de OOV: Qualquer palavra pode ser representada como uma sequência de caracteres.
    • Vocabulário pequeno: Limitado ao tamanho do alfabeto e dos caracteres especiais.
  • Desvantagens:
    • Sequências longas: O texto é convertido em sequências de tokens muito longas, o que aumenta significativamente os custos computacionais.
    • Perda de semântica: É mais difícil para o modelo capturar o significado, pois ele opera com caracteres individuais em vez de palavras inteiras.

3. Tokenização de Subpalavras (Subword Tokenization)

Esta é uma abordagem intermediária e a mais popular atualmente, que combina as vantagens dos métodos anteriores.

  • Princípio: Palavras de uso frequente permanecem como tokens inteiros, enquanto palavras raras ou desconhecidas são divididas em partes menores e significativas (subpalavras).
  • Vantagens:
    • Processa eficientemente palavras OOV e variações morfológicas.
    • Tamanho do vocabulário controlável.
    • Captura a estrutura morfológica das palavras.
  • Principais algoritmos:
    • Byte Pair Encoding (BPE): Um algoritmo iterativo que começa com um conjunto de caracteres e mescla sequencialmente os pares que ocorrem com mais frequência em novos tokens. É usado em modelos GPT. O Byte-level BPE, usado no GPT-2 e no RoBERTa, trata as palavras como sequências de bytes, o que resolve completamente o problema de OOV.
    • WordPiece: Um algoritmo semelhante ao BPE, mas que escolhe para mesclagem os pares que maximizam a verossimilhança dos dados de treinamento. É usado em modelos BERT.
    • Unigram LM: Diferente do BPE/WordPiece, este método começa com um grande conjunto de subpalavras e o reduz gradualmente, removendo os tokens que menos afetam a probabilidade geral do corpus. Isso permite a criação de múltiplas tokenizações prováveis para uma única palavra (regularização de subpalavras).
  • Ferramenta SentencePiece: Uma biblioteca do Google que implementa BPE e Unigram LM e processa o texto como um fluxo contínuo de caracteres, tornando-a universal para idiomas sem delimitadores de palavras explícitos (como o chinês). É usada nos modelos LLaMA e T5.

Tokenização em LLMs Multimodais

Em modelos multimodais, que trabalham não apenas com texto, a tokenização se estende a outros tipos de dados:

  • Tokenização visual: Imagens são divididas em pequenos patches (por exemplo, 16x16 pixels), que são então convertidos em vetores-token, de forma análoga aos tokens de texto.
  • Tokenização de áudio: Sinais de áudio contínuos são convertidos em uma sequência de tokens discretos, que representam fragmentos curtos de som.
  • Abordagem unificada (TEAL): Um conceito onde dados de qualquer modalidade são primeiro tokenizados usando um tokenizador apropriado, e seus embeddings são então processados em um espaço conjunto unificado.

Problemas e Limitações

A tokenização, apesar de sua importância, é fonte de muitos problemas no funcionamento dos LLMs:

  • Inconsistência e sensibilidade: Pequenas alterações nos dados de entrada (um erro de digitação, letras maiúsculas/minúsculas, um espaço no final) podem alterar drasticamente a tokenização, levando a um comportamento imprevisível do modelo.
  • Problemas multilíngues: Um vocabulário único para muitos idiomas muitas vezes se mostra ineficiente para idiomas de baixos recursos ou morfologicamente ricos, resultando em sequências de tokens excessivamente longas.
  • Impacto no raciocínio: A divisão ilógica de números (por exemplo, "25,000" em "25", ",", "000") ou símbolos dificulta a execução de tarefas aritméticas e simbólicas.
  • Glitch Tokens: Tokens anômalos ou raros dos dados de treinamento (por exemplo, nomes de usuário do Reddit) que podem causar um comportamento imprevisível ou malicioso do modelo.

Cenário em Evolução e Direções Futuras

A pesquisa na área de tokenização está avançando ativamente nas seguintes direções:

  • Modelos sem tokenizador: Desenvolvimento de modelos (CANINE, ByT5) que operam diretamente no nível de bytes ou caracteres para eliminar completamente a etapa de tokenização explícita e seus problemas associados.
  • Tokenização adaptativa e treinável: Criação de tokenizadores que podem se adaptar dinamicamente ao idioma, domínio ou até mesmo ao texto de entrada específico, ou que são treinados em conjunto com o modelo principal.
  • Abordagens orientadas cognitivamente: Desenvolvimento de métodos inspirados na ciência cognitiva sobre o processamento da linguagem humana (por exemplo, o "Princípio do Mínimo Esforço") para criar tokenizações mais semanticamente significativas.

Ligações externas

Literatura

  • Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
  • Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
  • Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
  • Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
  • Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
  • Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
  • Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
  • Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
  • Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
  • Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.