View a markdown version of this page

Ajuste fino por reforço (RFT) no Nova 2.0 no SageMaker HyperPod - Amazon Nova

Ajuste fino por reforço (RFT) no Nova 2.0 no SageMaker HyperPod

Esta seção aborda o exemplo de fórmula, o início de um trabalho de ajuste fino, a orientação de hiperparâmetros e o monitoramento do treinamento para RFT no Nova 2.0 Lite no SageMaker HyperPod. Para obter informações sobre formato dos dados, recursos compatíveis, restrições e melhores práticas para preparar os dados de treinamento do RFT, consulte Preparando dados para RFT no Amazon Nova 2.

Para determinar se o RFT é adequado para seu caso de uso, consulte Ajuste fino por reforço (RFT).

# Note: # This recipe can run on p5.48xlarge, p5e.48xlarge, and p5en.48xlarge instance types. run: name: "my-rft-run" # Unique run name (appears in logs and artifacts). model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://<bucket>/<data-file> # Training dataset in JSONL format. replicas: 4 # Number of total training instances. generation_replicas: 2 # Number of total instances dedicated to response generation. reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-rft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-rft-run" # Optional for MLFlow. Note: leave this field non-empty ## SMHP RFT training configs training_config: max_length: 8192 # Context window (tokens) for inputs and prompt. global_batch_size: 32 # Total samples per optimizer step across all replicas (16/32/64/128/256). reasoning_effort: high # Reasoning mode: high, low, or null for non-reasoning. data: shuffle: true # Shuffle training data each epoch. rollout: # Controls how responses are generated for advantage calculation. rollout_strategy: type: off_policy_async # Asynchronous rollout for higher throughput. age_tolerance: 2 # Maximum policy age before regeneration. advantage_strategy: number_generation: 4 # Samples per prompt to estimate advantages (higher = lower variance but higher cost). generator: max_new_tokens: 6000 # Cap on tokens generated per sample. set_random_seed: true # Seed generation for reproducibility across runs. temperature: 1 # Softmax temperature for sampling. top_k: 1 # Sample only from top-K logits. rewards: preset_reward_function: null # Preset reward functions: exact_match or null for custom. api_endpoint: lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> lambda_concurrency_limit: 12 # Max concurrent Lambda invocations (throughput vs. throttling). lambda_batch_size: 128 # Number of samples per Lambda invocation. trainer: max_steps: 2 # Steps to train for. One step = global_batch_size samples. save_steps: 5 # Save a checkpoint every N steps. test_steps: 1 # Run validation every N reference model updates. refit_freq: 4 # Frequency of reference model updates. clip_ratio_high: 0.2 # PPO clip ratio for policy updates. loss_scale: 1.0 # Scaling factor for the policy loss. # RL parameters ent_coeff: 0.0 # Entropy bonus added to the policy loss (higher = more exploration). kl_loss_coef: 0.0 # Weight on the KL penalty between the current and reference policy. optim_config: # Optimizer settings. lr: 1e-6 # Learning rate. weight_decay: 0.0 # L2 regularization strength (0.0 to 1.0). adam_beta1: 0.9 adam_beta2: 0.95 peft: # Parameter-efficient fine-tuning (LoRA). peft_scheme: "lora" # Enable LoRA for PEFT. lora_tuning: alpha: 64 # LoRA scaling factor. lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0 to 100.0).

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 RFT, consulte Preparando dados para RFT no Amazon Nova 2.

Carregar seus dados

Faça upload do seu conjunto de dados de treinamento para um bucket do S3. Especifique sua localização 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> e <training-file> por caminhos reais do S3.

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 ...

Orientações de hiperparâmetros

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

Geral:

  • Épocas: 1

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

  • Número de gerações: 8

  • Máximo de novos tokens: 8.192

  • Tamanho do lote: 256

LoRA (Low-Rank Adaptation):

  • Classificação LoRA: 32

nota

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