View a markdown version of this page

在 SageMaker HyperPod 上的 Nova 2.0 繼續預先訓練 (CPT) - Amazon Nova

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

在 SageMaker HyperPod 上的 Nova 2.0 繼續預先訓練 (CPT)

Amazon Nova Lite 2.0 是在比 Nova Lite 1.0 更大且更多樣化的資料集上訓練的推理模型。雖然是較大的模型,但 Nova Lite 2.0 提供比 Nova Lite 1.0 更快的推論,同時提供增強的推理功能、更長的內容長度和改善的多語言效能。

使用 CPT on Nova 2.0 Lite,您可以使用網域特定的資料擴展這些進階功能,並在專業領域開發深度專業知識,同時維持模型的卓越推理和分析能力。

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

# Note: # This recipe can run on p5.48xlarge # Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-2-lite-v1:0:256k" # Model variant specification, do not change model_name_or_path: "nova-lite-2/prod" # Base model path, do not change replicas: 8 # Number of compute instances for training, allowed values are 4, 8, 16, 32 data_s3_path: "" # Customer data paths validation_data_s3_path: "" # Customer validation data paths output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training Jobs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-cpt-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-cpt-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: task_type: cpt max_length: 8192 # Maximum context window size (tokens) global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_steps: 10 # The number of training steps to run total val_check_interval: 10 # The number of steps between running validation. Integer count or float percentage limit_val_batches: 2 # Batches of the validation set to use each trigger 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 optim: optimizer: adam 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 adam_beta1: 0.9 # Beta1 for Adam optimizer adam_beta2: 0.95 # Beta2 for Adam optimizer sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr

在 SageMaker HyperPod 上開始持續的預先訓練任務

準備您的資料

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

上傳資料

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

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

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

定義您的組態

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

CPT 調校參數

可使用 CPT 進行微調的參數包括:

執行組態

  • 名稱:訓練任務的描述性名稱。這有助於在 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_length:字符中的序列長度上限。這會決定訓練的內容範圍大小。CPT 的最大支援值為 8192 個記號。

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

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

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

訓練器設定

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

模型設定

  • hidden_dropout:捨棄隱藏狀態輸出的機率。將此值增加約 0.0-0.2 可減少對較小資料集的過度擬合。有效值介於 0-1 (含) 之間。

  • attention_dropout:捨棄注意力權重的機率。此參數可協助進行一般化。有效值介於 0-1 (含) 之間。

最佳化工具組態

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

  • name:最佳化工具演算法。目前僅支援 distributed_fused_adam

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

  • warmup_steps:逐步提高學習率的步驟數目。這可改善訓練穩定性。有效值介於 1-20 (含) 之間。

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