受監督的微調 - Amazon Nova

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

受監督的微調

簡介

受監督的微調會將資料集與輸入輸出對用於感興趣的任務。換句話說,您會提供提示 (問題、指示等) 的範例,以及正確或所需的回應,並繼續在這些回應上訓練模型。模型的權重經過調整,可將受監督的損失降至最低,通常是其預測和目標回應權杖之間的交叉熵。

何時使用 SFT?

當您有明確定義且具有明確所需輸出的任務時,SFT 是最佳的。如果您可以明確說出「給予 X 輸入,正確/想要的輸出是 Y」,而且您可以收集這類 X-Y 映射的範例,則監督式微調是很好的選擇。SFT Excel 的一些案例包括:

  • 結構化或複雜的分類任務:例如,將內部文件或合約分類為許多自訂類別。使用 SFT,模型可以學習這些特定類別遠優於單獨提示。

  • 具有已知答案的問題回答或轉換任務:例如,微調模型以回答公司知識庫的問題,或在格式之間轉換資料,其中每個輸入都有正確的回應。

  • 格式和樣式一致性:如果您需要模型一律以特定格式或色調回應,您可以微調正確格式/色調的範例。例如,在顯示特定品牌語音或樣式的提示回應對上進行訓練,可以在其輸出中教導具有該樣式的模型。指示追蹤行為通常透過 SFT 最初就精心策劃的良好助理行為範例進行教學。

當您可以指定正確的行為時,SFT 是教導 LLM 新技能或行為的最直接方式。它利用模型現有的語言理解,並專注於您的任務。當差距是知識而非行為時,請勿使用 SFT;它不會讓模型學習新的事實、術語或最近的事件。在這些情況下, 偏好在大型網域內 corpora 或擷取擴增產生的持續預先訓練,以在推論時帶來外部知識。當您可以測量品質但無法標記單一正確答案時,使用可驗證的獎勵或 LLM-as-judge進行微調可能較 SFT 為佳。

根據 Nova 模型的任務複雜性和效能,無需調校,每個任務規劃數千到數萬個示範,資料品質、一致性和多樣性比原始磁碟區更重要。

何時使用參數效率和何時使用完整排名 SFT?

Nova 自訂配方可讓您執行參數效率,特別是 LoRA 或完整排名 SFT。如果您想要直接、具成本效益的模型更新,或資料很少,請偏好參數效率方法,以便訓練小型轉接器,同時讓大部分骨幹保持不變 (完整排名 SFT 更新所有模型參數)。

SFT 的資料混合

資料混合可讓您將自訂訓練資料集與 Nova 的專屬訓練資料結合。此功能適用於 Nova 1.0 和 Nova 2.0 模型。

Nova 專屬資料類型:Nova 同時支援文字和多模式 SFT 資料類型。它被組織成多個資料類別,每個類別都包含與對應類別相關的任務混合。

Nova 專屬資料類別:文字資料集包含數個類別,包括:自動決策、任務完成、目標導向資料集 (代理程式)、推理和非理性的精確任務執行資料集 (reasoning-instruction-following、指示遵循)、展示策略思維的序列,以及step-by-step任務明細 (規劃)、負責任的 AI (rai)、長內容、事實、數學、莖等。同樣地,多模態資料集包括影片、螢幕擷取畫面、圖表等。

資料混合功能可讓您將自己的微調訓練範例與用於微調 Nova 的 Nova 資料集範例混合。這可以防止過度擬合您的自訂訓練和 Nova 功能的「災難性忘記」,或在從新的預先訓練檢查點訓練時協助您建置功能。

若要混合 Nova 資料,您只需在 training_config 區段下,將 data_mixing 區塊新增至配方 YAML 檔案。文字和多模態資料混合區塊具有不同的內容,而 Nova 1.0 和 Nova 2.0 的資料混合區塊略有不同。請參閱對應的配方。

支援模型

  • Nova 1.0 (Micro、Lite、Pro)

  • Nova 2.0 Lite

支援的模態

  • 文字

  • 多模態

YAML 組態範例

Nova 1.0 文字混合的範例資料混合區塊

## Run config run: name: "my-lora-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: "" # Customer data path output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: max_length: 32768 # Maximum context window size (tokens). global_batch_size: 64 # Global batch size, allowed values are 16, 32, 64 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 peft: peft_scheme: "lora" # Enable LoRA for parameter-efficient fine-tuning lora_tuning: loraplus_lr_ratio: 8.0 # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0 alpha: 32 # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192 adapter_dropout: 0.01 # Regularization for LoRA parameters. Must be between 0.0 and 1.0 data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # science, technology, engineering, and mathematics content planning: 2 # sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # logical problem-solving and analytical thinking demonstrations rag: 1 # retrieval-augmented generation examples translation: 9 # language translation tasks

Nova 2.0 組態範例

run: name: my-lora-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 replicas: 4 output_s3_path: s3://my-bucket-name/outputs/ mlflow_tracking_uri: "" mlflow_experiment_name: "my-lora-sft-experiment" mlflow_run_name: "my-lora-sft-run" training_config: max_steps: 100 save_steps: 10 save_top_k: 5 max_length: 32768 global_batch_size: 32 reasoning_enabled: true lr_scheduler: warmup_steps: 15 min_lr: 1e-6 optim_config: lr: 1e-5 weight_decay: 0.0 adam_beta1: 0.9 adam_beta2: 0.95 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0

Nova 2.0 文字資料混合

data_mixing: dataset_catalog: sft_1p5_text_chat sources: customer_data: percent: 50 nova_data: agents: 1 baseline: 10 chat: 0.5 code: 10 factuality: 0.1 identity: 1 long-context: 1 math: 2 rai: 1 instruction-following: 13 stem: 0.5 planning: 10 reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 translation: 0.1

Nova 1.0 多模態資料混合

data_mixing: dataset_catalog: sft_mm sources: customer_data: percent: 50 nova_data: agents: 11 docs: 17 perception: 10 rag: 4 rai: 3 reasoning: 10 stem: 17 text: 10 video: 18

Nova 2.0 多模態資料混合

data_mixing: dataset_catalog: sft_1p5_mm_chat sources: customer_data: percent: 50 nova_data: charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15

模型檢查點

Nova 1.0 檢查點

  • 預先訓練 nova-<micro/lite/pro>/pretraining-text-partial】:在 Nova 預先訓練的持續學習率階段之後的檢查點,其中模型在數兆個文字字符上進行訓練。【階段 1 的結果】

  • MID-TRAINEDnova-<micro/lite/pro>/pretraining-text-full】:在 Nova 預先訓練的所有階段之後的純文字檢查點,以及使用數兆個文字字符進行中期訓練。如果您不希望模型看到任何多模態資料,請使用 。【階段 3 的結果】

  • MID-TRAINEDnova-<lite/pro>/pretraining-mm-full】:Nova 預先訓練和中階訓練所有階段之後的檢查點,包括多模態資料,具有數兆個字符。【具有多模式資料的階段 3 結果】

  • 最終 nova-<micro/lite/pro>/prod】:已通過所有訓練前和訓練後步驟的完全對齊最終檢查點。【階段 4 的結果】

Nova 2.0 檢查點

  • 預先訓練nova-lite-2/pretraining-text-RD】:在持續學習率和漸進式階段之後的檢查點,其中模型是以數兆個字符進行訓練。【階段 2 的結果】

  • MID-TRAINEDnova-lite-2/pretraining-text-CE】:允許具有中繼非結構化資料量的客戶,以比預先訓練更保守的學習率介紹其資料,吸收特定領域的知識,同時避免災難性忘記。【階段 3 的結果】

  • 最終 nova-lite-2/prod】:已通過所有訓練前和訓練後步驟的完全對齊最終檢查點。【階段 4 的結果】

訓練階段:

  • 階段 1:PT Ckpt,初始預先訓練,持續學習率

  • 階段 2:PT Ckpt、學習率逐步下降

  • 階段 3:PT Ckpt、內容延伸訓練

  • 階段 4:指示遵循一致性和安全性訓練

訓練方法

訓練方法選擇指南
資料類型 資料磁碟區 執行 使用檢查點
大規模的非結構化原始網域資料 (文件、日誌、文章、程式碼等) 1T+ 權杖 持續預先訓練 持續學習結束率 (CLR)
大規模的非結構化原始網域資料 100B+ 權杖 中階訓練 CLR 結束
非結構化原始資料的較小磁碟區;結構化推理追蹤/CoT 資料 1B+ 權杖 中階訓練 Nova 基礎模型
結構化示範 (高品質輸入輸出對、策劃的任務指示、多迴轉對話) 1K+ 範例 受管微調 (SFT) Nova 基礎模型

開始之前的必要項目

  • 我們假設您已使用具有作用中容量的限制執行個體群組 (RIG) 設定 SMHP 叢集。如果沒有,請參閱此處,讓您的 SMHP 叢集和 RIG 設定完成 【文件連結研討會連結

  • 您需要 p5.48xlarge EC2 執行個體才能執行此配方。有效執行此配方所需的執行個體數量下限如下:

    • Nova Lite 2.0 - 4 p5.48xlarge

    • Nova Lite 1.0 – 4 p5.48xlarge

    • Nova Micro 1.0 – 4 p5.48xlarge

    • Nova Pro 1.0 – 6 p5.48xlarge

  • 使用此處提供的指示安裝 Forge Specific SageMaker HyperPod CLI

  • 確認您可以使用 連線至叢集 hyperpod get-clusters

    • 請注意,此命令會列出您帳戶中的所有 SMHP 叢集

  • 確認您的訓練和選擇性驗證資料可在 SMHP 叢集的執行角色可存取的 S3 儲存貯體中使用。如需資料準備,請參閱下一節。

  • 完成設定。如果您尚未完成設定,請遵循下列指南

  • 驗證:完成設定後,確認您可以在命令下成功執行

    aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region> hyperpod connect-cluster --cluster-name cluster-name

實現成功 SFT 的系統性方法

  • 資料準備:遵循已建立的指導方針,將資料集建立、清除或重新格式化為所需的結構。確保輸入、輸出和輔助資訊 (例如推理追蹤或中繼資料) 正確對齊並格式化。

  • 訓練組態:定義模型的訓練方式。使用 Amazon SageMaker HyperPod 時,此組態會寫入 YAML 配方檔案中,其中包含:

    • 資料來源路徑 (訓練和驗證資料集)

    • 金鑰超參數 (訓練步驟的數量、學習率、批次大小)

    • 選用元件 (分散式訓練參數等)

    • 資料混合設定 (定義客戶和 Nova 資料類別的比例)

  • 最佳化 SFT 超參數:我們建議的 SFT 配方參數值是很好的起點和強大的選擇。如果您想要針對您的使用案例進一步最佳化它們,請使用不同的參數組合執行多個 SFT 執行,並挑選最佳的執行。您可以依照您選擇的超參數最佳化方法選取參數組合。一個簡單的方法是改變一個參數的值 (預設值*0.5、預設值、預設值*2),同時保留其他參數的其他預設值,針對您要最佳化的每個參數重複此操作,並視需要反覆執行。LoRA 最相關的參數是學習率、alpha (擴展參數)、訓練和暖機步驟的 epoch 數目;對於完整排名,主要是學習率、epoch 數目和暖機步驟。

實驗定序和資料混合

  • 如果您只有一組任務的 SFT 資料 (train/dev/test),並且只關心這些任務的測試效能

    • 在不混合 【最終】 Nova 檢查點的情況下執行 SFT。使用預設 SFT 超參數,並選擇性地針對您的使用案例進行最佳化。監控驗證指標和/或評估較大資料集的中繼檢查點。

  • 如果您只有一組任務的 SFT 資料 (train/dev/test),並關心感興趣的領域中這些任務和一般基準測試的效能

    • 首先在訓練前檢查點 (PRE-TRAINED 或 MID-TRAINED 檢查點,而非 FINAL) 上使用 Nova 資料混合 SFT。使用中繼檢查點可讓模型更好地整合您的自訂資料與 Nova 的專屬資料,同時維持強大的一般功能。

    • 執行較短的 SFT 訓練執行時,混合了不同數量的 Nova 資料 (例如 10%、25%、50%、75%) 和 Nova 資料類別選擇,以補充您的使用案例 (例如,如果您關心以下功能的一般指示,請在類別後挑選指示)。監控驗證指標並評估混合是否有助於一般基準的效能。選取可在任務和一般效能上獲得最佳效能組合的訓練組合和檢查點。根據使用案例,可以使用強化微調 (RFT) 進一步改善任務和一般效能。

準備 SFT 的資料集

Nova 1.0:資料準備說明於 https://https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html

Nova 2.0:使用適用於 Nova 1.0 的 Converse API 格式 https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html://。Nova 2.0 資料格式可以包含其他推理欄位:https://https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html

推理內容會先擷取模型的中繼思考步驟,再產生最終答案。assistant 然後,使用 reasoningContent 欄位來包含推理追蹤。使用純文字推理內容、避免標記標籤,例如 <thinking>和 ,</thinking>除非任務特別要求,並確保推理內容清晰且與問題解決程序相關。

負責任的 AI Toolkit 和內容管制

內容管制設定:Nova Forge 客戶可存取 Nova Lite 1.0 和 Pro 1.0 模型的可自訂內容管制設定 (CCMS)。CCMS 可讓您調整內容管制控制,以符合您的特定業務需求,同時維護基本的負責任 AI 防護措施。若要判斷您的業務使用案例是否符合 CCMS 的資格,請聯絡您的 Amazon Web Services 客戶經理。

Nova Forge 提供負責任的 AI Toolkit,其中包含訓練資料、評估基準和執行時間控制,協助您讓模型符合 Nova 負責任的 AI 準則。

訓練資料:資料混合中的「RAI」類別包含強調負責任 AI 原則、安全考量和負責任技術部署的案例和案例。使用這些來在持續的預先訓練期間,以負責任的方式調整您的模型。

評估:基準任務可用於測試模型偵測和拒絕不適當、有害或不正確內容的能力。使用這些評估來衡量基本模型效能與自訂模型效能之間的差異。

執行時間控制:根據預設,Nova 的執行時間會在推論期間控制中等模型回應。若要修改特定商業案例的這些控制項,請聯絡您的 Amazon Web Services 客戶經理,請求可自訂的內容管制設定 (CCMS)。

共同的安全責任

安全是 Amazon Web Services 與客戶共同的責任。變更基礎模型或使用持續的預先訓練來改善特定使用案例的效能,可能會影響新模型的安全性、公平性和其他屬性。

我們使用強大的適應方法,將安全、公平性和其他保護的變更降至最低,同時將模型未自訂任務對模型效能的影響降至最低。

您負責:

  • End-to-end測試

  • 判斷測試結果是否符合其對安全性、公平性和其他屬性的特定期望,以及整體有效性

如需詳細資訊,請參閱您計劃使用之服務的 Amazon Web Services 負責任使用 AI 指南、Amazon Web Services 負責任 AI 政策、 AWS 可接受的使用政策和 AWS 服務條款。

可自訂的內容管制設定 (CCMS)

CCMS 可讓您調整與業務需求相關的控制,同時維護基本、不可設定的控制,以確保負責任地使用 AI。

這些設定允許透過三種可用組態產生內容:

  • 僅安全性

  • 結合安全、敏感內容和公平性

  • 合併所有類別

四個內容管制類別為:

  1. 安全 – 涵蓋危險的活動、武器和管制物質

  2. 敏感內容 – 包括褻瀆、裸露和霸凌

  3. 公平性 – 解決偏差和文化考量

  4. 安全性 – 涉及網路犯罪、惡意軟體和惡意內容

無論您的 CCMS 組態為何,Amazon Nova 都會強制執行基本、不可設定的控制,以確保負責任地使用 AI,例如防止兒童受到傷害並保留隱私權的控制。

使用 CCMS 的建議

使用 CCMS 時,建議您使用持續預先訓練 (CPT),並從 RAI 前對齊檢查點 (PRE-TRAINING-Early、PRE-TRAINING-Mid 或 PRE-TRAINING-Final) 開始,而不是 GA/FINAL 檢查點。這些檢查點尚未經過安全訓練或轉向特定的 RAI 行為,可讓您更有效率地根據內容管制要求進行自訂。

秘訣:使用 CCMS 與資料混合時,請考慮調整 nova_data 組態中的「rai」類別百分比,以符合您的特定內容管制要求。

可用性

CCMS 目前可供核准的客戶使用:

  • Nova Lite 1.0 和 Pro 1.0 模型

  • Amazon Bedrock 隨需推論

  • us-east-1 (維吉尼亞北部) 區域

若要為 Forge 模型啟用 CCMS,請聯絡您的 Amazon Web Services 客戶經理。

評估方法

先決條件

  • 來自訓練任務manifest.json檔案的檢查點 S3 URI (適用於訓練模型)

  • 以正確格式上傳至 S3 的評估資料集

  • 評估結果的輸出 S3 路徑

現成基準:使用現成基準驗證一般任務的效能。如需詳細資訊,請參閱:https://https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html

使用您自己的資料

您也可以提供自訂資料,方法是將它們格式化為以下格式,然後視需要使用下列容器來取得推論結果以及校正的日誌機率。

使用下列結構為每個任務建立 jsonl:

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

在評估任務的推論階段產生的輸出將具有下列結構:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

欄位描述:

  • prompt:傳送至模型的格式化輸入

  • inference:模型產生的回應

  • gold:來自輸入資料集的預期正確答案、來自輸入的回應欄位

  • metadata:從輸入傳遞的選用中繼資料

準備評估組態

啟動評估任務的命令。使用 "--override-parameters" 修改配方中的任何項目。

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

最佳實務

  • 優先考慮磁碟區的資料品質:高品質、多樣化和代表性的訓練資料比大量低品質資料更有價值。

  • 包含 reasoning-instruction-following 類別:使用資料混合時,請包含 "reasoning-instruction-following" 類別,以維持跨任務的強大一般效能。

  • 使用預設學習率:從預設學習率 (LoRA 為 1e-5,完整排名 SFT 為 5e-6) 開始,並僅在需要時根據驗證指標進行調整。

  • Balance Nova 資料混合:混合最大 50% 的 Nova 資料,以取得最佳的延遲效能平衡。較高的百分比可以改善一般功能,但可以增加訓練時間。

  • 監控驗證指標:定期在訓練期間評估中繼檢查點,以提早偵測過度擬合或效能降低。

  • 對代表性資料集進行測試:確保您的評估資料集準確代表您的生產使用案例,以進行有意義的效能評估。

準備訓練任務組態

Hyper 參數

資料混合以外的完整超參數集:

## Run config run: name: my-lora-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 (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job 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). Note replace my-bucket-name with your real bucket name for SMHP job ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4) 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 # Golbal 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, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0–100.0)

LoRA 最相關的參數是學習率、alpha (擴展參數)、訓練和暖機步驟的 epoch 數目;對於完整排名,主要是學習率、epoch 數目和暖機步驟。配方會預先填入建議的預設值。

設定資料混合區塊

使用跨資料集類別的適當百分比分佈,將 data_mixing 區段新增至您的配方。

以下說明每個可用的 Nova 資料類別。

Nova 1.0 組態與資料混合

data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # Technical content covering science, technology, engineering, and mathematics planning: 2 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # Logical deduction, critical thinking, and analytical problem-solving scenarios rag: 1 # combining retrieved external knowledge with generated responses translation: 9 # Multi-language content pairs showing accurate translation

這些類別代表什麼意思?

Nova 1.0 文字資料類別
類別名稱 資訊詳細資訊
代理程式 在 AI 系統中專注於自動決策、任務完成和目標導向行為的訓練資料
chat 顯示自然對話流程、內容維護和適當社交互動的對話交流
code 涵蓋多種語言、偵錯案例和軟體開發最佳實務的程式設計範例和解決方案
rai 強調道德 AI 原則、安全考量和負責任技術部署的案例和案例
instructions-flowing 根據不同層級的使用者提示和指示詞,精確執行任務的範例
主體 涵蓋科學、技術、工程和數學的技術內容,包括解決問題和理論概念
規劃 顯示策略思維、step-by-step任務明細和高效資源配置的序列
推論 邏輯扣除、關鍵思考和分析具有明確推理鏈的問題解決案例
有效地將擷取的外部知識與產生的回應結合,以提供準確、情境式資訊的範例
translation 多語言內容對顯示準確的翻譯,同時保留內容、色調和文化細微差別

多模式資料混合 (Nova 1.0)

data_mixing: dataset_catalog: sft_mm # Nova multi-modal dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 11 # Combining visual and textual inputs docs: 17 # Document-centric data combining text, images, layouts, and formatting perception: 10 # Visual-linguistic pairs t rag: 4 # Combining retrieved external knowledge with generated responses rai: 3 # Ethical AI principles, safety considerations, and responsible technology deployment reasoning: 10 # Logical analysis, problem-solving, and drawing conclusions stem: 17 # Technical content pairing visual elements (diagrams, charts, equations) with text text: 10 # A balanced pool of contextual text data create from the text-only SFT datasets video: 18 # Video datasets

這些類別代表什麼意思?

Nova 1.0 多模式資料類別
類別名稱 資訊詳細資訊
代理程式 結合視覺和文字輸入的訓練組,示範 AI 系統應如何解譯、採取行動並與多感知環境資訊互動
文件 文件中心資料結合文字、影像、配置和格式,以訓練模型了解和處理各種文件類型和結構,以協助處理 PDF 內容辨識等概念
感知 視覺語言配對教學模型,以準確描述、解譯和推理自然語言的影像、影片和其他視覺輸入
多模式擷取範例,示範如何有效地結合和參考視覺和文字外部知識,以產生準確的情境式回應
推論 結合視覺和文字元素的案例,可示範邏輯分析、問題解決和跨多個模態得出結論
主體 技術內容將視覺元素 (圖表、圖表、方程式) 與文字配對,以教導科學、數學和技術概念和問題解決
text 從純文字 SFT Nova 資料集類別建立的內容文字資料平衡集區,以提供一般功能
影片 以動作為基礎的視覺內容,著重於時間理解和循序視覺敘述理解

Nova 2.0 組態與資料混合

data_mixing: dataset_catalog: sft_1p5_text_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems baseline: 10 # [New in Nova 1.5] chat: 0.5 # Conversational exchanges demonstrating natural dialogue flow code: 10 # Programming examples and solutions spanning multiple languages factuality: 0.1 # [New in Nova 1.5] identity: 1 # [New in Nova 1.5] long-context: 1 # [New in Nova 1.5] math: 2 # [New in Nova 1.5] rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 0.5 # Technical content covering science, technology, engineering, and mathematics planning: 10 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 # combining retrieved external knowledge with generated responses translation: 0.1

這些類別代表什麼意思?

Nova 2.0 文字資料類別
類別名稱 資訊詳細資訊
代理程式 在 AI 系統中專注於自動決策、任務完成和目標導向行為的訓練資料
基準 專注於一般理解、基本溝通和核心語言功能的基本語言資料
chat 顯示自然對話流程、內容維護和適當社交互動的對話交流
code 來自各種程式設計語言和平台的程式設計原始程式碼、文件和技術討論。
事實 著重於準確性、來源驗證和事實評估的參考資料和已驗證資訊
身分 專注於一致角色特徵、價值和互動風格的人格架構和行為模式
長內容 延伸文字和複雜的敘述,著重於在冗長的交換之間維持一致性和相關性
數學運算 數學內容,包括教科書、問題、解決方案和數學討論。
rai 強調道德 AI 原則、安全考量和負責任技術部署的案例和案例
instructions-flowing 根據不同層級的使用者提示和指示詞,精確執行任務的範例
主體 涵蓋科學、技術、工程和數學的技術內容,包括解決問題和理論概念
規劃 顯示策略思維、step-by-step任務明細和高效資源分配的序列
推理聊天 專注於邏輯討論和結構化對話流程的分析對話案例
推理程式碼 專注於系統化解決方案開發的程式設計挑戰和演算法問題
推理事實 著重於關鍵評估和驗證程序的資訊評估案例
reasoning-instruction-following 專注於系統化解譯和系統化執行的複雜任務分析
推理數學 專注於邏輯進展和解決方案策略的數學問題解決案例
推理規劃 專注於實現目標的系統性方法的策略決策案例
reasoning-rag 著重於情境理解和相關應用程式的資訊擷取和合成案例
reasoning-rai 專注於系統性評估 AI 安全和公平性的道德決策案例
reasoning-stem 專注於系統分析和解決方案開發的科學問題解決案例
有效結合擷取的外部知識與產生的回應,以提供準確、情境式資訊的範例
translation 多語言內容對顯示準確的翻譯,同時保留內容、色調和文化細微差別

多模式資料混合 (Nova 2.0)

data_mixing: dataset_catalog: sft_1p5_mm_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15

注意:Nova 2.0 包含 Nova 1.0 中不提供的影片資料類別支援。

這些類別代表什麼意思?

Nova 2.0 多模式資料類別
類別名稱 資訊詳細資訊
圖表 圖形、圓餅圖、長條圖、折線圖和其他統計視覺化的視覺化呈現和說明,以協助模型有效地了解和傳達量化資訊
chat 對話資料搭配專注於情境對話理解和以影像為基礎的互動的視覺元素
code 專注於視覺化程式碼解譯、IDE 螢幕擷取畫面和技術圖表的程式設計界面和開發環境
文件 文件中心資料結合文字、影像、配置和格式,以訓練模型了解和處理各種文件類型和結構,以協助處理 PDF 內容辨識等概念
一般 以廣泛理解影像、圖形和隨附的描述性文字為重點的多樣化視覺文字內容
依據 視覺參考資料和標籤影像,著重於將語言概念連接到真實世界視覺呈現
多模式擷取範例,示範如何有效地結合和參考視覺和文字外部知識,以產生準確的情境式回應
螢幕擷取畫面 應用程式界面擷取和數位顯示影像,著重於了解軟體界面和數位互動
text 從純文字 SFT Nova 資料集類別建立的內容文字資料平衡集區,以提供一般功能
translation 專注於影像和文化視覺元素中文字的多語言解釋的跨語言視覺內容
影片 以動作為基礎的視覺內容,著重於時間理解和循序視覺敘述理解

如何啟動任務

如果您只需要取得啟動第一次 SFT 執行的基本詳細資訊,也可以參考 README。

容器資訊:

容器資訊和啟動命令
模型 技術 Subcategory 映像 URI Hyperpod 啟動器命令
新版本 1.0 微調 SFT/PEFT 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest Hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest" }'
新版本 1.0 微調 具有資料混合的 SFT 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX Hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX" }'
新版本 2.0 微調 SFT 文字 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest Hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" }'
新版本 2.0 微調 SFT 文字 + 資料混合 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest Hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" }'
新版本 2.0 微調 SFT MM 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest Hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" }'
新版本 2.0 微調 SFT MM + 資料混合 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest Hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_mm_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-DATAMIXING-latest" }'

完成所有設定後,從 sagemaker-hyperpod-cli 儲存庫的根目錄開始,導覽至預設 nova sft 配方資料夾

  • cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/training/nova/

  • 在這裡,您可以根據基本模型的選擇,選擇是否要執行 nova 1 還是 nova 2 配方。

對於 Nova 1.0 軸:

  • 如果您想要使用一般 sft 任務 ,您應該可以在此資料夾下看到一個配方

    • cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_1_0/nova_lite/SFT,然後您應該能夠在此資料夾下看到一個名為 nova_lite_1_0_p5x8_gpu_sft.yaml 的配方

  • 如果您想要使用資料混合 sft 任務,您可以導覽至 sft Forge 配方資料夾

    • cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_1_0/nova_lite/SFT,您應該能夠在此資料夾下看到一個名為:nova_lite_1_0_p5x8_gpu_sft_with_datamix.yaml 的配方

  • 編輯任務所需配方中的區段,例如名稱、data_s3_path、validation_s3_path、 output_s3_path 和 max_steps。由於我們正在執行 sft,因此在此不適用 epochs 的概念。

對於 Nova 2.0 軸:

  • 如果您想要使用一般 sft 任務 ,您應該可以在此資料夾下看到一個配方

    • cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova_2_0/nova_lite/SFT,然後您應該能夠在此資料夾下看到一個名為 nova_lite_2_0_p5x8_gpu_sft.yaml 的配方

  • 如果您想要使用資料混合 sft 任務,您可以導覽至 sft Forge 配方資料夾

    • cd /src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/recipes/fine-tuning/nova/forge/nova_2_0/nova_lite/SFT,您應該能夠在此資料夾下看到一個名為:nova_lite_2_0_p5x8_gpu_sft_with_datamix.yaml 的配方

  • 編輯任務所需配方中的區段,例如名稱、data_s3_path、validation_s3_path、put_s3_path 和 max_steps。由於我們正在執行 sft,因此在此不適用 epochs 的概念。

資料混合組態看起來會相同,但底部會有類似這樣的額外資料混合區段

data_mixing: dataset_catalog: sft_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: 20 scientific: 20 code: 20 factual-and-news: 20 longform-text: 0 health-and-medicine: 0 humanities-and-education: 0 legal: 0 math: 0 additional-languages: 0 social-and-personal-interest: 0 entertainment: 0 reasoning: 0 other: 0 tables: 0 customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above percent: 25

這裡有兩種最上層的資料類別:

  • nova_data :這是實際的資料混合,並細分為更多類別。必須加總至 100%

    • 您可以在以下找到這些類別的完整明細,包括字符計數

  • customer_data :這是您在 yaml 頂端 data_s3_path 金鑰中參考的訓練資料。此處提供的百分比決定 nova_data 的結果百分比。例如,在上述百分比選擇中,在訓練期間,我們將使用 25% 的 customer_data 和 75% 的 nova_data,其中 15% 將是客服人員、15% 將是business-and-finance、15% 將是科學、15% 將是程式碼,而 15% 將是factual-and-news

秘訣:再次執行 pip install -e 。您已準備好提交任務!

我們將覆寫這裡的幾個參數,以使用資料混合:

hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5x8_gpu_sft_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/ }'

您的輸出應包含任務名稱,如下所示:

⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe training/nova/forge/nova_2_0/nova_lite/sft/nova_lite_2_0_p5x8_gpu_pretrain_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-Datamix", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "3://sft-data/output/ }'

輸出會像這樣:

Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=training/nova/nova_micro_p5x8_gpu_pretrain cluster_type=k8s cluster=k8s base_results_dir=/local/home/niphaded/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="p5d.48xlarge" container="900867814919.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:sft-datamix-rig-final" Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/niphaded-sft-run-wzdyn_launch.sh NAME: my-sft-run-wzdyn LAST DEPLOYED: Tue Aug 26 16:21:06 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703" }

您可以使用 Hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn 檢視任務的狀態

hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn { "pods": [ { "PodName": "my-sft-run-wzdyn-master-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" }, { "PodName": "my-sft-run-wzdyn-worker-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" } ] }

或直接使用 kubectl 命令來尋找它們。

例如

kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run) NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-sft-run-5suc8-master-0 0/1 Completed 0 3h23m 172.31.32.132 hyperpod-i-00b3d8a1bf25714e4 <none> <none> my-sft-run-5suc8-worker-0 0/1 Completed 0 3h23m 172.31.44.196 hyperpod-i-0aa7ccfc2bd26b2a0 <none> <none> my-sft-run-5suc8-worker-1 0/1 Completed 0 3h23m 172.31.46.84 hyperpod-i-026df6406a7b7e55c <none> <none> my-sft-run-5suc8-worker-2 0/1 Completed 0 3h23m 172.31.28.68 hyperpod-i-0802e850f903f28f1 <none> <none>

專業秘訣 :請務必一律使用 -o wide 旗標,因為任務執行所在的 EKS 節點可協助您在 UI AWS 中更快地找到日誌

如何監控任務

您可以透過以下三種方式之一來檢視日誌:

a) 使用 CloudWatch

您的日誌可在包含 CloudWatch 下 Hyperpod 叢集的 Amazon Web Services 帳戶中使用。若要在瀏覽器中檢視它們,請導覽至您帳戶中的 CloudWatch 首頁,並搜尋您的叢集名稱。例如,如果您的叢集稱為 my-hyperpod-rig,則日誌群組會有 字首:

  • 日誌群組:/aws/sagemaker/Clusters/my-hyperpod-rig/{UUID}

  • 進入日誌群組後,您可以使用 - hyperpod-i-00b3d8a1bf25714e4 等節點執行個體 ID 來尋找您的特定日誌。

    • 此處的 i-00b3d8a1bf25714e4 代表訓練任務執行所在的 Hyperpod 易記機器名稱。請記得在先前的命令 kubectl 中,如何取得稱為 NODE 的 Pod -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run) 輸出。

    • 在此情況下,「主要」節點執行是在 Hyperpod-i-00b3d8a1bf25714e4 上執行,因此我們將使用該字串來選取要檢視的日誌群組。選取描述 SagemakerHyperPodTrainingJob/rig-group/【NODE】 的項目

您的日誌看起來應該像這樣:

b) 使用 CloudWatch Insights

如果您的任務名稱方便使用,但不希望進行上述所有步驟,您可以直接查詢 /aws/sagemaker/Clusters/my-hyperpod-rig/{UUID} 下的所有日誌,以尋找個別日誌。

CPT

fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100

若要完成任務,請將啟動 SFT 任務取代為完成 SFT 任務

然後,您可以按一下結果並挑選「Epoch 0」,因為那將是您的主節點。

C) 使用 aws cli

您可以選擇使用 結尾您的日誌。執行此操作之前,請使用 aws --version 檢查您的 aws cli 版本。也建議您使用此公用程式指令碼,以協助追蹤終端機中的即時日誌

適用於 V1:

aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'

適用於 V2:

aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow

D) 設定 ML 流程:

您可以透過 MLFlow 追蹤指標。

建立 MLflow 應用程式

使用 Studio UI:如果您透過 Studio UI 建立訓練任務,預設 MLflow 應用程式會自動建立,並依預設在進階選項下選取。

使用 CLI:如果您使用 CLI,則必須建立 MLflow 應用程式並將其做為訓練任務 API 請求的輸入傳遞。

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

存取 MLflow 應用程式

使用 CLI:建立預先簽章的 URL 以存取 MLflow 應用程式 UI:

aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text

設定 ML 流程後,您可以在配方中傳遞 URI,或在啟動任務時使用覆寫。您可以在 README 中找到如何執行此操作的範例。

如何在 SFT 之後評估您的模型?

先決條件

  • 來自訓練任務 manifest.json 檔案的檢查點 S3 URI (適用於訓練模型)

  • 以正確格式上傳至 S3 的評估資料集

  • 評估結果的輸出 S3 路徑

現成基準:使用現成基準來驗證一般任務的效能。如需詳細資訊,請參閱此處。

攜帶您自己的資料:

您也可以提供自訂資料,方法是將它們格式化為以下格式,然後使用下列容器取得推論結果,並視需要取得校正的日誌機率。

具有下列結構的每個任務的 Crate jsonl:

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

在評估任務的推論階段產生的輸出將具有下列結構:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

欄位描述:

  • 提示:傳送至模型的格式化輸入

  • 推論:模型產生的回應

  • 金色:來自輸入資料集的預期正確答案、來自輸入的回應欄位

  • 中繼資料:從輸入傳遞的選用中繼資料

準備評估組態

啟動評估任務的命令。使用「--override-parameters」來修改配方中的任何項目。

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

啟動您的評估任務

任務啟動具有對應映像之不同配方的命令。

評估任務啟動命令
模型 技術 Subcategory 映像 URI 命令
新版本 1.0 評估 評估 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest Hyperpod start-job \ -n kubeflow \ --recipe evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" }'
新版本 2.0 評估 評估 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest Hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest" }'

經驗教訓和秘訣

  • SFT 資料集的品質至關重要。您應該盡一切努力篩選掉低品質的資料。如果您在複雜性和準確性方面有一小部分非常高品質的資料,您可以考慮將其放在訓練結束時,以協助模型更好地收斂。

  • 我們利用文字和多模態 (MM) 資料集來混合資料。我們的文字資料集實驗顯示,新增 Nova 的專屬「reasoning-instruction-following」類別可大幅改善一般基準測試的效能。如果您關心使用資料集執行 SFT 之後所迴歸的一般基準,建議您在資料混合策略中包含此類別。

  • 對於 MM 資料集,我們的實驗指出,將超過 20% 的視訊類別整合到混合中有助於維持一般基準效能。

  • 此外,具有資料混合的 SFT 對學習率非常敏感,因此我們的調查結果建議使用預設學習率進行微調,即 1e-5 for LoRA 和 5e-6 for FR。

  • 最後,如果您混合 Nova 專屬資料集,則會在延遲和效能之間做出取捨,因此我們的問題清單建議在最大範圍內混合 50% 作為良好的平衡。