View a markdown version of this page

Ajuste fino supervisionado (SFT) no Nova 2.0 no SageMaker HyperPod - Amazon Nova

Ajuste fino supervisionado (SFT) no Nova 2.0 no SageMaker HyperPod

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 de contexto estendido. O SFT no Nova Lite 2.0 permite que você adapte esses recursos avançados aos seus casos de uso específicos, mantendo a performance superior do modelo em tarefas complexas.

Os principais recursos do SFT no Nova Lite 2.0 estão resumidos em Recursos compatíveis.

Para determinar se o SFT é adequado para seu caso de uso, consulte Ajuste fino supervisionado (SFT).

Confira abaixo um exemplo de fórmula para o SFT. Essa e outras fórmulas podem ser encontradas no repositório de fórmulas do SageMaker HyperPod no GitHub.

run: name: my-full-rank-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 only and not compatible with SageMaker Training Jobs 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) mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-full-rank-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-full-rank-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: ${oc.select:training_config.max_steps} # How many training steps the checkpoint will be saved 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 # Global 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 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "null" # Disable LoRA for PEFT

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

O Amazon Nova 2.0 é compatível com o modo de raciocínio para recursos analíticos aprimorados:

  • Modo de raciocínio (habilitado):

    • Definir reasoning_enabled: true na configuração de treinamento

    • O modelo treina para gerar rastros de raciocínio antes das respostas finais

    • Melhora o desempenho em tarefas complexas de raciocínio

  • Modo sem raciocínio (desabilitado):

    • 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 raciocínio passo a passo

nota
  • Quando o raciocínio está habilitado, 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 é compatível com o SFT. O modo de raciocínio se aplica a entradas somente de texto.

É permitido treinar o Amazon 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 Amazon Nova aprende primariamente 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. Desabilite o raciocínio durante o treinamento (reasoning_enabled: false)

  2. Habilite 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 desabilite-o para ambos ao usar conjuntos de dados sem raciocínio.

nota

Para obter mais informações sobre imagens de contêineres e exemplos de fórmilas, consulte Fórmulas do Amazon Nova.

Iniciar um trabalho de ajuste fino no SageMaker HyperPod

Preparar seus dados

Para obter informações sobre formato dos dados, recursos compatíveis, restrições e melhores práticas para preparar os dados de treinamento do SFT, consulte Preparar dados para SFT no Amazon Nova 2.

Carregar seus dados

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

## 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 reais do S3.

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.

Definir a configuração

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

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

Parâmetros de ajuste do SFT

Os parâmetros que estão disponíveis para ajuste com o SFT incluem:

Configuração da execução

  • name: um nome descritivo para a tarefa de treinamento. Isso ajuda a identificar sua tarefa no Console de Gerenciamento da AWS.

  • model_type: a variante do modelo do Amazon Nova a ser usada. As opções disponíveis são amazon.nova-2-lite-v1:0:256k.

  • model_name_or_path: o caminho para o modelo de base a ser usado em seu treinamento. As opções disponíveis são nova-lite-2/prod ou o caminho do S3 para o ponto de verificação pós-treinamento (s3://customer-escrow-bucket-unique_id/training_run_name).

  • replicas: o número de instâncias de computação a serem usadas no treinamento distribuído. Os valores disponíveis variam de acordo com o modelo escolhido. O Amazon Nova Lite 2.0 é compatível com 4, 8, 16 ou 32 réplicas.

  • data_s3_path: o local no S3 do conjunto de dados de treinamento, que é um arquivo JSONL. Esse arquivo deve residir na mesma conta e região da AWS que o cluster. Todos os locais do S3 fornecidos devem estar na mesma conta e região.

  • validation_data_s3_path: (opcional) o local no S3 do conjunto de dados de validação, que é um arquivo JSONL. Esse arquivo deve estar na mesma conta e região que o cluster. Todos os locais do S3 fornecidos devem estar na mesma conta e região.

  • output_s3_path: o local do S3 onde o manifesto e os logs do TensorBoard são armazenados. Todos os locais do S3 fornecidos devem estar na mesma conta da AWS e região da AWS.

  • mlflow_tracking_uri: o ARN da aplicação MLFlow a ser usada para o registro em log do MLFlow.

  • mlflow_experiment_name: nome do experimento do MLFlow.

  • mlflow_run_name: nome de execução do MLFlow.

Configuração do treinamento

  • max_steps: o número de etapas de treinamento a serem executadas. Cada etapa treinará o modelo com a quantidade de elementos definida no global_batch_size.

  • save_steps: a frequência (em etapas) na qual os pontos de verificação do modelo são salvos durante o treinamento.

  • save_top_k: o número máximo dos melhores pontos de verificação a serem retidos com base nas métricas de validação.

  • max_length: o tamanho máximo da sequência em tokens. Isso determina o tamanho da janela de contexto para treinamento. O valor máximo permitido é 32.768 tokens para o SFT.

    Sequências mais longas melhorarão a eficiência do treinamento à custa de maiores requisitos de memória. Recomendamos que você faça a correspondência do parâmetro max_length com sua distribuição de dados.

  • global_batch_size: o número total de exemplos de treinamento processados juntos em uma única etapa de propagação (forward ou backward) em todos os dispositivos e operadores.

    Esse valor multiplica o tamanho do lote por dispositivo e o número de dispositivos. Isso afeta a estabilidade do treinamento e o throughput. Recomendamos que você comece com um tamanho de lote que caiba confortavelmente na memória e possa ter a escala aumentada verticalmente a partir daí. Para dados específicos do domínio, lotes maiores podem suavizar demais os gradientes.

  • reasoning_enabled: sinalizador booleano para habilitar recursos de raciocínio durante o treinamento.

Programador da taxa de aprendizado

  • warmup_steps: o número de etapas para aumentar gradualmente a taxa de aprendizado. Isso melhora a estabilidade do treinamento.

  • min_lr: a taxa mínima de aprendizado ao término do decaimento. Os valores válidos estão entre 0-1, inclusive, mas devem ser menores que a taxa de aprendizado.

Configuração do otimizador

  • lr: a taxa de aprendizado, que controla o tamanho da etapa durante a otimização. Recomendamos valores entre 1e-6 e 1e-4 para um obter bom desempenho. Os valores válidos estão entre 0 e 1, inclusive.

  • weight_decay: a força de regularização de L2. Valores mais altos (entre 0,01 e 0,1) aumentam a regularização.

  • adam_beta1: a taxa de decaimento exponencial para as estimativas do primeiro momento no otimizador Adam. O padrão é de 0.9.

  • adam_beta2: a taxa de decaimento exponencial para as estimativas do segundo momento no otimizador Adam. A padrão é 0.95.

Configuração do PEFT

  • peft_scheme: o esquema de ajuste fino com eficiência de parâmetros a ser usado. As opções são 'null' para ajuste fino de full-rank ou lora para ajuste fino baseado em LoRA.

Ajuste LoRA (quando peft_scheme é "lora")

  • alpha: o parâmetro de escala LoRA. Controla a magnitude da adaptação de low-rank. Os valores típicos variam de 8 a 128.

  • lora_plus_lr_ratio: a taxa de aprendizado para a otimização via LoRA+. Esse multiplicador ajusta a taxa de aprendizado especificamente para os parâmetros LoRA.

Orientações de hiperparâmetros

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

Treinamento de full-rank

  • Épocas: 1

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

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

LoRA (Low-Rank Adaptation)

  • Épocas: 2

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

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

nota

Ajuste os valores com base no tamanho do conjunto de dados e na performance da validação. Monitore as métricas de treinamento para evitar sobreajuste.