Top-p Sampling

Definição em uma frase: mantém apenas o menor conjunto de tokens cuja probabilidade acumulada atinge p, e sorteia dentro dele.

Comparação com top-k

Top-kTop-p (nucleus)
Regramantém os mais prováveismantém massa acumulada
Tamanho do conjuntofixo ()variável
Distribuição concentradamantém candidatos a mais do que o necessáriomantém poucos
Distribuição planacorta demais (modelo não sabe, mantém 50)mantém muitos (o modelo está em dúvida)

Top-k com fixo é arbitrário: o mesmo é errado para uma distribuição afiada e para uma plana. Top-p se adapta ao grau de confiança do modelo — por isso virou o padrão.

import numpy as np
 
def top_p_filter(p, top_p=0.9):
    order = np.argsort(-p)
    cum = np.cumsum(p[order])
    k = int(np.searchsorted(cum, top_p) + 1)
    mask = np.zeros(len(p), dtype=bool)
    mask[order[:k]] = True
    return p * mask / (p * mask).sum()   # renormaliza

Parentes

  • min-p (Nguyen et al., ICLR 2025) — mantém tokens com : limiar relativo à confiança, mais estável que top-p quando a distribuição é muito achatada.
  • Typical decoding (Meister et al., 2022) — mantém tokens cuja informação está próxima da entropia condicional.

Autoavaliação

  1. P: Por que top-p substituiu top-k na prática? R: porque adapta o número de candidatos à confiança real do modelo, em vez de usar um arbitrário.
  2. P: Top-p com é “sem truncagem”? R: quase. Depende da distribuição; se nem 99% da massa couber em 10 tokens, ainda trunca.

Onde vi isso

Ver também


Atualizado em 2026-09-30