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 campos 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 usada em muitas aplicações de modelos de linguagem de grande escala.
Técnica
Em cada etapa da 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 enquanto mantém 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 reescaladas 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) ⊆ V, é definido como o menor conjunto de tokens que satisfaz: a soma de P(x | x_1, ..., x_{t-1}) para todos os x em V^(p) é maior ou igual a p. Aqui, P(x | x_1, ..., x_{t-1}) representa a probabilidade de um token x dado os tokens precedentes x_1, ..., x_{t-1}.
Exemplo
Imagine que em uma certa etapa, um modelo de linguagem tem um vocabulário de cinco palavras: [the, a, cat, dog, eats] e produz 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) = {the, a, cat}.
- As probabilidades para este conjunto são reescaladas 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, significando que dog e eats têm 0% de chance de serem escolhidos.
Amostragem top-k
A amostragem top-k é uma técnica semelhante onde 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 com pico), 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 escala, a técnica também foi adaptada para uso em outros domínios científicos que envolvem gerar ou analisar 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 medicamentos e proteínas
A amostragem top-p é usada em biologia computacional para gerar novas sequências moleculares e de proteínas a partir de modelos de linguagem especializados. No design de medicamentos de novo, modelos de linguagem química treinados em estruturas moleculares usam amostragem de núcleo para gerar bibliotecas focadas de novos candidatos a medicamentos válidos. Da mesma forma, em engenharia de proteínas, modelos de linguagem treinados em sequências de proteínas empregam amostragem top-p para propor novas sequências com propriedades desejadas, expandindo o espaço de busca além de variantes naturais.
Geofísica
Em geofísica, a amostragem top-p foi aplicada para gerar dados sísmicos sintéticos ou modelar estruturas subsuperficiais. Ao amostrar de modelos probabilísticos de sequências geológicas, pesquisadores podem criar diversos cenários plausíveis que ajudam na quantificação de incertezas e na interpretação de levantamentos sísmicos.
Relação com Outros Métodos de Decodificação
A amostragem top-p é uma das várias estratégias de decodificação estocástica usadas com modelos autorregressivos. Ela complementa outras técnicas como o ajuste de temperatura, que ajusta a nitidez da distribuição de probabilidade antes da amostragem, e a penalidade de repetição, que desencoraja o modelo de repetir tokens. Na prática, o top-p é frequentemente combinado com o ajuste de temperatura para ajustar finamente a diversidade e a qualidade do texto gerado. Por exemplo, uma temperatura mais baixa torna a distribuição mais concentrada, e o top-p então seleciona um núcleo menor, resultando em saídas mais conservadoras.
Considerações de Implementação
Na prática, a amostragem top-p requer ordenar a distribuição de probabilidade em cada etapa de geração, o que adiciona sobrecarga computacional em comparação com a decodificação gulosa. No entanto, para muitas aplicações, os benefícios na qualidade da saída superam o custo. Implementações eficientes em frameworks como PyTorch e TensorFlow otimizam este processo usando operações de soma cumulativa e mascaramento. O limite p é um hiperparâmetro que pode ser ajustado; valores comuns variam de 0.9 a 0.95 para muitas tarefas de geração de linguagem, mas o valor ótimo depende do modelo específico e da aplicação.
Impacto e Adoção
Desde sua introdução em 2019, a amostragem top-p se tornou um componente padrão nas estratégias de decodificação de muitos modelos de linguagem de grande escala, incluindo aqueles desenvolvidos por OpenAI, Anthropic e Google DeepMind. É frequentemente o método de amostragem padrão em APIs de geração de texto e bibliotecas de código aberto. A adaptabilidade da técnica a tornou uma ferramenta chave para equilibrar criatividade e coerência em sistemas de IA generativa, influenciando como chatbots, geradores de conteúdo e outras aplicações produzem texto semelhante ao humano.