Ajuste fino supervisionado
Introdução
O ajuste fino supervisionado usa um conjunto de dados com pares de entrada-saída para a tarefa de interesse. Em outras palavras, você fornece exemplos de prompts (perguntas, instruções etc.) junto com as respostas corretas ou desejadas e continua treinando o modelo com base nelas. Os pesos do modelo são ajustados para minimizar uma perda supervisionada, normalmente entropia cruzada entre suas predições e os tokens de resposta esperados.
Quando usar o SFT?
O SFT é melhor quando você tem uma tarefa bem definida com as saídas desejadas claras. Se você puder dizer explicitamente “Dada a entrada X, a saída correta/desejada é Y” e reunir exemplos desses mapeamentos X-Y, o ajuste fino supervisionado será uma ótima opção. Alguns cenários em que o SFT se destaca incluem:
-
Tarefas de classificação estruturadas ou complexas: p. ex., classificar documentos ou contratos internos em várias categorias personalizadas. Com o SFT, o modelo pode aprender essas categorias específicas muito melhor do que apenas gerando prompts.
-
Tarefas de respostas ou transformação de perguntas com respostas conhecidas: p. ex., ajustar um modelo para responder a perguntas da base de conhecimento de uma empresa ou converter dados entre formatos, em que cada entrada tem uma resposta correta.
-
Formatação e consistência de estilo: se você precisar que o modelo sempre responda em um determinado formato ou tom, você pode ajustar exemplos do formato/tom correto. Por exemplo, o treinamento em pares de prompt-resposta que demonstram a voz ou o estilo de uma marca específica pode ensinar ao modelo esse estilo em seus resultados. O comportamento de seguir as instruções geralmente é ensinado logo de início via SFT em exemplos selecionados de bom comportamento do assistente.
O SFT é a maneira mais direta de ensinar a um LLM uma nova habilidade ou comportamento quando você pode especificar qual é o comportamento correto. Ele aproveita a compreensão da linguagem existente do modelo e a concentra em sua tarefa. Não use o SFT quando a lacuna de conhecimento em vez de comportamento; isso não fará com que o modelo aprenda novos fatos, jargões ou eventos recentes. Nesses casos, prefira o pré-treinamento contínuo em grandes corpora do domínio ou a geração aumentada via recuperação (RAG) para fornecer conhecimento externo na inferência. Quando você pode avaliar a qualidade, mas não consegue rotular uma única resposta certa, o ajuste fino por reforço com recompensas verificáveis ou um LLM como avaliador pode ser preferível ao SFT.
Dependendo da complexidade da tarefa e da performance do modelo Nova sem ajustes, planeje de milhares a dezenas de milhares de demonstrações por tarefa, com a qualidade, a consistência e a diversidade de dados sendo mais importantes do que o volume bruto.
Quando usar o ajuste eficiente de parâmetros e quando usar o SFT full-rank?
As fórmulas de personalização do Nova permitem que você execute parâmetros com eficiência, em particular LoRA ou SFT full-rank. Se você deseja uma atualização de modelo direta e econômica, ou se tem poucos dados, prefira métodos eficientes em termos de ajuste de parâmetros para treinar adaptadores pequenos e deixar a maior parte da estrutura intocada (o SFT full-rank atualiza todos os parâmetros do modelo).
Combinação de dados para o SFT
A combinação de dados permite que você combine seus conjuntos de dados de treinamento personalizados com os dados de treinamento proprietários do Nova. Esse recurso está disponível para os modelos Nova 1.0 e Nova 2.0.
Tipo de dados proprietários do Nova: o Nova é compatível com tipos de dados SFT de texto e multimodais. Ele é organizado em várias categorias de dados, cada uma contendo uma combinação de tarefas relevantes para a categoria correspondente.
Categorias de dados proprietários do Nova: os conjuntos de dados de texto incluem várias categorias, incluindo: tomada de decisão autônoma, conclusão de tarefas, conjuntos de dados orientados a metas (agentes), conjuntos de dados de execução de tarefas precisos com e sem raciocínio (seguimento de instruções com raciocínio, seguimento de instruções), sequências que demonstram pensamento estratégico e divisão de tarefas passo a passo (planejamento), IA responsável (rai), contexto longo, factualidade, matemática, áreas de exatas e muitas outras. Da mesma forma, conjuntos de dados multimodais incluem vídeos, capturas de tela, gráficos e muito mais.
O recurso de combinação de dados permite que você combine suas próprias amostras de treinamento de ajuste fino com amostras dos conjuntos de dados do Nova usados para ajustar o Nova. Isso pode evitar o sobreajuste de seu treinamento personalizado e o “esquecimento catastrófico” dos recursos do Nova, ou pode ajudar a desenvolver recursos ao treinar em um novo ponto de verificação pré-treinado.
Para combinar dados do Nova, basta adicionar um bloco data_mixing ao arquivo YAML da fórmula, na seção training_config. Os blocos de combinação de dados de texto e multimodais têm tipos de conteúdo diferentes, e os blocos de combinação de dados são um pouco diferentes para o Nova 1.0 e o Nova 2.0. Consulte as fórmulas correspondentes.
Modelos compatíveis
Nova 1.0 (Micro, Lite, Pro)
Nova 2.0 Lite
Modalidades compatíveis
Texto
Multimodal
Exemplos de configuração YAML
Exemplo de bloco de combinação de dados para combinação de texto do Nova 1.0
## Run config run: name: "my-lora-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path: "" # Customer data path output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: max_length: 32768 # Maximum context window size (tokens). global_batch_size: 64 # Global batch size, allowed values are 16, 32, 64 trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate peft: peft_scheme: "lora" # Enable LoRA for parameter-efficient fine-tuning lora_tuning: loraplus_lr_ratio: 8.0 # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0 alpha: 32 # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192 adapter_dropout: 0.01 # Regularization for LoRA parameters. Must be between 0.0 and 1.0 data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # science, technology, engineering, and mathematics content planning: 2 # sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # logical problem-solving and analytical thinking demonstrations rag: 1 # retrieval-augmented generation examples translation: 9 # language translation tasks
Exemplo de configuração do Nova 2.0
run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl replicas: 4 output_s3_path: s3://my-bucket-name/outputs/ mlflow_tracking_uri: "" mlflow_experiment_name: "my-lora-sft-experiment" mlflow_run_name: "my-lora-sft-run" training_config: max_steps: 100 save_steps: 10 save_top_k: 5 max_length: 32768 global_batch_size: 32 reasoning_enabled: true lr_scheduler: warmup_steps: 15 min_lr: 1e-6 optim_config: lr: 1e-5 weight_decay: 0.0 adam_beta1: 0.9 adam_beta2: 0.95 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0
Combinação de dados de texto do Nova 2.0
data_mixing: dataset_catalog: sft_1p5_text_chat sources: customer_data: percent: 50 nova_data: agents: 1 baseline: 10 chat: 0.5 code: 10 factuality: 0.1 identity: 1 long-context: 1 math: 2 rai: 1 instruction-following: 13 stem: 0.5 planning: 10 reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 translation: 0.1
Combinação de dados multimodais do Nova 1.0
data_mixing: dataset_catalog: sft_mm sources: customer_data: percent: 50 nova_data: agents: 11 docs: 17 perception: 10 rag: 4 rai: 3 reasoning: 10 stem: 17 text: 10 video: 18
Combinação de dados multimodais do Nova 2.0
data_mixing: dataset_catalog: sft_1p5_mm_chat sources: customer_data: percent: 50 nova_data: charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15
Pontos de verificação do modelo
Pontos de verificação do Nova 1.0
-
PRÉ-TREINADO [
nova-<micro/lite/pro>/pretraining-text-partial]: ponto de verificação após a etapa de taxa de aprendizado constante do pré-treinamento do Nova, em que o modelo é treinado em trilhões de tokens de texto. [Resultado da etapa 1] -
TREINAMENTO INTERMEDIÁRIO [
nova-<micro/lite/pro>/pretraining-text-full]: ponto de verificação somente com texto após todas as etapas do pré-treinamento e do treinamento intermediário do Nova com trilhões de tokens de texto. Use se você não quiser que o modelo tenha sido treinado com nenhum dado multimodal. [Resultado da etapa 3] -
TREINADO INTERMEDIÁRIO [
nova-<lite/pro>/pretraining-mm-full]: ponto de verificação após todas as etapas do pré-treinamento e do treinamento intermediário do Nova, incluindo dados multimodais, com trilhões de tokens. [Resultado da etapa 3 com dados multimodais] -
FINAL [
nova-<micro/lite/pro>/prod]: ponto de verificação final totalmente alinhado que passou por todas as etapas de pré-treinamento e pós-treinamento. [Resultado da etapa 4]
Pontos de verificação do Nova 2.0
-
PRÉ-TREINADO [
nova-lite-2/pretraining-text-RD]: ponto de verificação após uma taxa de aprendizado constante e etapas de desaceleração, em que o modelo é treinado em trilhões de tokens. [Resultado da etapa 2] -
TREINAMENTO INTERMEDIÁRIO [
nova-lite-2/pretraining-text-CE]: permite que clientes com volumes intermediários de dados não estruturados apresentem seus dados com uma taxa de aprendizado mais conservadora do que a do pré-treinamento, absorvendo conhecimento específico do domínio e evitando um esquecimento catastrófico. [Resultado da etapa 3] -
FINAL [
nova-lite-2/prod]: ponto de verificação final totalmente alinhado que passou por todas as etapas de pré-treinamento e pós-treinamento. [Resultado da etapa 4]
Etapas de treinamento:
Etapa 1: ponto de verificação de PT, pré-treinamento inicial com taxa de aprendizado constante
Etapa 2: ponto de verificação de PT, desaceleração da taxa de aprendizado
Etapa 3: ponto de verificação de PT, treinamento de extensão de contexto
Etapa 4: treinamento de segurança e alinhamento para seguir as instruções
Abordagens de treinamento
| Tipo de dado | Volume de dados | Executar | Com ponto de verificação |
|---|---|---|---|
| Dados brutos de domínio não estruturados em grande escala (documentos, logs, artigos, código etc.) | Mais de 1 trilhão de tokens | Pré-treinamento contínuo | Fim da taxa de aprendizado constante (CLR) |
| Dados brutos de domínio não estruturados em grande escala | Mais de 100 bilhões de tokens | Treinamento intermediário | Fim da CLR |
| Volumes menores de dados brutos não estruturados; rastros de raciocínio estruturado/dados de CoT | Mais de 1 bilhão de tokens | Treinamento intermediário | Modelo de base do Nova |
| Demonstrações estruturadas (pares de entrada e saída de alta qualidade, instruções de tarefas selecionadas, diálogos de várias etapas) | Mais de 1 mil exemplos | Ajuste fino supervisionado (SFT) | Modelo de base do Nova |
Pré-requisitos antes de começar
-
Presumimos que você já tenha configurado um cluster do SMHP com um grupo de instâncias restritas (RIG) com capacidade ativa. Caso contrário, consulte aqui para concluir a configuração do cluster do SMHP e do RIG [Link do documento, Link do workshop
] -
Você precisará de instâncias p5.48xlarge do EC2 para executar essa fórmula. O número mínimo de instâncias necessárias para executar essa fórmula com eficiência é o seguinte:
Nova Lite 2.0: 4 p5.48xlarge
Nova Lite 1.0: 4 p5.48xlarge
Nova Micro 1.0: 4 p5.48xlarge
Nova Pro 1.0: 6 p5.48xlarge
-
Instale a CLI do SageMaker HyperPod específica para o Forge usando as instruções fornecidas aqui
-
Confirme se você pode se conectar ao cluster usando
hyperpod get-clustersObserve que esse comando listará todos os clusters do SMHP em sua conta
-
Confirme se seu treinamento e, opcionalmente, os dados de validação, estão disponíveis em um bucket do S3 que pode ser acessado pelo perfil de execução do seu cluster do SMHP. Para preparação de dados, consulte a próxima seção.
-
Conclua a configuração. Se você não tiver concluído a configuração, siga o guia abaixo.
-
Verificação: depois de concluir a configuração, confirme se você pode executar com êxito os comandos abaixo
aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region> hyperpod connect-cluster --cluster-name cluster-name
Uma abordagem sistemática para obter êxito no SFT
-
Preparação de dados: siga as diretrizes estabelecidas para criar, limpar ou reformatar conjuntos de dados na estrutura necessária. Certifique-se de que as entradas, saídas e informações auxiliares (como metadados e rastros de raciocínio) estejam alinhadas e formatadas adequadamente.
-
Configuração de treinamento: defina como o modelo será treinado. Ao usar o Amazon SageMaker HyperPod, essa configuração é gravada em um arquivo de fórmula YAML, que inclui:
Caminhos da fonte de dados (conjuntos de dados de treinamento e validação)
Hiperparâmetros principais (número de etapas de treinamento, taxa de aprendizado, tamanho do lote)
Componentes opcionais (parâmetros de treinamento distribuídos etc.)
Configuração da combinação de dados (define as proporções das categorias de dados do cliente e do Nova)
-
Otimização dos hiperparâmetros do SFT: os valores dos parâmetros da fórmula do SFT que recomendamos são um excelente ponto de partida e uma escolha robusta. Se você quiser otimizá-los ainda mais para seu caso de uso, faça várias execuções de SFT com diferentes combinações de parâmetros e escolha a melhor. Você pode selecionar combinações de parâmetros seguindo o método de otimização de hiperparâmetros de sua escolha. Uma abordagem simples é variar o valor de um parâmetro (padrão*0,5, padrão, padrão*2) mantendo outro valor padrão para outros parâmetros, repetir isso para cada parâmetro que você deseja otimizar e iterar, se necessário. Os parâmetros mais relevantes para LoRA são taxa de aprendizado, alfa (parâmetro de escalabilidade), número de épocas para treinar e etapas de aquecimento; para full-stack, é principalmente a taxa de aprendizado, o número de épocas e as etapas de aquecimento.
Sequenciamento de experimentos e combinação de dados
-
Se você tem apenas dados do SFT (treinamento/dev/teste) para um conjunto de tarefas e seu foco é apenas na performance do teste nessas tarefas
Faça o SFT sem combinar no ponto de verificação do Nova [FINAL]. Use os hiperparâmetros padrão do SFT e, opcionalmente, otimize-os para seu caso de uso. Monitore as métricas de validação e avalie pontos de verificação intermediários para conjuntos de dados maiores.
-
Se você tem apenas dados do SFT (treinamento/dev/teste) para um conjunto de tarefas e seu foco é na performance dos testes nessas tarefas e nas avaliações comparativas gerais no domínio de interesse
Comece fazendo a combinação de dados do SFT com o Nova em um ponto de verificação de pré-treinamento (ponto de verificação PRÉ-TREINADO ou INTERMEDIÁRIO, não o FINAL). O uso de um ponto de verificação intermediário permite que o modelo integre melhor seus dados personalizados aos dados proprietários do Nova, preservando seus recursos gerais de forma robusta.
Execute treinamentos de SFT mais curtos com quantidades variáveis de dados do Nova na combinação (p. ex., 10%, 25%, 50%, 75%) e seleções de categorias de dados do Nova que complementam seu caso de uso (p. ex., escolha a categoria de seguimento de instruções se seu foco for na habilidade de seguir instruções gerais). Monitore as métricas de validação e avalie se a combinação ajuda na performance das avaliações comparativas gerais. Selecione a combinação de treinamento e o ponto de verificação que levam à melhor combinação de performance em sua tarefa e performance geral. Dependendo do caso de uso, tanto a tarefa quanto a performance geral podem ser aprimoradas ainda mais usando o ajuste fino por reforço (RFT).
Preparar o conjunto de dados para o SFT
Nova 1.0: a preparação de dados é descrita em https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html
Nova 2.0: use o formato Converse API como para o Nova 1.0 https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html. O formato de dados do Nova 2.0 pode conter campos de raciocínio adicionais: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html
O conteúdo de raciocínio captura as etapas intermediárias do pensamento do modelo antes de gerar uma resposta final. Na vez de assistant, use o campo reasoningContent para incluir rastros de raciocínio. Use texto simples para conteúdo de raciocínio, evite tags de marcação como <thinking> e </thinking>, a menos que sejam especificamente exigidas por sua tarefa, e garanta que o conteúdo de raciocínio seja claro e relevante para o processo de solução de problemas.
Kit de ferramentas de IA responsável e moderação de conteúdo
Configurações de moderação de conteúdo: os clientes do Nova Forge têm acesso às configurações de moderação de conteúdo personalizáveis (CCMS) para os modelos Nova Lite 1.0 e Pro 1.0. O CCMS permite que você ajuste os controles de moderação de conteúdo para se alinhar aos seus requisitos empresariais específicos, mantendo as proteções essenciais de IA responsável. Para determinar se seu caso de uso empresarial se qualifica para o CCMS, entre em contato com seu gerente de conta da Amazon Web Services.
O Nova Forge fornece um kit de ferramentas de IA responsável que inclui dados de treinamento, avaliações comparativas e controles de runtime para ajudar você a alinhar seus modelos às diretrizes de IA responsável do Nova.
Dados de treinamento: a categoria “RAI” na combinação de dados contém casos e cenários que enfatizam os princípios de IA responsável, as considerações de segurança e a implantação responsável de tecnologia. Use-os para alinhar modelos com responsabilidade durante o pré-treinamento contínuo.
Avaliações: tarefas de avaliações comparativas estão disponíveis para testar a capacidade do modelo de detectar e rejeitar conteúdo impróprio, prejudicial ou incorreto. Use essas avaliações para analisar a diferença entre a performance do modelo de base e a do modelo personalizado.
Controles de runtime: por padrão, o runtime do Nova controla respostas moderadas do modelo durante a inferência. Para modificar esses controles para seu caso empresarial específico, solicite as configurações de moderação de conteúdo personalizáveis (CCMS) entrando em contato com seu gerente de conta da Amazon Web Services.
Responsabilidade compartilhada pela segurança
A segurança é uma responsabilidade compartilhada entre a Amazon Web Services e nossos clientes. Alterar o modelo de base ou usar o pré-treinamento contínuo para melhorar a performance em um caso de uso específico pode afetar a segurança, a imparcialidade e outras propriedades do novo modelo.
Usamos um método de adaptação robusto para minimizar as alterações na segurança, imparcialidade e outras proteções incorporadas em nossos modelos de base, ao mesmo tempo em que minimizamos o impacto na performance do modelo em tarefas para as quais ele não foi personalizado.
Você é responsável por:
Testes completos de suas aplicações em conjuntos de dados representativos de seus casos de uso
Decidir se os resultados dos testes atendem às expectativas específicas de segurança, imparcialidade e outras propriedades, bem como da eficácia geral
Para obter mais informações, consulte o Guia de uso responsável da IA da Amazon Web Services, a Política de IA responsável da Amazon Web Services, a Política de uso aceitável da AWS e os Termos de serviço da AWS dos serviços que você planeja usar.
Configurações de moderação de conteúdo personalizáveis (CCMS)
O CCMS permite que você ajuste os controles relevantes aos requisitos de sua empresa, mantendo controles essenciais e não configuráveis que garantem o uso responsável da IA.
Essas configurações permitem a geração de conteúdo por meio de três configurações disponíveis:
Somente segurança
Segurança, conteúdo sensível e equidade combinados
Todas as categorias combinadas
As quatro categorias de moderação de conteúdo são:
Segurança: abrange atividades perigosas, armas e substâncias controladas.
Conteúdo sensível: inclui palavrões, nudez e intimidação
Equidade: aborda vieses e considerações culturais
Segurança: envolve crimes cibernéticos, malware e conteúdo malicioso
Independentemente da configuração do CCMS, o Amazon Nova aplica controles essenciais e não configuráveis para garantir o uso responsável da IA, como controles para prevenir danos às crianças e preservar a privacidade.
Recomendações para usar o CCMS
Ao usar o CCMS, recomendamos usar o pré-treinamento contínuo (CPT) e partir de um ponto de verificação de alinhamento pré-RAI (pré-treinamento inicial, pré-treinamento intermediário ou pré-treinamento final) em vez do ponto de verificação GA/FINAL. Esses pontos de verificação não passaram por treinamento de segurança nem foram direcionados para comportamentos específicos de RAI, permitindo que você os personalize com mais eficiência de acordo com seus requisitos de moderação de conteúdo.
Dica: ao usar o CCMS com uma combinação de dados, considere ajustar a porcentagem da categoria “rai” em sua configuração nova_data para se alinhar aos seus requisitos específicos de moderação de conteúdo.
Disponibilidade
Atualmente, o CCMS está disponível para clientes aprovados usando:
Modelos Nova Lite 1.0 e Pro 1.0
Inferência sob demanda do Amazon Bedrock
A região us-east-1 (Norte da Virgínia)
Para habilitar o CCMS para seus modelos do Forge, entre em contato com seu gerente de conta da Amazon Web Services.
Métodos de avaliação
Pré-requisitos
URI do ponto de verificação do S3 do arquivo
manifest.jsonda sua tarefa de treinamento (para modelos treinados)Conjunto de dados de avaliação enviado para o S3 no formato correto
Caminho do S3 de saída para os resultados da avaliação
Avaliações comparativas prontas para uso: use avaliações comparativas prontas para uso para validar a performance em tarefas gerais. Para obter mais detalhes, confira aqui: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html
Traga seus próprios dados
Você também pode fornecer seus dados personalizados formatando-os no formato abaixo e, em seguida, usando os contêineres mencionados a seguir para obter resultados de inferência junto com probabilidades logarítmicas para calibrações, se necessário.
Crie um arquivo JSONL por tarefa com a seguinte estrutura:
{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }
Os resultados gerados durante a fase de inferência da tarefa de avaliação terão a seguinte estrutura:
{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }
Descrições dos campos:
prompt: entrada formatada enviada ao modeloinference: resposta gerada do modelogold: resposta correta esperada do conjunto de dados de entrada, campo de resposta da entradametadata: metadados opcionais transmitidos da entrada
Preparar a configuração da avaliação
Comando para iniciar a tarefa de avaliação. Use "--override-parameters" para modificar qualquer entrada da fórmula.
hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'
Práticas recomendadas
-
Priorize a qualidade dos dados em detrimento do volume: dados de treinamento de alta qualidade, diversos e representativos são mais valiosos do que grandes quantidades de dados de baixa qualidade.
-
Inclua a categoria de seguimento de instrução com raciocínio: ao usar a combinação de dados, inclua a categoria de “seguimento de instrução com raciocínio” para manter uma forte performance genérica em todas as tarefas.
-
Use as taxas de aprendizado padrão: comece com as taxas de aprendizado padrão (1e-5 para LoRA, 5e-6 para SFT full-stack) e ajuste somente se necessário com base nas métricas de validação.
-
Equilibre a combinação de dados do Nova: combine no máximo 50% de dados do Nova para obter um equilíbrio ideal entre latência e performance. Porcentagens mais altas podem melhorar os recursos gerais, mas podem aumentar o tempo de treinamento.
-
Monitore as métricas de validação: avalie regularmente os pontos de verificação intermediários durante o treinamento para detectar precocemente o sobreajuste ou a degradação da performance.
-
Teste em conjuntos de dados representativos: garanta que seus conjuntos de dados de avaliação representem com precisão seus casos de uso de produção para uma avaliação significativa da performance.
Preparar a configuração da tarefa de treinamento
Hiperparâmetros
Conjunto completo de hiperparâmetros além da combinação de dados:
## Run config run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # SageMaker HyperPod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4) save_top_k: 5 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Golbal batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0–100.0)
Os parâmetros mais relevantes para LoRA são taxa de aprendizado, alfa (parâmetro de escalabilidade), número de épocas para treinar e etapas de aquecimento; para full-stack, é principalmente a taxa de aprendizado, o número de épocas e as etapas de aquecimento. As fórmulas são pré-preenchidas com os padrões recomendados.
Configurar o bloco de combinação de dados
Adicione a seção data_mix à sua fórmula com a distribuição percentual apropriada nas categorias do conjunto de dados.
Abaixo, descrevemos cada categoria de dados disponível do Nova.
Configuração do Nova 1.0 com combinação de dados
data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # Technical content covering science, technology, engineering, and mathematics planning: 2 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # Logical deduction, critical thinking, and analytical problem-solving scenarios rag: 1 # combining retrieved external knowledge with generated responses translation: 9 # Multi-language content pairs showing accurate translation
O que essas categorias significam?
| Nome da categoria | Detalhes das informações |
|---|---|
| agentes | Dados de treinamento focados na tomada de decisão autônoma, na conclusão de tarefas e no comportamento orientado a metas em sistemas de IA |
| chat | Trocas conversacionais demonstrando um fluxo natural de diálogo, a manutenção do contexto e interações sociais apropriadas |
| código | Exemplos e soluções de programação abrangendo vários idiomas, cenários de depuração e práticas recomendadas de desenvolvimento de software |
| IA responsável (RAI) | Casos e cenários enfatizando os princípios éticos da IA, considerações de segurança e implantação responsável de tecnologia |
| seguimento de instruções | Exemplos de execução precisa de tarefas com base em diversos níveis de prompts e diretrizes dos usuários |
| radical | Conteúdo técnico que abrange ciência, tecnologia, engenharia e matemática, incluindo resolução de problemas e conceitos teóricos |
| planejamento | Sequências que demonstram pensamento estratégico, divisão de tarefas passo a passo e alocação eficiente de recursos |
| reasoning | Dedução lógica, pensamento crítico e cenários analíticos de solução de problemas com cadeias de raciocínio claras |
| RAG | Exemplos de combinação eficaz do conhecimento externo recuperado com as respostas geradas para fornecer informações contextuais precisas |
| conversão | Pares de conteúdo em vários idiomas que mostram uma tradução precisa, preservando o contexto, o tom e as nuances culturais |
Combinação de dados multimodais (Nova 1.0)
data_mixing: dataset_catalog: sft_mm # Nova multi-modal dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 11 # Combining visual and textual inputs docs: 17 # Document-centric data combining text, images, layouts, and formatting perception: 10 # Visual-linguistic pairs t rag: 4 # Combining retrieved external knowledge with generated responses rai: 3 # Ethical AI principles, safety considerations, and responsible technology deployment reasoning: 10 # Logical analysis, problem-solving, and drawing conclusions stem: 17 # Technical content pairing visual elements (diagrams, charts, equations) with text text: 10 # A balanced pool of contextual text data create from the text-only SFT datasets video: 18 # Video datasets
O que essas categorias significam?
| Nome da categoria | Detalhes das informações |
|---|---|
| agentes | Pares de treinamento que combinam entradas visuais e textuais que demonstram como os sistemas de IA devem interpretar, agir e interagir com informações ambientais multissensoriais |
| docs | Dados centrados em documentos que combinam texto, imagens, layouts e formatação para treinar modelos na compreensão e no processamento de vários tipos e estruturas de documentos para ajudar com conceitos como reconhecimento de conteúdo em PDF |
| percepção | Pares visual-linguísticos para treinamento de modelos para descrever, interpretar e raciocinar com precisão sobre imagens, vídeos e outras entradas visuais em linguagem natural |
| RAG | Exemplos de recuperação multimodal que mostram como combinar e referenciar com eficácia o conhecimento externo visual e textual para gerar respostas contextuais precisas |
| reasoning | Casos que combinam elementos visuais e textuais que demonstram análise lógica, solução de problemas e conclusões em várias modalidades |
| radical | Conteúdo técnico que combina elementos visuais (diagramas, gráficos, equações) com texto para ensinar conceitos científicos, matemáticos e técnicos e resolução de problemas |
| texto | Um conjunto equilibrado de dados contextuais de texto criado com base nas categorias dos conjuntos de dados do SFT somente com texto do Nova para fornecer recursos generalistas |
| video | Conteúdo visual baseado em movimento focado na compreensão temporal e na compreensão visual-narrativa sequencial |
Configuração do Nova 2.0 com combinação de dados
data_mixing: dataset_catalog: sft_1p5_text_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems baseline: 10 # [New in Nova 1.5] chat: 0.5 # Conversational exchanges demonstrating natural dialogue flow code: 10 # Programming examples and solutions spanning multiple languages factuality: 0.1 # [New in Nova 1.5] identity: 1 # [New in Nova 1.5] long-context: 1 # [New in Nova 1.5] math: 2 # [New in Nova 1.5] rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 0.5 # Technical content covering science, technology, engineering, and mathematics planning: 10 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 # combining retrieved external knowledge with generated responses translation: 0.1
O que essas categorias significam?
| Nome da categoria | Detalhes das informações |
|---|---|
| agentes | Dados de treinamento focados na tomada de decisão autônoma, na conclusão de tarefas e no comportamento orientado a metas em sistemas de IA |
| linha de base | Dados linguísticos fundamentais focados na compreensão geral, na comunicação básica e nas capacidades linguísticas essenciais |
| chat | Trocas conversacionais demonstrando um fluxo natural de diálogo, a manutenção do contexto e interações sociais apropriadas |
| código | Código fonte de programação, documentação e discussões técnicas de várias plataformas e linguagens de programação. |
| factualidade | Materiais de referência e informações verificadas com foco na precisão, na validação da fonte e na avaliação da verdade |
| identidade | Frameworks de personalidade e padrões comportamentais focados em traços de caráter, valores e estilos de interação consistentes |
| long-context | Textos extensos e narrativas complexas focados em manter a coerência e a relevância em interações de longa duração |
| math | Conteúdo matemático, incluindo livros didáticos, problemas, soluções e discussões matemáticas. |
| IA responsável (RAI) | Casos e cenários enfatizando os princípios éticos da IA, considerações de segurança e implantação responsável de tecnologia |
| seguimento de instruções | Exemplos de execução precisa de tarefas com base em diversos níveis de prompts e diretrizes dos usuários |
| radical | Conteúdo técnico que abrange ciência, tecnologia, engenharia e matemática, incluindo resolução de problemas e conceitos teóricos |
| planejamento | Sequências que demonstram pensamento estratégico, divisão de tarefas passo a passo e alocação eficiente de recursos |
| reasoning-chat | Cenários de diálogo analítico focados em discussões lógicas e fluxos de conversação estruturados |
| reasoning-code | Desafios de programação e problemas algorítmicos focados no desenvolvimento sistemático de soluções |
| reasoning-factuality | Cenários de avaliação de informações focados em processos críticos de avaliação e verificação |
| reasoning-instruction-following | Análise complexa de tarefas focada na interpretação sistemática e na execução metódica |
| reasoning-math | Cenários matemáticos de resolução de problemas focados em progressão lógica e estratégias de solução |
| reasoning-planning | Cenários de tomada de decisão estratégica focados na abordagem sistemática para o alcance de metas |
| reasoning-rag | Cenários de recuperação e síntese de informações focados na compreensão contextual e na aplicação relevante |
| reasoning-rai | Cenários de tomada de decisão ética focados na avaliação sistemática da segurança e imparcialidade da IA |
| reasoning-stem | Cenários científicos de resolução de problemas focados na análise metódica e no desenvolvimento de soluções |
| RAG | Exemplos de combinação eficaz do conhecimento externo recuperado com as respostas geradas para fornecer informações contextuais precisas |
| conversão | Pares de conteúdo em vários idiomas que mostram uma tradução precisa, preservando o contexto, o tom e as nuances culturais |
Combinação de dados multimodais (Nova 2.0)
data_mixing: dataset_catalog: sft_1p5_mm_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15
Observação: o Nova 2.0 inclui suporte para categorias de dados de vídeo que não está disponível no Nova 1.0.
O que essas categorias significam?
| Nome da categoria | Detalhes das informações |
|---|---|
| grafos | Representações visuais e descrições de gráficos, gráficos circulares, gráficos de barras, gráficos de linhas e outras visualizações estatísticas para ajudar o modelo a entender e a comunicar informações quantitativas de forma eficaz |
| chat | Dados conversacionais combinados com elementos visuais focados na compreensão contextual do diálogo e nas interações baseadas em imagens |
| código | Interfaces de programação e ambientes de desenvolvimento focados na interpretação visual do código, capturas de tela do IDE e diagramas técnicos |
| docs | Dados centrados em documentos que combinam texto, imagens, layouts e formatação para treinar modelos na compreensão e no processamento de vários tipos e estruturas de documentos para ajudar com conceitos como reconhecimento de conteúdo em PDF |
| general | Conteúdo textual visual diversificado focado na ampla compreensão de imagens, gráficos e texto descritivo que o acompanha |
| grounding | Materiais de referência visual e imagens rotuladas focados em conectar conceitos de linguagem a representações visuais do mundo real |
| RAG | Exemplos de recuperação multimodal que mostram como combinar e referenciar com eficácia o conhecimento externo visual e textual para gerar respostas contextuais precisas |
| captura de tela | Capturas de interface de aplicações e imagens de exibição digital com foco na compreensão de interfaces de software e interações digitais |
| texto | Um conjunto equilibrado de dados contextuais de texto criado com base nas categorias dos conjuntos de dados do SFT somente com texto do Nova para fornecer recursos generalistas |
| conversão | Conteúdo visual multilíngue focado na interpretação multilíngue de texto em imagens e elementos visuais culturais |
| video | Conteúdo visual baseado em movimento focado na compreensão temporal e na compreensão visual-narrativa sequencial |
Como iniciar uma tarefa
Você também pode consultar o README, se precisar apenas obter os detalhes essenciais para iniciar a primeira execução do SFT.
Informações dos contêineres:
| Modelo | Técnica | Subcategory | URI da imagem | Comando do inicializador do Hyperpod |
|---|---|---|---|---|
| Nova 1.0 | Ajustar | SFT/PEFT | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest" }' |
| Nova 1.0 | Ajustar | SFT com combinação de dados | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX" }' |
| Nova 2.0 | Ajustar | Texto de SFT | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" }' |
| Nova 2.0 | Ajustar | Texto de SFT + combinação de dados | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" }' |
| Nova 2.0 | Ajustar | SFT multimodal | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" }' |
| Nova 2.0 | Ajustar | SFT multimodal + combinação de dados | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest | hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_mm_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" }' |
Quando estiver tudo configurado, começando pela raiz do repositório sagemaker-hyperpod-cli, navegue até a pasta padrão de fórmulas do SFT do Nova
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/training/nova/
Aqui você pode escolher se deseja executar fórmulas do Nova 1 ou do Nova 2 com base na escolha do modelo de base.
No SFT do Nova 1.0:
-
Se quiser usar uma tarefa regular do SFT, você deverá encontrar uma fórmula nesta pasta
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_1_0/nova_lite/SFT and then you should be able to see one recipe under this folder called nova_lite_1_0_p5x8_gpu_sft.yaml
-
Se você quiser usar uma tarefa de combinação de dados do SFT, é possível navegar até a pasta de fórmulas do SFT do Forge
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_1_0/nova_lite/SFT and you should be able to see one recipe under this folder called: nova_lite_1_0_p5x8_gpu_sft_with_datamix.yaml
Edite as seções na fórmula exigida pelo trabalho, como name, data_s3_path, validation_s3_path, output_s3_path e max_steps. Como estamos executando o SFT, a noção de épocas não se aplica aqui.
No SFT do Nova 2.0:
-
Se quiser usar uma tarefa regular do SFT, você deverá encontrar uma fórmula nesta pasta
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_2_0/nova_lite/SFT and then you should be able to see one recipe under this folder called nova_lite_2_0_p5x8_gpu_sft.yaml
-
Se você quiser usar uma tarefa de combinação de dados do SFT, é possível navegar até a pasta de fórmulas do SFT do Forge
cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_2_0/nova_lite/SFT and you should be able to see one recipe under this folder called: nova_lite_2_0_p5x8_gpu_sft_with_datamix.yaml
Edite as seções na fórmula exigida pelo trabalho, como name, data_s3_path, validation_s3_path, output_s3_path e max_steps. Como estamos realizando o SFT, a noção de épocas não se aplica aqui.
A configuração da combinação de dados será a mesma, mas com uma seção extra de combinação de dados na parte inferior, semelhante a esta:
data_mixing: dataset_catalog: sft_text_lite sources: nova_data: # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping agents: 20 business-and-finance: 20 scientific: 20 code: 20 factual-and-news: 20 longform-text: 0 health-and-medicine: 0 humanities-and-education: 0 legal: 0 math: 0 additional-languages: 0 social-and-personal-interest: 0 entertainment: 0 reasoning: 0 other: 0 tables: 0 customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above percent: 25
Há duas categorias de dados de alto nível aqui:
-
nova_data: esta é a combinação real de dados e é subdividida em ainda mais categorias. É imperativo que eles totalizem até 100%
Uma análise completa dessas categorias, incluindo a contagem de tokens, pode ser encontrada abaixo
customer_data: estes são seus dados de treinamento referenciados na chave data_s3_path na parte superior do seu YAML. A porcentagem fornecida aqui determina qual será a porcentagem resultante para nova_data. Por exemplo, nas seleções percentuais acima, durante o treinamento, usaremos 25% de customer_data e 75% de nova_data, dos quais 15% serão agentes, 15% serão negócios e finanças, 15% serão científicos, 15% serão códigos e 15% serão fatos e notícias
Dica: execute pip install -e . mais uma vez e tudo estará pronto para enviar sua tarefa.
Vamos substituir alguns parâmetros aqui para usar a combinação de dados:
hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5x8_gpu_sft_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/ }'
Sua saída deve conter um nome de tarefa da seguinte forma:
⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe training/nova/forge/nova_2_0/nova_lite/sft/nova_lite_2_0_p5x8_gpu_pretrain_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "3://sft-data/output/ }'
A saída seria assim:
Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=training/nova/nova_micro_p5x8_gpu_pretrain cluster_type=k8s cluster=k8s base_results_dir=/local/home/niphaded/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="p5d.48xlarge" container="900867814919.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:sft-datamix-rig-final" Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh NAME: my-sft-run-wzdyn LAST DEPLOYED: Tue Aug 26 16:21:06 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703" }
Você pode ver o status da sua tarefa usando hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn
hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn { "pods": [ { "PodName": "my-sft-run-wzdyn-master-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" }, { "PodName": "my-sft-run-wzdyn-worker-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" } ] }
ou use diretamente o comando kubectl para encontrá-los.
Por exemplo,
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run) NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-sft-run-5suc8-master-0 0/1 Completed 0 3h23m 172.31.32.132 hyperpod-i-00b3d8a1bf25714e4 <none> <none> my-sft-run-5suc8-worker-0 0/1 Completed 0 3h23m 172.31.44.196 hyperpod-i-0aa7ccfc2bd26b2a0 <none> <none> my-sft-run-5suc8-worker-1 0/1 Completed 0 3h23m 172.31.46.84 hyperpod-i-026df6406a7b7e55c <none> <none> my-sft-run-5suc8-worker-2 0/1 Completed 0 3h23m 172.31.28.68 hyperpod-i-0802e850f903f28f1 <none> <none>
Dica profissional: certifique-se de sempre usar o sinalizador -o wide, pois o nó do EKS em que o trabalho é executado ajudará você a encontrar seus logs ainda mais rapidamente na interface do usuário da AWS
Como monitorar a tarefa
Você pode visualizar seus logs de três maneiras:
a) Usando o CloudWatch
Seus logs estão disponíveis na sua conta da Amazon Web Services que contém o cluster do Hyperpod no CloudWatch. Para visualizá-los em seu navegador, navegue até a página inicial do CloudWatch em sua conta e pesquise o nome do seu cluster. Por exemplo, se seu cluster se chamasse my-hyperpod-rig, o grupo de logs teria o prefixo:
-
Grupo de logs: /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID}
-
Quando estiver no grupo de logs, você poderá encontrar seu log específico usando o ID da instância do nó, como - hyperpod-i-00b3d8a1bf25714e4.
i-00b3d8a1bf25714e4 aqui representa o nome da máquina compatível com o Hyperpod em que seu trabalho de treinamento está sendo executado. Lembre-se de como, na saída anterior do comando kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run), capturamos uma coluna chamada NODE.
Nesse caso, a execução do nó “principal” estava sendo executada em hyperpod-i-00b3d8a1bf25714e4 e, portanto, usaremos essa string para selecionar o grupo de logs a ser visualizado. Selecione aquele que diz SagemakerHyperPodTrainingJob/rig-group/[NODE]
Seus logs devem ser semelhantes ao seguinte:
b) Usando o CloudWatch Insights
Se você souber o nome da sua tarefa e não quiser seguir todas as etapas acima, basta consultar todos os logs em /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID} para encontrar o log individual.
CPT
fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100
Para a conclusão da tarefa, substitua Starting SFT Job por SFT Job completed
Em seguida, você pode clicar nos resultados e escolher aquele que diz “Epoch 0”, pois este será seu nó principal.
C) Usando a AWS CLI
Você pode optar por rastrear seus logs usando a CLI. Antes de fazer isso, verifique sua versão da AWS CLI usando aws --version. Também é recomendável usar esse script utilitário que ajuda no rastreamento de logs em tempo real em seu terminal.
para V1:
aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'
para V2:
aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow
D) Configurando o MLflow:
Você pode acompanhar as métricas por meio do MLflow.
Criar uma aplicação MLflow
Usando a interface do usuário do Studio: se você criar uma tarefa de treinamento por meio da interface do usuário do Studio, uma aplicação MLflow padrão será criada automaticamente e estará selecionada por padrão em Opções avançadas.
Usando a CLI: se você usar a CLI, deverá criar uma aplicação MLflow e passá-la como uma entrada para a solicitação da API da tarefa 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)
Acessar a aplicação MLflow
Usando a CLI: crie um URL pré-assinado para acessar a interface do usuário da aplicação MLflow:
aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text
Depois que o MLflow estiver configurado, você poderá passar o URI em sua fórmula ou usar a substituição ao iniciar o trabalho. Um exemplo de como fazer isso pode ser encontrado no README.
Como avaliar seu modelo após o SFT?
Pré-requisitos
URI do ponto de verificação do S3 do arquivo manifest.json da sua tarefa de treinamento (para modelos treinados)
Conjunto de dados de avaliação enviado para o S3 no formato correto
Caminho do S3 de saída para os resultados da avaliação
Avaliações comparativas prontas para uso: use avaliações comparativas prontas para uso para validar a performance em tarefas gerais. Para obter mais detalhes, confira aqui.
Traga seus próprios dados:
Você também pode fornecer seus dados personalizados formatando-os no formato abaixo e, em seguida, usando os contêineres mencionados a seguir para obter resultados de inferência junto com probabilidades logarítmicas para calibrações, se necessário.
Crie um JSONL por tarefa com a seguinte estrutura:
{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }
Os resultados gerados durante a fase de inferência da tarefa de avaliação terão a seguinte estrutura:
{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }
Descrições dos campos:
prompt: entrada formatada enviada para o modelo
inferência: resposta gerada pelo modelo
gold: a resposta correta esperada do conjunto de dados de entrada, campo de resposta da entrada
metadados: metadados opcionais transmitidos da entrada
Preparar a configuração da avaliação
Comando para iniciar a tarefa de avaliação. Use “--override-parameters” para modificar qualquer entrada da fórmula.
hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'
Iniciar sua tarefa de avaliação
Comandos de inicialização de tarefas para diferentes fórmulas com imagens correspondentes.
| Modelo | Técnica | Subcategory | URI da imagem | Command |
|---|---|---|---|---|
| Nova 1.0 | Avaliação | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest | hyperpod start-job \ -n kubeflow \ --recipe evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" }' |
| Nova 2.0 | Avaliação | Eval | 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest | hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" }' |
Dicas e lições aprendidas
A qualidade do conjunto de dados do SFT é fundamental. Você deve empenhar todos os esforços para filtrar dados de baixa qualidade. Se você tiver um pequeno subconjunto de dados de altíssima qualidade, em termos de complexidade e precisão, considere colocá-lo no final do treinamento para ajudar o modelo a convergir melhor.
Utilizamos conjuntos de dados de texto e multimodais (MM) para combinação de dados. Nossos experimentos com conjuntos de dados de texto mostram que adicionar a categoria proprietária de “seguimento de instrução com raciocínio” do Nova melhora significativamente a performance em avaliações comparativas genéricas. Recomendamos incluir essa categoria em sua estratégia de combinação de dados se você se preocupa com a avaliação comparativa genérica que é regredida após a realização do SFT com seus conjuntos de dados.
Para conjuntos de dados MM, nossos experimentos indicam que incorporar mais de 20% das categorias de vídeo à combinação é benéfico para manter a performance das avaliações comparativas genéricas.
Além disso, o SFT com combinação de dados é bastante sensível à taxa de aprendizado, então nossa descoberta sugere um ajuste fino com a taxa de aprendizado padrão, ou seja, 1e-5 para LoRA e 5e-6 para FR.
Finalmente, haverá um equilíbrio entre latência e performance se você combinar conjuntos de dados proprietários do Nova, então nossas descobertas sugerem combinar 50%, no máximo, para obter um bom equilíbrio.