iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
AI Security

《30 天從零打造資安語言模型:從微調到 Agent 落地》系列 第 3

Day 3|模型選型:為什麼是 E4B,以及單機全參數的那條線

  • 分享至 

  • xImage
  •  

我的硬體條件

先把牌攤開,因為所有的選型決策都是從這裡推出來的:

  • NVIDIA DGX Spark(GB10)一台
  • 128GB 統一記憶體(CPU 與 GPU 共用,這點很關鍵)
  • 沒有多機叢集,沒有雲端訓練預算

「一台」這個限制看起來很弱,但它其實是這個專案最有價值的約束——因為它逼我在第一週就面對一個問題:在這台機器上,我到底能做全參數訓練,還是只能做 LoRA?

這個問題的答案決定了後面所有事情。

全參數 vs LoRA:不是偏好問題

先講為什麼我想要全參數。

我要復現的是 Trend Micro Primus 的三階段配方:CPT(持續預訓練)→ SFT(監督式微調)→ 推理蒸餾。其中 CPT 這個階段的目的是讓模型的語域整個往資安領域偏移——它要改變的是模型的底層表徵,不是在上面貼一層適配器。

LoRA 做 SFT 很好用,做 CPT 效果就有限。你可以做,但你會發現 loss 降不下去,因為可訓練的參數量根本不足以承載一次語域遷移。

所以問題變成:這台機器的 128GB,能撐起多大的模型做全參數訓練?

記憶體預算的算法

全參數訓練的記憶體佔用,主要來自四塊:

  1. 模型權重:bf16,每個參數 2 bytes
  2. 梯度:bf16,每個參數 2 bytes
  3. 優化器狀態:AdamW 的一階與二階動量,如果用 fp32 存,每個參數 8 bytes
  4. 激活值:跟 batch size、序列長度、有沒有開 gradient checkpointing 有關

前三項是硬成本,加起來大約是 每個參數 12 bytes。如果優化器狀態也放 fp32 的主權重副本,會逼近 16 bytes。

用 12 bytes 粗估:

模型規模 權重+梯度+優化器 128GB 夠嗎
4B ≈ 48 GB 夠,還有空間給激活值
12B ≈ 144 GB 不夠
26B ≈ 312 GB 完全不用想
31B ≈ 372 GB 完全不用想

答案很清楚。在單台 128GB 上要做全參數訓練,模型規模的天花板就在 4B 附近。12B 已經翻過去了,而且不是差一點,是差一半。

當然你可以用 ZeRO offload 把優化器狀態丟到 CPU 記憶體——但 GB10 是統一記憶體架構,CPU 和 GPU 吃的是同一池,offload 省不到你想省的東西。這是統一記憶體的甜蜜點,也是它的天花板。

為什麼是 Gemma 4 E4B

確定規模之後,接下來是選家族。我的候選條件有四個:

  1. 開放權重,授權允許商業使用與衍生——這是產品化的前提
  2. 有完整的技術文件與訓練生態支援——不想在框架相容性上耗時間
  3. 多語言能力,特別是繁體中文——我的使用者是台灣的資安顧問,報告和問答都是中文
  4. 同規模下的基礎能力夠強

Gemma 4 家族在這四點上都過關,而 E4B 剛好落在我算出來的甜蜜點上——它是這個家族裡我能做完整全參數三階段訓練的最大選擇。

再往上是 12B。我認真考慮過「用 12B 做 LoRA」對上「用 E4B 做全參數」哪個好,最後選了後者,理由是:

這個專案的目標不是造一個最強的模型,是把一套配方完整跑通一次。

我需要知道 CPT 有沒有用、SFT 有沒有用、蒸餾有沒有用,需要每一階段都能單獨評測、單獨檢討。用 12B LoRA 我會得到一個可能比較強的模型,但我學不到配方裡哪一步真正有貢獻。用 E4B 全參數我會得到一個比較弱的模型,但我會拿到一張完整的地圖。

事後看,這個選擇是對的——因為第 12 天的 benchmark 結果狠狠打了我一巴掌,而正是因為我三階段都能拆開看,我才知道問題出在哪。

一個常見的反問:為什麼不直接用 API?

「你搞這麼多,直接呼叫商用 API 不是又強又便宜?」

在很多場景這是對的答案,我不會假裝不是。但這個專案有兩個條件讓它不成立:

第一,資料不能出境。 輸入是客戶的資安事件、告警內容、網路拓撲。這些東西不會、也不該離開地端。這不是保守,這是合約條款。

第二,這是產品不是內部工具。 交付給客戶的系統如果建立在別人的 API 上,你的成本結構、可用性、甚至產品的存續,都握在別人手上。對一個要賣進金融與製造業的資安產品來說,這個風險評估過不了。

所以「地端、可控、可稽核」不是技術偏好,是這個場景的入場券。而一旦你接受了地端這個前提,模型規模的選擇就會被硬體推到現在這個位置。

這一天的可帶走結論

如果你也在評估要不要在單機上做垂直模型微調,我建議你用這個順序想:

  1. 先確定 資料能不能出境 → 決定地端還是雲端
  2. 再算 記憶體預算 → 決定模型規模天花板
  3. 再看 要不要做 CPT → 決定全參數還是 LoRA
  4. 最後才選模型家族

大部分人的順序是反的,先挑了一個聽起來很強的模型,然後才發現訓不動。

明天進入 Primus 三階段配方,拆解 CPT、SFT、推理蒸餾各自在解什麼問題。


@aid3fend — AI 資安實戰紀錄,歡迎追蹤交流。


上一篇
Day 2|目標場景:一個 MSSP 的四個痛點
下一篇
Day 4|Primus 三階段配方拆解:CPT、SFT、推理蒸餾各自在解什麼
系列文
《30 天從零打造資安語言模型:從微調到 Agent 落地》14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言