本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
繼續預先訓練 (CPT)
持續預先訓練 (CPT) 是使用相同的非監督式目標 (例如遮罩語言建模或因果語言建模),進一步在新資料上訓練預先訓練基礎模型的程序。它會保留先前學到的一般語言功能,同時適應新的網域或分佈轉移。
CPT 不涉及特定下游任務的架構變更或微調。反之,它會以網域感知的方式擴展模型的語言理解容量。
您應該在下列案例中使用 CPT:
-
您有特定於網域的大規模未標記資料 (例如醫學或金融)。
-
您希望模型保留一般語言功能,同時改善特定網域的內容。
-
您想要在特殊領域改善零鏡頭和少量鏡頭效能,而無需執行廣泛的任務特定微調。
資料格式需求
我們建議在執行 CPT 時遵循下列資料集特性:
-
多樣性:您的資料應涵蓋目標網域內的各種表達式,以避免過度擬合。
-
表示法:您的資料應該反映模型在推論期間將面臨的分佈。
-
清晰度:資料中的雜訊和備援可能會降低效能。重複資料刪除和文字標準化可改善模型訓練。
-
擴展:較大的資料集有助於提高超擬合風險,但超過特定閾值 (例如對有限資料執行多個 epoch)。
訓練和驗證資料集必須是遵循 Converse 格式的 JSONL 檔案,其中每一行都包含代表與必要欄位和結構對話的 JSON 物件。請見此處範例:
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
文字項目應包含代表您目標網域的自然流動、高品質內容。
資料集驗證
若要在提交 CPT 任務之前驗證資料集,請檢查下列條件:
-
每一行都必須包含有效的 JSON 物件。
-
每個物件都有包含字串資料的「文字」欄位。
-
除了「文字」之外,沒有欄位。
-
檔案是
.jsonl
副檔名。
訓練時間
訓練所花費的時間很大程度上取決於資料集的大小、使用的執行個體數量,以及正在訓練的模型。訓練時間預期會線性擴展。下表提供各種模型的一些訓練時間範例。
模型類型 |
GBS |
資料集中的範例數量 |
P5 執行個體的數量 |
|
大約訓練時間,以小時為單位 |
---|---|---|---|---|---|
Amazon Nova Micro |
256 |
100,000 |
8 |
8,192 |
4 |
Amazon Nova Lite |
256 |
100,000 |
16 |
8,192 |
4 |
Amazon Nova Pro |
256 |
100,000 |
24 |
8,192 |
10 |
訓練和驗證資料集必須是遵循 Amazon Bedrock Converse 操作格式的 JSONL 檔案,其中每一行都包含代表與必要欄位和結構對話的 JSON 物件。
可使用 CPT 進行調校的 Amazon Nova 參數包括:
-
執行組態
-
name
:訓練任務的描述性名稱。這有助於在 中識別您的任務 AWS Management Console。 -
model_type
:要使用的 Amazon Nova 模型變體。可用的選項為amazon.nova-micro-v1:0:128k
、amazon.nova-lite-v1:0:300k
或amazon.nova-pro-v1:0:300k
。 -
model_name_or_path
:用於訓練的基本模型路徑。可用的選項為nova-micro/prod
、nova-pro/prod
、nova-lite/prod
或訓練後檢查點的 S3 路徑 (s3://customer-escrow-bucket-unique_id/training_run_name
)。 -
replicas
:用於分散式訓練的運算執行個體數目。可用的值會根據您選擇的模型而有所不同。Amazon Nova Micro 支援 2、4 或 8 個複本。Amazon Nova Lite 支援 4、8、16 或 32 個複本。Amazon Nova Pro 支援 6、12 或 24 個複本。 -
data_s3_path
:訓練資料集的 S3 位置,這是 JSONL 檔案。此檔案必須位於與叢集相同的 AWS 帳戶 和 區域。提供的所有 S3 位置都必須位於相同的帳戶和區域。 -
validation_data_s3_path
:(選用) 驗證資料集的 S3 位置,這是 JSONL 檔案。此檔案必須位於與叢集相同的帳戶和區域。提供的所有 S3 位置都必須位於相同的帳戶和區域。 -
output_s3_path
:儲存資訊清單和 TensorBoard 日誌的 S3 位置。提供的所有 S3 位置都必須位於相同的 AWS 帳戶 和 中 AWS 區域。
-
-
訓練組態
-
max_length
:字符中的序列長度上限。這會決定訓練的內容視窗大小。CPT 支援的最大值為 8192 個字符。較長的序列將提高訓練效率,而成本會增加記憶體需求。我們建議您將
max_length
參數與資料分佈配對。
-
-
培訓人員設定
-
global_batch_size
:跨所有裝置和工作者,一次向前或向後傳遞一起處理的訓練範例總數。此值會乘以每個裝置的批次大小和裝置數量。它會影響訓練和輸送量的穩定性。我們建議您從適合記憶體的批次大小開始,並從該處向上擴展。對於特定網域的資料,較大的批次可能會過度平滑梯度。
-
max_epochs
:通過訓練資料集的完整次數。一般而言,較大的資料集需要較少的 epoch 才能收斂,而較小的資料集則需要更多 epoch 才能收斂。我們建議您根據資料大小調整 epoch 的數量,以防止過度擬合。
-
-
模型設定
-
hidden_dropout
:捨棄隱藏狀態輸出的機率。將此值增加約 0.0-0.2,以減少對較小資料集的過度擬合。有效值介於 0-1 之間,包含 。 -
attention_dropout
:降低注意力權重的機率。此參數可協助進行一般化。有效值介於 0-1 之間。 -
ffn_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 之間,包含 ,但必須小於學習率。
-
CPT 配方
以下是 CPT 的配方。
## Run config run: name: "my-cpt-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:
[S3_PATH_TO_TRAIN_DATASET]
validation_data_s3_path:(OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET]
output_s3_path:[S3_PATH_TO_STORE_MANIFEST]
## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. 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, must be lower than lr
限制
CPT 有下列限制:
-
不支援多模態資料集。
-
中繼檢查點不會儲存以供評估,而且您無法從中繼檢查點繼續。只會儲存最後一個檢查點。
-
不支援 MLflow 記錄。