Treinamento iterativo - SageMaker Inteligência Artificial da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Treinamento iterativo

Visão geral do

O treinamento iterativo é o processo de ajustar repetidamente um modelo por meio de vários ciclos de treinamento em diferentes métodos de treinamento — treinar, avaliar, analisar erros, ajustar data/objectives/hyperparameters — com cada rodada começando no ponto de verificação anterior. Essa abordagem permite direcionar sistematicamente os modos de falha do modelo, incorporar exemplos selecionados que abordam pontos fracos específicos e se adaptar às mudanças nos requisitos ao longo do tempo.

Benefícios em relação ao treinamento de etapa única:

  • Melhoria direcionada: analise padrões de falha específicos descobertos por meio da avaliação

  • Refinamento adaptativo: responda às mudanças de distribuição ou à evolução dos requisitos do produto

  • Mitigação de riscos: valide as melhorias de forma incremental em vez de se comprometer com uma única execução de treinamento longo

  • Eficiência de dados: concentre os esforços de coleta de dados nas áreas em que o modelo tem uma performance inferior

  • Treinamento curricular: várias rodadas de treinamento com dados de qualidade progressivamente superior

Como funciona

Acesso e local do ponto de verificação

Após a conclusão de cada tarefa de treinamento, um arquivo manifesto é gerado no local de saída especificado pelo parâmetro output_path em sua configuração de treinamento.

Para acessar seu ponto de verificação

  • Navegue até o output_path especificado no S3

  • Faça o download e extraia o arquivo output.tar.gz.

  • Abra o arquivo manifest.json que está dentro

  • Localize o parâmetro checkpoint_s3_bucket, que contém o URI do S3 do seu modelo treinado

Exemplo de estrutura manifest.json

{ "checkpoint_s3_bucket": "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>/stepID", ... }

Noções básicas sobre buckets de depósito

Como os pesos do Amazon Nova são proprietários, os pontos de verificação de modelos treinados são armazenados em buckets S3 de garantia em contas AWS gerenciadas, em vez de serem copiados para sua conta. Esses buckets de depósito:

  • Contêm seus pesos de modelos personalizados com segurança

  • Pode ser referenciado por outros AWS serviços (inferência, avaliação e trabalhos de treinamento subsequentes)

  • São acessíveis somente à sua AWS conta por meio de permissões do IAM

  • Incorrem em cobranças de armazenamento padrão do S3 em sua conta (consulte Considerações sobre custo)

Você pode usar o caminho do bucket de depósito como model_name_or_path em sua próxima execução de treinamento para continuar o treinamento iterativo.

Uso de pontos de verificação para treinamento iterativo

Configure sua próxima tarefa de treinamento para usar o ponto de verificação anterior como modelo de base:

run: name: "my-iterative-training-job" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<previous-job-name>" data_s3_path: s3://<bucket>/<data-file>.jsonl replicas: 4

Quando usar o treinamento iterativo

Casos de uso ideais

Use o treinamento iterativo quando você tiver:

  • Ciclos de comentários: capacidade para coletar casos de falha do mundo real e analisá-los sistematicamente

  • Ambientes dinâmicos — documentação em evolução ou tópicos APIs de suporte que exigem atualizações periódicas do modelo

  • Avaliação robusta: avaliações comparativas e frameworks de avaliação fortes (veja os exemplos abaixo) para avaliar as melhorias com confiança

  • Capacidade de operações de ML: recursos para gerenciar vários ciclos de treinamento e controle de versão

Exemplos de frameworks robustos de avaliação

  • Suítes de benchmark automatizadas com limites pass/fail

  • Protocolos de avaliação humana com métricas de confiabilidade entre avaliadores

  • Cenários de testes da red-team que abrangem casos de borda e entradas adversariais

  • Infraestrutura de testes A/B para avaliar o impacto na produção

Padrões comuns

SFT → Pipeline do RFT: um padrão iterativo usado com frequência envolve:

  • SFT primeiro: ensine o modelo a resolver problemas por meio de exemplos de demonstração

  • RFT segundo: otimize a performance em todo o espaço de problemas usando sinais de recompensa

Essa sequência é essencial quando os modelos têm uma performance inicial ruim. O RFT em modelos de precisão próxima de zero não melhorará a performance sem primeiro estabelecer recursos básicos de resolução de problemas por meio do SFT.

Quando não usar o treinamento iterativo

Evite o treinamento iterativo para:

  • Tarefas estáveis e bem definidas: dados estacionários com requisitos consistentes que já atingem uma performance próxima ao limite máximo

  • Problemas simples de classificação: tarefas restritas em que o treinamento de uma única etapa é suficiente

  • Restrições de recursos: falta de recursos operacionais de ML dedicados para gerenciar vários ciclos de treinamento

  • Ganhos marginais: quando a sobrecarga não justifica melhorias mínimas de performance

Exemplo de fluxo de trabalho: SFT → RFT

Este exemplo demonstra um padrão comum de treinamento iterativo para modelos de raciocínio.

Etapa 1: treinamento inicial do SFT

Configure e inicie sua tarefa de treinamento de SFT com seu conjunto de dados:

run: name: "initial-sft-training" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod" data_s3_path: s3://<bucket>/sft-training-data.jsonl validation_data_s3_path: s3://<bucket>/sft-validation-data.jsonl

Justificativa: o SFT fornece demonstrações adicionais que moldam as saídas do modelo no formato e na voz desejados, estabelecendo recursos fundamentais.

Após o treinamento ser concluído

  • Observe o output_path configurado em sua tarefa de treinamento

  • Faça o download de output.tar.gz nesse local

  • Extraia e localize manifest.json

  • Copie o valor checkpoint_s3_bucket

Etapa 2: treinamento de RFT no ponto de verificação do SFT

Crie uma nova tarefa de treinamento de RFT usando o ponto de verificação do SFT:

run: name: "rft-on-sft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<initial-sft-training>" data_s3_path: s3://<bucket>/rft-training-data.jsonl reward_lambda_arn: <your-reward-function-arn>

Justificativa: o treinamento de RFT se baseia nos fundamentos do SFT, permitindo que o modelo desenvolva padrões de raciocínio mais complexos, otimizados por sua função de recompensa.

Etapa 3: avaliar e iterar

Execute a avaliação no ponto de verificação do RFT para avaliar a performance:

run: name: "evaluate-rft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<rft-on-sft-checkpoint>" data_s3_path: s3://<bucket>/evaluation-data.jsonl

Se as métricas-alvo não forem satisfeitas, continue iterando com dados ou hiperparâmetros ajustados.

Importante

A técnica de treinamento (LoRA versus full-rank) deve permanecer consistente em todas as iterações:

  • Se você usa o SFT com LoRA, deve usar o RFT com LoRA

  • Se você usa o SFT com full-rank, deve usar o RFT com full-rank

  • Você não pode alternar entre LoRA e full-rank no meio do pipeline

Importante

Se uma chave do KMS for usada para criptografia no bucket de saída do S3 de propriedade da Amazon, essa mesma chave do KMS deverá ser usada para todas as iterações futuras.

Monitoramento do progresso em todas as iterações

Você pode acompanhar as métricas via MLFlow.

Crie um MLflow aplicativo

Usando a interface do usuário do Studio: se você criar um trabalho de treinamento por meio da interface do usuário do Studio, um MLflow aplicativo padrão será criado automaticamente e selecionado por padrão em Opções avançadas.

Usando a CLI: se você usa a CLI, precisa criar um MLflow aplicativo e passá-lo como entrada para a solicitação da API do trabalho de treinamento.

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

Acesse o MLflow aplicativo

Usando a CLI: crie uma URL pré-assinada para acessar a interface do usuário do MLflow aplicativo:

aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text

Usando a interface do usuário do Studio: a interface do usuário do Studio exibe as principais métricas armazenadas MLflow e fornece um link para a interface do usuário do MLflow aplicativo.

Principais métricas a serem acompanhadas

Monitore essas métricas em todas as iterações para avaliar a melhoria e acompanhar o progresso da tarefa:

No SFT

  • Curvas de perda de treinamento

  • Número de amostras consumidas e tempo para processar amostras

  • Precisão de performance em conjuntos de teste retidos

  • Conformidade de formato (por exemplo, taxa de saída JSON válida)

  • Perplexidade nos dados de avaliação específicos do domínio

No RFT

  • Pontuações médias de recompensa em relação ao treinamento

  • Distribuição de recompensas (porcentagem de respostas de alta recompensa)

  • Tendências de recompensa de validação (observe se há sobreajuste)

  • Taxas de sucesso específicas de tarefas (por exemplo, taxa de aprovação de execução de código, precisão de problemas matemáticos)

Geral

  • Avaliação comparativa dos deltas de performance entre as iterações

  • Pontuações de avaliação humana em amostras representativas

  • Métricas de produção (se implantadas de forma iterativa)

Determinação de quando parar

Pare de iterar quando:

  • Estagnação da performance: o treinamento adicional não melhora mais significativamente as métricas-alvo

  • Trocar de técnica ajuda: se uma técnica estagnar, tente alternar (por exemplo, SFT → RFT → SFT) para ultrapassar os limites de performance

  • Métricas-alvo alcançadas: seus critérios de sucesso foram atendidos

  • Regressão detectada: novas iterações degradam a performance (consulte os procedimentos de reversão abaixo)

Para obter procedimentos de avaliação detalhados, consulte a seção Avaliação.

Práticas recomendadas

Comece pequeno e escale gradualmente

Comece com conjuntos de dados mínimos e épocas únicas de treinamento para validar sua abordagem antes de aumentar a escala verticalmente. Isso aumenta a confiança e ajuda a identificar problemas de forma antecipada.

Estabelecer métricas de sucesso claras

Defina indicadores quantitativos e qualitativos antes de começar:

Exemplo de métricas de sucesso por caso de uso

  • Resposta às perguntas: precisão exata de correspondência, pontuação F1, classificações de preferência humana

  • Geração de código: taxa de aprovação no teste unitário, sucesso da compilação, tempo de execução

  • Tarefas de raciocínio: precisão das etapas, exatidão das respostas finais, pontuações de recompensa

  • Geração de conteúdo: pontuações de coerência, precisão factual, aderência ao estilo

Implementar avaliação automatizada

Configure pipelines de avaliação automatizados para monitorar a performance após cada rodada, permitindo uma rápida iteração e comparação objetiva.

Manter um controle de versão rigoroso

Documento para cada iteração:

  • Versões e modificações do conjunto de dados

  • Locais dos pontos de verificação do modelo

  • Alterações de hiperparâmetros

  • Deltas e métricas de performance

  • Observações qualitativas

Isso cria conhecimento institucional e permite a depuração.

Concentrar-se na qualidade dos dados em vez da quantidade

Analise casos de falha de rodadas anteriores e adicione exemplos direcionados e de alta qualidade em vez de simplesmente aumentar o tamanho do conjunto de dados.

Planejar o orçamento de iteração

Planeje de 3 a 5 iterações como um intervalo típico:

  • 1 a 2 iterações: geralmente são suficientes para melhorias simples ou polimento final

  • 3 a 5 iterações: adequado para tarefas complexas que exigem vários ciclos de refinamento

  • Mais de 5 iterações: pode indicar retornos decrescentes ou necessidade de abordagens diferentes

Ajuste com base no orçamento computacional e nas taxas de melhoria de performance.

Implementar recursos de reversão

Se uma iteração introduzir regressões:

  • Identifique a regressão: compare as métricas de avaliação em todos os pontos de verificação

  • Retorne ao ponto de verificação anterior: use o caminho do S3 do ponto de verificação anterior como seu model_name_or_path

  • Ajuste a abordagem de treinamento: modifique dados, hiperparâmetros ou técnicas antes de tentar novamente

  • Documente a falha: registre o que causou a regressão para evitar que se repita

Exemplo de reversão

run: name: "rollback-to-iteration-2" model_type: amazon.nova-2-lite-v1:0:256k # Use iteration 2 checkpoint instead of failed iteration 3 model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<iteration-2-job-name>"

Considerações sobre custos

Armazenamento de pontos de verificação

  • Localização — Os pontos de verificação armazenados em depósitos de garantia incorrem em cobranças de armazenamento S3 padrão cobradas em sua conta AWS

  • Retenção: os pontos de verificação são retidos indefinidamente, a menos que sejam explicitamente excluídos

  • Gerenciamento: implemente políticas de ciclo de vida para arquivar ou excluir pontos de verificação antigos de que você não precisa mais

Dicas de otimização de custos

  • Exclua os pontos de verificação intermediários após validar as iterações mais recentes

  • Arquive pontos de verificação no S3 Glacier para retenção de longo prazo a um custo menor

  • Defina políticas de retenção com base em suas necessidades de conformidade e experimentação

Limitações

Consistência da família de modelos

Ao treinar iterativamente, você deve usar o mesmo tipo de modelo em todas as iterações.

Treinamento inicial

run: model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod"

As iterações subsequentes devem usar o mesmo model_type

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match original model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

Consistência da técnica de treinamento

A técnica de treinamento deve permanecer consistente em todas as iterações:

  • Modelos treinados via LoRA só podem ser treinados iterativamente via LoRa

  • Full-Rank-trained os modelos só podem ser treinados iterativamente com o Full-Rank

Como os adaptadores LoRA funcionam no treinamento iterativo

  • Cada iteração de treinamento LoRA gera novos pesos de adaptador

  • Os novos adaptadores substituem (não se empilham) os adaptadores anteriores

  • O modelo de base permanece congelado; somente os adaptadores são atualizados

Matriz de compatibilidade de técnicas

Treinamento inicial Pode iterar com
SFT (full-rank) SFT (full-rank), RFT (full-rank)
SFT (LoRA) SFT (LoRA), RFT (LoRA)
RFT (full-rank) RFT (full-rank)
RFT (LoRA) RFT (LoRA)

Verificação da compatibilidade antes de iniciar uma tarefa

  • Verifique sua fórmula de treinamento anterior para identificar o tipo de modelo e a técnica de treinamento (LoRA vs. full-rank)

  • Certifique-se de que sua nova fórmula corresponda ao tipo de modelo e à técnica

  • Revise o manifest.json para confirmar se o caminho do ponto de verificação está correto

Solução de problemas

Erro: “Incompatible model training techniques detected”

Causa: a técnica de treinamento (LoRA vs. full-rank) não corresponde à técnica do ponto de verificação.

Resolução: certifique-se de que sua fórmula use a mesma técnica de treinamento do modelo original:

  • Se o ponto de verificação tiver sido treinado com LoRA, use a LoRA em sua nova fórmula

  • Se o checkpoint foi treinado com full-rank, use-o em sua nova fórmula

Erro: “Base model for the job extracted from model_name_or_path does not match model_type”

Causa: o tipo de modelo especificado em model_type não corresponde ao modelo real no ponto de verificação.

Resolução: verifique se:

  • O model_type em sua fórmula corresponde ao tipo do modelo original

  • O caminho do ponto de verificação do S3 em model_name_or_path está correto

  • Você está usando o caminho do arquivo manifest.json correto

Exemplo de configuração correta

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match checkpoint's model model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

Erro: “Model configuration not found”

Causa: o caminho do S3 em model_name_or_path é inválido ou está inacessível.

Resolução:

  • Verifique se o caminho do S3 foi copiado corretamente do arquivo manifest.json

  • Garanta que seu perfil do IAM tenha permissões para acessar o bucket de depósito

  • Confirme se a tarefa de treinamento anterior foi concluída com êxito

  • Verifique se há erros de digitação no caminho

Regressão da performance após a iteração

Sintomas: as métricas de avaliação diminuem após uma nova iteração de treinamento.

Resolução:

  • Reverter: use o ponto de verificação anterior como seu modelo de base

  • Analisar: revise os logs de treinamento e a qualidade dos dados da iteração que falhou

  • Ajustar: modifique os hiperparâmetros (reduza a taxa de aprendizado), melhore a qualidade dos dados ou reduza as épocas de treinamento

  • Tentar novamente: inicie uma nova iteração com ajustes