A exploração de modelos de linguagem de grande porte, como o ChatGPT, revelou a existência de tokens não utilizados e sub-treinados, que podem impactar significativamente a qualidade das saídas geradas. Esses tokens são partes fundamentais do vocabulário do modelo, mas sua presença e treinamento não são sempre garantidos. Os tokens não utilizados são aqueles que, embora tenham sido incluídos no vocabulário durante o treinamento, não foram suficientemente expostos ao modelo, resultando em uma baixa probabilidade de serem gerados. Por outro lado, os tokens sub-treinados podem ou não estar presentes no vocabulário e, em muitos casos, não foram representados nos dados de treinamento. Essa separação entre a tokenização e o treinamento do modelo é uma das principais razões pelas quais esses tokens podem aparecer de forma inesperada nas saídas, levando a comportamentos indesejados, como a geração de textos sem sentido ou inadequados. Neste artigo, vamos explorar a existência desses tokens, utilizando o modelo GPT-2 Small como exemplo, e discutir técnicas para identificá-los, destacando a importância de entender esses fenômenos para melhorar a eficácia dos modelos de linguagem.
Existência de Tokens Não Utilizados: Experimentos com GPT-2 Small
Em muitos modelos de linguagem, incluindo o GPT-2 Small, a presença de tokens não utilizados é uma realidade. Esses tokens fazem parte do vocabulário do modelo, mas não foram suficientemente vistos durante o treinamento. Para ilustrar essa questão, realizamos experimentos que demonstram como o GPT-2 Small tem dificuldades em reproduzir tokens não utilizados, mesmo quando instruído a fazê-lo de maneira simples. Por exemplo, ao tentar reproduzir o token “ú”, o modelo falha em gerar a saída correta, resultando em textos embaralhados como “Output: – ß, *- *-, “. Essa diferença de desempenho entre tokens frequentemente encontrados e aqueles não utilizados é significativa e revela a fragilidade do modelo em lidar com entradas que não foram adequadamente treinadas. Além disso, ao analisar a capacidade do modelo de gerar sequências de tokens repetidos, observamos que a performance do GPT-2 Small varia drasticamente dependendo da frequência de uso dos tokens. Quando testamos uma faixa de tokens não utilizados, os resultados mostraram uma média de log probability muito baixa, indicando que o modelo não consegue prever esses tokens de forma confiável. Essa situação é preocupante, pois a geração de textos incoerentes pode levar a consequências sérias, como a alucinação de informações.
Tokens Sub-Treinados: Causas e Consequências
A questão dos tokens sub-treinados é ainda mais complexa. Idealmente, todos os tokens não utilizados deveriam ter valores de logit extremamente negativos, o que impediria sua geração pelo modelo. No entanto, a realidade é que a criação do vocabulário e o treinamento do modelo não ocorrem simultaneamente, resultando em tokens que, embora não utilizados, podem ter probabilidades não negligenciáveis de serem gerados. Um exemplo notável de token sub-treinado é o “_SolidGoldMagikarp”, que ocasionalmente aparece nas saídas do ChatGPT. Em nossos experimentos com o GPT-2 Small, observamos que alguns tokens na faixa de 177 a 188 apresentaram valores de logit em torno de -1.7, o que sugere uma probabilidade de cerca de 0.18 de serem gerados. Essa descoberta destaca a necessidade de técnicas eficazes para identificar tokens sub-treinados, uma vez que sua presença pode levar a comportamentos inesperados e indesejados nos modelos de linguagem. Pesquisadores têm proposto métodos para detectar esses tokens, como a análise das embeddings de saída geradas pelo modelo, que permite identificar candidatos a tokens sub-treinados com base na similaridade das distâncias coseno entre os vetores de embedding.
Técnicas de Identificação de Tokens Sub-Treinados
Nos últimos anos, diversas abordagens têm sido desenvolvidas para identificar automaticamente tokens sub-treinados em modelos de linguagem. Entre essas, destacam-se os trabalhos de Watkins e Rumbelow (2023) e Fell (2023), que exploram diferentes técnicas para detectar esses tokens problemáticos. Uma abordagem interessante envolve a análise das embeddings de saída geradas pelo modelo, onde se calcula o vetor médio das embeddings dos tokens não utilizados e se mede a similaridade com os vetores de embedding de todos os tokens do modelo. Tokens que apresentarem distâncias coseno próximas ao vetor médio são marcados como candidatos a tokens sub-treinados. Essa técnica não apenas ajuda a identificar tokens problemáticos, mas também fornece insights sobre como melhorar o treinamento e a tokenização dos modelos de linguagem. A identificação eficaz de tokens sub-treinados é crucial para minimizar a ocorrência de saídas indesejadas e para garantir que os modelos de linguagem sejam mais precisos e confiáveis em suas previsões. A compreensão desses fenômenos é essencial para o desenvolvimento de modelos de linguagem mais robustos e eficazes.
Em resumo, a presença de tokens não utilizados e sub-treinados em modelos de linguagem de grande porte, como o GPT-2 Small, pode levar a comportamentos indesejados e à geração de textos incoerentes. A separação entre a tokenização e o treinamento do modelo é uma das principais causas desse fenômeno. Experimentos demonstraram que o modelo tem dificuldades em reproduzir tokens não utilizados, enquanto a identificação de tokens sub-treinados é uma área de pesquisa ativa, com técnicas sendo desenvolvidas para melhorar a precisão dos modelos. Compreender e abordar essas questões é fundamental para o avanço da inteligência artificial e para a criação de modelos de linguagem mais eficazes.
FAQ
- O que são tokens não utilizados? Tokens não utilizados são aqueles que fazem parte do vocabulário do modelo, mas não foram suficientemente expostos durante o treinamento, resultando em baixa probabilidade de serem gerados.
- Qual a diferença entre tokens não utilizados e sub-treinados? Tokens não utilizados estão no vocabulário, mas não foram vistos; já os sub-treinados podem não estar no vocabulário ou não terem sido representados nos dados de treinamento.
- Por que é importante identificar tokens sub-treinados? A identificação de tokens sub-treinados é crucial para evitar a geração de saídas incoerentes e melhorar a precisão dos modelos de linguagem.
- Quais técnicas são usadas para identificar tokens sub-treinados? Técnicas incluem a análise das embeddings de saída do modelo e a medição da similaridade entre vetores de embedding usando distâncias coseno.
- Como os tokens não utilizados afetam a geração de texto? A presença de tokens não utilizados pode levar à geração de textos sem sentido ou inadequados, impactando a qualidade das saídas do modelo.
Se você se interessou por este tema e deseja acompanhar mais conteúdos sobre inteligência artificial e modelos de linguagem, não deixe de seguir o blog “Moises Kalebbe”.