本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
持續訓練前和中訓練
注意
訂閱後提供詳細文件
Nova Forge CPT 提供超越標準 CPT 的進階功能,包括存取中繼檢查點,以及與 Nova 訓練前 corpus 混合的資料。這些功能可更有效率地調整網域,並更好地保留模型的一般功能。
什麼是中繼檢查點?為什麼需要中繼檢查點?
中繼檢查點是在模型達到其最終生產就緒狀態之前,儲存在訓練前不同階段的 Amazon Nova 模型快照。在模型開發期間,Amazon Nova 會經歷多個訓練階段:具有持續學習率的初始預先訓練、學習率逐步下降、內容延伸訓練,以及最後的指示遵循一致性和安全性訓練。對於 CPT,中繼檢查點通常比最終產品檢查點更喜歡,因為它們更可整形且接受網域適應。Prod 檢查點經過廣泛的指示遵循一致性和安全性訓練,可最佳化模型以供一般對話使用,但可以在 CPT 期間防止學習新的領域特定模式。相反地,部分和完全預先訓練的純文字檢查點會保留模型的預先訓練特性。它們尚未嚴重轉向特定行為,使它們更有效率地開始適應網域。執行大規模 CPT (>10B 權杖) 時,從中繼檢查點開始,通常會產生更快的收斂、更好的訓練穩定性,以及更有效的領域知識取得。不過,對於小規模 CPT (<10B 權杖),或需要保留指示遵循功能時,Prod 檢查點可能更適合,因為它允許網域適應,同時維持模型的對話能力。
CPT 需要多個中繼檢查點,因為它們提供不同層級的模型可塑性,影響模型吸收新領域知識的效率。最終產品檢查點已經過廣泛的指示遵循一致性和安全性訓練,可將其最佳化以供一般對話使用,但可抵禦學習新的領域特定模式。換句話說,它已透過訓練後強化。相反地,較舊的檢查點會保留模型的預先訓練特性,並且尚未嚴重轉向特定行為,使它們更具可塑性且接受網域適應性。
為了獲得最佳訓練效率,提供了多個中繼檢查點。
有哪些檢查點可用?
新版本 1.0
Amazon Nova 1.0 系列有三個模型 (Micro、Lite、Pro),每個模型都有三個檢查點可用。
-
預先訓練 - 【
nova-<micro/lite/pro>/pretraining-text-partial】:這是 Amazon Nova 預先訓練的持續學習速率階段之後的檢查點,其中模型在數兆個文字字符上進行訓練。 -
MID-TRAINED - 【
nova-<micro/lite/pro>/pretraining-text-full】:這是 Amazon Nova 預先訓練的所有階段,以及使用數兆個文字權杖進行中期訓練完成後的純文字檢查點。如果模型特別不應看到任何多模態資料,請使用這些項目。 -
MID-TRAINED - 【
nova-<lite/pro>/pretraining-mm-full】:這是在處理完 Amazon Nova 預先訓練和中期訓練的所有階段之後的檢查點,包括具有數兆個字符的多模態資料。 -
POST-TRAINED - 【
nova-<micro/lite/pro>/prod】:這是模型完全對齊的最終檢查點,已通過所有訓練前和訓練後步驟。
新版本 2.0
有三個 Amazon Nova Lite 2.0 檢查點。
-
PRE-TRAINED - 【
nova-lite-2/pretraining-text-RD】:這是 Amazon Nova 預先訓練的持續學習率和漸進階段之後的檢查點,其中模型會在數兆個字符上進行訓練。 -
MID-TRAINED - 【
nova-lite-2/pretraining-text-CE】:此檢查點允許以比預先訓練更保守的學習速率引入中繼量的非結構化資料,吸收特定領域的知識,同時避免災難性忘記。 -
POST-TRAINED - 【
nova-lite-2/prod】:這是模型完全對齊的最終檢查點,已經過所有相關和訓練後步驟。
下表詳細說明訓練前和中訓練的不同條件。
資料類型 |
執行 |
使用檢查點 |
|---|---|---|
大規模的非結構化原始網域資料 (文件、日誌、文章、程式碼等) |
持續預先訓練 |
預先訓練 |
大規模的非結構化原始網域資料 (文件、日誌、文章、程式碼等) |
中階訓練 |
預先訓練 |
少量的非結構化原始資料。結構化推理追蹤/CoT 資料 |
中階訓練 |
中階訓練 |
結構化示範 (高品質輸入輸出對、策劃的任務指示、多迴轉對話) |
完整微調 |
中階訓練 |
結構化示範 (高品質輸入輸出對、策劃的任務指示、多迴轉對話) |
參數高效率微調 |
訓練後 |
要使用哪個檢查點?
部分預先訓練的純文字和完全預先訓練的純文字檢查點通常會收斂得更快,且需要較少的訓練步驟才能進行網域調整。不過,他們沒有指令調校,需要經過訓練後步驟,才能執行有用的任務並遵循指示。GA 檢查點可能需要更多步驟來調整,但為小規模實驗提供更安全的起點,即使經過 CPT 訓練,也會在訓練功能後維持其中一部分。
一般而言,對於大型訓練資料集 (>10B 權杖),從僅部分預先訓練的文字或僅完全預先訓練的文字檢查點開始,以獲得更有效率且穩定的訓練,因為模型的知識庫將會大幅修改。使用小型資料集 (<10B 字符),使用 GA 檢查點來保留指示遵循功能,同時適應網域。
如何使用 1.0 或 2.0 模型的資料混合?
使用新的網域資料執行 CPT 時,將新資料與先前在模型訓練前階段使用的一些資料混合使用會非常有益。將舊資料與新網域資料混合可解決兩個問題:
-
忘記控制:保留模型的現有技能和知識,以防止災難性忘記。如果沒有資料混合,僅在窄域資料上進行訓練會導致模型覆寫一般功能。例如,僅根據法律文件訓練的模型可能會失去其編寫程式碼或執行數學的能力。混合一般網域資料集可在取得新網域時保留這些一般技能。
-
最佳化穩定性:透過錨定模型的內部表示來維持訓練穩定性。在 CPT 期間,修改模型學習到的功能,資料混合提供來自各種來源的漸層,可順暢地引導此適應。如果沒有它,在窄分佈上進行訓練可能會導致梯度不穩定,其中模型的表示式移動太大,導致訓練差異、損失尖峰或現有功能摺疊。這是穩定性-持久性權衡:模型應足夠可整形,以學習新的領域知識,但足夠穩定,不會破壞其已知的內容。
新 CPT 資料混合功能
存取 Amazon Nova 預先訓練資料和檢查點是 Amazon Nova CPT 自訂的核心產品之一。Amazon Nova CPT 自訂可讓您輕鬆地將網域資料與 Amazon Nova 的預先訓練 corpus 混合。此外,可以變更特定 Amazon Nova 資料類別 (例如程式碼、數學、推理等) 的取樣率,以及其控制成補充網域資料的比例。這允許強化與使用案例一致的功能,同時將模型調整為特定網域。
尋找最佳混合比率
Amazon Nova 資料與網域資料的最佳比率取決於資料集的網域、複雜性、大小、品質,以及維護一般功能的重要性。此比率必須透過實驗探索。決定要混合多少 Amazon Nova 資料的實驗架構如下。
選取代表性的網域資料子集 (例如 5B 權杖),並在所有實驗執行中保持此常數。
執行小規模 CPT 實驗只會改變混合於以下項目的 Amazon Nova 資料量:
-
不混合:100% 網域 → 僅限 5B 網域 (總計 5B)
-
輕度混合:90% 網域 → 5B 網域 + ~0.56B Amazon Nova (總計 ~5.56B)
-
中等混合:70% 網域 → 5B 網域 + ~2.14B Amazon Nova (總計 ~7.14B)
-
重度混合:50% 網域 → 5B 網域 + 5B Amazon Nova (總計 10B)
在網域和一般網域基準中評估 上的每個檢查點。也請在任何訓練之前評估起始檢查點 (Amazon Nova 檢查點)。
-
客戶網域效能在執行期間是否大致保持不變? 通常應該,因為每次執行都會看到相同數量的網域字符。如果網域效能隨著更多混合而改善,Amazon Nova 資料會提供有用的正規化。
-
隨著混合增加,一般基準分數是否會改善?
-
預期的行為是,隨著新增更多 Amazon Nova 資料,一般功能應該會單調改善。
-
測量多個一般基準:MMLU (一般知識)、HumanEval (編碼)、GSM8K (數學) 或感興趣的特定基準。
-
-
選取維持網域效能的混合比率,同時為使用案例提供可接受的一般功能。將更多資料混合納入額外的訓練成本。
找出最佳混合比率後,請使用具有所選混合比率的完整網域資料集來執行完整規模的 CPT。
解析資料混合類別
在下面,我們剖析資料混合中的每個可用類別,以便您最佳地決定哪些資料類別最適用於您的整體資料混合。
如何啟用資料混合
使用跨資料集類別的適當百分比分佈,將 data_mixing區段新增至您的配方。nova_data 百分比的總和必須為 100。
Nova 1.0 組態與資料混合
run: name: "cpt-job-name" # 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" replicas: 4 data_s3_path: "s3://path/to/data/xyz.jsonl" output_s3_path: "s3://path/to/output/checkpoint" skip_recipe_validation: true training_config: max_length: 32768 global_batch_size: 64 trainer: max_steps: 5000 model: hidden_dropout: 0.1 attention_dropout: 0.1 ffn_dropout: 0.1 optim: lr: 1.5e-05 name: distributed_fused_adam adam_w_mode: true eps: 1.0e-06 weight_decay: 0.05 betas: - 0.9 - 0.999 sched: warmup_steps: 500 constant_steps: 0 min_lr: 1.5e-06 data_mixing: dataset_catalog: cpt_text_lite sources: nova_data: en-entertainment: 0.11% en-factual: 4.83% en-legal: 0.48% en-long-form-text: 6.26% en-mined: 16.79% en-other: 1.79% en-scientific: 10.53% en-social: 12.43% en-techqa: 13.95% code: 7.50% high-util-lang: 8.05% low-util-lang: 6.51% math: 8.76% en-finance: 1% tables: 1% customer_data: percent: 90
這些類別代表什麼意思
| 類別名稱 | 資訊詳細資訊 |
|---|---|
en-entertainment |
媒體和娛樂內容,包括影片文字記錄、遊戲對話和以娛樂為重心的討論。 |
en-factual |
著重於傳達準確資訊的參考資料、百科全書內容、教育資源和事實文件。 |
en-finance |
財務文字,包括市場報告、經濟分析、投資策略、財務新聞文章、收益報告和其他財務相關內容,可協助模型了解經濟概念和財務術語。 |
en-legal |
法律文件、法院程序、合約、法律、法規和法律分析文字。 |
en-long-form-text |
延伸著作,包括書籍、學術論文、冗長文章和其他重要文字文件。 |
en-mined |
從各種 Web 來源擷取的文字資料,包括論壇、評論、討論和一般 Web 內容,並重新撰寫以確保高訓練效能。 |
en-other |
其他無法明確放入其他類別的英文內容。 |
en-scientific |
科學論文、研究文件、技術報告,以及各種領域的科學討論。 |
en-social |
社交媒體貼文、對話、討論和其他形式的社交通訊。 |
en-techqa |
技術文件、使用者指南、常見問答集頁面、技術論壇,以及與技術相關的 Q 內容。 |
code |
來自各種程式設計語言和平台的程式設計原始程式碼、文件和技術討論。 |
high-util-lang |
具有大量可用訓練資料的語言文字內容,包括 德文 (DE)、義大利文 (IT)、西班牙文 (ES)、法文 (FR)、印地文 (HI)、日文 (JP)、阿拉伯文 (AR) 和葡萄牙文 (PT) |
low-util-lang |
具有少量可用訓練資料的其他口語語言文字內容。 |
math |
數學內容,包括教科書、問題、解決方案和數學討論。 |
tables |
表格式格式的結構化資料,包括試算表、資料庫、CSV 檔案、統計資料表、財務報告和其他資料列欄的結構化資訊,可協助模型了解和處理結構化資料關係和模式。 |
Nova 2.0 組態與資料混合
# Note: # This recipe can run on p5.48xlarge # Run config display_name: "Nova Lite Pretrain on P5 GPU" versions: ["2.0"] instance_types: ["ml.p5.48xlarge"] 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 ## Training specific configs training_config: task_type: cpt max_length: 8192 # Maximum context window size (tokens) global_batch_size: 64 # 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 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 data_mixing: dataset_catalog: cpt_text_lite sources: nova_data: # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping agents: 20 business-and-finance: 4 scientific: 10 code: 5 factual-and-news: 5 longform-text: 6 health-and-medicine: 1 humanities-and-education: 1 legal: 1 math: 9 additional-languages: 15 social-and-personal-interest: 11 entertainment: 0.5 reasoning: 10 other: 0.5 tables: 1 customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above percent: 25
這些類別代表什麼意思
注意:Nova 2.0 包含無法在 Nova reasoning-code1.0 中使用的其他推理特定類別 (例如 reasoning-math、、reasoning-instruction-following)。
類別和資訊標籤摘要:
| 類別名稱 | 資訊詳細資訊 |
|---|---|
agents |
在 AI 系統中專注於自動決策、任務完成和目標導向行為的訓練資料 |
baseline |
專注於一般理解、基本溝通和核心語言功能的基本語言資料 |
chat |
顯示自然對話流程、內容維護和適當社交互動的對話交流 |
code |
來自各種程式設計語言和平台的程式設計原始程式碼、文件和技術討論。 |
factuality |
著重於準確性、來源驗證和事實評估的參考資料和已驗證資訊 |
identity |
專注於一致角色特徵、價值和互動風格的人格架構和行為模式 |
long-context |
延伸文字和複雜的敘述,著重於在冗長的交換之間維持一致性和相關性 |
math |
數學內容,包括教科書、問題、解決方案和數學討論。 |
rai |
強調道德 AI 原則、安全考量和負責任技術部署的案例和案例 |
instruction-following |
根據不同層級的使用者提示和指示詞,精確執行任務的範例 |
stem |
涵蓋科學、技術、工程和數學的技術內容,包括解決問題和理論概念 |
planning |
顯示策略思維、step-by-step任務明細和高效資源配置的序列 |
reasoning-chat |
專注於邏輯討論和結構化對話流程的分析對話案例 |
reasoning-code |
專注於系統化解決方案開發的程式設計挑戰和演算法問題 |
reasoning-factuality |
著重於關鍵評估和驗證程序的資訊評估案例 |
reasoning-instruction-following |
專注於系統化解譯和系統化執行的複雜任務分析 |
reasoning-math |
專注於邏輯進展和解決方案策略的數學問題解決案例 |
reasoning-planning |
專注於實現目標的系統性方法的策略決策案例 |
reasoning-rag |
著重於情境理解和相關應用程式的資訊擷取和合成案例 |
reasoning-rai |
專注於系統性評估 AI 安全和公平性的道德決策案例 |
reasoning-stem |
專注於系統分析和解決方案開發的科學問題解決案例 |
rag |
有效地將擷取的外部知識與產生的回應結合,以提供準確、情境式資訊的範例 |
translation |
多語言內容對顯示準確的翻譯,同時保留內容、色調和文化細微差別 |
參數指南
-
dataset_catalog:目前唯一值是 cpt_text_lite,直到我們啟用多模式訓練為止。
-
nova_data:混合時 Nova 資料的個別類別百分比。它們應該加到 1.0。
-
customer_data:混入 Nova 資料的客戶資料百分比。
訓練中使用的字符總數可從 max_length * global_batch_size * 計算 max_steps
限制
目前的 CPT 僅支援文字資料,不支援任何客戶多模態資料集。