top of page

【模型訓練技術論文】使用 NVIDIA NeMo 進行多節點指令微調:擴展 Qwen2.5-32B 並重塑 s1 模型

【模型訓練技術論文】使用 NVIDIA NeMo 進行多節點指令微調:擴展 Qwen2.5-32B 並重塑 s1 模型

大綱

  1. 引言

  2. s1K 資料集建置與篩選流程

  3. NVIDIA NeMo 在跨節點微調中的技術優勢

  4. Qwen2.5-32B-Instruct 微調實作概覽

  5. 結果與效能

  6. 結論

  7. 後記



  1. 引言


2025 年初,李飛飛博士的研究團隊提出 s1: A Simple test-time scaling,該論文以精簡且可重現的流程指出:模型只要使用少量但高品質的推理資料進行監督式微調(SFT),再搭配簡單的 test-time 控制方法(budget forcing),就能展現明顯的 test-time scaling 行為,並顯著提升推理表現。這促使我們思考:在基礎模型已具備相當能力的前提下,資料品質是否能比資料數量更有效地提升推理能力


基於上述動機,我們在 APMIC 內部以 NVIDIA NeMo 進行跨節點分散式訓練,沿用 s1K 的 1,000 筆數理推理資料,對 Qwen2.5-32B-Instruct 進行微調以重現論文觀察。由於當時(2025/03)NeMo 正由 1.0 遷移至 2.0,且 NeMo 2.0 尚未完整提供 Qwen2.5-32B 的現成 recipe,我們手動修補了訓練配置與流程,並在 16 張 H100 的跨節點環境完成訓練。本篇文章將整理環境與設定修補重點、訓練流程,以及微調前後在 benchmark 上的結果與觀察。

2. s1K 資料集建置與篩選流程


s1K 是一個以「少量、但足夠困難且多樣」為設計原則的 1,000 筆推理資料集。其製作可概括為兩步:先從大量題目中生成可用於監督學習的推理軌跡,再透過多階段篩選精煉到最終的 1,000 筆。


論文首先從 16 個開源來源彙整約 59K 題目,並使用 Gemini Thinking 為每題生成對應的 reasoning trace 與最終答案,形成 next-token prediction 可用的監督訊號;接著透過三個關卡精煉資料: (1) 品質過濾:移除格式錯誤或內容不完整樣本; (2) 難度過濾:以 Qwen2.5-7B / Qwen2.5-32B 嘗試作答,並由 Claude 3.5 Sonnet 評測正確性,將兩者都能輕鬆答對的題目剔除,同時以推理軌跡 token 長度作為輔助難度指標; (3) 多樣性過濾:將題目分類至多個領域(約 50 個 domain),並進行跨領域抽樣且偏好更具挑戰性的題目,最終得到 1,000 筆精選資料。


後續作者也推出 s1K-1.1,在相同題目上改用更強的推理模型 DeepSeek-R1 生成推理軌跡與答案,進一步提升資料品質,並凸顯 reasoning trace 的品質會直接影響 SFT 後的推理表現

3. NVIDIA NeMo 在跨節點微調中的技術優勢


NeMo 框架具有多項關鍵優勢,使其特別適合 Qwen2.5-32B 等 LLM 的大規模多節點微調。

首先,NeMo 透過整合 Megatron-LM 與 DeepSpeed 原生支援分佈式訓練。它結合張量並行 (Tensor Parallelism, TP)、流水線並行 (Pipeline Parallelism, PP) 與資料並行 (Data Parallelism, DP),以充分利用 GPU 集群。透過 ZeRO 優化技術將優化器狀態、梯度與參數分片到不同設備上,顯著降低了記憶體開銷。


其次,NeMo 基於 NCCL (NVIDIA Collective Communications Library) ,充分利用 NVLink 與 InfiniBand 來實現 GPU 之間及節點間的低延遲、高吞吐量通訊。這確保了即使在複雜的集群拓撲中也能實現高效擴展,並支援 torchrun 或 slurm 等啟動器進行調度。

第三,NeMo 引入了 自動選擇性激活重算 (Automatic Selective Activation Recomputation),能在反向傳播期間智慧地重新計算記憶體密集型的中間激活值(例如 Transformer 注意力機制或 MLP 區塊中的激活值)。這種優化在不需手動標記層級的情況下,大幅減少了 GPU 顯存峰值使用量。


最後,NeMo 提供強大的 檢查點 (Checkpointing) 策略,提高了容錯能力與 I/O 效率。用戶可以配置檢查點的儲存頻率與保留策略,確保訓練任務保持穩定,並能在中斷後恢復,且不會消耗過多磁碟空間。


這些功能共同協作,使開發者能以最高的硬體效率,在多節點上訓練兆級參數規模的模型。

4. Qwen2.5-32B-Instruct 微調實作概覽


4.1 資料準備與格式轉換

NeMo 框架需要採用標準問答對 (QA pair) 結構的 .jsonl 格式輸入。本實驗將使用的 s1K 高品質指令資料集轉換為與 Alpaca 相容的格式,每行是一個包含 input 和 output 欄位的 JSON 物件。例如:


{"input": "Let $a,b,A,B$ be given reals. We consider the function defined by \\[ f(x) = 1 - a \\cdot \\cos(x) - b \\cdot \\sin(x) - A \\cdot \\cos(2x) - B \\cdot \\sin(2x). \\] Prove that if for any real number $x$ we have $f(x) \\geq 0$ then $a^2 + b^2 \\leq 2$ and $A^2 + B^2 \\leq 1.$.", "output": "Let $P(x) = 1 - a \\cos x - b \\sin x - A \\cos 2x - B \\sin 2x$.
Since $P(x) \\geq 0$ for all real $x$, by Fejer-Riesz theorem..."}

4.2 訓練環境與性能評估

微調在兩種硬體配置上進行,透過 torchrun 工具啟動,節點間通訊透過 IP 地址配置,實現了簡潔且高效的跨節點訓練。

  • 多節點分佈式訓練:部署在兩個節點上,每個節點配備 8 張 NVIDIA H100 GPU。訓練執行了 315 個步數 (steps),耗時 16 分鐘完成——快於原始 s1 實驗的 26 分鐘。

  • 單節點訓練:在配備 8 張 NVIDIA B200 GPU 的單台機器上進行。整個微調工作流順利完成並完全收斂。


4.3 並行策略

考量到 Qwen2.5-32B-Instruct 模型的龐大參數規模(約 32B)以及 H100、B200 等現代 GPU 的高記憶體頻寬,我們採用了針對不同訓練環境定制的靈活混合並行策略:

訓練配置

張量並行 (TP)

流水線並行 (PP)

序列並行 (CP)

備註

16 × H100 (2 節點)

8

2

1

推薦用於多節點擴展

8 × B200 (單節點)

8

2

1

主要實驗配置,記憶體優化

  • 張量並行 (TP):將大型矩陣計算拆分到多個 GPU 上,以高效執行大型模型。

  • 流水線並行 (PP):將模型層劃分為連續階段,允許不同 GPU 處理模型的不同部分,減輕記憶體壓力。

  • 序列並行 (CP):保持序列輸入的一致性。在本實驗中固定為 1 以保持語境完整性。


4.4 客製化 Recipe 與模組化訓練工作流

NeMo 2.0 引入了 Recipe (配方) 的概念,將模型初始化、資料加載、優化器設置與學習率調度等組件模組化。用戶只需一個指令即可啟動完整的微調流程,提升了可重用性與可配置性。

在進行本實驗時,NeMo 容器尚未原生支援 Qwen2.5-32B。因此,我們手動定義了 Qwen25Config32B 類別,並將其與內建的 llm.Qwen2Model 架構整合,作為訓練的骨幹。

核心訓練配置定義如下:


def configure_recipe(args):
    recipe = default_finetune_recipe(
        run.Config(llm.Qwen2Model, config=run.Config(Qwen25Config32B)),
        hf_id="Qwen/Qwen2.5-32B-Instruct",
        dir="your path",
        name=args.experiment,
        num_nodes=args.num_nodes,
        num_gpus_per_node=args.num_gpus,
        packed_sequence=True,
    )
    return recipe

值得注意的是,在本實驗完成後,NVIDIA 已在後續版本的 NeMo 容器中正式加入了對 Qwen2.5 模型系列的原生支援。因此,用戶現在可以直接引用官方配置,無需再手動定義模型結構。

5. 結果與效能

我們在 MMLU 基準測試上評估了微調後的模型,這是一個用於衡量通用語言理解能力的熱門多任務測試集。結果令人矚目:

  • Qwen2.5-32B-Instruct (使用 s1-dataform1 微調)82.05 準確率

  • Qwen2.5-32B-Instruct (原始模型)80.74 準確率

結果再次證實錄論文的發現,即使沒有大規模預訓練或海量資料集,透過使用少量高品質數據進行針對性微調,也能使模型相較於基礎模型獲得可衡量的提升。



特別的是,上述準確率是在 16×H100 GPU 設置(2 節點)下達成的。而在配備 8×B200 GPU 的單節點系統上也能重現類似的效能,這凸顯了 NeMo 框架結合數據中心化方法時的效率、適應性與擴展性。

6. 結論


透過將 s1 方法與 NVIDIA NeMo 可擴展的 AI 基礎設施整合,我們得以微調並部署針對特定領域與應用需求客製化的模型。


微調大型語言模型不再一定需要海量資料或龐大算力;更關鍵的是精準的資料策展,以及能智慧擴展的基礎設施。NVIDIA NeMo 提供了一個極具吸引力的解決方案:它支援記憶體效率佳的跨節點訓練,具備一流的通訊效能、可自動重計算(recomputation),以及高度可配置的 checkpoint 儲存機制。


在此方法下,我們的 Qwen2.5-32B 微調流程在 MMLU 等真實世界 benchmark 上取得了提升,進一步印證高品質指令資料的價值,以及 NeMo 可擴展訓練架構的效益。這套工作流程不僅能帶來穩健的模型表現,也為企業與研究團隊提供了一個可落地的範本,協助以高效率且可靠的方式完成 LLM 的微調。

7. 後記


在2026年,NVIDIA 將NeMo 2.0 的訓練和配方正式遷移到 Megatron Bridge框架,NeMo Megatron Bridge 是先前 NeMo 訓練堆疊的重構,它採用了 PyTorch 原生的訓練循環,為開發者在模型訓練上提供了更大的靈活性和可自訂性。


作者資訊:Ethan Kuo 

(APMIC 研發部門研究員 / LLM 工程師,專精於使用 NVIDIA 工具組進行 LLM 微調。)


想要最符合業務需求的 AI 模型!選擇企業專屬模型解決方案 PrivModel

為了滿足企業對於特定領域知識的精準需求,我們推出了專業的 PrivModel 方案。透過這項服務,我們可以針對企業客戶內部擁有的特化私有知識,進一步進行微調(Fine-tuning)模型。同時,藉由蒸餾(Distillation)技術,幫助模型尺寸縮小,優化部署效率。這能確保模型轉變為專有領域的模型,在特定的公司內部得到最好的成效,最終將模型能力與實際業務價值完美對齊。


想要最符合業務需求的 AI 模型!選擇企業專屬模型解決方案 PrivModel

留言


bottom of page