Crie um trabalho de ajuste fino de reforço - Amazon Bedrock

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á.

Crie um trabalho de ajuste fino de reforço

Você pode criar um trabalho de ajuste fino de reforço usando o console ou a API do Amazon Bedrock. O trabalho de RFT pode levar várias horas, dependendo do tamanho dos dados de treinamento, do número de épocas e da complexidade das funções de recompensa.

Pré-requisitos

  • Crie uma função de serviço do IAM para acessar o bucket do Amazon S3 onde você deseja armazenar seus dados de treinamento de RFT e artefatos de saída. Você pode criar essa função automaticamente usando o Console de gerenciamento da AWS ou manualmente. Para obter permissões específicas do RFT, consulte. Reforço, aperfeiçoando o acesso e a segurança

  • (Opcional) Criptografe dados de entrada e saída, seu trabalho de RFT ou solicitações de inferência feitas em modelos personalizados. Para obter mais informações, consulte Criptografia de modelos personalizados.

Crie seu trabalho de RFT

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

Console

Para enviar uma tarefa de RFT no console, execute as seguintes etapas:

  1. Faça login no Console de gerenciamento da AWS e abra o console Amazon Bedrock em https://console.aws.amazon.com/bedrock.

  2. No painel de navegação à esquerda, escolha Modelos personalizados em Ajustar.

  3. Na tabela Modelos, escolha Criar. Em seguida, escolha Criar tarefa de ajuste fino de reforço.

  4. Na seção Detalhes do modelo, escolha Amazon Nova 2 Lite como seu modelo básico.

  5. Na seção Detalhes da personalização, insira o nome da personalização.

  6. Na seção Dados de treinamento, escolha sua fonte de dados:

    • Use registros de invocação armazenados - Selecione entre seus registros de invocação disponíveis armazenados no Amazon S3

    • Carregar novo conjunto de dados - Selecione a localização do Amazon S3 para seu arquivo de conjunto de dados de treinamento ou carregue um arquivo diretamente do seu dispositivo

    nota

    Seu conjunto de dados de treinamento deve estar no formato de dados de conclusão do OpenAI Chat. Se você fornecer registros de invocação no formato de invocação ou conversão do Amazon Bedrock, o Amazon Bedrock os converterá automaticamente para o formato de conclusão de bate-papo.

  7. Na seção Função de recompensa, configure seu mecanismo de recompensa:

    • Modelo como juiz (RLAIF) - Selecione um modelo base hospedado no Bedrock como juiz e configure as instruções para avaliação. Use isso para tarefas subjetivas, como moderação de conteúdo.

      nota

      A opção Model as judge do console converte automaticamente sua configuração em uma função Lambda durante o treinamento.

    • Código personalizado (RLVR) - Crie funções de recompensa personalizadas usando código Python executado por meio de funções Lambda. Use isso para tarefas objetivas, como geração de código.

    Para obter mais informações, consulte Configurando funções de recompensa.

  8. (Opcional) Na seção Hiperparâmetros, ajuste os parâmetros de treinamento ou use valores padrão.

  9. Na seção Dados de saída, insira o local do Amazon S3 onde o Bedrock deve salvar as saídas do trabalho.

  10. Na seção Configuração da função, selecione:

    • Escolha uma função existente - Selecione na lista suspensa

    • Criar uma função - Insira um nome para a função de serviço

  11. (Opcional) Na seção Configuração adicional, configure:

    • Dados de validação apontando para um bucket do Amazon S3

    • Configurações de criptografia KMS

    • Etiquetas de emprego e modelo

  12. Escolha Criar tarefa de ajuste fino de reforço para começar a tarefa.

API

Envie uma CreateModelCustomizationJob solicitação com customizationType set toREINFORCEMENT_FINE_TUNING. Você deve fornecer os seguintes campos:

Campos obrigatórios:

  • roleArn- ARN da função de serviço com permissões de RFT

  • baseModelIdentifier- ID do modelo ou ARN do modelo básico para personalizar

  • customModelName- Nome do modelo recém-personalizado

  • jobName- Nome do trabalho de treinamento

  • customizationType: definir como REINFORCEMENT_FINE_TUNING

  • trainingDataConfig- URI do Amazon S3 da configuração do conjunto de dados de treinamento ou log de invocação

  • outputDataConfig- URI do Amazon S3 para gravar dados de saída

  • rftConfig- Configuração da função de recompensa (RLVR ou RLAIF) e configuração de hiperparâmetros

Exemplo de solicitação:

{ "roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole", "baseModelIdentifier": "amazon.nova-2.0", "customModelName": "my-rft-model", "jobName": "my-rft-job", "customizationType": "REINFORCEMENT_FINE_TUNING", "trainingDataConfig": { "s3Uri": "s3://my-bucket/training-data.jsonl" }, "customizationConfig": { "rftConfig" : { "graderConfig": { "lambdaGrader": { "lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name" } }, "hyperParameters": { "batchSize": 64, "epochCount": 2, "evalInterval": 10, "inferenceMaxTokens": 8192, "learningRate": 0.00001, "maxPromptLength": 4096, "reasoningEffort": "high", "trainingSamplePerPrompt": 4 } } }, "outputDataConfig": { "s3Uri": "s3://my-bucket/rft-output/" } }

Solicitação de amostra da API Python:

import boto3 bedrock = boto3.client(service_name='bedrock') # Set parameters customizationType = "REINFORCEMENT_FINE_TUNING" baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k" roleArn = "${your-customization-role-arn}" jobName = "MyFineTuningJob" customModelName = "MyCustomModel" customizationConfig = { 'rftConfig' : { 'graderConfig': { 'lambdaGrader': { 'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name' } }, 'hyperParameters': { 'batchSize': 64, 'epochCount': 2, 'evalInterval': 10, 'inferenceMaxTokens': 8192, 'learningRate':0.00001, 'maxPromptLength': 4096, 'reasoningEffort': 'high', 'trainingSamplePerPrompt':4 } } } trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"} outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"} # Create job response_ft = bedrock.create_model_customization_job( jobName=jobName, customModelName=customModelName, roleArn=roleArn, baseModelIdentifier=baseModelIdentifier, customizationConfig=customizationConfig, trainingDataConfig=trainingDataConfig, outputDataConfig=outputDataConfig, customizationType=customizationType ) jobArn = response_ft['jobArn']

Fluxo de trabalho RFT

O trabalho de RFT segue esse fluxo de trabalho automatizado:

  1. Geração de resposta - O modelo de ator gera respostas a partir de solicitações de treinamento

  2. Cálculo de recompensa - As funções de recompensa avaliam pares de resposta rápida

  3. Treinamento de modelos de atores - O modelo aprende com pares pontuados usando o GRPO

Durante o treinamento, você pode monitorar o progresso usando gráficos em tempo real com métricas de treinamento e validação, como perda, recompensas, margem de recompensa e precisão. Depois de bem-sucedido, um modelo RFT é criado com um ARN de modelo personalizado.

Configurar inferência

Após a conclusão do trabalho, você pode implantar o modelo RFT resultante com um clique para inferência sob demanda. Você também pode usar o Provisioned Throughput para cargas de trabalho de missão crítica que exigem desempenho consistente. Depois que a inferência estiver configurada, use o Test in Playground para avaliar e comparar interativamente as respostas side-by-side com o modelo básico.

Para monitorar o progresso do seu trabalho de RFT, consulteMonitore seu trabalho de treinamento em RFT.

Para avaliar seu modelo RFT completo, consulte. Avalie seu modelo de RFT