3 pontos por GN⁺ 2025-05-06 | 1 comentários | Compartilhar no WhatsApp
  • LLMs calculam a distribuição de probabilidade do próximo token e então escolhem um deles; a amostragem adiciona aleatoriedade controlada ao método greedy para ajustar a diversidade da saída
  • temperature, penalidade de repetição, DRY, Top-K/Top-P/Min-P alteram os logits ou a distribuição de probabilidade antes ou depois da seleção do token, reconfigurando o conjunto de candidatos e suas probabilidades relativas
  • Cada sampler mantém ou exclui tokens com base em critérios diferentes, como quantidade fixa, probabilidade acumulada, proporção em relação à maior probabilidade, entropia, repetição de n-gramas, surprisal etc.
  • Em pipelines reais, a ordem de aplicação de filtragem, penalidades, temperature e ajuste da distribuição muda muito o resultado, e dependendo da combinação os efeitos podem se complementar ou se sobrepor
  • O tamanho do vocabulário e a forma de segmentação do tokenizador mudam a unidade à qual o modelo atribui probabilidade e os padrões detectados por samplers baseados em n-gramas, como o DRY

Estrutura básica de geração e amostragem em LLMs

  • Um LLM recebe texto como entrada, como um prompt do usuário, e calcula o token correspondente à próxima palavra
  • O modelo tem um vocabulário composto por tokens válidos, e consulta esse vocabulário durante o treinamento e a inferência
  • Durante o treinamento, ele vê muito texto e constrói um mapa interno de probabilidades dos tokens; durante a inferência, decide o próximo token com base nessas probabilidades aprendidas
  • O processo de geração se divide em duas etapas
    • Previsão: calcula a distribuição de probabilidade para todos os possíveis próximos tokens em cada posição
    • Seleção: escolhe um token dessa distribuição e o adiciona à saída
  • O método greedy sempre escolhe o token mais provável, então tende a produzir textos repetitivos e determinísticos
  • A amostragem introduz aleatoriedade controlada na etapa de seleção para tornar a saída mais diversa

Por que tokens e não palavras ou caracteres

  • A tokenização em nível de caractere transforma o mesmo texto em sequências muito mais longas; tokenization pode virar 12 tokens em vez de 2 ou 3 em um método de subpalavras
  • Sequências longas exigem mais computação em self-attention, e o modelo precisa conectar informações de várias posições, como t-h-e, em um único conceito
  • A tokenização em nível de palavra precisaria incluir palavras completas do inglês e de vários idiomas, tornando a matriz de embeddings muito grande e cara
  • Ao encontrar palavras novas ou raras, o método por palavras normalmente as substitui por um token "unknown", perdendo informação semântica
  • A tokenização por subpalavras consegue representar palavras novas como grompuficious por meio de combinações de subpalavras já existentes
  • Em modelos de linguagem com novo tokenizador, o tokenizador é treinado em amostras representativas dos dados de treino para encontrar subpalavras frequentes, e o tamanho do vocabulário é definido antecipadamente

Valores centrais com que os samplers trabalham

  • logits: pontuações não normalizadas que o modelo produz para cada token do vocabulário; quanto maior o valor, maior a chance de ser o próximo token
  • softmax: converte logits em valores entre 0 e 1 e os transforma em uma distribuição de probabilidade cuja soma total é 1
  • entropy: representa a incerteza ou aleatoriedade da distribuição de probabilidade; quanto maior, menos certeza o modelo tem sobre o próximo token
  • perplexity: indica o quanto o modelo se surpreende com um texto; quanto menor, maior a confiança
  • n-gram: sequência de n tokens consecutivos; "once upon a" é um 3-gram
  • context window: número máximo de tokens que um LLM pode processar de uma vez, incluindo o prompt e a saída gerada

Samplers básicos que ajustam diretamente a distribuição de probabilidade

  • Temperature funciona como um “controle de criatividade” do LLM
    • Uma temperature baixa torna os tokens com maior pontuação ainda mais prováveis, aumentando a previsibilidade
    • Uma temperature mais alta, como 0.7~1.0, permite que o 3º ou 4º candidato também seja escolhido, aumentando a diversidade, mas também a chance de erro
    • Uma temperature muito alta, acima de 1.0, pode deixar a saída áspera e imprevisível se não for usada com outras técnicas de amostragem, como Min-P
    • Tecnicamente, os logits são divididos pelo valor de temperature antes da aplicação do softmax
  • Presence Penalty aplica uma penalidade fixa a tokens que já apareceram pelo menos uma vez
    • Independentemente da quantidade de ocorrências, subtrai o valor da penalidade dos logits dos tokens já usados anteriormente
    • Como há estratégias de penalidade melhores, em geral não é recomendada
  • Frequency Penalty aumenta a penalidade proporcionalmente ao número de ocorrências do token
    • Se um token apareceu três vezes, seus logits são reduzidos em 3 × frequency penalty
    • Quanto mais o mesmo token se repete, menor vai ficando a chance de ele ser escolhido de novo
  • Repetition Penalty se aplica a tokens que aparecem tanto no prompt quanto na saída gerada
    • Logits positivos são divididos pela penalidade, e logits negativos são multiplicados por ela para ficarem ainda mais negativos
    • É útil para quebrar loops de repetição, mas valores agressivos podem prejudicar a consistência

DRY para impedir padrões repetitivos

  • DRY(Don't Repeat Yourself) detecta padrões repetitivos de forma mais ampla do que simples repetição de palavras
  • Procura repetições de n-gramas na sequência de tokens gerada e penaliza tokens que continuariam esse padrão
  • Se um padrão como "the cat sat on the" já apareceu antes e o mesmo fluxo começa de novo, o próximo token que antes vinha em seguida se torna menos provável
  • Quanto mais longo o padrão repetido, mais forte é a penalidade aplicada
  • Os principais parâmetros incluem multiplier, que controla a força da penalidade; base, que determina o aumento conforme o comprimento do n-grama; além do comprimento mínimo e máximo do n-grama, sequence breaker e range limit
  • sequence breakers, como pontuação, podem reinicializar a correspondência de padrões, e também pode haver limitação de faixa para considerar apenas o texto mais recente por eficiência
  • É especialmente útil em áreas como escrita criativa, em que frases repetidas soam artificiais

Samplers de filtragem que cortam candidatos

  • Top-K mantém apenas os K tokens com maior pontuação em vez de considerar o vocabulário inteiro
    • Se K for 40, a escolha será feita apenas entre os 40 candidatos mais prováveis
    • Os demais logits são definidos como -∞, então após o softmax sua probabilidade se torna na prática 0
  • Top-P(Nucleus) mantém o menor conjunto de candidatos cuja probabilidade acumulada ultrapassa o limiar P, em vez de usar uma quantidade fixa
    • Se P for 0.9, os candidatos de maior probabilidade são incluídos até que a probabilidade acumulada chegue a 90%
    • Quando o modelo está confiante, sobram poucos candidatos; quando está incerto, mais candidatos permanecem
    • Pelo menos um token sempre é mantido, preservando o token de maior probabilidade
  • Min-P define uma linha de base de qualidade como proporção da probabilidade do token mais provável
    • Se a maior probabilidade for 0.6 e o Min-P for 0.1, o limiar será 0.06
    • Tokens com probabilidade baixa demais em relação ao melhor candidato são excluídos
    • Normalmente é usado com temperature alta, como 1.0~1.2, e com valores bem baixos de Min-P, na faixa de 0.1
    • É mais eficiente porque não exige ordenar o vocabulário inteiro, ao contrário de Top-K ou Top-P
  • Top-A usa um limiar proporcional ao quadrado da maior probabilidade
    • Quanto mais confiante o modelo estiver, maior fica o limiar pelo efeito quadrático, reduzindo fortemente os candidatos
    • Esse método surgiu antes do Min-P; tecnicamente, o Min-P é linear, enquanto o Top-A é baseado em quadrado
  • Epsilon Cutoff remove tokens abaixo de um limiar fixo de probabilidade
    • Aplica o mesmo critério independentemente das características da distribuição
    • É simples e previsível, mas não é adaptativo como o Eta Cutoff

Samplers que usam a forma da distribuição e a incerteza

  • Top-N-Sigma cria um limiar estatístico usando o valor máximo dos logits e o desvio padrão
    • O critério é logit máximo - N × desvio padrão
    • Ele reflete não só os valores absolutos da distribuição, mas também o grau de dispersão das pontuações
  • Tail-Free Sampling(TFS) observa a curvatura da distribuição de probabilidade para encontrar o ponto em que começa a cauda longa
    • Ordena os logits em ordem decrescente, converte em probabilidades e calcula o valor absoluto da segunda diferença
    • Remove tokens após o ponto em que a distribuição acumulada da curvatura ultrapassa um limiar
    • Em vez dos valores absolutos de probabilidade, foca na forma da distribuição
  • Eta Cutoff usa ao mesmo tempo a probabilidade individual e a entropia total
    • Em situações de baixa entropy, quando o modelo está confiante, aplica um cutoff mais rígido
    • Em situações de alta entropy, quando o modelo está incerto, aplica um cutoff mais permissivo
    • O limiar é definido pelo menor valor entre eta e sqrt(eta) * exp(neg_entropy)
  • Locally Typical Sampling avalia não a probabilidade em si, mas o quão próximo algo está do surprisal médio
    • Tokens excessivamente previsíveis e tokens surpreendentes demais são vistos como menos “típicos”
    • Os tokens são ordenados pelo menor desvio de surprisal, e typical-p define quanta probabilidade acumulada será mantida
  • Quadratic Sampling não faz filtragem; em vez disso, aplica uma transformação não linear a toda a distribuição de logits
    • Com base no token de maior pontuação, ajusta as diferenças entre ele e os outros logits com termos quadráticos e cúbicos
    • smoothing factor controla a intensidade do ajuste, e smoothing curve controla a forma da transformação
    • Se s for positivo, a distribuição fica mais pontuda; se k for positivo, a tendência é achatar a distribuição

Métodos avançados para controlar previsibilidade e diversidade

  • XTC(eXclude Top Choices) é ativado de forma probabilística e exclui de propósito algumas das escolhas mais previsíveis
    • Usa como parâmetros a probabilidade de ativação e o limiar de exclusão
    • Entre os principais candidatos acima do limiar, exclui um único candidato com a menor pontuação e remove os demais candidatos de alta probabilidade
    • Diferentemente dos filtros comuns, que cortam candidatos de baixa probabilidade, ele mira justamente as escolhas mais óbvias
  • Mirostat é um método de feedback dinâmico para manter um surprisal-alvo
    • Usa o limiar atual mu para filtrar tokens surpreendentes demais
    • Depois de escolher o token, calcula o surprisal real e o compara com o valor-alvo tau
    • eta é a learning rate que determina a velocidade de ajuste de mu
    • A fórmula de atualização é mu_{t+1} = mu_t - η × (surprisal_t - τ)
    • É uma abordagem autorregulada que busca manter constante a perplexity da geração de texto
  • Dynamic Temperature Sampling altera a temperature com base na entropy da distribuição atual
    • Em baixa entropy, usa temperature mais alta para introduzir diversidade
    • Em alta entropy, usa temperature mais baixa para concentrar a saída
    • O usuário define temperature mínima, temperature máxima e exponent
    • A fórmula é temperature = min_temp + (max_temp - min_temp) * (normalized_entropy ^ exponent)

Beam Search e Contrastive Search

  • Beam Search mantém várias sequências candidatas em paralelo e busca o caminho com maior probabilidade total
    • Mantém tantas sequências quanto o beam width e, a cada etapa de decoding, expande os candidatos e preserva apenas os melhores
    • Em geral, amostra 2k candidatos em cada etapa para que ainda sobrem opções suficientes mesmo após excluir sequências concluídas etc.
    • A pontuação é a soma dos logprobs de todos os tokens da sequência
    • Produz deterministicamente a mesma saída para a mesma entrada, tem custo alto e hoje é pouco usado porque há métodos de amostragem melhores
  • Contrastive Search otimiza ao mesmo tempo alta probabilidade contextual e evasão de padrões repetitivos
    • Primeiro escolhe candidatos via Top-K
    • Depois compara a representação oculta do contexto existente com a continuação candidata para calcular uma penalidade de degeneração baseada em similaridade
    • A pontuação final é score(x) = α * P(x) - (1-α) * sim(x, context)
    • α ajusta o equilíbrio entre plausibilidade e diversidade
    • Assim como o Beam Search, não é um método amplamente usado

Como a ordem de aplicação dos samplers muda o resultado

  • Em implementações reais de LLM, é comum aplicar as técnicas de amostragem em sequência; algumas bibliotecas permitem mudar a ordem por requisição, mas a maioria não permite
  • Um pipeline comum segue esta ordem
    • O modelo gera os raw logits
    • Tokens que não devem ser considerados são filtrados ou proibidos
    • São aplicadas penalidades de repetition, frequency e presence
    • São aplicadas técnicas baseadas em padrões, como DRY
    • É aplicado o escalonamento por temperature
    • São aplicadas técnicas de ajuste da distribuição, como Top-K, Top-P e Min-P
    • Um token é então amostrado da distribuição de probabilidade final
  • Dependendo da implementação, a temperature pode ser aplicada no início ou no fim, fora das penalidades e dos samplers pós-softmax
    • Na maioria das tarefas, a temperature é aplicada antes
    • Em escrita criativa, normalmente é aplicada por último
  • Cada sampler altera o terreno probabilístico que o sampler seguinte irá encontrar
    • Penalidades reduzem os picos de tokens já usados e elevam relativamente os outros candidatos
    • Temperature baixa torna a distribuição mais aguda, e temperature alta a achata
    • Filtros como Top-K/P removem tokens de baixa probabilidade e renormalizam as probabilidades restantes

Interações dependentes da ordem e combinações

  • A sequência Temperature → Filtering primeiro reconfigura toda a distribuição e só depois filtra
    • Temperature baixa concentra a massa de probabilidade em poucos tokens antes da filtragem
    • Temperature alta espalha mais a massa de probabilidade antes de a filtragem acontecer
  • A sequência Filtering → Temperature primeiro corta os candidatos, e depois a temperature ajusta apenas as probabilidades relativas entre os tokens restantes
    • Mesmo com temperature alta, tokens removidos pelo filtro original não voltam
    • Com Top-K 40 e temperature 1.5, se o filtro vier primeiro, só os 40 primeiros candidatos originais permanecem
  • Penalties → Temperature reduz primeiro a probabilidade dos tokens repetidos, e depois a temperature amplifica ou enfraquece esse ajuste
    • Em temperature alta, o efeito das penalidades pode praticamente desaparecer
    • Em temperature baixa, as penalidades podem ser exageradamente amplificadas
  • Temperature → Penalties faz as penalidades atuarem sobre uma distribuição já reconfigurada pela temperature, o que pode produzir um efeito mais equilibrado e previsível
  • O DRY é sensível à posição no pipeline
    • Se for aplicado no começo, o efeito anti-repetição é forte, mas samplers posteriores podem puxar de volta tokens penalizados
    • Se for aplicado no fim, pode ficar mais fraco porque samplers anteriores já removeram alguns candidatos, mas ainda funciona como última linha de defesa contra repetição antes da escolha do token
  • Há combinações complementares
    • Top-K + Top-P: Top-K impõe um limite rígido, e Top-P se adapta ao grau de confiança do modelo
    • Temperature + Min-P: temperature alta achata a distribuição, e Min-P impõe um piso de qualidade em relação ao melhor candidato
  • Também há combinações que entram em conflito
    • High Temperature + Low Top-K: um Top-K baixo restringe fortemente os candidatos e acaba anulando muito do efeito da temperature
    • Uso simultâneo de vários métodos de filtragem: se Top-K, Top-P, Min-P e TFS forem usados juntos, o método mais restritivo tende a dominar e os demais podem ficar redundantes
    • XTC + Top-A: como ambos tentam excluir escolhas do topo de maneiras diferentes, podem estreitar demais o espaço de amostragem

Como o tokenizador cria o espaço de amostragem

  • O tokenizador define sobre o que o modelo prevê probabilidades e quais candidatos os samplers irão manipular
  • Algoritmos de subpalavras equilibram o problema de sequências longas da abordagem por caracteres com o problema de vocabulário gigante e unknown da abordagem por palavras
  • BPE(Byte Pair Encoding) começa com um vocabulário baseado em caracteres ou bytes e faz fusões repetidas dos pares de símbolos adjacentes mais frequentes no corpus de treino
    • As fusões continuam até atingir o tamanho de vocabulário desejado
    • Como exemplos de tamanho de vocabulário, são citadas 32000 ou 128256 unidades
    • O BPE padrão pode exigir pre-tokenization com base em espaços e pontuação, e o tratamento de whitespace pode não ser consistente entre implementações
  • SentencePiece trata diretamente o texto como sequência de caracteres Unicode, sem segmentação prévia
    • Pode codificar espaços em branco como parte do token
    • Como opera em Unicode bruto, pode codificar explicitamente whitespace como U+2581, tornando tokenization e de-tokenization reversíveis e sem perda
    • Internamente, pode implementar BPE ou um modelo de linguagem unigram
    • É popular em LLMs modernos por sua independência de idioma e reversibilidade

Efeitos do tamanho do vocabulário, fronteiras de token e palavras raras

  • O tokenizador tem um tamanho de vocabulário fixo; vocabulários maiores comportam mais palavras inteiras, enquanto os menores dependem mais de subpalavras
  • Se "sampling" ou "probability" forem um único token, o modelo prevê a possibilidade do conceito inteiro de uma vez
    • Em construções comuns, isso permite saídas mais diretas e previsíveis
    • Em palavras raras, podem surgir problemas com <UNK> ou combinações estranhas de subpalavras
  • Se "sampling" for dividido em sampl + ing, por exemplo, o modelo faz previsões em etapas mais granulares
    • Se samplers como temperature permitirem, pode haver espaço para trocar sampling por sampler
    • Palavras raras podem ser montadas a partir de fragmentos
    • Se o modelo ficar preso em prefixos comuns de subpalavras, a saída pode ficar menos coerente ou travada
    • Penalidades como DRY passam a rastrear sequências mais curtas e semanticamente menos claras
  • A mesma expressão pode ser segmentada de forma diferente dependendo do tokenizador
    • "State-of-the-art" pode virar State + - + of + - + the + - + art, ou no estilo SentencePiece State + _of + _the + _art
    • Se aparecer com muita frequência, a expressão inteira também pode virar um único token
  • As fronteiras entre tokens afetam diretamente samplers baseados em n-gramas, como o DRY
    • Se "once upon a time" forem 4 tokens, o DRY detecta facilmente esse 4-gram
    • Se for um único token, fica mais difícil aplicar a mesma penalidade sem fazer rollback da saída
  • Palavras raras ou novas podem ser decompostas em fragmentos conhecidos no BPE e no SentencePiece
    • Se virar <UNK>, o sampler perde uma opção significativa a considerar
    • O método por subpalavras permite combinar fragmentos de forma criativa, mas exige várias etapas de amostragem para formar uma palavra rara, o que aumenta a chance de desvio no meio do caminho em comparação com um único token conhecido

1 comentários

 
GN⁺ 2025-05-06
Opiniões do Hacker News
  • A propósito, nosso artigo sobre min_p ficou em 18º lugar entre 12.000 submissões ao ICLR e foi selecionado para apresentação oral
    https://iclr.cc/virtual/2025/oral/31888
    O pôster também foi popular: https://iclr.cc/media/PosterPDFs/ICLR%202025/30358.png?t=174...
    A apresentação oral pode ser vista aqui. Há uma parte em que dão uma alfinetada no Yoshua Bengio sobre esse tema, e ele acaba sendo o primeiro a fazer uma pergunta. O segundo apresentador começa por volta de 19:30, com os slides da apresentação junto, e é bem engraçado: https://iclr.cc/virtual/2025/session/31936
    Artigo: https://arxiv.org/abs/2407.01082
    Como um dos autores do min_p, posso confirmar que, hoje, o melhor sampler de uso geral, de longe, é o Top N sigma. Além disso, a temperature pode e deve ser ajustada para valores muito mais altos do que se usa hoje. Com técnicas como min_p ou top N sigma, até temperature 100 é totalmente aceitável
    Outra coisa: a combinação top_k = 2 com temperature extremamente alta, que os autores não recomendam no fim do artigo, também é muito interessante por si só. Ela gera erros de ortografia a cada cerca de 10 palavras, mas ao mesmo tempo parece produzir uma criatividade bastante interessante

    • Fico curioso se existe algum sampler que, na prática, não seja guloso. Ou seja, algo que realmente faça busca em árvore
      Sei que o fator de ramificação é absurdamente grande e que o custo de expandir nós também é alto, mas sempre achei estranho que não se faça busca de fato
  • Uma coisa que faltou aqui é que o sampler não tem acesso ao estado interno do modelo. O sampler apenas aplica matemática básica à distribuição de saída e, embora essa distribuição tecnicamente carregue um pouco de semântica, ela não pode ser decodificada a menos que você seja tão inteligente quanto o próprio modelo
    O mesmo vale para samplers como penalidade de repetição ou DRY, explicados aqui. O modelo pode se repetir de inúmeras maneiras diferentes, e a única forma de impedir todas elas é com treinamento melhor, não com busca de n-gramas ou técnicas clássicas de processamento de linguagem natural. É como tentar tapar todos os buracos com os dedos — quantos dedos você tem?
    Hackear o processo autorregressivo pode trazer melhorias ou truques engenhosos de fruta baixa, como Min-P, mas, se o objetivo é transformar um modelo ruim em um modelo bom, a direção está errada

    • Não, o objetivo é transformar um modelo sem criatividade em um modelo criativo. Por causa da ideia de que sampling não importa ou de que isso violaria a bitter lesson, tivemos que apontar explicitamente, na apresentação oral do ICLR, que toda essa área tem um enorme ponto cego para esse tipo de pesquisa
      Top n sigma existe desde meados de 2024, e min_p desde 2023, mas ainda estamos esperando que essas inovações sejam integradas fora do open source, ou seja, fora de HF/vllm. Os provedores de API estão sendo deliberadamente lentos porque não querem assumir o risco de os modelos ficarem criativos demais, e também há uma boa chance de que temperatures altas quebrem watermarking
      Outra coisa: é muito fácil fazer o modelo saber quais são suas próprias configurações de sampling. Basta reinserir essas configurações no modelo a cada token ou a cada geração. Por exemplo, isso é possível com geração estruturada. O modelo pode controlar suas próprias configurações de sampling e, com um pouquinho de programação adicional, pode “acessar o estado interno”. Agora esse código também pode ser escrito pelo próprio modelo
    • O foco principal deste guia parece ser eficiência e evitar explosão de complexidade
  • Recentemente também escrevi um pequeno guia de sampling para Ollama/llama.cpp, e feedbacks ou sugestões de correção são bem-vindos: https://smcleod.net/2025/04/comprehensive-guide-to-llm-sampl...

  • Gosto do fato de que tudo está bem organizado e explicado de forma simples, abrindo espaço para pensar onde novas tentativas poderiam ser eficazes
    Por exemplo, por que não usar palavras inteiras como tokens? Poderíamos criar um “robô” com um “dialeto robótico” limitado. Ele não teria capacidade de lidar com palavras novas ou raras, mas poderíamos modificar os dados de treinamento e de entrada para traduzir essas palavras para o vocabulário existente. Isso criaria um mapeamento muito menor, seria literalmente mais robótico, e o usuário teria expectativas, como com o C-3PO, sobre que tipo de resposta esse robô sabe dar bem

    • Tokenizers baseados apenas em palavras eram o que as pessoas usavam na época de RNN/LSTM. Não há ganho funcional em relação a métodos de tokenização como BPE ou WordPiece/SentencePiece, e a qualidade piora porque fica mais difícil usar pistas semânticas importantes, como pontuação
  • Se a tentativa é fazer um LLM produzir ideias, e não simplesmente “o próximo token”, então o processo de escolha sobre o vetor de logits parece quebrar essa ideia original. Se a ideia já estiver completa, não deveria ser necessário usar sampling sobre logits
    Nesse enquadramento, o sampling não deveria acontecer em um nível tão próximo da saída, isto é, em “qual é a próxima palavra a dizer”

    • LLMs são treinados para maximizar a probabilidade de acertar o próximo token, não “ideias”. Não dá para definir ideias como objetivo de perda de treinamento
  • Algumas semanas atrás, criei um texto interativo sobre um tema relacionado, sampling com restrições. Este texto é bem mais completo, porém
    http://michaelgiba.com/grammar-based/index.html

  • Será que um modelo LLM poderia fazer tokenização implicitamente? Digo, sem criar um tokenizador separado, aceitar strings arbitrárias e então deixar a rede neural convertê-las em tokens, treinando os pesos dessa rede junto com o restante do LLM

    • Isso já é feito. Redes neurais não conseguem lidar diretamente com tokens; elas só podem receber vetores de números reais e entradas diferenciáveis[0]. Então não se passa simplesmente os tokens 123 e 456; é preciso transformar cada token em um vetor one-hot. É um vetor em que apenas a posição apontada pelo ID do token é 1 e todo o resto é 0
      Esses vetores one-hot passam por uma camada linear e são comprimidos para o tamanho do estado oculto do modelo. Por exemplo, o vocabulário de tokens pode ter de 10 mil a 100 mil itens, mas o tamanho do estado oculto pode ser algo como 500 a 2.000. Todo o restante do modelo opera no espaço de estados ocultos[1], onde existem vários conceitos de alto nível
      Se a tokenização for removida, o codificador terá de fazer mais trabalho para chegar ao espaço de estados ocultos com que estamos acostumados. Talvez ele encontre uma codificação mais eficiente de bytes não pareados para o espaço oculto, mas isso parece improvável, considerando que a tokenização da maioria dos modelos já se baseia nas propriedades estatísticas do conjunto de treinamento. Se não combinarmos automaticamente “anti” ou “ism” em um único token antes de passá-los ao modelo, as cabeças de atenção das camadas inferiores do modelo terão de fazer a mesma coisa
      Antigamente, modelos eram treinados com sequências de caracteres e depois migraram para tokenização por eficiência, então esse trade-off provavelmente não vale a pena
      [0] Não dá para simplesmente fornecer uma lista de IDs de tokens. O token 123,25 não tem significado matemático, e aumentar ou diminuir um ID de token também não tem significado
      [1] O desempenho melhora, mas a interpretabilidade fica mais difícil. Em particular, os vetores de base do espaço oculto não correspondem diretamente a palavras ou conceitos, e todos os conceitos existem numa espécie de anel N-dimensional
  • Chamar de moderno o ato de atualizar técnicas para usar uma tecnologia inventada há poucos anos é quase uma questão de alfabetização. Se é moderno, é em contraste com o quê? Amostragem clássica de LLM?

    • Para fazer esse tipo de crítica, é melhor consultar o dicionário primeiro
      modern, adj. designed and made using the most recent ideas and methods
      https://dictionary.cambridge.org/us/dictionary/english/moder...
      O que este texto explica corresponde exatamente a essa definição. Nos últimos 7 anos, mais ou menos, houve muitos avanços nessa área; por exemplo, GPT 1, 2 e 3 são definitivamente muito antigos pelos padrões atuais e, no sentido da definição acima, não são modernos
    • Muitos desses algoritmos foram inventados por volta de 2019, por exemplo o TFS, ou são ainda mais antigos, como a temperature
    • LLMs são muito mais antigos. O Nobel relacionado também mostra como avanços de décadas atrás foram feitos
      O ChatGPT foi apenas o avanço popular. Antes disso, teclados de smartphones já usavam LLMs havia 10 anos
  • Documento realmente útil. As explicações são muito claras e o escopo é amplo
    Alguém sabe quem escreveu? Não há autor indicado e ele está em um pastebin gratuito de Markdown
    Achei interessante a parte sobre penalidade de repetição DRY. Muitas vezes eu quero que um LLM copie deliberadamente a entrada com exatidão na saída. Por exemplo, ao resumir uma conversa longa, costumo pedir citações exatas que melhor demonstrem os pontos, porque assim fica fácil pesquisar no original depois e verificar os fatos
    A penalidade DRY parece funcionar contra esse objetivo

    • Não sabia que não havia autoria indicada. O texto é de @AlpinDale