SFT em Nova 2.0 - 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á.

SFT em Nova 2.0

O Amazon Nova Lite 2.0 traz recursos aprimorados para ajuste fino supervisionado, incluindo modo de raciocínio avançado, melhor compreensão multimodal e tratamento ampliado do contexto. O SFT no Nova 2.0 permite que você adapte esses recursos poderosos aos seus casos de uso específicos, mantendo o desempenho superior do modelo em tarefas complexas.

Os principais recursos do SFT no Nova 2.0 incluem:

  • Suporte ao modo de raciocínio: treine modelos para gerar traços de raciocínio explícitos antes das respostas finais para aprimorar as capacidades analíticas.

  • Treinamento multimodal avançado: ajuste a compreensão de documentos (PDF), a compreensão de vídeo e as tarefas baseadas em imagens com maior precisão.

  • Capacidades de chamada de ferramentas: treine modelos para usar ferramentas externas e chamadas de funções de forma eficaz em fluxos de trabalho complexos.

  • Suporte de contexto estendido: aproveite janelas de contexto mais longas com melhor estabilidade e precisão para aplicativos com uso intensivo de documentos.

Seleção do modo de raciocínio (somente Nova 2.0)

O Amazon Nova 2.0 oferece suporte ao modo de raciocínio para recursos analíticos aprimorados:

  • Modo de raciocínio (ativado):

    • reasoning_enabled: trueDefinido na configuração de treinamento

    • O modelo treina para gerar traços de raciocínio antes das respostas finais

    • Melhora o desempenho em tarefas complexas de raciocínio

  • Modo sem raciocínio (desativado):

    • Definir reasoning_enabled: false ou omitir o parâmetro (padrão)

    • SFT padrão sem raciocínio explícito

    • Adequado para tarefas que não se beneficiam do step-by-step raciocínio

nota
  • Quando o raciocínio é ativado, ele opera com alto esforço de raciocínio. Não há uma opção de baixo raciocínio para o SFT.

  • O conteúdo de raciocínio multimodal não é suportado pelo SFT. O modo de raciocínio se aplica a entradas somente de texto.

É permitido treinar o Amazon Nova em um conjunto de dados irracional comreasoning_enabled: true. No entanto, isso pode fazer com que o modelo perca suas capacidades de raciocínio, pois o Amazon Nova aprende principalmente a gerar as respostas apresentadas nos dados sem aplicar o raciocínio.

Se estiver treinando o Amazon Nova em um conjunto de dados sem raciocínio, mas ainda quiser usar o raciocínio durante a inferência:

  1. Desative o raciocínio durante o treinamento () reasoning_enabled: false

  2. Ative o raciocínio posteriormente durante a inferência

Embora essa abordagem permita o raciocínio no momento da inferência, ela não garante um melhor desempenho em comparação com a inferência sem raciocínio.

Prática recomendada: habilite o raciocínio para treinamento e inferência ao usar conjuntos de dados de raciocínio e desative-o para ambos ao usar conjuntos de dados sem raciocínio.

Formato de dados de chamada da ferramenta

O SFT oferece suporte a modelos de treinamento para usar ferramentas (chamada de função). Abaixo está um exemplo de formato de entrada para chamada de ferramentas:

Entrada de amostra:

{ "schemaVersion": "bedrock-conversation-2024", "system": [ { "text": "You are an expert in composing function calls." } ], "toolConfig": { "tools": [ { "toolSpec": { "name": "getItemCost", "description": "Retrieve the cost of an item from the catalog", "inputSchema": { "json": { "type": "object", "properties": { "item_name": { "type": "string", "description": "The name of the item to retrieve cost for" }, "item_id": { "type": "string", "description": "The ASIN of item to retrieve cost for" } }, "required": [ "item_id" ] } } } }, { "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?" } ] } ] }

Considerações importantes sobre dados de chamada de ferramentas:

  • ToolUse deve aparecer somente nos turnos de assistente

  • ToolResult deve aparecer somente nos turnos do usuário

  • ToolResult deve ser somente texto ou JSON; atualmente, outras modalidades não são suportadas pelos modelos Amazon Nova

  • O InputSchema dentro do ToolSpec deve ser um objeto de esquema JSON válido

  • Cada um ToolResult deve fazer referência a um válido toolUseId de um assistente anterior ToolUse, com cada um toolUseId usado exatamente uma vez por conversa

Documento que compreende o formato dos dados

O SFT oferece suporte a modelos de treinamento em tarefas de compreensão de documentos. Abaixo está um exemplo de formato de entrada:

Entrada de amostra

{ "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?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the document to answer the question.", "type": "text" } ] } ] }

Considerações importantes para a compreensão do documento:

  • Somente arquivos PDF são suportados

  • O tamanho máximo do documento é 10 MB

  • Uma amostra pode conter documentos e texto, mas não pode misturar documentos com outras modalidades (como imagens ou vídeo)

Compreensão de vídeo para SFT

O SFT oferece suporte a modelos de ajuste fino para tarefas de compreensão de vídeo. Abaixo está um exemplo de formato de entrada:

Entrada de amostra

{ "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?" } ], "reasoning_content": [ { "text": "I need to find the relevant section in the video to answer the question.", "type": "text" } ] } ] }

Considerações importantes para a compreensão do vídeo:

  • Os vídeos podem ter no máximo 50 MB

  • Os vídeos podem ter até 15 minutos de duração

  • Somente um vídeo é permitido por amostra; vários vídeos na mesma amostra não são suportados

  • Uma amostra pode conter vídeo e texto, mas não pode misturar vídeo com outras modalidades (como imagens ou documentos)

Instruções de upload de dados

Faça upload de conjuntos de dados de treinamento e validação em um bucket do S3. Especifique esses locais no run bloco da receita:

## Run config run: ... data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"

Nota: Substitua <bucket-name><training-directory>,<validation-directory>,<training-file>, e <validation-file> por caminhos S3 reais.

Nota: No momento, os conjuntos de dados de validação não são compatíveis com o SFT com o Amazon Nova 2.0. Se um conjunto de dados de validação for fornecido, ele será ignorado.

Criando um trabalho de ajuste fino

Defina o modelo base usando os model_name_or_path campos model_type e no run bloco:

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

Orientação de hiperparâmetros

Use os seguintes hiperparâmetros recomendados com base na abordagem de treinamento:

Treinamento de classificação completa

  • Épocas: 1

  • Taxa de aprendizagem (lr): 1e-5

  • Taxa mínima de aprendizado (min_lr): 1e-6

LoRa (adaptação de baixa classificação)

  • Épocas: 2

  • Taxa de aprendizagem (lr): 5e-5

  • Taxa mínima de aprendizado (min_lr): 1e-6

Observação: ajuste esses valores com base no tamanho do conjunto de dados e no desempenho da validação. Monitore as métricas de treinamento para evitar ajustes excessivos.