3 pontos por GN⁺ 2025-05-06 | 1 comentários | Compartilhar no WhatsApp
  • Um guia abrangente sobre os métodos de sampling em grandes modelos de linguagem (LLMs), explicado de forma que até iniciantes consigam entender
  • Explica em detalhe o que são tokens, por que são usados no lugar de palavras e como o modelo gera texto
  • Sampling é o processo de controlar a diversidade e a naturalidade da saída, e o texto apresenta diversos algoritmos de sampling como Temperature, Top-K, Top-P e DRY
  • Cada técnica de sampling é explicada com descrição conceitual e também com os princípios matemáticos e algorítmicos de funcionamento, comparando efeitos como prevenção de repetição, aumento de criatividade e ajuste de consistência
  • O material também organiza a ordem de combinação entre samplers, interações e casos de conflito, sendo muito útil para desenvolvedores que querem controlar com precisão a qualidade da geração

Intro Knowledge

Short Glossary

  • Logits são valores não normalizados que representam a pontuação de cada token
  • Softmax é a função que converte logits em uma distribuição de probabilidade normalizada
  • Entropy representa a incerteza da previsão; quanto maior, maior a incerteza sobre o próximo token
  • Perplexity é uma métrica em que valores mais baixos indicam maior confiança do modelo
  • n-gram é uma sequência contínua de n tokens
  • Context window é o número máximo de tokens que o modelo consegue processar de uma vez

Why tokens?

Why not letters?

  • A tokenização por letras torna a sequência longa demais, causando aumento do custo computacional e dificuldade de conectar informações

Why not whole words?

  • A abordagem baseada em palavras tem problemas como explosão do tamanho do vocabulário e dificuldade para representar neologismos ou palavras raras
  • A abordagem baseada em sub-word permite dividir prefixos, radicais e sufixos, sendo eficaz para compreender morfologia e para transferência de aprendizado multilíngue

How are the sub-words chosen?

  • O vocabulário é construído encontrando as subpalavras (sub-words) mais frequentes por meio de amostras representativas dos dados de treino

How does the model generate text?

  • Durante o treinamento, o modelo aprende a distribuição de probabilidade do próximo token a partir de grandes volumes de texto
  • Na inferência, ele calcula a probabilidade de todos os tokens possíveis e seleciona o próximo token de acordo com a técnica de sampling

From Tokens to Text

  • Etapa de previsão: cálculo da distribuição de probabilidade para todos os tokens candidatos
  • Etapa de seleção: escolha do token conforme uma estratégia específica de sampling
  • Como simplesmente escolher o token de maior probabilidade tende a gerar textos monótonos ou repetitivos, as técnicas de sampling são importantes

Sampling

Temperature

  • Valores baixos produzem resultados mais conservadores e repetitivos, enquanto valores altos incentivam resultados criativos, mas aumentam a possibilidade de erros
  • Divide os logits pelo valor de temperatura para ajustar a nitidez (concentração) da distribuição de probabilidade

Presence Penalty

  • Reduz a chance de reaparecimento de um token que já apareceu ao menos uma vez
  • Considera apenas se ele já foi usado ou não, sem levar em conta quantas vezes apareceu

Frequency Penalty

  • Aplica penalização proporcional ao número de ocorrências
  • Quanto mais frequente uma palavra, maior a penalização, o que ajuda a aumentar a diversidade

Repetition Penalty

  • Aplica penalidade assimétrica a logits positivos e negativos para tokens já usados
  • É eficaz para evitar loops de repetição, mas pode prejudicar a consistência do contexto

DRY (Don't Repeat Yourself)

  • Detecta a repetição de padrões de n-gram e penaliza a probabilidade dos tokens que levariam à repetição
  • Quanto mais longa e mais recente a repetição da frase, mais forte é a supressão
  • É excelente para reduzir repetições mantendo a naturalidade em textos criativos

Top-K

  • Mantém apenas os K candidatos mais prováveis e descarta os demais tokens
  • Remove amostras extremas enquanto preserva certo nível de aleatoriedade

Top-P (Nucleus Sampling)

  • Mantém apenas os tokens até que a probabilidade acumulada atinja P, descartando o restante
  • É adaptativo porque o tamanho do conjunto de candidatos muda conforme a confiança do modelo

Min-P

  • Mantém apenas os tokens que tenham pelo menos uma proporção mínima em relação ao token de maior probabilidade
  • A filtragem se ajusta dinamicamente de acordo com a confiança do modelo

Top-A

  • Filtra candidatos usando um limiar proporcional ao quadrado da probabilidade do token mais provável
  • Quanto maior a confiança, mais rigorosa é a filtragem aplicada

XTC

  • Com certa probabilidade, remove intencionalmente os candidatos mais prováveis para induzir escolhas menos óbvias
  • É uma técnica voltada a respostas atípicas ou criativas

Top-N-Sigma

  • Seleciona tokens válidos com base no desvio padrão da distribuição de probabilidade
  • A filtragem baseada em características estatísticas responde com flexibilidade a diferentes situações

Tail-Free Sampling (TFS)

  • Usa a segunda variação (curvatura) do gradiente de probabilidade para distinguir candidatos relevantes dos de cauda longa
  • É uma forma de filtrar encontrando um ponto de corte natural

Eta Cutoff

  • Ajusta dinamicamente o critério de filtragem de acordo com a entropia (incerteza) da distribuição
  • Quanto maior a confiança, mais tokens são removidos; quanto menor a confiança, mais flexível ele é

Epsilon Cutoff

  • Remove tokens de baixa probabilidade usando um limiar de probabilidade fixo
  • É simples e previsível, além de útil para eliminar caudas longas desnecessárias

Locally Typical Sampling

  • Prefere tokens cujo surprisal esperado (diferença em relação ao valor previsto) esteja próximo da média
  • Em vez de escolher o token mais provável ou o mais estranho, induz uma escolha "típica"

1 comentários

 
GN⁺ 2025-05-06
Comentários no Hacker News
  • Não menciona que o sampler não consegue acessar o estado interno do modelo

    • É apenas aplicar matemática à distribuição de saída; se você não for tão inteligente quanto o modelo, não consegue decodificá-lo
    • Samplers como penalidade de repetição ou DRY fazem o modelo não se repetir por conta própria, mas isso exige um treinamento melhor
    • Hackear o processo autorregressivo permite melhorias simples como o Min-P
    • Tentar transformar um modelo ruim em um modelo bom é uma abordagem equivocada
  • Escrevi um guia de sampling para Ollama/llama.cpp

    • Aberto a feedback ou sugestões de correção
  • Quando se tenta fazer um LLM gerar uma "ideia", a seleção do vetor de logits acaba quebrando a ideia original

    • Se a ideia fosse completa, não haveria necessidade de sampling sobre os logits
  • Tudo é explicado de forma simples, o que abre espaço para tentar coisas novas

    • Por exemplo, e se palavras inteiras fossem usadas como tokens?
    • Dá para criar um "robô" com um "dialeto de robô" limitado
    • Não haveria capacidade para palavras novas ou raras, mas seria possível ajustar os dados de treino e de entrada para traduzi-los ao vocabulário existente
    • Isso dá ao usuário uma expectativa sobre os tipos de resposta que o robô consegue dar bem
  • Será que um modelo LLM poderia fazer tokenização implicitamente?

    • Em vez de construir um tokenizer separado, usar strings de caracteres e deixar a rede neural convertê-las em tokens
    • Os pesos dessa rede seriam treinados junto com o restante do LLM
  • Relacionado a isso, nosso artigo sobre min_p ficou em 18º lugar entre 12.000 submissões no ICLR

    • O pôster fez sucesso
    • Houve uma discussão com Yoshua Bengio na apresentação oral
    • Dá para confirmar que Top N sigma é atualmente o sampler mais comum
    • A temperatura pode ser ajustada para valores muito mais altos do que hoje
    • O caso especial de top_k = 2 com temperatura extremamente alta é bem interessante
  • Fico me perguntando se o sampling realmente resolve as limitações do modelo ou se apenas encobre um problema mais profundo

  • "Sampling" cobre muito mais coisas do que eu imaginava

  • Documento muito útil, com explicações claras e cobrindo bastante coisa

    • Alguém sabe quem escreveu?
    • A seção DRY - "penalidade de repetição" foi interessante
    • Muitas vezes quero que o LLM produza uma cópia exata da entrada
    • Ao resumir conversas longas, peço a citação exata mais descritiva
    • A penalidade DRY pode entrar em conflito com esse objetivo
  • Eu não tinha percebido que tanta manipulação acontece depois da escolha inicial da temperatura do softmax