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á.
Prepare dados para os modelos Amazon Nova
Ao ajustar um modelo do Amazon Nova com ajuste fino de reforço, você pode trazer seus próprios prompts ou usar os registros de invocação da API Amazon Bedrock existentes como dados de treinamento.
Requisitos e fontes de dados de treinamento
Você pode fornecer dados de treinamento por meio de uma das seguintes opções:
nota
Só oferecemos suporte ao formato de conclusão de bate-papo do OpenAI.
Colete seus prompts e armazene-os no formato de arquivo .jsonl. Você pode fazer upload de conjuntos de dados personalizados no formato JSONL ou selecionar conjuntos de dados existentes do Amazon S3. Cada registro no JSONL deve usar o formato de conclusão de bate-papo do OpenAI na seguinte estrutura:
-
messages: nesse campo, inclua a função de usuário, sistema ou assistente contendo o prompt de entrada fornecido ao modelo. -
reference_answer: nesse campo, ele deve conter o resultado esperado ou os critérios de avaliação que sua função de recompensa usa para pontuar a resposta do modelo. Ela não se limita a resultados estruturados — ela pode conter qualquer formato que ajude sua função de recompensa a avaliar a qualidade. -
[Opcional] Você pode adicionar campos usados pelo avaliador Lambda para avaliação.
Requisitos:
Formato JSONL com prompts no formato de conclusão de chat OpenAI (um prompt por linha)
Um mínimo de 100 registros no conjunto de dados de treinamento
O Amazon Bedrock valida automaticamente o formato do conjunto de dados de treinamento
Ao criar um trabalho de ajuste fino de reforço, você pode fazer com que o Amazon Bedrock use os registros de invocação existentes do seu bucket do S3 como dados de treinamento. Para o Amazon Bedrock, um log de invocação é um registro detalhado das invocações do modelo.
Você pode usar registros de invocação de Invoke/Converse API armazenados no lado do cliente do Amazon S3 para treinamento.
Requisitos:
-
O registro de API deve estar habilitado para seu uso do Amazon Bedrock
-
Os registros devem estar em um formato compatível (Amazon Bedrock Invoke/Converse API)
-
Um mínimo de 100 exemplos de solicitações
Para usar registros de invocação para reforçar o ajuste fino, configure o login de invocação do modelo, use uma das operações de invocação do modelo e certifique-se de ter configurado um bucket do Amazon S3 como destino para os registros. Para obter mais informações sobre como configurar os registros de invocação, consulte Monitorar a invocação do modelo usando o Logs e o CloudWatch Amazon S3.
Antes de iniciar o trabalho de ajuste fino de reforço com registros de invocação de um bucket do S3 como entrada, você deve fornecer permissões ao Amazon Bedrock para acessar os registros de um bucket do S3. Para obter mais informações, consulte Acesso e segurança na personalização de modelos.
Opcionalmente, você pode adicionar metadados de solicitação aos pares de prompt-resposta no log de invocação usando uma das operações de invocação do modelo e depois usá-los para filtrar os logs. O Amazon Bedrock pode usar os registros filtrados para ajustar o modelo.
Adicione metadados de solicitação às solicitações e respostas em seus registros de invocação
Com os registros de invocação, você pode identificar as solicitações do conjunto de dados de treinamento que você deseja que o Amazon Bedrock use para reforçar o ajuste fino usando metadados de solicitação anexados aos registros de invocação.
Veja a seguir um exemplo de um registro de invocação de uma InvokeModel chamada com o: requestMetadata
{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-09-11T17:16:18Z", "accountId": "XXXXX", "identity": { "arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX" }, "region": "us-east-1", "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5", "operation": "InvokeModel", "modelId": "meta.llama3-1-405b-instruct-v1:0", "input": { "inputContentType": "application/json", "inputBodyJson": { "prompt": "story of two dogs", "max_tokens_to_sample": 300 }, "inputTokenCount": 13 }, "output": { "outputContentType": "application/json", "outputBodyJson": { "type": "completion", "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little", "stop_reason": "max_tokens", "stop": null }, "outputTokenCount": 300 }, "requestMetadata": { "project": "CustomerService", "intent": "ComplaintResolution", "priority": "High" } }
Você pode especificar o registro de invocação como sua fonte de dados de entrada ao iniciar um trabalho de ajuste fino de reforço. Você pode iniciar um trabalho de ajuste fino de reforço por meio do console Amazon Bedrock, usando a API ou o SDK. AWS CLI
Requisitos para fornecer metadados de solicitação
Os metadados solicitados devem cumprir os seguintes requisitos:
-
Fornecido no formato JSON
key:value. -
O par de chave-valor deve ser uma string de no máximo 256 caracteres.
-
Forneça no máximo de 16 pares de chave-valor.
Usar filtros de metadados de solicitação
Depois que os registros de invocação com metadados de solicitação estiverem disponíveis, você poderá aplicar filtros com base nos metadados da solicitação para escolher seletivamente quais solicitações incluir para ajustar o modelo. Por exemplo, talvez você queira incluir somente aqueles com metadados "project": "CustomerService" e "priority": "High" solicitados.
Para filtrar os registros usando vários metadados de solicitação, use um único operador AND booleano ou. OR Você não pode combinar esses operadores. Para filtragem de metadados de solicitação única, use o operador Equals ouNot Equals.
Características dos dados de treinamento efetivos
Dados eficazes de treinamento de RFT requerem três características principais:
-
Clareza e consistência — use instruções claras e inequívocas com formatação consistente. Evite rótulos contraditórios, instruções ambíguas ou respostas de referência conflitantes que enganem o treinamento.
-
Diversidade — inclua formatos de entrada variados, casos extremos e níveis de dificuldade que refletem os padrões de uso da produção em diferentes tipos e cenários de usuários.
-
Funções de recompensa eficientes — Crie funções que sejam executadas rapidamente (segundos, não minutos), que se paralelizem e retornem pontuações consistentes para um treinamento econômico. AWS Lambda
Propriedades adicionais
O formato de dados RFT oferece suporte a campos personalizados além dos requisitos principais do esquema (messagesereference_answer). Essa flexibilidade permite que você adicione quaisquer dados adicionais que sua função de recompensa precise para uma avaliação adequada.
nota
Você não precisa configurar isso em sua receita. O formato de dados suporta inerentemente campos adicionais. Basta incluí-los em seus dados de treinamento JSON e eles serão passados para sua função de recompensa em metadata campo.
Propriedades adicionais comuns
task_id— Identificador exclusivo para rastreamentodifficulty_level— Indicador de complexidade do problemadomain— Área temática ou categoriaexpected_reasoning_steps— Número de etapas na solução
Esses campos adicionais são passados para sua função de recompensa durante a avaliação, permitindo uma lógica de pontuação sofisticada adaptada ao seu caso de uso específico.
Exemplos com propriedades adicionais