Top-k sampling (PT)

From Systems analysis Wiki
Jump to navigation Jump to search

Amostragem Top-k é um método de decodificação estocástica usado em grandes modelos de linguagem (LLMs) para gerar texto. Seu objetivo principal é limitar a seleção do próximo token a um número fixo (k) dos candidatos mais prováveis, o que evita a geração de palavras improváveis e frequentemente inadequadas. Este método foi um dos primeiros aprimoramentos da amostragem aleatória simples e, por muito tempo, foi uma maneira popular de melhorar a coerência do texto gerado.

Conceito e matemática

A cada passo da geração de texto, um modelo de linguagem padrão produz uma distribuição de probabilidade P(x|x1:i1) sobre todo o vocabulário V. A amostragem Top-k modifica esse processo da seguinte forma:

1. Seleção de candidatos: De todo o vocabulário, um subconjunto V(k) é selecionado, consistindo nos k tokens com as maiores probabilidades.

2. Truncamento: As probabilidades de todos os tokens que não estão em V(k) são zeradas.

3. Redistribuição (normalização): As probabilidades dos k tokens restantes são reescalonadas para que sua nova soma seja igual a 1.

4. Amostragem: O próximo token é selecionado aleatoriamente a partir dessa nova distribuição truncada.

Dessa forma, a amostragem Top-k introduz um limite rígido no número de candidatos: palavras com um ranking de probabilidade inferior a k nunca serão selecionadas.

Influência do parâmetro k

  • k pequeno (por exemplo, k=510): Torna a geração mais conservadora e previsível. O modelo seleciona apenas de um conjunto muito limitado das palavras mais prováveis. Isso aumenta a coerência, mas pode levar a um texto repetitivo e monótono.
  • k grande (por exemplo, k=50100): Aumenta a diversidade e a criatividade do texto, pois mais opções são incluídas na amostragem. No entanto, isso também aumenta o risco de incluir tokens menos relevantes ou inadequados.
  • Casos limite:
    • k=1: Equivalente à decodificação gulosa (greedy decoding). O modelo sempre escolhe o token mais provável.
    • k = tamanho do vocabulário: Equivalente à amostragem padrão da distribuição completa, sem truncamento.

Significado histórico

O método Top-k foi formalmente proposto em 2018 por Angela Fan e seus colegas como uma solução eficaz para o problema da degradação da qualidade do texto ao usar a amostragem aleatória completa. Eles demonstraram que limitar a amostragem a um pequeno número de candidatos melhora significativamente a coesão e o sentido das histórias geradas.

Por exemplo, nas primeiras versões do GPT-2, era utilizado o parâmetro `top_k=40`, o que permitia ao modelo gerar textos longos e coerentes, algo inatingível com métodos anteriores.

Comparação com outros métodos de decodificação

Top-k vs. Top-p

O Top-k foi em grande parte superado por um método mais avançado — a amostragem Top-p (nucleus).

  • A principal desvantagem do Top-k é sua falta de adaptabilidade. Um valor fixo de k não leva em conta a forma da distribuição de probabilidade:
    • Quando a distribuição é aguda (o modelo tem certeza sobre alguns tokens), o Top-k pode expandir artificialmente a amostra, incluindo candidatos improváveis.
    • Quando a distribuição é plana (o modelo está incerto e muitos tokens têm probabilidades semelhantes), o Top-k pode truncar prematuramente muitas opções adequadas.
  • O Top-p, por outro lado, adapta dinamicamente o tamanho da amostra, selecionando tokens com base em sua probabilidade cumulativa. Isso o torna mais flexível e robusto.

Top-k vs. Temperatura

  • A Temperatura altera a forma de toda a distribuição de probabilidade, mas não trunca tokens. Ela afeta as probabilidades relativas de todos os candidatos.
  • O Top-k introduz um truncamento rígido, excluindo completamente os tokens fora do top-k.

Na prática, o Top-k pode ser usado em conjunto com a temperatura: primeiro, a temperatura modifica a distribuição e, em seguida, o Top-k trunca os candidatos.

Aplicação prática

Embora a amostragem Top-p seja hoje considerada preferível, o Top-k ainda é utilizado em alguns casos, especialmente quando se requer um controle simples e intuitivo sobre o tamanho da amostra.

  • Valores típicos: Na prática, utilizam-se valores de k entre 20 e 100, dependendo do equilíbrio desejado entre coerência e diversidade.
  • Recomendações: Para a maioria das tarefas, recomenda-se o uso do Top-p. Se, ainda assim, o Top-k for utilizado, ele deve ser combinado com uma temperatura moderada e o valor de k deve ser cuidadosamente ajustado para a tarefa específica.

Ver também

  • Grandes modelos de linguagem

Literatura

  • Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
  • Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
  • Holtzman, A. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o.
  • Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
  • Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
  • O’Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
  • Finlayson, M. et al. (2024). Basis-Aware Truncation Sampling for Neural Text Generation. arXiv:2412.14352.
  • Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
  • Yu, S. et al. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
  • Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Methods. arXiv:2410.03968.
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.