Top-p sampling (PT)
Amostragem Top-p, também conhecida como amostragem por núcleo (em inglês, Nucleus Sampling), é um método de decodificação estocástica usado em grandes modelos de linguagem (LLMs) para a geração de texto. O método foi proposto em 2019 por Ari Holtzman et al. como uma alternativa aprimorada à amostragem Top-k fixa. Sua ideia é selecionar dinamicamente um conjunto de candidatos a cada passo da geração, com base em um limiar de probabilidade cumulativa .[1]
Conceito
A ideia principal do Top-p é, a cada passo, selecionar o menor conjunto de tokens mais prováveis cuja probabilidade acumulada seja igual ou superior a um limiar predefinido (o núcleo, em inglês nucleus). Matematicamente, para uma distribuição condicional sobre um vocabulário , o núcleo pode ser definido como:
Uma formulação equivalente é: ordenar os tokens em ordem decrescente de e selecionar o prefixo mais curto cuja massa de probabilidade acumulada seja ≥ .[1]
Após a definição do núcleo, as probabilidades dos tokens fora de são zeradas, e as probabilidades dentro do núcleo são normalizadas (para que sua soma seja igual a 1). O próximo token é então amostrado a partir dessa distribuição truncada.
Adaptação dinâmica
- Em uma distribuição "aguda" (quando o modelo está confiante), o núcleo é pequeno: poucos tokens já alcançam a massa ≥ , o que aumenta a coerência.
- Em uma distribuição "plana" (quando há muitas continuações plausíveis), o núcleo é grande: a seleção se expande, aumentando a diversidade.[1]
Comparação com outros métodos de decodificação
Top-p vs. Top-k
- O Top-k sempre seleciona a partir de um número fixo de tokens mais prováveis. Em distribuições "agudas", isso pode adicionar opções desnecessárias e de baixa probabilidade apenas para atingir o número , enquanto em distribuições "planas", pode, ao contrário, cortar continuações razoáveis que não ficaram entre as primeiras.
- O Top-p ajusta o tamanho do conjunto de candidatos com base nos dados de cada passo, o que torna seu comportamento mais flexível e estável em diferentes tipos de distribuição.[1]
Top-p vs. Temperatura
- A Temperatura (temperature) remodela toda a forma da distribuição (tornando-a mais aguda ou mais suave), mas não corta tokens: mesmo as opções de baixa probabilidade mantêm uma chance diferente de zero.[2]
- O Top-p introduz um truncamento rígido da cauda da distribuição — tokens de baixa probabilidade são completamente excluídos da amostragem, o que ajuda a evitar continuações claramente inadequadas.[1]
Conselho prático dos provedores: ao ajustar o estilo/aleatoriedade, geralmente se modifica ou `temperature` ou `top_p`, mas não ambos ao mesmo tempo, para evitar um impacto "duplo" na distribuição e simplificar o diagnóstico.[3]
Aplicação prática e recomendações
O Top-p é amplamente utilizado nos LLMs modernos devido à sua combinação de flexibilidade e controlabilidade.
- Faixa de valores típica. Na prática, valores de são frequentemente usados (consulte guias e exemplos em Transformers; em muitos SDKs, o valor 0.95 é encontrado como padrão ou recomendado em exemplos).[2][4]
- Valores próximos de 1.0 (por exemplo, 0.98–0.99) aumentam a diversidade, pois mais tokens entram no núcleo.
- Valores menores (por exemplo, 0.80–0.90) aumentam o determinismo e a "contenção" da saída.
- Com , o truncamento desaparece: a seleção ocorre em todo o vocabulário (levando em conta a temperatura).[2]
- Compatibilidade com bibliotecas e APIs.
- Na biblioteca Transformers, está implementado o TopPLogitsWarper, que utiliza adicionalmente um limiar `min_tokens_to_keep` (geralmente ≥1) para evitar a degeneração do núcleo com valores de muito baixos e distribuições "agudas".[5]
- Em várias APIs, o parâmetro `top_p` está disponível, enquanto `top_k` pode estar ausente; o suporte aos parâmetros e sua semântica dependem do modelo/provedor específico (por exemplo, alguns modelos de raciocínio podem restringir o ajuste da estocasticidade). Consulte os manuais oficiais da OpenAI/Azure/Google.[6][3][4]
- Textos longos e repetitividade. Em uma série de experimentos, foi demonstrado que a amostragem por núcleo (nucleus sampling) reduz a tendência à degeneração (repetições, frases clichês) em comparação com a busca gulosa (greedy), busca por feixe (beam search) e Top-k fixo, especialmente em sequências longas.[1][7]
Ver também
- Temperatura
- Grandes modelos de linguagem
Leitura adicional
- Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
- 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.
- Yu, S. et al. (2023). Conformal Nucleus Sampling. ACL Findings 2023.
- Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
- Finlayson, M. et al. (2024). Basis‑Aware Truncation Sampling for Neural Text Generation. arXiv:2412.14352.
- 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.
Notas
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751. [1]
- ↑ 2.0 2.1 2.2 Hugging Face Transformers. Generation strategies (top‑k, top‑p, temperature). [2]
- ↑ 3.0 3.1 Microsoft Learn (Azure OpenAI). Text/Chat Completions — parameters. Recomendação para "alterar `temperature` ou `top_p`, mas não ambos ao mesmo tempo". [3]
- ↑ 4.0 4.1 Google AI / Vertex AI. Generation parameters (topP/topK) for text/Gemini. Exemplos com topP≈0.95. [4] [5]
- ↑ Transformers API. TopPLogitsWarper (parâmetros e comportamento, incluindo `min_tokens_to_keep`). [6]
- ↑ OpenAI API Reference. top_p. [7]
- ↑ Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925. [8]