A amostragem top-p, também conhecida como amostragem de núcleo, é uma estratégia de decodificação estocástica usada para gerar sequências a partir de modelos probabilísticos autorregressivos, particularmente na geração de linguagem natural. Foi originalmente proposta por Ari Holtzman, Yejin Choi e colegas em 2019 para resolver o problema de texto repetitivo e sem sentido produzido por métodos de decodificação determinísticos, como a busca em feixe. A técnica desde então foi aplicada em outros campos científicos, como engenharia de proteínas e geofísica.
Na amostragem top-p, um limite de probabilidade p é definido, e o próximo item em uma sequência é amostrado apenas do menor conjunto possível de candidatos de alta probabilidade cuja probabilidade cumulativa exceda p. Este método adapta o tamanho do conjunto de candidatos com base na certeza do modelo, tornando-o mais flexível do que a amostragem top-k, que amostra de um número fixo de candidatos. Devido à sua eficácia, a amostragem top-p é amplamente utilizada em muitas aplicações de modelos de linguagem de grande porte.
Técnica
Em cada etapa do processo de geração de texto, um modelo de linguagem calcula uma distribuição de probabilidade sobre todo o seu vocabulário para o próximo token. Embora seja possível simplesmente escolher o token com a maior probabilidade (busca gulosa) ou um conjunto limitado de sequências de alta probabilidade (busca em feixe), esses métodos determinísticos frequentemente produzem texto monótono, repetitivo ou sem sentido. A amostragem top-p introduz aleatoriedade para evitar esses problemas, mantendo a qualidade.
A ideia central é amostrar de um conjunto menor e mais confiável de tokens em cada etapa, chamado de núcleo. Este núcleo contém os tokens seguintes mais prováveis cuja probabilidade combinada, ou cumulativa, apenas excede o limite p. Ao amostrar apenas deste grupo de tamanho dinâmico, o modelo pode se adaptar a diferentes situações. Quando o modelo está confiante sobre o próximo token (por exemplo, um token tem uma probabilidade muito alta), o núcleo será pequeno. Quando o modelo está incerto (as probabilidades estão mais uniformemente distribuídas), o núcleo será maior, permitindo mais diversidade.
O processo em cada etapa é o seguinte:
- O modelo calcula as probabilidades para todos os possíveis próximos tokens.
- Os tokens são ordenados por sua probabilidade em ordem decrescente.
- O núcleo é formado selecionando tokens do topo da lista até que sua probabilidade cumulativa exceda o limite predefinido, p.
- As probabilidades dos tokens dentro deste núcleo são então recalculadas para que somem 1. Todos os tokens fora do núcleo são descartados (recebem probabilidade 0).
- O próximo token final é amostrado aleatoriamente desta nova distribuição menor.
Formalmente, o núcleo, \(V^{(p)} \subseteq V\), é definido como o menor conjunto de tokens que satisfaz:
\[\sum_{x \in V^{(p)}} P(x|x_1, \dots, x_{t-1}) \geq p\]
Nesta fórmula, \(P(x|x_1, \dots, x_{t-1})\) representa a probabilidade de um token \(x\) dados os tokens precedentes \(x_1, \dots, x_{t-1}\).
Exemplo
Imagine que em uma certa etapa, um modelo de linguagem tenha um vocabulário de cinco palavras: [the, a, cat, dog, eats] e produza as seguintes probabilidades:
- the: 0,5
- a: 0,2
- cat: 0,1
- dog: 0,1
- eats: 0,1
Se definirmos \(p = 0,8\):
- Os tokens são ordenados por probabilidade: [the, a, cat, dog, eats].
- A probabilidade cumulativa é calculada:
- the: 0,5
- the + a: 0,5 + 0,2 = 0,7
- the + a + cat: 0,7 + 0,1 = 0,8
- O núcleo é o menor conjunto com probabilidade cumulativa ≥ 0,8, que é \(V^{(0,8)} = \{\text{the, a, cat}\}\).
- As probabilidades para este conjunto são recalculadas para somar 1:
- P(the) = 0,5 / 0,8 = 0,625
- P(a) = 0,2 / 0,8 = 0,25
- P(cat) = 0,1 / 0,8 = 0,125
- O próximo token é então amostrado desta nova distribuição, o que significa que dog e eats têm 0% de chance de serem escolhidos.
Amostragem top-k
A amostragem top-k é uma técnica semelhante em que o conjunto de tokens candidatos é restrito aos \(k\) tokens mais prováveis. A principal vantagem do top-p é sua adaptabilidade. Quando o modelo está muito certo sobre o próximo token (uma distribuição concentrada), o núcleo \(V^{(p)}\) pode ser muito pequeno. Quando o modelo está incerto (uma distribuição plana), o núcleo pode ser muito maior, permitindo mais diversidade. Em contraste, o top-k sempre amostra de um número fixo de tokens, o que pode ser muito restritivo ou muito amplo dependendo do contexto.
Aplicações
Embora a amostragem top-p seja mais famosa como uma estratégia de decodificação para modelos de linguagem de grande porte, a técnica também foi adaptada para uso em outros domínios científicos que envolvem a geração ou análise de dados sequenciais a partir de modelos probabilísticos.
Geração de linguagem natural
Em seu domínio original de geração de linguagem natural, a amostragem top-p é valorizada por sua capacidade de produzir texto mais diverso e coerente em comparação com métodos determinísticos. Foi demonstrado que é benéfica em tarefas como geração automática de perguntas, onde a diversidade de amostras é importante para criar dados de treinamento eficazes para modelos de resposta a perguntas.
Design de fármacos e proteínas
A amostragem top-p é usada em biologia computacional para gerar novas sequências moleculares e proteicas a partir de modelos de linguagem especializados. No design de fármacos de novo, modelos de linguagem química treinados em estruturas moleculares usam amostragem de núcleo para gerar bibliotecas focadas de novos candidatos a fármacos válidos. Da mesma forma, modelos de linguagem de proteínas utilizam amostragem top-p para propor novas sequências proteicas com propriedades desejadas, auxiliando em esforços de engenharia de proteínas.
Geofísica
Em geofísica, a amostragem top-p foi aplicada para gerar sequências de eventos geológicos ou modelar estruturas subsuperficiais. Por exemplo, pode ser usada em inversão sísmica ou caracterização de reservatórios para amostrar de modelos probabilísticos que preveem propriedades subsuperficiais, ajudando a quantificar a incerteza em interpretações geológicas.
Implementação e Uso
Na prática, a amostragem top-p é frequentemente combinada com outras estratégias de decodificação, como o ajuste de temperatura, para ajustar a aleatoriedade e a qualidade do texto gerado. O ajuste de temperatura modifica a nitidez da distribuição de probabilidade antes de aplicar o top-p, permitindo controle adicional sobre a diversidade. Muitos frameworks de aprendizado de máquina e bibliotecas fornecem suporte integrado para amostragem top-p, facilitando sua integração em pipelines existentes.
A amostragem top-p é um recurso padrão nas APIs das principais empresas de IA, incluindo OpenAI, Anthropic e Google DeepMind, bem como em bibliotecas de código aberto como Transformers da Hugging Face. É tipicamente especificada como um parâmetro (por exemplo, top_p) em funções de geração de texto, com valores comuns variando de 0,9 a 0,95 para saída equilibrada.
A escolha de p afeta significativamente a saída. Um p mais baixo (por exemplo, 0,5) torna o modelo mais conservador, focando em tokens de alta probabilidade, enquanto um p mais alto (por exemplo, 0,99) permite mais diversidade, mas pode aumentar o risco de incoerência. Pesquisadores e profissionais frequentemente ajustam p com base na tarefa específica e nas características desejadas da saída.
Ver Também
- amostragem top-k
- amostragem por temperatura
- busca em feixe
- decodificação gulosa