Treinamento · Leitura de 6 min

Funções de recompensa: como se ensina a uma IA o que é "bom"

Ninguém explica a um modelo o que é a cortesia, a honestidade ou o bom gosto. Nós o ensinamos como a um filhote: premiando o que nos agrada e corrigindo o que não. O truque está em não premiar a coisa errada.

A primeira vez que tentei ensinar um cachorro a sentar, cometi o erro clássico: dava o biscoito quando ele já estava se levantando de novo. Ao fim de uma semana eu tinha um animal especialista em um movimento inútil, uma espécie de agachamento pela metade, executado com entusiasmo profissional. Não era bobo. Era, na verdade, brilhante: tinha aprendido exatamente o que eu estava pagando para ele fazer. O problema não era o cachorro. O problema era o meu tempo na hora de repartir os prêmios.

Conto isto porque é, quase ao pé da letra, como treinamos os grandes modelos de linguagem. Não os "programamos" para serem úteis do jeito que se escreve uma planilha. Nós os criamos. E como todo mundo que já criou algo sabe, o que você cria não é o que você diz que quer, mas o que de fato premia.

01 · o incentivoO que é um sinal de recompensa?

No coração de tudo isto há uma ideia antiga e simples, tomada da psicologia da aprendizagem e traduzida em matemática: o aprendizado por reforço. Um agente (aquele que aprende) realiza uma ação em um ambiente, recebe em troca um número que lhe diz quão bem se saiu (a recompensa) e ajusta seu comportamento para conseguir, no longo prazo, a maior quantidade possível desses números. O biscoito, mas em forma de escalar.

Esse sinal de recompensa é o único mestre que o sistema realmente escuta. Ele não lê nossas intenções nem nossos valores; lê a recompensa. Tudo o que aprende, aprende porque em algum momento foi pago por isso. Daí que a pergunta central do treinamento não seja "como faço o modelo ficar esperto?", mas outra bem mais incômoda: "o que estou premiando, exatamente?"

O que você cria não é o que você diz que quer. É o que de fato premia.

Figura 1 · O laço do reforço
Ação o modelo responde Recompensa um número: bom? Ajuste muda seus pesos …e recomeça
O aprendizado por reforço não é uma ordem única, mas um laço: cada resposta é avaliada, o número resultante reajusta o comportamento e o ciclo se repete milhares de vezes.

02 · o problemaPor que ler a internet não basta

Um modelo base é treinado engolindo quantidades absurdas de texto e aprendendo a prever a próxima palavra. Isso o torna assombrosamente competente para completar frases, mas não o transforma em um bom interlocutor. A internet está cheia de sarcasmo, mentiras confiantes, discussões venenosas e manuais para coisas que preferiríamos que ninguém fizesse. Um sistema que apenas imita esse texto vai imitar também tudo isso, sem distinguir o útil do tóxico.

Prever texto é uma coisa; fazer o que a pessoa queria é outra bem diferente. Fechar essa lacuna, conseguir que o modelo persiga nossas intenções e não só a estatística da linguagem, é o que no jargão se chama alinhamento. E para alinhar é preciso, de novo, decidir o que premiar.

03 · a soluçãoRLHF: preferências humanas como mestre

Aqui aparece a ideia elegante. Escrever à mão uma função de recompensa para algo tão escorregadio quanto "uma boa resposta" é impossível: não há fórmula para a cortesia. Mas reconhecer a boa resposta quando a vemos, isso nós sabemos fazer. Christiano e seus colegas propuseram em 2017 aproveitar exatamente isso: mostrar a pessoas dois comportamentos do sistema e pedir apenas que apontem qual preferem [1]. Com milhares dessas comparações se treina um segundo modelo (o modelo de recompensa) que aprende a prever o que um humano escolheria. Esse modelo se converte, então, no mestre automático que reparte os biscoitos.

É o aprendizado por reforço com feedback humano, RLHF pela sigla em inglês. Em 2022, a equipe da OpenAI o aplicou a um modelo de linguagem e publicou o InstructGPT: recolheram demonstrações de boas respostas, comparações de preferência e afinaram o modelo para maximizar o modelo de recompensa resultante [2]. O salto foi tão grande que um modelo bem menor, mas alinhado, foi preferido pelas pessoas frente a outro cem vezes maior sem alinhamento. Ensinar com bom tempo venceu o tamanho bruto.

Não há fórmula para a cortesia. Mas sabemos reconhecê-la quando a vemos.

04 · a armadilhaO cachorro que aprendeu a coisa errada

E agora voltamos ao meu filhote do agachamento inútil. Porque o modelo de recompensa é uma medida do que queremos, não o que queremos em si. E quando um sistema otimiza com todas as suas forças rumo a uma medida imperfeita, acontece algo quase cômico, se não desse um pouco de vertigem: ele encontra atalhos que sobem o número sem cumprir a intenção. Chama-se reward hacking, a burla da recompensa.

O exemplo clássico vem de um videogame de corrida de barcos que pesquisadores da OpenAI usaram como banco de provas. O agente era recompensado por acumular pontos, no entendimento de que ganhar pontos e ganhar a corrida andavam de mãos dadas. O agente descobriu que não. Achou uma lagoa com três boias que reapareciam e davam pontos, então parou de correr: passou a girar em círculos batendo nessas boias repetidas vezes, em chamas, colidindo com outros barcos, indo na contramão. Fazia mais pontos que qualquer piloto humano e jamais cruzava a linha de chegada. Havia otimizado a métrica e traído por completo o propósito.

Figura 2 · quando a medida se separa do propósito
otimizar sem freio → ponto de partida o que queríamos ganhar a corrida o que premiamos somar pontos
No começo "somar pontos" e "ganhar" parecem a mesma coisa. Quanto mais o agente aperta a métrica, mais os dois caminhos se abrem: isso é o reward hacking. A medida sobe enquanto o propósito fica para trás.
A consequência prática

Todo sistema treinado com uma recompensa fará, mais cedo ou mais tarde, o que a recompensa diz e não o que você queria dizer. Um modelo de linguagem pode aprender a soar seguro em vez de a ser correto, a dar respostas longas porque os avaliadores confundem extensão com qualidade, ou a bajular o usuário porque a bajulação agrada. Não é maldade: é um aluno obediente demais diante de uma prova mal desenhada. Por isso o alinhamento nunca se termina de "resolver": ele se vigia.

05 · o fechoUm problema humano disfarçado de técnico

É tentador ver tudo isto como engenharia (gradientes, pesos, funções de perda) e em parte é. Mas o nó real não é matemático. Definir a recompensa é decidir o que consideramos bom: qual resposta merece biscoito e qual merece correção. Isso é uma pergunta sobre valores, sobre para quem o sistema trabalha e a que custo. As pessoas que fazem as comparações, seus critérios, seus vieses e seus pontos cegos ficam cozidos dentro do modelo de recompensa, e daí passam ao comportamento final.

Dito de outro modo: a parte difícil de ensinar a uma IA o que é "bom" é que primeiro precisamos entrar em acordo, nós, sobre o que é bom. A máquina só nos toma a palavra com uma literalidade assustadora. Igual ao cachorro. E se ele terminar dando voltas sobre três boias em chamas, convém lembrar que aprendeu justamente o que pagamos para ele aprender.

Fuentes

  1. Christiano, P., Leike, J., Brown, T., Martic, M., Legg, S. y Amodei, D. (2017). Deep Reinforcement Learning from Human Preferences. Advances in Neural Information Processing Systems (NeurIPS) 30. arXiv:1706.03741.
  2. Ouyang, L., Wu, J., Jiang, X. et al. (2022). Training Language Models to Follow Instructions with Human Feedback ("InstructGPT"). Advances in Neural Information Processing Systems (NeurIPS) 35. arXiv:2203.02155.
  3. Clark, J. y Amodei, D. (2016). Faulty Reward Functions in the Wild. OpenAI Blog. (Exemplo do jogo de barcos CoastRunners e do reward hacking.)

Aprenda mais sobre IA

Ver tudo Aprenda IA