View a markdown version of this page

Preparar dados para SFT no Amazon Nova 2 - Amazon Nova

Preparar dados para SFT no Amazon Nova 2

O SFT no Amazon Nova 2 oferece suporte à compreensão de texto, imagem, vídeo e documentos, bem como à chamada de ferramentas, com ou sem suporte de raciocínio. Esta página descreve restrições, formatos compatíveis e melhores práticas para preparar dados de treinamento de SFT para os modelos de compreensão do Amazon Nova 2.

dica

Para validar o formato do conjunto de dados antes de iniciar uma tarefa de treinamento, consulte Ferramentas de validação.

Formato de dados

Os dados do Amazon Nova 2 SFT usam o mesmo formato Converse API do Amazon Nova 1, com a adição de campos opcionais de conteúdo de raciocínio.

Cada linha no arquivo de treinamento JSONL é um objeto JSON com os campos de nível superior a seguir. Expanda uma seção para saber mais:

Obrigatório. O campo messages é uma matriz de objetos de mensagem em que cada um define um turno na conversa. Um objeto de mensagem contém os seguintes campos:

  • role: obrigatório. Define se a mensagem é de user (o prompt enviado ao modelo) ou de assistant (a resposta do modelo). O primeiro turno deve ser user, o último deve ser assistant, e os turnos devem se alternar.

  • content: obrigatório. Uma matriz de blocos de conteúdo para este turno.

O campo content é mapeado em uma matriz de blocos de conteúdo. Os dados do Amazon Nova 2 SFT são compatíveis com os seguintes blocos:

text

Uma string especificando o conteúdo de texto. Com suporte nos turnos user e assistant.

O exemplo abaixo mostra um objeto de mensagem com uma matriz content contendo apenas um bloco de conteúdo text:

{ "role": "user", "content": [ { "text": "string" } ] }
image

Um objeto de imagem especificando seu formato e localização no S3. Com suporte somente em turnos de user.

Veja abaixo um exemplo de objeto de mensagem com uma matriz de conteúdo contendo somente um bloco de conteúdo de imagem:

{ "role": "user", "content": [ { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-image.jpg", "bucketOwner": "account-id" } } } } ] }
video

Um objeto de vídeo especificando seu formato e localização no S3. Com suporte somente em turnos de user.

Veja abaixo um exemplo de objeto de mensagem com uma matriz de conteúdo contendo somente um bloco de conteúdo de vídeo:

{ "role": "user", "content": [ { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://your-bucket/your-video.mp4", "bucketOwner": "account-id" } } } } ] }
document

Um objeto de documento especificando seu formato e localização no S3. Com suporte somente em turnos de user.

Veja abaixo um exemplo de objeto de mensagem com uma matriz de conteúdo contendo somente um bloco de conteúdo de documento:

{ "role": "user", "content": [ { "document": { "format": "pdf", "source": { "s3Location": { "uri": "s3://your-bucket/your-document.pdf", "bucketOwner": "account-id" } } } } ] }
reasoningContent

Um objeto de rastreamento de raciocínio. Com suporte somente em turnos de assistant. Somente o raciocínio baseado em texto é compatível; não há suporte a conteúdo de raciocínio baseado em imagem.

Veja abaixo um exemplo de objeto de mensagem com uma matriz de conteúdo contendo somente um bloco de conteúdo de raciocínio:

{ "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "string" } } }, { "text": "final answer" } ] }
toolUse

Um objeto de invocação de ferramenta. Com suporte somente em turnos de assistant. O toolUseId deve ser exclusivo por conversa e o name deve corresponder a uma ferramenta definida em toolConfig.

Veja abaixo um exemplo de objeto de mensagem com uma matriz de conteúdo contendo somente um bloco de conteúdo de uso de ferramenta:

{ "role": "assistant", "content": [ { "toolUse": { "toolUseId": "unique-id", "name": "tool-name", "input": { ... } } } ] }
toolResult

Um objeto de resultado de ferramenta. Com suporte somente em turnos de user. Cada toolUseId deve fazer referência a um toolUse precedente e ser usado exatamente uma vez. O conteúdo deve ser somente texto ou JSON.

Veja abaixo um exemplo de objeto de mensagem com uma matriz de conteúdo contendo somente um bloco de conteúdo de resultado de ferramenta:

{ "role": "user", "content": [ { "toolResult": { "toolUseId": "matching-id", "content": [ { "text": "result" } ] } } ] }

Uma matriz opcional que define um prompt de sistema — instruções ou contexto para o modelo sobre a tarefa que ele deve realizar ou a persona que ele deve adotar. Use o mesmo prompt do sistema no treinamento e na inferência para obter os melhores resultados.

"system": [ { "text": "You are a helpful assistant." } ]

Um objeto opcional que define as ferramentas disponíveis para o modelo usar durante a conversa. Cada ferramenta é definida com um nome, uma descrição e um esquema JSON para seus parâmetros de entrada.

"toolConfig": { "tools": [ { "toolSpec": { "name": "tool-name", "description": "tool-description", "inputSchema": { "json": { "type": "object", "properties": { "param": { "type": "string", "description": "param-description" } }, "required": ["param"] } } } } ] }

Obrigatório. Um campo de string que identifica a versão do esquema. Pode ser qualquer valor de string.

"schemaVersion": "bedrock-conversation-2024"

Validar seus dados

Antes de enviar sua tarefa de treinamento, valide seu conjunto de dados para detectar problemas de formatação com antecedência. Para obter as ferramentas de validação disponíveis, consulte Ferramentas de validação.

Exemplos de entrada

Veja a seguir exemplos completos de objetos JSON que mostram como combinar os campos e os blocos de conteúdo para diferentes modalidades.

Text-only (Nova 1.0 compatible)
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "text": "The closest country is New Zealand" } ] } ] }
Image + text input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } }, { "text": "Which country is highlighted in the image?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I will determine the highlighted country by examining its location on the map and using my geographical knowledge" } } }, { "text": "The highlighted country is New Zealand" } ] } ] }
Video + text input
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-video.mp4", "bucketOwner": "your-aws-account-id" } } } }, { "text": "What is shown in this video?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I will analyze the video content to identify key elements" } } }, { "text": "The video shows a map with New Zealand highlighted" } ] } ] }
Document + text input
{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "document": { "format": "pdf", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I need to find the relevant section in the document to answer the question." } } }, { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }
Text with tool calling
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemAvailability", "description": "Retrieve whether an item is available in a given location", "inputSchema": { "json": { "type": "object", "properties": { "zipcode": { "type": "string", "description": "The zipcode of the location to check in" }, "quantity": { "type": "integer", "description": "The number of items to check availability for" }, "item_id": { "type": "string", "description": "The ASIN of item to check availability for" } }, "required": ["item_id", "zipcode"] } } } } ] }, "messages": [ { "role": "user", "content": [ { "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "The user wants to check how many pieces of the item with ASIN id-123 are available in the zipcode 94086" } } }, { "toolUse": { "toolUseId": "getItemAvailability_0", "name": "getItemAvailability", "input": { "zipcode": "94086", "quantity": 20, "item_id": "id-123" } } } ] }, { "role": "user", "content": [ { "toolResult": { "toolUseId": "getItemAvailability_0", "content": [ { "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]" } ] } } ] }, { "role": "assistant", "content": [ { "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?" } ] } ] }
Text with reasoning
{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I need to use my world knowledge of geography to answer this question" } } }, { "text": "The closest country to Australia is New Zealand, located to the southeast across the Tasman Sea." } ] } ] }

Recursos compatíveis

A tabela a seguir compara o suporte a recursos para SFT em todas as versões do modelo Nova.

Suporte a recursos do SFT por versão do modelo
Recurso SFT no Nova 2.0
Compreensão de texto Compatível com Nova 2.0 Lite. Consulte Compreensão geral/de texto.
Compreensão de imagens Compatível com Nova 2.0 Lite. Consulte Compreensão de imagens.
Compreensão de vídeos Compatível com Nova 2.0 Lite. Consulte Compreensão de vídeos.
Compreensão do documento Compatível com Nova 2.0 Lite. Consulte Compreensão do documento.
Chamada de ferramentas Compatível com Nova 2.0 Lite. Consulte Chamada de ferramentas.
Reasoning Compatível com Nova 2.0 Lite. Consulte Reasoning.

Compreensão geral/de texto

Esta seção resume as restrições gerais para preparar o SFT nos dados de treinamento do Amazon Nova 2.

Restrições

Restrições gerais de conjunto de dados
Restrição Detalhes
Formato dos conjuntos de dados JSONL (um objeto JSON por linha). Esses nomes de arquivo podem consistir apenas em caracteres alfanuméricos, sublinhados, hifens, barras e pontos.
Amostras mínimas 8
Amostras máximas 20k
Tamanho do contexto 32k
Homogeneidade do conjunto de dados Um conjunto de dados não pode misturar diferentes modalidades de mídia. Use texto com imagens, texto com vídeos ou texto com documentos, mas não uma combinação.
Palavras-chave reservadas User:, Bot:, Assistant:, System:, <image>, <video>, [EOS]. Prompts contendo essas palavras-chave farão com que a tarefa de treinamento falhe. Substitua-as por palavras-chave diferentes com significados semelhantes.

Práticas recomendadas

  • O tamanho mínimo dos dados para o ajuste depende da tarefa (ou seja, complexa ou simples), mas recomendamos que você tenha pelo menos 200 amostras para cada tarefa que deseja que o modelo aprenda.

  • Recomendamos usar seu prompt otimizado em uma configuração de zero-shot durante o treinamento e a inferência para obter os melhores resultados.

  • Priorize qualidade em vez de quantidade. Algumas centenas de exemplos consistentes e de alta qualidade normalmente são melhores que milhares de exemplos ruidosos ou contraditórios.

Exemplo de entrada

  • schemaVersion pode ser qualquer valor de string

  • Os perfis compatíveis são user e assistant. O turno system (opcional) pode ser um prompt personalizado do sistema fornecido pelo cliente.

  • O primeiro turno em messages deve sempre começar com "role": "user". O último turno é a resposta do bot, indicada por "role": "assistant".

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "text": "The closest country is New Zealand" } ] } ] }

Compreensão de imagens

O SFT é compatível com o treinamento em tarefas baseadas em imagem, permitindo que seu modelo aprenda a analisar e responder a perguntas sobre imagens.

Restrições

Restrições de imagem
Restrição Detalhes
Formatos com suporte PNG, JPEG, GIF, WebP
Máximo de imagens por amostra 10
Tamanho máximo do arquivo de imagem 10 MB
Homogeneidade do conjunto de dados Uma amostra pode ter imagens e texto, mas não pode ter imagens combinadas com outras modalidades (vídeos, documentos)
Localização do S3 O image.source.s3Location.uri deve estar no mesmo bucket do Amazon S3 que o seu conjunto de dados. Por exemplo, se o conjunto de dados estiver em s3://amzn-s3-demo-bucket/train/train.jsonl, as imagens ou os vídeos deverão estar em s3://amzn-s3-demo-bucket

Práticas recomendadas

  • Garanta que as imagens sejam de alta qualidade e relevantes para a tarefa.

  • Forneça diversos exemplos que abrangem diferentes tipos de imagens e formatos de perguntas

  • Forneça perguntas claras que façam referência a aspectos específicos do conteúdo da imagem

Exemplo de entrada

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a helpful assistant." } ], "messages": [ { "role": "user", "content": [ { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } }, { "text": "Which country is highlighted in the image?" } ] }, { "role": "assistant", "content": [ { "text": "The highlighted country is New Zealand" } ] } ] }

Compreensão de vídeos

O SFT é compatível com o treinamento em tarefas baseadas em vídeo, permitindo que seu modelo aprenda a analisar e responder a perguntas sobre conteúdo de vídeo.

Restrições

Restrições de vídeo
Restrição Detalhes
Formatos com suporte MOV, MKV, MP4, WebM
Máximo de vídeos por amostra 1
Tamanho máximo do arquivo de vídeo 50 MB
Duração máxima do vídeo 15 minutos
Homogeneidade do conjunto de dados Um exemplo pode ter vídeo e texto, mas não pode ter vídeo combinado com outras modalidades (imagens, documentos)
Localização do S3 O video.source.s3Location.uri deve estar no mesmo bucket do Amazon S3 que o seu conjunto de dados. Por exemplo, se o conjunto de dados estiver em s3://amzn-s3-demo-bucket/train/train.jsonl, seus vídeos deverão estar em s3://amzn-s3-demo-bucket

Práticas recomendadas

  • Mantenha os vídeos concisos e focados no conteúdo relevante para sua tarefa

  • Certifique-se de que a qualidade do vídeo seja suficiente para que o modelo extraia informações significativas.

  • Forneça perguntas claras que façam referência a aspectos específicos do conteúdo do vídeo.

  • Inclua diversos exemplos que abrangem diferentes tipos de vídeo e formatos de perguntas.

Exemplo de entrada

{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/videos/customer_service_debugging.mp4", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }

Compreensão do documento

O SFT é compatível com o treinamento em tarefas baseadas em documentos, permitindo que seu modelo aprenda a analisar e responder a perguntas sobre documentos PDF.

Restrições

Restrições de documentos
Restrição Detalhes
Formato compatível PDF
Tamanho máximo do documento 10 MB
Homogeneidade do conjunto de dados Um exemplo pode ter documentos e texto, mas não pode ter documentos combinados com outras modalidades (imagens, vídeos).
Localização do S3 O document.source.s3Location.uri deve estar no mesmo bucket do Amazon S3 que o seu conjunto de dados. Por exemplo, se o conjunto de dados estiver em s3://amzn-s3-demo-bucket/train/train.jsonl, seus documentos deverão estar em s3://amzn-s3-demo-bucket

Práticas recomendadas

  • Certifique-se de que os documentos estejam claramente formatados e que o texto possa ser extraído.

  • Forneça diversos exemplos que abrangem diferentes tipos de documentos e formatos de perguntas.

  • Inclua conteúdo de raciocínio para ajudar o modelo a aprender padrões de análise de documentos.

Exemplo de entrada

{ "schemaVersion": "bedrock-conversation-2024", "messages": [ { "role": "user", "content": [ { "text": "What are the ways in which a customer can experience issues during checkout on Amazon?" }, { "document": { "format": "pdf", "source": { "s3Location": { "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf", "bucketOwner": "123456789012" } } } } ] }, { "role": "assistant", "content": [ { "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?" } ] } ] }

Chamada de ferramentas

O SFT é compatível com modelos de treinamento em padrões de chamada de ferramentas, permitindo que seu modelo aprenda quando e como invocar ferramentas ou funções externas.

Restrições

Restrições de chamada de ferramentas
Restrição Detalhes
Formatos com suporte Conteúdo de texto ou JSON para ToolResult
Posicionamento do ToolUse O ToolUse deve aparecer somente nos turnos do assistente
Posicionamento do ToolResult O ToolResult deve aparecer somente nos turnos do usuário
Formato do inputSchema O inputSchema dentro no toolSpec deve ser um objeto de esquema JSON válido
Correspondência do toolUseId Cada ToolResult deve fazer referência a um toolUseId válido de um assistente ToolUse anterior, com cada toolUseId usado exatamente uma vez por conversa

Práticas recomendadas

  • Garanta que suas definições de ferramentas sejam consistentes em todas as amostras de treinamento.

  • O modelo aprende padrões de invocação de ferramentas das demonstrações que você fornece.

  • Inclua diversos exemplos de quando usar cada ferramenta e de quando não usá-las.

Exemplo de entrada

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemAvailability", "description": "Retrieve whether an item is available in a given location", "inputSchema": { "json": { "type": "object", "properties": { "zipcode": { "type": "string", "description": "The zipcode of the location to check in" }, "quantity": { "type": "integer", "description": "The number of items to check availability for" }, "item_id": { "type": "string", "description": "The ASIN of item to check availability for" } }, "required": ["item_id", "zipcode"] } } } } ] }, "messages": [ { "role": "user", "content": [ { "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086" } ] }, { "role": "assistant", "content": [ { "toolUse": { "toolUseId": "getItemAvailability_0", "name": "getItemAvailability", "input": { "zipcode": "94086", "quantity": 20, "item_id": "id-123" } } } ] }, { "role": "user", "content": [ { "toolResult": { "toolUseId": "getItemAvailability_0", "content": [ { "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]" } ] } } ] }, { "role": "assistant", "content": [ { "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?" } ] } ] }

Reasoning

O conteúdo de raciocínio (também chamado de encadeamento de pensamentos) captura as etapas intermediárias do pensamento do modelo antes de gerar uma resposta final.

Restrições

Restrições de raciocínio
Restrição Detalhes
Formato compatível Somente texto O conteúdo de raciocínio baseado em imagens não é compatível.
Posicionamento Somente turnos do assistente via campo reasoningContent.
Formatação Use texto sem formatação. Evite tags de marcação como <thinking> e </thinking>, a menos que sejam especificamente exigidas por sua tarefa

Práticas recomendadas

  • O conteúdo de raciocínio de alta qualidade deve incluir pensamentos intermediários, deduções lógicas, abordagens de resolução de problemas passo a passo e conexões explícitas entre etapas e conclusões.

  • Você pode incluir reasoningContent em vários turnos do assistente em conversas de vários turnos.

  • Se seu conjunto de dados não tiver rastros de raciocínio, você poderá criá-los usando um modelo capaz de raciocinar, como o Nova Premier.

Exemplo de entrada

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a digital assistant with a friendly personality" } ], "messages": [ { "role": "user", "content": [ { "text": "What country is right next to Australia?" } ] }, { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "I need to use my world knowledge of geography to answer this question" } } }, { "text": "The closest country to Australia is New Zealand, located to the southeast across the Tasman Sea." } ] } ] }

Notas adicionais

Como a perda é calculada

  • Com conteúdo de raciocínio: a perda de treinamento inclui tokens de raciocínio e tokens de saída final.

  • Conteúdo sem raciocínio: a perda de treinamento é calculada apenas com base nos tokens de saída final.

Defina reasoning_enabled: true em sua configuração de treinamento quando seus dados de treinamento tiverem tokens de raciocínio, você quiser que o modelo gere tokens de pensamento antes de produzir resultados finais ou precisar de maior performance em tarefas de raciocínio complexas.

Defina reasoning_enabled: false quando seus dados de treinamento não tiverem tokens de raciocínio, você estiver treinando em tarefas simples que não se beneficiam de etapas de raciocínio explícitas ou quiser otimizar a velocidade e reduzir o uso de tokens.

É permitido treinar o Nova em um conjunto de dados sem raciocínio com reasoning_enabled = true. No entanto, isso pode fazer com que o modelo perca suas capacidades de raciocínio, pois o Nova aprende principalmente a gerar as respostas presentes nos dados sem aplicar o raciocínio. No geral, habilite o raciocínio para o treinamento e a inferência ao usar conjuntos de dados de raciocínio, e desabilite-o para ambos ao usar conjuntos de dados sem raciocínio.

Criar exemplos de treinamento eficazes

Os dados de treinamento devem demonstrar o comportamento que você deseja que o modelo apresente. O STF ensina ao modelo como responder, não o que ele deve saber. Se você estiver criando exemplos de treinamento principalmente para injetar conhecimento factual (por exemplo, “O que o código de erro E-45 significa?” com a resposta “E-45 indica que o tempo limite de um sensor esgotou”), considere se RAG ou engenharia de prompts poderiam obter o mesmo resultado sem ajuste fino.

Ao converter dados de origem para o formato conversacional, siga estes princípios:

  1. Comece com consultas de usuários reais. Escreva turnos de usuário que reflitam os prompts reais dos usuários finais para o modelo em produção. Evite perguntas artificiais ou extremamente simplificadas que não reflitam padrões de uso reais.

  2. Escreva as melhores respostas do assistente. Cada turno do assistente deve ser a resposta ideal que você deseja que o modelo gere: correta, bem formatada e consistente em tom e estrutura em todos os exemplos.

  3. Use o prompt do sistema estrategicamente. Coloque, no turno do sistema, instruções persistentes, como formato de saída, persona e contexto do domínio. Use o mesmo prompt do sistema no treinamento e na inferência para obter os melhores resultados.

  4. Mantenha os exemplos focados em uma habilidade por amostra. Se quiser que o modelo classifique, responda a perguntas e resuma, crie conjuntos de exemplos separados para cada habilidade em vez de combinar várias habilidades em um único exemplo.

  5. Priorize qualidade em vez de quantidade. Algumas centenas de exemplos consistentes e de alta qualidade normalmente são melhores que milhares de exemplos ruidosos ou contraditórios. Elimine as duplicatas e revise os dados antes do treinamento.

Padrões comuns de transformação de dados

Os padrões a seguir ilustram como converter formatos comuns de dados corporativos em exemplos eficazes de treinamento em SFT.

Padrão 1: registros estruturados para classificação ou pesquisa

Quando seus dados de origem forem uma tabela ou um banco de dados de registros com campos como issue, cause e resolution, formate cada registro como uma pergunta do usuário com os campos de entrada relevantes e a resposta do assistente como os campos de saída pretendidos.

// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a technical support assistant. Given an issue description, identify the most likely root cause and recommended resolution." } ], "messages": [ { "role": "user", "content": [ { "text": "A user reports: 'Application crashes on startup after the latest update.' What is the likely cause and resolution?" } ] }, { "role": "assistant", "content": [ { "text": "Cause: Incompatible configuration file from the previous version.\nResolution: Delete the local configuration cache and restart the application to regenerate default settings." } ] } ] }
Padrão 2: dados hierárquicos ou taxonômicos para perguntas e respostas estruturadas

Quando os dados de origem forem uma hierarquia ou taxonomia de códigos, como árvores de categorias de produtos ou sistemas de classificação, gere perguntas que peçam ao modelo para navegar pela hierarquia. Inclua o contexto de classificação no prompt do sistema ou no turno do usuário.

// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are a product catalog assistant. Answer questions about product categories and classifications accurately." } ], "messages": [ { "role": "user", "content": [ { "text": "What top-level category does product code 'EL-4520' belong to, and what subcategories does it include?" } ] }, { "role": "assistant", "content": [ { "text": "Product code EL-4520 belongs to the Electronics category. It includes the subcategories: Audio Equipment, Portable Speakers, and Wireless Accessories." } ] } ] }
Padrão 3: documentos procedimentais para diálogo instrucional

Quando os dados de origem consistirem em procedimentos operacionais padrão, runbooks ou guias passo a passo, converta procedimentos em perguntas orientadas a tarefas. O usuário pergunta como realizar uma tarefa e o assistente fornece as etapas em um formato consistente.

// train.jsonl { "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an IT operations assistant. Provide step-by-step instructions based on approved runbooks and standard operating procedures." } ], "messages": [ { "role": "user", "content": [ { "text": "How do I reset a user's multi-factor authentication when they have lost access to their device?" } ] }, { "role": "assistant", "content": [ { "text": "Follow these steps to reset a user's multi-factor authentication:\n1. Verify the user's identity using the approved verification procedure.\n2. Disable the existing MFA configuration in the identity management console.\n3. Generate a new temporary access code and send it to the user's verified email.\n4. Instruct the user to log in with the temporary code and re-enroll their new device.\n5. Confirm the new MFA device is working by requesting a test authentication.\n6. Document the reset in the support ticket." } ] } ] }
nota

Nos Padrões 1 e 2, se o conteúdo factual (como códigos, categorias ou resoluções) ainda não estiver nos dados de pré-treinamento do modelo, considere usar RAG para fornecer essas informações na hora da inferência, em vez depender exclusivamente do SFT para memorizá-las. O SFT é mais eficaz para ensinar ao modelo o formato de resposta e o padrão de raciocínio, enquanto a RAG lida com o embasamento factual.