View a markdown version of this page

在 SageMaker HyperPod 的 Nova 2.0 上監督微調 (SFT) - Amazon Nova

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 SageMaker HyperPod 的 Nova 2.0 上監督微調 (SFT)

Amazon Nova Lite 2.0 為監督式微調提供了增強功能,包括進階推理模式、改善多模態理解和延伸內容處理。Nova Lite 2.0 上的 SFT 可讓您將這些強大的功能適應您的特定使用案例,同時在複雜的任務上維持模型的卓越效能。

在 Nova Lite 2.0 上 SFT 的主要功能摘要於 支援的功能

若要判斷 SFT 是否適合您的使用案例,請參閱 監督式微調 (SFT)

以下是 SFT 的範例配方。您可以在 GitHub 的 SageMaker HyperPod 配方儲存庫中找到此配方和其他項目。

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

選擇合理模式 (僅限 Nova 2.0)

Amazon Nova 2.0 支援增強型分析功能的推理模式:

  • 原因模式 (已啟用)

    • 在訓練組態reasoning_enabled: true中設定

    • 模型會訓練 在最終答案之前產生推理追蹤

    • 改善複雜推理任務的效能

  • 非原因模式 (已停用)

    • 設定reasoning_enabled: false或省略 參數 (預設)

    • 沒有明確推理的標準 SFT

    • 適合無法受益於step-by-step推理的任務

注意
  • 啟用推理時,會以高推理的努力運作。SFT 沒有低推理選項。

  • SFT 不支援多模式推理內容。原因模式適用於純文字輸入。

reasoning_enabled: true 允許使用 在非合理資料集上訓練 Amazon Nova。不過,這樣做可能會導致模型失去其推理功能,因為 Amazon Nova 主要學習在不套用推理的情況下產生資料中呈現的回應。

如果在非合理資料集上訓練 Amazon Nova,但仍希望在推論期間使用推理:

  1. 在訓練期間停用推理 (reasoning_enabled: false)

  2. 稍後在推論期間啟用推理

雖然此方法允許在推論時間進行推理,但與推論相比,它不保證改善效能,而不會推理。

最佳實務:使用推理資料集時啟用訓練和推論的推理,並在使用非合理的資料集時停用兩者的推理。

注意

如需容器映像和範例配方的詳細資訊,請參閱 Amazon Nova 配方

在 SageMaker HyperPod 上啟動微調任務

準備您的資料

如需準備 SFT 訓練資料的資料格式、支援的功能、限制條件和最佳實務的相關資訊,請參閱 準備 Amazon Nova 2 上的 SFT 資料

上傳資料

將訓練和驗證資料集上傳至 S3 儲存貯體。在配方的 run 區塊中指定這些位置:

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

<bucket-name><training-directory><training-file><validation-directory>和 取代<validation-file>為實際的 S3 路徑。

注意

Amazon Nova 2.0 的 SFT 目前不支援驗證資料集。如果提供了驗證資料集,則會予以忽略。

定義您的組態

使用 run 區塊中的 model_typemodel_name_or_path 欄位來定義基本模型:

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

SFT 調校參數

可使用 SFT 進行調校的參數包括:

執行組態

  • 名稱:訓練任務的描述性名稱。這有助於在 AWS 管理主控台中識別您的任務。

  • model_type:要使用的 Amazon Nova 模型變體。可用的選項為 amazon.nova-2-lite-v1:0:256k

  • model_name_or_path:用於訓練的基本模型路徑。可用的選項為 nova-lite-2/prod或訓練後檢查點的 S3 路徑 (s3://customer-escrow-bucket-unique_id/training_run_name)。

  • 複本:用於分散式訓練的運算執行個體數量。可用的值會根據您選擇的模型而有所不同。Amazon Nova Lite 2.0 支援 4、8、16 或 32 個複本。

  • data_s3_path:訓練資料集的 S3 位置,這是 JSONL 檔案。此檔案必須位於與叢集相同的 AWS 帳戶和區域。提供的所有 S3 位置都必須位於相同的帳戶和區域中。

  • validation_data_s3_path:(選用) 驗證資料集的 S3 位置,這是 JSONL 檔案。此檔案必須位於與叢集相同的帳戶和區域中。提供的所有 S3 位置都必須位於相同的帳戶和區域中。

  • output_s3_path:儲存資訊清單和 TensorBoard 日誌的 S3 位置。提供的所有 S3 位置都必須位於相同的 AWS 帳戶和 AWS 區域。

  • mlflow_tracking_uri:用於 MLFlow 記錄的 MLFlow 應用程式的 ARN。

  • mlflow_experiment_name:MLFlow 實驗名稱。

  • mlflow_run_name:MLFlow 執行名稱。

訓練組態

  • max_steps:要執行的訓練步驟數目。每個步驟都會使用元素global_batch_size數目來訓練模型。

  • save_steps:在訓練期間儲存模型檢查點的頻率 (步驟中)。

  • save_top_k:根據驗證指標保留的最佳檢查點數目上限。

  • max_length:字符中的序列長度上限。這會決定訓練的內容範圍大小。SFT 的最大支援值為 32768 個字符。

    序列越長,越能提高訓練效率,但代價是需要增加記憶體。我們建議您將 max_length 參數與資料分佈配對。

  • global_batch_size:跨所有裝置和工作者,一次向前或向後傳遞一起處理的訓練範例總數。

    此值會乘以每個裝置的批次大小和裝置數目。它會影響訓練和輸送量的穩定性。我們建議您從適合您記憶體的批次大小開始,並從該處向上擴展。對於特定網域的資料,批次越大可能會使梯度過度平滑。

  • reasoning_enabled:在訓練期間啟用推理功能的布林值旗標。

學習速率排程器

  • warmup_steps:逐步提高學習率的步驟數目。這可改善訓練穩定性。

  • min_lr:衰減結束時的最低學習率。有效值介於 0-1 (含) 之間,但必須小於學習率。

最佳化工具組態

  • lr:學習率,可在最佳化期間控制步進大小。我們建議使用介於 1e-6-1e-4 之間的值,以獲得良好的效能。有效值介於 0-1 (含) 之間。

  • weight_decay:L2 正規化強度。較高的值 (介於 0.01-0.1 之間) 會增加正規化。

  • adam_beta1:Adam 最佳化工具中第一個時刻預估的指數衰減率。預設為 0.9。

  • adam_beta2:Adam 最佳化工具中第二個時刻預估的指數衰減率。預設值為 0.95。

PEFT 組態

  • peft_scheme:要使用的參數有效微調方案。選項'null'適用於全階微調或lora適用於以 LoRA 為基礎的微調。

LoRA 調校 (當 peft_scheme 為 'lora' 時)

  • alpha:LoRA 擴展參數。控制低階調整的大小。典型值的範圍是 8 到 128。

  • lora_plus_lr_ratio:LoRA+ 最佳化的學習率比率。此乘數會特別針對 LoRA 參數調整學習率。

超參數指引

根據訓練方法,使用以下建議的超參數:

完整排名訓練

  • Epochs:1

  • 學習率 (lr):1e-5

  • 最低學習率 (min_lr):1e-6

LoRA (低排名調整)

  • Epochs:2

  • 學習率 (lr):5e-5

  • 最低學習率 (min_lr):1e-6

注意

根據資料集大小和驗證效能調整這些值。監控訓練指標以防止過度擬合。