Ajuste fino com reforço no Amazon Bedrock: melhores práticas

Ajuste fino com reforço: uma abordagem diferente para customização de modelos

O Ajuste Fino com Reforço (RFT) oferecido no Amazon Bedrock representa uma alternativa promissora aos métodos tradicionais de customização de modelos de fundação. Diferentemente de abordagens convencionais que requerem grandes conjuntos de dados rotulados, o RFT permite refinar modelos como Amazon Nova e modelos de código aberto suportados definindo o que significa uma resposta de qualidade através de sinais de recompensa.

Essa metodologia tem mostrado ganhos de precisão de até 66% em comparação com modelos base, mantendo custos e complexidade reduzidos. O grande diferencial é que o modelo aprende não através de exemplos estáticos memorizados, mas através de um processo iterativo de tentativa, avaliação e ajuste de pesos — similar ao aprendizado por reforço.

Onde o ajuste com reforço se destaca

O RFT é particularmente valioso em cenários onde o comportamento desejado é fácil de verificar, mas difícil de demonstrar através de exemplos manualmente anotados. A AWS identifica dois contextos principais de aplicação:

Tarefas com critérios verificáveis automaticamente

Nesta categoria estão problemas como geração de código que deve passar em testes, raciocínio matemático com respostas verificáveis, extração de dados estruturados que deve respeitar esquemas rigorosos, e chamadas de APIs que precisam ser executadas corretamente. Como o sucesso é traduzível em sinais de recompensa diretos, o modelo descobre estratégias mais robustas do que um pequeno conjunto de exemplos anotados poderia ensinar. Esse padrão é conhecido como Aprendizado por Reforço com Recompensas Verificáveis (RLVR).

Tarefas subjetivas com avaliação por modelo

Categorias como moderação de conteúdo, assistentes conversacionais, criação criativa ou sumarização carecem de correção facilmente quantificável. Nesses casos, um modelo-juiz orientado por uma rubrica detalhada pode servir como função de recompensa, avaliando saídas contra critérios que seriam impraticáveis de codificar como pares de treinamento estáticos. Essa abordagem chama-se Aprendizado por Reforço com Feedback de IA (RLAIF).

No Amazon Bedrock, tanto abordagens baseadas em regras quanto baseadas em modelos podem ser implementadas através de uma função personalizada de AWS Lambda, que é acionada pelo Bedrock durante o loop de treinamento.

Comparação entre os dois paradigmas de ajuste com reforço: RLVR (à esquerda) usa verificação baseada em regras, enquanto RLAIF (à direita) usa um modelo de linguagem como juiz — Fonte: Aws

Exemplos práticos de aplicação incluem: geração de código para serviços em produção (com taxas de pass em testes unitários e verificações de linting), orquestração de ferramentas e APIs (medindo conclusão bem-sucedida de tarefas como fluxos de reserva), raciocínio matemático complexo (verificando respostas finais corretas ou etapas intermediárias), extração e transformação de dados estruturados (validação contra esquemas), síntese de queries SQL (comparando resultados esperados), e workflows de agentes (combinando RLVR e RLAIF).

Exemplo prático: melhorando raciocínio matemático com GSM8K

Para ilustrar como o ajuste com reforço funciona na prática, considere um exemplo concreto: melhorar a capacidade de um modelo resolver problemas de raciocínio matemático. O RFT é útil neste contexto porque soluções podem frequentemente ser verificadas objetivamente, permitindo desenhar sinais de recompensa claros que guiem o modelo para raciocínio correto e saídas estruturadas.

O dataset GSM8K (Grade School Math 8K) fornece problemas como: “Tina ganha $18,00 por hora. Se trabalha mais de 8 horas por turno, recebe hora extra (salário hora + 1/2 do salário). Se trabalha 10 horas todos os dias durante 5 dias, quanto ela ganha?”

Uma resposta ideal mostraria raciocínio claro estruturado: separar horas regulares de hora extra para cada dia, calcular a taxa de hora extra (1,5x), multiplicar pelos 5 dias, chegando à resposta $990. A resposta ideal não apenas forneceria o resultado final, mas demonstraria cada etapa do pensamento.

Métodos tradicionais de ajuste fino têm dificuldade com raciocínio matemático porque aprendem principalmente a fazer correspondência de padrões nos dados de treinamento. Modelos podem memorizar templates de solução, mas frequentemente falham quando apresentados com variações novas de um problema. Com RFT, respostas exatas como $990 podem ser avaliadas objetivamente, enquanto se atribui crédito parcial por etapas intermediárias de raciocínio correto. Isso permite ao modelo descobrir abordagens de solução válidas enquanto aprende a seguir formatos estruturados, frequentemente alcançando forte desempenho com datasets relativamente pequenos — entre 100 e 1.000 exemplos.

Preparando dados de treinamento eficazes

O RFT exige datasets cuidadosamente preparados. No Amazon Bedrock, dados de treinamento RFT são fornecidos em arquivo JSONL, com cada registro seguindo o formato de conclusão de chat OpenAI.

Diretrizes de tamanho de dataset

O RFT suporta datasets entre 100 e 10.000 amostras de treinamento, embora requisitos variem conforme complexidade da tarefa e design da função de recompensa. Tarefas envolvendo raciocínio complexo, domínios especializados ou escopos amplos de aplicação geralmente se beneficiam de datasets maiores e funções de recompensa sofisticadas.

Para experimentação inicial, comece com datasets pequenos (100-200 exemplos) para validar que seus prompts e função de recompensa produzem sinais de aprendizado significativos e que o modelo base consegue melhorias mensuráveis de recompensa. Implementações típicas usando 200 a 5.000 exemplos oferecem generalização mais forte e desempenho consistente através de variações de prompts. Para tarefas de raciocínio mais complexas, domínios especializados ou funções de recompensa sofisticadas, 5.000 a 10.000 exemplos aprimoram robustez através de entradas diversas.

Princípios de qualidade de dados

A qualidade dos dados de treinamento determina fundamentalmente os resultados do RFT. Ao preparar seu dataset, considere:

Distribuição de prompts: certifique-se de que o dataset reflete a gama completa de prompts que o modelo encontrará em produção. Um dataset enviesado leva a generalização pobre ou comportamento de treinamento instável.

Capacidade do modelo base: o RFT pressupõe que o modelo base demonstra compreensão básica da tarefa. Se o modelo não consegue alcançar recompensa não-nula em seus prompts, o sinal de aprendizado será fraco. Uma validação simples é gerar várias respostas do modelo base (temperatura ≈ 0,6) e confirmar que os outputs produzem sinais de recompensa significativos.

Design claro de prompts: prompts devem comunicar claramente expectativas e restrições. Instruções ambíguas levam a sinais de recompensa inconsistentes e aprendizado degradado. A estrutura do prompt também deve alinhar com o parsing da função de recompensa — por exemplo, exigindo respostas finais após um marcador específico ou fazendo uso de blocos de código para tarefas de programação.

Respostas de referência confiáveis: quando possível, inclua uma resposta de referência que represente o padrão desejado de saída, formatação e critérios de correção. Respostas de referência ancoram o cálculo de recompensa e reduzem ruído no sinal de aprendizado. Por exemplo, tarefas matemáticas podem incluir a resposta numérica correta, enquanto tarefas de codificação podem incluir testes unitários ou pares entrada-saída.

Sinais de recompensa consistentes: como o RFT depende inteiramente de sinais de recompensa para guiar o aprendizado, a qualidade desses sinais é crítica. Seu dataset e função de recompensa devem funcionar juntos produzindo pontuações consistentes e bem-diferenciadas. Respostas fortes devem pontuar consistentemente mais alto que respostas fracas em entradas similares.

Projetando funções de recompensa eficazes

Funções de recompensa são centrais ao RFT porque avaliam e pontuam respostas do modelo, atribuindo recompensas mais altas a saídas preferidas e recompensas menores a menos desejáveis. Esse feedback guia o modelo para comportamento melhorado durante o treinamento.

Recompensas para tarefas verificáveis

Para tarefas que podem ser verificadas deterministicamente, como raciocínio matemático ou codificação, a abordagem mais simples é verificar correção programaticamente. Funções de recompensa eficazes típicas avaliam tanto restrições de formato quanto objetivos de desempenho. Verificações de formato garantem que respostas possam ser confiável analisadas. Métricas de desempenho determinam se o resultado está correto. Recompensas podem ser implementadas usando sinais binários (correto versus incorreto) ou pontuação contínua conforme a tarefa.

Para tarefas de raciocínio matemático estilo GSM8K, funções de recompensa também devem considerar como modelos expressam respostas numéricas. Modelos podem formatar números com vírgulas, símbolos de moeda, percentuais ou embutir respostas em texto explicativo. Para abordar isso, respostas devem ser normalizadas removendo caracteres de formatação e aplicando extração flexível que prioriza formatos estruturados antes de cair de volta em correspondência de padrões. Essa abordagem garante que modelos sejam recompensados por raciocínio correto em vez de penalizados por escolhas estilísticas.

A implementação completa da função de recompensa para GSM8K está disponível no repositório amazon-bedrock-samples no GitHub.

Recompensas baseadas em feedback de IA

Tarefas como sumarização, criação criativa ou alinhamento semântico requerem um modelo de linguagem atuando como juiz para aproximar preferências subjetivas. Nesse cenário, o prompt do juiz efetivamente atua como a função de recompensa, definindo quais comportamentos são recompensados e como respostas são pontuadas. Um prompt de juiz prático deve claramente definir o objetivo de avaliação e incluir uma rubrica de pontuação concisa com escalas numéricas refletindo qualidades que o modelo deve melhorar. Prompts de juiz também devem retornar saídas estruturadas — por exemplo JSON ou formatos com tags — contendo a pontuação final e raciocínio opcional, para que valores de recompensa possam ser confiável extraídos durante o treinamento enquanto se mantém observabilidade em como cada resposta foi avaliada.

Um exemplo de função de recompensa que utiliza feedback de IA pode ser visto no script PandaLM de função de recompensa no GitHub.

Refinando design de funções de recompensa

Funções de recompensa frequentemente requerem iteração. Versões iniciais podem produzir sinais ruidosos ou durante o loop de treinamento o modelo pode aprender a explorar a função de recompensa para gerar alta pontuação sem aprender o comportamento desejado. Refinar a lógica de recompensa baseado em comportamento observado durante treinamento é essencial. Antes de lançar jobs de treinamento completos, é boa prática testar funções de recompensa independentemente usando prompts de amostra e saídas conhecidas para garantir que a lógica de pontuação produza sinais estáveis e significativos.

Monitorando progresso de treinamento

Após seu dataset e função de recompensa estarem prontos, você pode iniciar treinamento RFT usando a API Amazon Bedrock ou através do console. O workflow exato depende de seu ambiente de desenvolvimento preferido. A documentação Criar e gerenciar jobs de ajuste fino para modelos Amazon Nova no Guia do Usuário Amazon Bedrock fornece instruções passo-a-passo para ambas as abordagens.

Após o treinamento começar, monitorar métricas de treinamento é crítico. Esses sinais indicam se a função de recompensa é significativa e se o modelo está aprendendo comportamentos úteis em vez de fazer overfitting ou desabando em estratégias triviais.

Dinâmica de treinamento saudável mostrada em um run GSM8K: recompensas de treinamento subiram de aproximadamente 0,5 para 0,8-0,9, enquanto recompensas de validação melhoraram rapidamente nos primeiros passos e se estabilizaram — Fonte: Aws

Recompensas de treinamento registram a pontuação média de recompensa em cada passo. Variância é esperada porque prompts de entrada em um batch são amostrados aleatoriamente e dificuldade varia entre batches. O que importa é a tendência geral: recompensas devem aumentar de forma consistente, indicando que o modelo está convergindo para recompensas mais altas.

Recompensas de validação fornecem sinal mais claro porque são computadas em um dataset mantido separado. Uma melhora acentuada nos passos iniciais seguida de platô em torno de 0,88 sugere que o modelo está generalizando em vez de memorizando exemplos. Recompensas de validação que rastreiam proximamente recompensas de treinamento tipicamente indicam que overfitting não está ocorrendo.

Comprimento de episódio de treinamento e entropia de política: comprimento de resposta caiu de aproximadamente 625 para ~400 tokens (indicando aprendizado mais eficiente), enquanto entropia de política se manteve em faixa saudável (0,8-1,1), sugerindo exploração contínua — Fonte: Aws

Comprimento de episódio de treinamento mede o comprimento médio de resposta. Uma queda de aproximadamente 625 para ~400 tokens sugere que o modelo está aprendendo a alcançar respostas corretas mais eficientemente, produzindo menos raciocínio redundante conforme o treinamento progride. Em tarefas de raciocínio como cadeia-de-pensamento, um aumento gradual é saudável (aprendendo a pensar), mas um pico abrupto normalmente indica um loop ou falha.

Entropia de política mede o quanto o modelo está explorando diferentes estratégias de resposta. Valores entre 0,8 e 1,1 indicam exploração saudável. Se entropia desabasse para zero, sugeriria que o modelo tinha convergido prematuramente; entropia sustentada implica que o modelo ainda está explorando e melhorando.

Ajuste de hiperparâmetros: diretrizes práticas

As recomendações abaixo baseiam-se em experimentos internos executados através de múltiplos modelos e casos de uso. Enquanto valores eficazes variem conforme a tarefa, os padrões observados fornecem pontos de partida úteis ao configurar jobs RFT. Para mais informação sobre hiperparâmetros que podem ser configurados, consulte a documentação oficial boto3.

Contagem de épocas

Duração de treinamento e epochCount requerem ajuste baseado em tamanho de dataset e comportamento do modelo. Datasets menores frequentemente mostram melhoria contínua através de 6-12 épocas, enquanto datasets maiores podem alcançar desempenho ótimo em 3-6 épocas. Essa relação não é linear e monitoramento cuidadoso de métricas de validação permanece essencial para prevenir overfitting enquanto se garante adaptação suficiente do modelo.

Tamanho de batch

Este parâmetro controla quantos prompts são processados antes do modelo atualizado gerar uma nova rodada de respostas candidatas. Por exemplo, com batchSize de 128, o modelo processa, atualiza e gera novas saídas para 128 prompts por vez até ter trabalhado através do dataset completo. O número total de rodadas de saída iguala (dataset filtrado) dividido por batchSize.

Um batchSize de 128 funciona bem para a maioria de casos e modelos. Aumente se perda for errática ou recompensa não estiver melhorando. Diminua se iterações durarem muito.

Taxa de aprendizado

No Amazon Bedrock RFT, o ajuste é realizado usando Low Rank Adaptation (LoRA) com rank 32. Através de uma gama de casos de uso, uma taxa de aprendizado de 1e-4 produziu consistentemente resultados fortes.

Experimentos mostraram que a taxa de aprendizado ótima para LoRA fica ao redor de 1e-4 a 1e-3, aproximadamente uma ordem de magnitude mais alta que ajuste completo. LoRA com rank 1 alcançou dentro de ~5,5% de FFT’s melhor recompensa de validação no mesmo tempo real — Fonte: Aws

Na prática, RFT baseado em LoRA tende a ser mais tolerante e desempenha bem através de uma gama mais ampla de taxas de aprendizado que ajuste completo, embora ambas abordagens possam desabar fora de seus intervalos ótimos. Recomenda-se monitorar curvas de recompensa proximamente e diminuir a taxa de aprendizado se começarem a oscilar ou desabar.

Comprimento de prompt e comprimento de resposta

O maxPromptLength define o comprimento máximo permitido para prompt de entrada no dataset. Prompts excedendo esse limite são filtrados durante treinamento. Se seu dataset contém prompts inusitadamente longos ou outros outliers, defina um valor apropriado que exclua outliers mantendo a maioria das amostras. Caso contrário, você pode defini-lo para o comprimento do prompt mais longo.

Por outro lado, inferenceMaxTokens define o comprimento máximo de resposta para qualquer saída gerada durante treinamento RL. Você pode usar esse argumento para controlar se o modelo resultante gera saídas detalhadas ou respostas concisas. Recomenda-se escolher um valor baseado em requisitos da tarefa. Um valor excessivamente grande pode aumentar tempo de treinamento enquanto um valor muito pequeno poderia degradar desempenho do modelo. Para tarefas que não requerem raciocínio complexo, definir comprimento máximo de resposta para 1.024 é tipicamente suficiente. Em contraste, para tarefas desafiadoras como codificação ou geração de forma longa, usar um limite superior maior (mais que 4.096) é preferível.

Parada antecipada e intervalo de avaliação

O serviço RFT fornece dois recursos que otimizam eficiência de treinamento e qualidade do modelo. EarlyStopping (habilitado por padrão) automaticamente para treinamento quando melhorias de desempenho platô, prevenindo overfitting e reduzindo custos computacionais desnecessários. O sistema continuamente monitora métricas de validação e termina treinamento após detectar que iterações futuras são improváveis de render melhorias significativas. Enquanto isso, evalInterval determina quantas vezes o modelo avalia desempenho no dataset de validação durante treinamento, automaticamente calculado como min(10, tamanho_dados/tamanho_batch), mantendo pelo menos uma avaliação por época enquanto se mantém frequência razoável.

Armadilhas comuns e como evitá-las

Exploração de recompensa: isso ocorre quando a política aprende a explorar fraquezas na função de recompensa para maximizar pontuações sem melhorar qualidade real. Você verá recompensas de treinamento subindo enquanto avaliações humanas degradam ou platô. Para mitigar, garanta que a função de recompensa captura todos aspectos do comportamento que você quer codificar através do ajuste. Se não, observe as gerações do modelo e itere na função de recompensa. Use penalidades rigorosas de comprimento se necessário.

Variância e instabilidade de recompensa: mesmo com boa recompensa média, flutuação alta em pontuações para entradas similares cria sinal ruidoso que desestabiliza treinamento. Isso se manifesta como curvas de recompensa agitadas e métricas de perda oscilando descontroladamente. A primeira linha de defesa é normalização rigorosa: padronize recompensas (média zero, variância unitária) dentro de cada batch, recorte outliers extremos, e garanta que sua inferência de recompensa é determinística (sem dropout), para que o otimizador receba sinal de aprendizado consistente e estável.

Próximos passos

Pronto para começar a customizar com RFT no Amazon Bedrock? Acesse o console Amazon Bedrock ou revise a documentação oficial de API e crie seu primeiro job de treinamento RFT.

Para começar:

Fonte

Reinforcement fine-tuning on Amazon Bedrock: Best practices (https://aws.amazon.com/blogs/machine-learning/reinforcement-fine-tuning-on-amazon-bedrock-best-practices/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *