Nucleus Sampling
Aprende como a amostragem de núcleo (top-p) seleciona tokens para a geração de texto por IA e compara-a com o top-k, a descodificação gulosa e a temperatura para ajustar a diversidade das saídas.
A amostragem de núcleo, também chamada de amostragem top-p, é uma forma de escolher o próximo token durante a geração de texto de IA. Em vez de sempre escolher o token mais provável, o modelo constrói uma lista restrita cujas probabilidades somam pelo menos um limite escolhido, e então faz a amostragem aleatória a partir dessa lista restrita. A lista restrita muda a cada predição: ela pode ser pequena quando uma continuação é óbvia e maior quando várias continuações são plausíveis.
Como Funciona a Amostragem de Núcleo#
Um modelo de linguagem atribui uma probabilidade a cada próximo token possível. Essas probabilidades são comumente calculadas a partir das pontuações de saída do modelo usando softmax, o que faz com que os valores somem um. A amostragem de núcleo classifica os tokens do mais provável para o menos provável, os inclui até que sua probabilidade cumulativa atinja o limite p, exclui o resto e faz a amostragem dos tokens incluídos. Aqui, p representa a massa de probabilidade, e não a probabilidade de um token individual. A documentação do softmax do PyTorch explica a conversão de probabilidade, enquanto o guia de decodificação da IBM descreve o corte cumulativo. (docs.pytorch.org)
Suponha que quatro próximos tokens possíveis tenham probabilidades de 0,50, 0,25, 0,15 e 0,10. Com top_p=0.80, os dois primeiros totalizam apenas 0,75, então o terceiro também é incluído, elevando a lista restrita para 0,90. O quarto é excluído. O modelo então faz a amostragem entre os três primeiros em proporção às suas probabilidades após a normalização; ele não dá a cada um a mesma chance. O corte pode exceder p porque o token que o ultrapassa permanece na lista restrita. A explicação do top-p do Google Cloud descreve a mesma regra de seleção de tokens. (cloud.google.com)
Essa seleção acontece novamente após cada token gerado. À medida que a frase se desenvolve, o modelo computa uma nova distribuição e, portanto, um novo núcleo.
Top-p vs. Top-k, Decodificação Gulosa e Temperatura#
Essas configurações afetam diferentes partes da geração:
- A amostragem top-k mantém um número fixo de candidatos, como os cinco tokens mais prováveis. O top-p mantém candidatos suficientes para atingir um limite de probabilidade, de modo que sua lista restrita não tem tamanho fixo.
- A decodificação gulosa sempre seleciona o único token mais provável. Ela é previsível, mas não oferece nenhuma das variações que a amostragem permite.
- A temperatura altera a intensidade com que o modelo favorece tokens de alta probabilidade antes da seleção. Temperaturas mais baixas concentram a probabilidade nas escolhas principais; temperaturas mais altas a espalham de forma mais ampla. O top-p, em vez disso, define um corte cumulativo na distribuição resultante.
As implementações podem combinar esses controles, mas sua interação torna os resultados mais difíceis de interpretar. Ao fazer experimentos, altere uma configuração de cada vez. A referência de parâmetros de Chat Completions da OpenAI descreve top_p e recomenda ajustar essa configuração ou a temperatura, em vez de ambas ao mesmo tempo. (platform.openai.com)
Onde Isso Importa na Prática#
Em um chatbot de suporte ao cliente, a amostragem de núcleo pode permitir várias formulações naturais de uma resposta de rotina sem recorrer a todas as continuações improváveis. Por exemplo, um assistente explicando uma política de devolução pode variar sua frase inicial enquanto preserva os detalhes da política fornecidos em seu prompt. A amostragem não verifica esses detalhes: uma resposta fluida ainda pode estar errada, portanto, verificações factuais e fundamentação adequada continuam necessárias.
Na legendagem de imagens, um modelo de visão e linguagem pode ter várias maneiras razoáveis de descrever a mesma cena de rua. O top-p pode variar a redação das legendas enquanto filtra escolhas de tokens de baixa probabilidade. Um pipeline visual pode primeiro usar Ultralytics YOLO26 para detecção de objetos e, em seguida, fornecer os objetos detectados como contexto para um gerador de legendas. A etapa de detecção do YOLO não usa amostragem de núcleo para escolher seus rótulos de objetos; a configuração se aplica à etapa de geração de linguagem subsequente. O tutorial de legendagem de imagens do TensorFlow ilustra como a entrada visual e um decodificador de texto se encaixam. (ibm.com)
Testando o Top-p em um Fluxo de Trabalho Documentado#
A interface de LLM da Ultralytics aceita argumentos de requisição para um endpoint de modelo de linguagem compatível. Após instalar ultralytics[llm] e configurar OPENAI_API_KEY, este exemplo solicita uma resposta curta com top_p=0.9:
from ultralytics import LLM
# Use an endpoint that supports the top_p request argument.
llm = LLM("gpt-4.1-mini", api="chat.completions")
prompt = "Describe a city bus in one friendly sentence."
response = llm(prompt, top_p=0.9)
message = response.choices[0].message
print(message.content)O código deixa a seleção de tokens para o provedor do modelo de linguagem. Executá-lo novamente pode produzir uma redação diferente, mas top_p=0.9 não é uma promessa de que toda resposta será diferente. Verifique os parâmetros suportados pelo modelo selecionado antes de aplicar a mesma configuração em outro lugar.
Escolhendo uma Configuração Útil#
Comece com o padrão do modelo e, em seguida, compare as saídas em prompts representativos. Reduza top_p se as respostas divagarem para termos improváveis; considere um valor mais alto se elas forem repetitivas sem necessidade. Julgue o resultado pela tarefa — e não apenas pela variedade. Para respostas aos clientes ou legendas, revise a precisão factual e verifique se os detalhes importantes estão presentes. Uma lista restrita mais estreita pode reduzir algumas continuações incomuns, mas não pode tornar verdadeiras as afirmações sem suporte. A orientação da IBM sobre como gerar saída precisa trata igualmente as escolhas de decodificação como apenas uma parte de um fluxo de trabalho de geração fundamentado. (ibm.com)









