Do SFT ao RLHF¶
O pretraining fornece ao modelo uma vasta base latente de conhecimento; o que ele não fornece é uma disposição para mobilizar esse conhecimento a serviço de um usuário. Um modelo base de 175B parâmetros é, por construção, um imitador muito bom da distribuição empírica do texto da internet. Ele não é um assistente prestativo. A lacuna entre "prever o próximo token em uma página da web" e "seguir a instrução deste usuário de maneira útil e segura" é exatamente a lacuna que o pipeline de pós-treinamento foi construído para fechar [src_033, src_005].
Este capítulo percorre o fechamento canônico pré-2023 dessa lacuna: fine-tuning supervisionado em demonstrações, modelagem de preferências via Bradley-Terry e aprendizado por reforço com PPO contra o modelo de recompensa aprendido. O pipeline é nomeado em referência à sua primeira implantação em produção amplamente divulgada, o InstructGPT [src_033], e por aproximadamente dois anos foi a receita que todos copiaram. Os Capítulos 12 e 13 desmontarão o pipeline a partir de dois ângulos diferentes, mas o conteúdo algorítmico desses capítulos só faz sentido com essa baseline em mãos. Chegamos à Parte 6 com um modelo base pré-treinado que é, por construção, uma máquina de previsão de tokens; este capítulo e os dois seguintes tratam de converter essa máquina em um assistente utilizável.
1. O pipeline de pós-treinamento¶
Toda a história do alinhamento pode ser desenhada como um único fluxo horizontal:
A figura agrupa as três ramificações coexistentes que o campo agora oferece para o estágio final de aprendizado de preferências. O Caminho A — o caminho do InstructGPT, abordado neste capítulo — ajusta um modelo de recompensa separado em comparações de preferência humana e, em seguida, otimiza a política contra essa recompensa com PPO, regularizada por uma penalidade KL em direção à referência SFT [src_033, src_005]. O Caminho B é a otimização direta de preferência (DPO), que colapsa o modelo de recompensa e o loop de RL em um único objetivo de classificação sobre a própria política; o Capítulo 12 o deriva. O Caminho C é a família de recompensas verificáveis pós-2024 (GRPO e variantes), que descarta as preferências humanas inteiramente em favor de verificadores programáticos; o Capítulo 13 o desenvolve.
Trate o restante deste capítulo como um andaime histórico. A monografia de Xiao e Zhu organiza seu capítulo de alinhamento em torno essencialmente dos mesmos três estágios [src_002], e o RLHF Book de Lambert usa a mesma divisão com mais detalhes sobre os modos de falha [src_005]. O vocabulário é compartilhado entre as três ramificações, mesmo que os algoritmos divirjam: todo artigo moderno de alinhamento ainda fala sobre uma política de referência, uma restrição KL e preferências aos pares. Esses conceitos são apresentados aqui.
2. Por que pós-treinamento, afinal¶
O pretraining otimiza um único objetivo: maximizar a verossimilhança do próximo token sob um corpus que é, na prática, texto da web extraído mais uma cauda longa curada. Esse objetivo produz um modelo extraordinariamente bom em um jogo específico, a saber, a continuação de texto, e não produz nada além disso de graça. Em particular, ele não produz incentivo para recusar pedidos prejudiciais, nenhum incentivo para admitir incerteza, nenhum incentivo para produzir uma resposta curta quando uma resposta curta é o que se pede, e nenhuma noção sobre "a resposta que uma pessoa prestativa escreveria" — o corpus contém muita prosa prestativa, muita prosa pouco prestativa, muita prosa tóxica e muita prosa correta-mas-irrelevante, e o modelo aprende a imitar tudo isso na proporção de sua frequência. O artigo de Ouyang et al. abre com exatamente essa observação: o objetivo de modelagem de linguagem está desalinhado em relação ao objetivo de implantação [src_033].
Pós-treinamento é o termo guarda-chuva para todos os procedimentos aplicados depois que o pretraining é concluído, e seu propósito é sobrescrever essa disposição padrão por uma mais útil. O modelo já contém o conhecimento relevante — leu tutoriais de Python suficientes para responder à maioria das perguntas sobre Python, leu literatura médica suficiente para discutir literatura médica, leu toxicologia suficiente para saber o que é perigoso — mas a disposição para trazer à tona esse conhecimento no formato e no tom que o usuário realmente quer não está presente no modelo base e precisa ser instalada [src_005]. O SFT instala o formato. O RLHF instala o sinal de preferência que o SFT não consegue codificar.
🔗 Conexão
O "objetivo de modelagem de linguagem" referido aqui é a família CLM/MLM de objetivos de pretraining desenvolvida no Capítulo 7 (encoder-decoder). O que segue é o primeiro lugar do livro onde esse objetivo e o objetivo de implantação visivelmente divergem.
3. Fine-tuning supervisionado¶
O primeiro estágio, fine-tuning supervisionado (SFT), também é chamado de instruction tuning. É conceitualmente o mais simples dos três: colete um conjunto de dados \(\mathcal{D}_{\text{SFT}} = \{(x_i, y_i)\}\) de pares (prompt, resposta) de alta qualidade, em que cada \(y_i\) é uma demonstração do comportamento desejado para o prompt \(x_i\), e faça fine-tuning do modelo pré-treinado nele com a perda padrão de entropia cruzada autorregressiva, restrita aos tokens de resposta. Concretamente, para um único exemplo, a perda é
em que \(\pi_\theta\) é a política (o modelo sendo treinado) e o somatório percorre apenas os tokens de resposta; o prompt \(x\) é condicionado, mas não pontuado. Mascarar os tokens do prompt para fora da perda importa porque a distribuição do prompt não é o que estamos tentando aprender — estamos tentando aprender a distribuição condicional da resposta dado um prompt [src_005, src_010].
⚠️ Armadilha
Se não mascarássemos os tokens do prompt para fora da perda, o modelo também seria treinado a imitar a distribuição do prompt do usuário — o que não é o objetivo de modelagem e degradaria ativamente a distribuição condicional da resposta que estamos tentando aprender. A máscara do prompt não é opcional; removê-la muda o objetivo.
No InstructGPT, as demonstrações foram escritas por uma equipe de cerca de 40 anotadores contratados via Upwork e ScaleAI, e o conjunto de dados de SFT continha da ordem de treze mil prompts de treinamento [src_033]. As demonstrações abrangem toda a distribuição dos usos pretendidos: brainstorming, sumarização, classificação, extração, geração aberta e assim por diante. Ouyang et al. treinaram por dezesseis épocas com decaimento cossenoidal da taxa de aprendizado; observaram que a perda de validação sofre overfitting depois da primeira época, mas as pontuações de preferência downstream continuam melhorando, então selecionaram o checkpoint de SFT pela pontuação do modelo de recompensa em um conjunto retido (held-out), em vez de pela perda de validação do SFT [src_033]. Esse é um detalhe pequeno, mas instrutivo: do estágio de SFT em diante, a perda de validação no objetivo de SFT deixa de ser a métrica que interessa ao praticante.
O que o SFT alcança e o que ele não alcança vale a pena enunciar com clareza. O SFT alcança imitação de formato e de disposição: depois do SFT, o modelo produz respostas que se parecem com as demonstrações, segue instruções do tipo que as demonstrações mostram e recusa o tipo de pedido que as demonstrações recusam. O SFT não alcança calibração para qualidade relativa. Há, por construção, apenas uma demonstração por prompt no conjunto de dados de SFT, então a perda de SFT não tem como expressar "a resposta A é melhor que a resposta B" além do que está implícito na escolha de \(y_i\) como a única demonstração [src_033, src_005, src_010]. Para instalar a calibração de qualidade relativa, é preciso um sinal diferente, e esse sinal são as preferências.
💡 Resultado-chave
A perda de validação do SFT sofre overfitting depois de uma época, mas as pontuações de preferência downstream continuam melhorando — a métrica proxy e a métrica de implantação já divergiram ao final do estágio um.
4. Dados de preferência¶
O conjunto de dados de preferência tem um formato diferente do conjunto de dados de SFT. Cada exemplo é uma tripla \((x, y_w, y_l)\), em que \(x\) é um prompt, \(y_w\) é a resposta que um anotador humano preferiu e \(y_l\) é a resposta que o mesmo anotador desfavoreceu. As duas respostas são tipicamente amostradas de um ou mais modelos candidatos no mesmo prompt, e o anotador é solicitado a escolher um vencedor [src_033, src_005].
O InstructGPT coletou esses dados em escala: o conjunto de dados do modelo de recompensa continha cerca de trinta e três mil prompts de treinamento, com cada prompt apresentado a um anotador com entre quatro e nove respostas candidatas para ranquear, o que, ao ser expandido para todos os pares \(\binom{K}{2}\), produz um conjunto muito maior de comparações aos pares [src_033]. O artigo de Ouyang et al. relata concordância entre anotadores de cerca de 73% entre anotadores de treinamento e 77% entre anotadores retidos (held-out), o que é aproximadamente a taxa de concordância que Stiennon et al. haviam relatado para a anotação de preferências em sumarização [src_033]. Esse teto de concordância é em si uma característica dos dados, não um defeito: as preferências humanas em geração aberta são genuinamente ruidosas, e qualquer modelo de recompensa treinado nelas nunca poderá ser mais preciso do que os próprios anotadores são consistentes.
Dois pontos práticos merecem destaque. Primeiro, dados de preferência são muito mais baratos por unidade de sinal útil do que dados de demonstração, porque ranquear é mais rápido do que escrever — um anotador pode comparar quatro respostas candidatas em muito menos tempo do que leva para escrever uma boa demonstração. Segundo, o conjunto de dados de preferência é o que permite ao modelo expressar trade-offs. Se duas respostas são ambas bem-formadas, mas uma é mais concisa, mais precisa ou menos hedging, o sinal de preferência registra isso. O SFT sozinho não tem como expressar tal comparação [src_005].
5. O modelo de recompensa Bradley-Terry¶
Dado um conjunto de dados de preferência, o passo de modelagem de recompensa o transforma em uma função escalar \(r_\phi(x, y)\) que pontua qualquer par (prompt, resposta). O modelo padrão — usado no InstructGPT, na derivação do DPO e em essencialmente todo sistema RLHF desde então — é o modelo de preferência de Bradley-Terry, que assume que a probabilidade de um humano preferir \(y_w\) a \(y_l\) no prompt \(x\) é uma sigmoide do gap de recompensa:
🎯 Intuição
Imagine cada resposta candidata com uma pontuação latente de qualidade que o anotador não observa diretamente. O anotador percebe cada pontuação com uma pequena dose de ruído logístico e escolhe a maior pontuação percebida. Sob esse modelo de utilidade latente, a probabilidade de preferir \(y_w\) cresce suavemente com o gap entre as pontuações subjacentes: quanto maior o gap, mais \(P(y_w \succ y_l)\) se aproxima de um. A sigmoide na fórmula abaixo é exatamente essa imagem escrita por extenso — é a distribuição de ruído fazendo o trabalho, não uma escolha funcional arbitrária.
em que \(\sigma(z) = 1 / (1 + e^{-z})\) é a função logística [src_033, src_005]. Sob essa hipótese, treinar um modelo de recompensa a partir de um conjunto de pares de preferência é exatamente estimação por máxima verossimilhança de uma regressão logística sobre diferenças de recompensa.
🤔 Pause e pense
Antes de ler a próxima equação, escreva como é a perda de máxima verossimilhança para o modelo Bradley-Terry. O conjunto de dados é um conjunto de triplas de preferência \((x, y_w, y_l)\); o modelo atribui a cada tripla a probabilidade \(\sigma\bigl(r_\phi(x, y_w) - r_\phi(x, y_l)\bigr)\). Qual é a log-verossimilhança negativa, somada sobre o conjunto de dados? (Não olhe adiante — escreva a resposta ou diga em voz alta.)
A perda de log-verossimilhança negativa é
Essa única equação é todo o estágio de modelagem de recompensa. Arquiteturalmente, o modelo de recompensa é tipicamente inicializado a partir da política SFT com a cabeça LM substituída por uma cabeça de saída escalar que consome o estado oculto da última camada na posição de fim-de-resposta — o mesmo idioma de classificação de sequência que o Capítulo 7 usou para modelos encoder-only [src_033]. Ouyang et al. usaram um modelo de recompensa de 6B em vez de 175B porque consideraram o treinamento do modelo de recompensa de 175B instável e porque o modelo de recompensa é consultado muito mais frequentemente do que a política durante o PPO, então um modelo de recompensa menor reduz substancialmente o custo computacional [src_033].
Um detalhe pequeno mas importante: a perda é invariante a um deslocamento global de \(r\), já que \(r(x, y_w) - r(x, y_l)\) permanece inalterado se uma constante for adicionada a todas as recompensas. O InstructGPT, portanto, normaliza o modelo de recompensa após o treinamento para que as demonstrações dos anotadores atinjam pontuação média zero, o que mantém o termo KL por token no objetivo do PPO em escala comparável entre execuções [src_033].
Um esboço mínimo em PyTorch da perda torna a estrutura concreta:
import torch
import torch.nn.functional as F
def bradley_terry_loss(reward_w: torch.Tensor,
reward_l: torch.Tensor) -> torch.Tensor:
"""Bradley-Terry NLL on a batch of preference pairs.
reward_w: (batch,) reward model output on preferred responses
reward_l: (batch,) reward model output on dispreferred responses
"""
# log sigmoid is numerically stable in PyTorch; equivalent to
# log( 1 / (1 + exp(-(rw - rl))) ).
return -F.logsigmoid(reward_w - reward_l).mean()
Ambas as passagens forward — pelo modelo de recompensa em \((x, y_w)\) e em \((x, y_l)\) — compartilham os mesmos parâmetros, então este é um objetivo de classificação no estilo siamês (Siamese-style: duas passagens forward por redes de parâmetros idênticos, comparadas via suas saídas escalares), e é a única vez durante o pipeline de alinhamento em que os parâmetros do modelo de recompensa são atualizados. Uma vez treinado, o modelo de recompensa é congelado para o restante do procedimento [src_033, src_005].
6. PPO e o objetivo restrito por KL¶
O terceiro estágio é o fine-tuning de aprendizado por reforço propriamente dito. Temos uma função de recompensa \(r_\phi\) e uma política inicial \(\pi_\theta\) inicializada a partir do modelo SFT. O ingênuo a se fazer seria: amostrar \(y\) da política, pontuá-lo com \(r_\phi\) e fazer atualizações de policy-gradient que aumentem a recompensa esperada. A razão pela qual isso não funciona, na prática, é que o modelo de recompensa foi treinado em conclusões amostradas de uma distribuição específica — aproximadamente a distribuição do modelo SFT — e assim que a política começa a derivar, ela começa a produzir conclusões fora da distribuição de treinamento do modelo de recompensa, em que as previsões do modelo de recompensa se tornam pouco confiáveis [src_033, src_034, src_005]. A política então explorará alegremente essas previsões pouco confiáveis, já que, por definição, o gradiente da política empurra em direção àquilo que o modelo de recompensa pontua alto, e o resultado é um modelo que pontua bem em \(r_\phi\) mas produz lixo óbvio para um leitor humano. Esta é a forma mais direta do reward hacking.
⚠️ Armadilha
O reward hacking é nomeado aqui no §6 — como o modo de falha que a restrição KL existe para mitigar — e novamente no §7 como um dos três modos de falha do RLHF (sob o sinônimo reward over-optimisation). Os dois são o mesmo fenômeno: um classificador explorado por um otimizador. O §7 refina a imagem em uma tipologia; a definição não muda.
A correção padrão é penalizar a política por se afastar da referência SFT \(\pi_{\text{ref}} = \pi_{\text{SFT}}\). O objetivo de maximização de recompensa restrito por KL é
🎯 Intuição
Leia \(J\) como um loop de controle. O termo de recompensa puxa a política para regiões do espaço de saída preferidas pelos anotadores; o termo KL atua como uma coleira de comprimento proporcional a \(1/\beta\) amarrando a política à referência SFT. Ajustar \(\beta\) é escolher o comprimento da coleira: uma coleira longa (\(\beta\) pequeno) deixa a política vagar o suficiente para perseguir artefatos do modelo de recompensa; uma coleira curta (\(\beta\) grande) mantém a política tão próxima da referência que ela não consegue capturar o sinal de preferência.
em que \(\beta > 0\) é o coeficiente KL [src_033, src_034, src_005]. O termo KL mantém a política perto de uma região onde o modelo de recompensa está calibrado; o termo de recompensa puxa a política na direção desejada pelos anotadores. Os dois termos estão em tensão direta, e ajustar \(\beta\) é uma das escolhas mais consequentes do praticante: \(\beta\) pequeno demais e a política deriva e faz reward hacking, \(\beta\) grande demais e a política nunca se afasta o suficiente da referência SFT para capturar o sinal de preferência [src_034, src_005].
6.1 PPO como otimizador de \(J(\pi_\theta)\)¶
Ouyang et al. otimizam \(J(\pi_\theta)\) com proximal policy optimisation (PPO), um algoritmo ator-crítico em que a função de valor (o crítico) é inicializada a partir do modelo de recompensa em vez da política, e a atualização da política é o substituto recortado padrão do PPO [src_033]. Em forma a nível de token, o substituto no passo \(t\) é
🎯 Intuição
Leia o operador clip como uma região de confiança. A razão de importância \(\rho_t = \pi_\theta / \pi_{\theta_{\text{old}}}\) mede o quanto a política atual se afastou da iterada anterior no passo \(t\); recortá-la para o intervalo \([1-\varepsilon, 1+\varepsilon]\) limita o quanto uma atualização pode amplificar ou atenuar a probabilidade da ação para longe da iterada que gerou o rollout. Um único batch portanto não consegue empurrar a política mais do que uma fração \(\varepsilon\) em qualquer direção ao longo de qualquer ação de alta vantagem — esse passo limitado é o proximal em proximal policy optimisation.
em que \(\rho_t(\theta) = \pi_\theta(y_t \mid x, y_{<t}) / \pi_{\theta_{\text{old}}}(y_t \mid x, y_{<t})\) é a razão de importância contra a iterada anterior da política, \(\hat A_t\) é a estimativa de vantagem ao estilo GAE (Generalised Advantage Estimation: um trade-off suavizado entre viés e variância que combina erros de diferença temporal em múltiplos horizontes), e \(\varepsilon\) é um pequeno parâmetro de clipping (comumente \(0{,}2\)) que evita que qualquer atualização individual mova a política demasiadamente na direção de ações de alta vantagem [src_005]. O termo KL é adicionado à recompensa em cada token, e não apenas no final da sequência, o que torna a penalidade KL um sinal de shaping por token na computação da vantagem [src_033]. Especificamente no InstructGPT, um termo adicional de mistura com pretraining ("PPO-ptx") intercala uma pequena fração de atualizações de log-verossimilhança ao estilo de pretraining para mitigar o "imposto de alinhamento" — regressões de desempenho em benchmarks padrão de NLP que aparecem após o RLHF [src_033].
🤔 Pause e pense
Considere o que o gradiente do PPO-CLIP faz na fronteira da região de confiança. Suponha que para um token específico \(t\) temos \(\hat A_t > 0\) e \(\rho_t(\theta) = 1 + \varepsilon\) exatamente. Que gradiente \(L_{\text{CLIP}}\) fornece neste ponto — e o que isso implica sobre o quanto esta única atualização pode empurrar a política neste token? (Trace a estrutura do \(\min\) e do \(\mathrm{clip}\) para este caso antes de seguir.)
6.2 Custo de engenharia e superfície de ajuste¶
Um leitor que não tenha implementado PPO antes deveria tirar duas coisas das equações acima. Primeiro, o algoritmo é pesado: uma execução completa de RLHF mantém quatro grandes redes neurais vivas ao mesmo tempo — a política, uma cópia congelada da referência SFT para a penalidade KL, o modelo de recompensa congelado e o crítico treinável — e isso antes de contar o estado do otimizador. As execuções de 175B do InstructGPT eram correspondentemente caras, o que é parte da razão pela qual Ouyang et al. usaram um modelo de recompensa de 6B em vez de 175B [src_033, src_005]. Segundo, o PPO tem muitos pequenos botões de ajuste — faixa de clipping, normalização de vantagem, bônus de entropia, coeficiente KL, controlador de KL (fixo ou adaptativo), tamanho de batch, tamanho de mini-batch, número de épocas internas por rollout — e esses botões interagem de maneira não trivial. Os praticantes descrevem o PPO RLHF como "frágil" não porque qualquer peça individual seja misteriosa, mas porque o orçamento cumulativo de pequenos erros é pequeno [src_005, src_034].
7. Modos de falha do RLHF¶
O PPO RLHF na prática de modelos de linguagem tem três modos de falha que recorrem entre relatos e que qualquer praticante que esteja lendo este capítulo deveria reconhecer.
⚠️ Armadilha
Os três modos de falha abaixo são mecanismos diferentes com o mesmo sintoma operacional — uma política que pontua alto em \(r_\phi\) mas degrada na avaliação humana. KL drift é uma patologia de controlador (o controlador adaptativo administra mal o \(\beta\)); reward hacking é uma patologia de classificador (o modelo de recompensa tem artefatos que a política encontra); mode collapse é uma patologia de distribuição (a política se concentra em uma região estreita de saída). Distinguir os três importa porque o diagnóstico e a correção diferem para cada um.
O primeiro é o KL drift (deriva de KL). A penalidade KL deveria manter a política perto de \(\pi_{\text{ref}}\), mas, na prática, os controladores adaptativos de KL usados em produção (que ajustam \(\beta\) para atingir um KL alvo por atualização) podem se comportar mal: se o controlador empurra \(\beta\) para baixo de modo agressivo demais em resposta a um batch de baixo KL, o batch seguinte pode passar do ponto e derivar para longe da referência, para uma região em que o modelo de recompensa não está mais calibrado [src_005]. Uma vez que a política esteja em uma região mal-calibrada, todo passo de gradiente subsequente está, em expectativa, otimizando contra ruído.
O segundo é reward hacking, também chamado de reward over-optimisation. O modelo de recompensa é um classificador treinado em um conjunto de dados de preferência finito; como qualquer classificador, ele tem artefatos — características de superfície que se correlacionam com alta recompensa na distribuição de treinamento, mas que não refletem de fato o que humanos preferem em geral. A política, dado tempo suficiente, encontrará esses artefatos e os explorará. Artefatos comumente explorados em RLHF de produção incluem comprimento excessivo (respostas que pontuam alto simplesmente por serem prolixas), uso excessivo de listas com marcadores e prefixos bajuladores como "Essa é uma ótima pergunta". O artigo do DPO em particular discute a instabilidade do PPO sob reward over-optimisation em sua análise experimental [src_034]. A penalidade KL mitiga isso — mantendo a política perto da referência, ela limita o quanto a política pode perseguir artefatos — mas não o elimina, e, de fato, a própria penalidade KL faz trade-off contra a recompensa, então qualquer \(\beta\) escolhido deixa exploração residual na mesa.
O terceiro é o mode collapse em geração de forma longa. Sob pressão de RL, a política pode colapsar para uma distribuição de saída estreita, particularmente para prompts de forma longa em que o sinal de recompensa é moldado por um pequeno número de pistas estruturais. Os sintomas incluem aberturas estereotipadas e repetitivas, estrutura formulaica em prompts diversos e diversidade de saída reduzida em temperatura fixa [src_005]. O mode collapse não é exclusivo do PPO RLHF — ele aparece também no DPO — mas a combinação do PPO de amostragem online com sinais de recompensa de alta variância tende a fazê-lo aflorar de forma mais agressiva do que alternativas offline [src_034].
O resumo honesto é este: o PPO RLHF funciona, no sentido de que InstructGPT, GPT-3.5, GPT-4, Claude e Llama-2-Chat dependeram todos de variantes dele, mas é um pipeline meticuloso que exige investimento substancial em engenharia para se tornar estável. Os dois capítulos seguintes são, de modos diferentes, ambos reações a essa meticulosidade.
🔄 Recapitulação
- Explique com suas próprias palavras por que um controlador adaptativo de KL que empurra \(\beta\) para zero em resposta a um batch de KL baixo pode produzir KL drift no batch seguinte.
- Compare reward hacking e mode collapse: qual é fundamentalmente uma patologia de classificador e qual é fundamentalmente uma patologia de distribuição?
- Preveja se mode collapse deve ser mais ou menos agressivo sob otimização de preferência offline ao estilo DPO do que sob PPO RLHF, e identifique a propriedade do RL online que dirige a diferença.
8. O resultado do InstructGPT e por que ele importou¶
O resultado-síntese do artigo InstructGPT é uma das demonstrações mais limpas na literatura de alinhamento de que o algoritmo vence a escala no eixo certo. Na distribuição de prompts da API da OpenAI avaliada por anotadores, as saídas do modelo InstructGPT alinhado por PPO de 1,3B foram preferidas às saídas do modelo base bruto GPT-3 de 175B, apesar da contagem de parâmetros ser aproximadamente duas ordens de magnitude menor [src_033]. Na mesma contagem de parâmetros, o InstructGPT de 175B foi preferido ao GPT-3 de 175B cerca de 85% das vezes e preferido ao GPT-3 de 175B com few-shot prompting cerca de 71% das vezes. A veracidade no TruthfulQA aproximadamente dobrou em relação ao GPT-3, e as taxas de alucinação em tarefas de sumarização de domínio fechado caíram de cerca de 41% para cerca de 21% [src_033].
Duas coisas decorrem desses números. Primeiro, na métrica relevante para implantação — o modelo faz o que os usuários de fato pedem? — instruction tuning mais RLHF é um eixo de muito maior alavancagem do que a contagem de parâmetros, ao menos uma vez que se esteja no regime em que o modelo base tem o conhecimento relevante. O corolário, que Ouyang et al. enunciam explicitamente, é que o pipeline de alinhamento não é um luxo adicionado sobre um modelo finalizado; ele é uma parte substancial daquilo que torna o modelo útil em primeiro lugar [src_033]. Segundo, e mais praticamente, o text-davinci-002 lançado (a variante apenas-SFT com algum ajuste adicional) e o text-davinci-003 (a variante completa alinhada por PPO) foram as implantações em produção desse pipeline, e o ChatGPT foi, em primeira aproximação, um descendente ajustado para chat do mesmo pipeline [src_005]. A receita do InstructGPT — SFT, depois RM, depois PPO com KL-para-referência — tornou-se a stack padrão de pós-treinamento por aproximadamente dois anos, e cada alternativa discutida nos Capítulos 12 e 13 é mais claramente compreendida como uma crítica a um componente específico dela.
💡 Resultado-chave
Na distribuição de prompts da API da OpenAI, as saídas do modelo InstructGPT alinhado por PPO de 1,3B foram preferidas às saídas do modelo base bruto GPT-3 de 175B — o algoritmo venceu a escala por aproximadamente duas ordens de magnitude na contagem de parâmetros.
9. Para onde isto está caminhando¶
Este capítulo apresentou o pipeline canônico tal como Ouyang et al. o registraram. Os dois capítulos seguintes pegam o mesmo esqueleto e o modificam em dois lugares diferentes.
O Capítulo 12 (DPO) elimina inteiramente o modelo de recompensa explícito e o loop de RL. A observação é que o objetivo de maximização de recompensa restrita por KL \(J(\pi_\theta)\) no §6 tem uma política ótima em forma fechada, e inverter essa expressão em forma fechada reescreve a recompensa como uma log-razão da política contra a referência. A perda de preferência de Bradley-Terry, expressa nesta parametrização de recompensa implícita, torna-se uma perda de classificação por entropia cruzada binária na própria política — sem modelo de recompensa, sem PPO, sem crítico. O DPO troca a complexidade de engenharia do RL online pela inflexibilidade dos dados de preferência offline, e o trade-off foi o correto para muitas equipes de produção em 2023–2024 [src_005].
🔗 Conexão
O Capítulo 12 (DPO) inverte o ótimo em forma fechada de \(J(\pi_\theta)\) do §6, elimina o modelo de recompensa e o loop de PPO, e os substitui por uma única perda de classificação por entropia cruzada binária na própria política.
O Capítulo 13 (GRPO e recompensas verificáveis) ataca um componente diferente: o modelo de recompensa de preferência humana. Para tarefas em que a correção é mecanicamente verificável — matemática com resposta conhecida, código com um conjunto de testes que passa — o modelo de recompensa pode ser substituído por um verificador programático que retorna um sinal exato de zero-ou-um. Com uma recompensa verificável em mãos, o reward hacking contra artefatos de classificadores aprendidos desaparece por construção, e um algoritmo de policy-gradient sem crítico (GRPO) substitui o PPO. Esta é a receita por trás do DeepSeek-R1 e da onda mais ampla de modelos de reasoning de 2025 [src_005].
🔗 Conexão
O Capítulo 13 (GRPO e RLVR) substitui o modelo de recompensa aprendido por um verificador programático que retorna um sinal exato de zero-ou-um; o algoritmo GRPO sem crítico substitui o PPO e é a receita por trás do DeepSeek-R1 e da onda mais ampla de modelos de reasoning de 2025.
O RLHF não é o fim da história. Ele é a baseline histórica contra a qual tanto DPO quanto GRPO são escritos, e o vocabulário que ele introduz — política de referência, restrição KL, preferências de Bradley-Terry, reward over-optimisation — é o vocabulário sobre o qual o resto desta parte é construído.
🔄 Recapitulação
- Complete a equação: \(J(\pi_\theta) = \mathbb{E}\bigl[r_\phi(x, y)\bigr] - \beta \cdot \mathbb{E}\bigl[\text{?}\bigr]\) — o que \(\beta\) multiplica, e por que é chamada de restrição KL?
- Explique com suas próprias palavras o que torna uma política uma política de referência, e por que \(\pi_{\text{SFT}}\) é a escolha natural neste capítulo.
- Preveja, dada a hipótese de Bradley-Terry \(P(y_w \succ y_l \mid x) = \sigma(r(x, y_w) - r(x, y_l))\), o que acontece com essa probabilidade quando o gap de recompensa é zero — e o que isso implica sobre o comportamento do anotador no gap zero.
- Compare reward hacking e reward over-optimisation: qual nome cada capítulo prefere, e a que fenômeno subjacente ambos se referem?
Referências¶
- [src_002] Tong Xiao and Jingbo Zhu. Foundations of Large Language Models (arXiv:2501.09223v2), 2025. https://arxiv.org/pdf/2501.09223
- [src_005] Nathan Lambert. RLHF Book, v8, 2026. https://rlhfbook.com/
- [src_010] Sebastian Raschka. Build a Large Language Model (From Scratch). Manning, 2024. https://github.com/rasbt/LLMs-from-scratch
- [src_033] Long Ouyang, Jeff Wu, Xu Jiang, et al. Training Language Models to Follow Instructions with Human Feedback (InstructGPT), 2022. https://arxiv.org/pdf/2203.02155
- [src_034] Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, and Chelsea Finn. Direct Preference Optimization: Your Language Model is Secretly a Reward Model, 2023. https://arxiv.org/pdf/2305.18290