Agent Telemetry

V100 推論叢集 · DGX 訓練研究
快照2026-08-05_1955UTC+8 · 每 3 小時更新

服務

fable-9b · V100:8600
健康 · HTTP 200
Qwopus-27B regen · V100:8900
無回應 (000)
工具呼叫
已上線 · 8/8 + 7/7
Hermes gateway
待啟用

V100 機櫃

GPU 0
fable-9b 生產
29055 / 32510 MiB
util 0 %
GPU 1
regen server TP2
28849 / 32510 MiB
util 0 %
GPU 2
regen server TP2
28849 / 32510 MiB
util 0 %
GPU 3
測試 / 優化台
28849 / 32510 MiB
util 0 %

背景產線

DSpark drafter 訓練 · DGX GB1013440 / 13440 · 100.0%
1400 樣本子集 × 10 epoch,梯度累積 64。記憶體已打平,約 2.53 s / micro-step
DSpark target cache 建置 · DGX4948 / 5093 · 97.2%
已完成,4948 樣本 / 103GB
Qwopus-27B regen 資料生成 · V100 TP28931 / 8931 · 100.0%
可斷點續傳,供訓練資料擴量

吞吐量實測

9B-Q4_K_M · 64K · TP4×1人 · TQ-2bit s96
現行生產
111.5 tok/s
9B-Q4_K_M · 64K · TP2×1人 · TQ-2bit s96
90.5 tok/s
9B-Q4_K_M · 64K · 單卡×1人 · TQ-2bit s96
切換前
66.6 tok/s
9B-Q4_K_M · 64K · TP4×8人 · TQ-2bit s96
每人
60.5 tok/s
27B-Q4_0 · 8K · TP2×1人 · KV auto
37.2 tok/s
27B-Q4_0 · 8K · TP2×4人 · KV auto
每人
22.5 tok/s
0每使用者 tok/s112

完整矩陣 · 一次跑完

為什麼重測全部

今天有六次「反常結果」最後都是量測方法的問題,不是被測物。零散修補會留下不同批次混用的數字,所以整個矩陣用同一套工具重跑一次:4 個配置 × 3 種 context × 5 種併發。

關鍵改變:prefill 與 decode 分開量。先前的每 token 速率是 tokens / 總耗時,把一次性的冷 prefill 攤進了每 token 成本。現在用串流,TTFT 與間隔中位數各自成欄,冷暖也分開,並附伺服器自報的 prefix 命中率。

配置context併發冷 TTFT暖 TTFTdecode tok/s總吞吐prefix退化
9B · TP4~200c10.23s0.16s123.170.80%0.91
c20.23s0.32s103.192.30%0.91
c40.23s0.33s79.7140.10%0.87
c80.23s0.36s67.9286.60%0.91
c160.23s0.96s68.0199.20%0.83
9B · TP4~8Kc11.13s0.76s117.926.757%0.91
c21.13s1.51s97.158.857%0.80
c41.13s2.85s73.846.957%0.82
c81.13s4.43s60.973.857%0.81
c161.13s6.43s58.970.857%0.79
9B · TP4~28Kc18.93s0.57s106.232.598%0.92
c28.93s1.05s83.341.198%0.92
c48.93s1.86s63.4105.098%0.78
c88.93s3.28s45.9105.198%0.79
c168.93s3.89s44.2101.798%0.74
9B · TP2~200c10.29s0.22s96.258.80%0.93
c20.29s0.44s72.072.40%0.93
c40.29s0.40s57.4126.90%0.91
c80.29s0.66s50.0175.70%0.87
c160.29s1.18s49.7198.30%0.91
9B · TP2~8Kc12.59s1.39s90.015.657%0.91
c22.59s3.27s66.232.357%0.76
c42.59s5.36s51.243.757%0.80
c82.59s8.41s41.230.657%0.83
c162.59s12.22s40.337.157%0.80
9B · TP2~28Kc117.39s0.89s77.930.698%0.95
c217.39s1.70s55.146.898%0.82
c417.39s3.21s42.067.498%0.80
c817.39s5.99s27.996.798%0.72
c1617.39s7.90s27.993.998%0.72
9B · 單卡~200c10.44s0.36s69.740.80%0.93
c20.44s0.72s47.742.50%0.91
c40.44s0.59s39.887.50%0.91
c80.44s0.73s33.0138.20%0.91
c160.44s2.00s32.9123.50%0.91
9B · 單卡~8Kc13.68s2.59s63.98.757%0.91
c23.68s5.13s42.821.157%0.76
c43.68s10.08s33.715.257%0.82
c83.68s19.67s25.626.557%0.81
c163.68s23.60s25.322.457%0.76
9B · 單卡~28Kc133.83s1.57s53.313.298%0.92
c233.83s3.10s34.015.898%0.92
c433.83s5.94s24.232.098%0.82
c833.83s11.43s18.844.498%0.77
c1633.83s14.30s16.443.198%0.80
27B · TP4~200c11.30s0.35s60.452.20%0.76
c21.30s0.70s45.473.20%0.70
c41.30s0.70s32.0109.30%0.74
c81.30s0.80s30.9208.60%0.70
27B · TP4~8K / ~28K—失敗待重跑:8K 回 0 個 content delta(疑似 max_tokens=128 被 think 吃光,即已知的串流空白陷阱);28K 回 HTTP 500(疑似超過我設的 maxlen 32768)。兩者皆未證實。
純 TPS(decode tok/s)

這是不含 prefill 的逐字生成速度,也就是使用者實際感受到的吐字速率。先前報的 111.5 是 tokens / 總耗時,被一次性的 prefill 稀釋過;真正的單人天花板是 123.1。

context單卡TP2TP4單卡→TP4
~200 · 1 人69.796.2123.1+77%
~8K · 1 人63.990.0117.9+85%
~28K · 1 人53.377.9106.2+99%
~200 · 8 人33.050.067.9+106%
~8K · 8 人25.641.260.9+138%
~28K · 8 人18.827.945.9+144%

TPS 的最大殺手是併發,不是 context。TP4 從 1 人的 123.1 掉到 8 人的 67.9(−45%),而同樣是 TP4、從短提示拉到 28K 只掉 14%(123.1 → 106.2)。所以要提升 TPS,該攻的是併發時的排程與批次效率。

另一個方向:卡加得越多,在越吃緊的情境越值得 —— 單卡→TP4 的增益從短提示單人的 +77% 一路升到 28K 八人的 +144%。

附帶發現:TP 在 prefill 的增益比 decode 更大

28K 的冷 TTFT 是 單卡 33.83s → TP2 17.39s → TP4 8.93s(3.8 倍),大於同條件下 decode 的 2.0 倍。這不影響 TPS 結論,但先前完全沒量過。暖起來後 28K TTFT 只剩 0.57s(prefix 命中 98%),所以多輪對話裡長 context 的代價幾乎只在第一次。

總吞吐那一欄要小心讀

它是 content delta 數 / 牆鐘,而每則回應的長度本來就不一樣,所以同一列會出現非單調(例如 8K 的 c4 46.9 低於 c2 58.8)。decode tok/s 才是穩健的指標(串流間隔中位數,不受回應長度影響);總吞吐只適合看數量級。

併發曲線 · 舊工具(保留供對照)

配置1 人2 人4 人8 人8 人合計量測工具
9B · TP4 · 生產111.588.864.660.5393.1v2
9B · TP285.162.747.744.6282.2v2
9B · 單卡65.744.635.129.8177.8v2
27B · TP4 · 8K · 捕捉集合僅 [1,2]56.240.95.25.140.7v1 · 待重量
更正:並行增益沒有遞減

先前我說「TP2→TP4 只有 +19%,all-reduce 已是主導項,再加卡不會有回報」—— 那是錯的,是拿兩套不同量測工具的數字相比得出的。四個拓樸現在都在 v2 下量過:單卡→TP2 +29.5%、TP2→TP4 +31.0%,每翻倍的增益一致。單卡→TP4 的正確數字是 +70%,不是先前報的 +61%。

27B TP4 的 c4 斷崖是我的設定錯誤

c1 56.2、c2 40.9,c4 直接掉到 5.2(牆鐘 15.7s → 63.9s)——階梯狀而非漸進,根因在 log 裡:cudagraph_capture_sizes: [1, 2]。我建量測鏈時漏傳 --compilation-config 給 27B 那一臂,用了 fork 的預設,所以 c4、c8 掉出捕捉集合退回 eager。生產的 9B 設 [1,2,4,8],曲線就平滑。這不是 27B 的效能特性,是量測設定錯誤,該臂需重跑。

另外先前記錄的 27B TP4 = 38.4 是 64K context 量的,這次是 8K,兩者本來就不能直接比。

長 context · 生產 TP4

提示長度1 人4 人8 人16 人8 人合計
~900 tok106.451.849.634.8347.4
~7K tok40.317.99.69.189.8
~28K tok13.24.65.32.732.7
撤回:「長 context 慢八倍」是量測假象

上表的每 token 速率是 completion_tokens / 總耗時,把一次性的 prefill 攤進了每 token 成本,而每次只生成 128 個 token —— 8.85 秒的冷 prefill 除以 128,就把整個數字壓垮了。那量到的不是「長 context 很慢」,是「冷啟動成本被除進了速率」。Wayne 指出 prefill 只有第一次要付,後續輪次是逐步增長的 context,這是對的。

用串流把兩段拆開重量(同一份 context 連發三輪):

context輪次TTFT每 token 間隔decode tok/sprefix 命中
~8Kr11.16s0.0085s117.90%
~8Kr2–r30.75s0.0085s117.958%
~28Kr18.85s0.0094s106.316%
~28Kr2–r30.49s0.0094s106.398%

decode 幾乎不受 context 長度影響:8K 117.9 → 28K 106.3,只掉 10%。在 TurboQuant 2-bit 下,28K 的 KV 相對於每步都要讀的 5.5GB 權重不算什麼,權重才是主導 —— 所以「每個 token 要重讀整份 KV 導致變慢」的說法也不成立。

prefill 則完全符合直覺:28K 第一次 8.85s,prefix cache 命中 98% 之後降到 0.49s,18 倍。實際的多輪對話裡,長 context 暖起來之後每 token 速度與短 context 相當。

併發拐點確實在 8

這一條不受上述假象影響,因為它是同一列內的比較:短提示 c8 合計 347.4、c16 反而 332.4;28K 下 c8 32.7、c16 33.4 幾乎不動。超過 max-num-seqs 8 之後請求只是排隊,總吞吐不再增加。

量測工具 v1 的三個缺陷(已修)

舊工具的比例並不自洽 ——「每人 × 人數」與「合計」相差達 19%。查出三件事:

① 每個併發等級用的題目不同:PROMPTS[i % 8] 讓 c1 只跑第 0 題、c8 跑滿八題,中英文與長度都不同,曲線因此混進了「題目換了」這個變因。
② prefix caching 偏袒 c1:暖機只跑第 0 題,而那正是 c1 唯一量到的請求。
③ 兩欄不可相乘:每人取的是中位數,合計是總 token ÷ 牆鐘。

v2 讓每個等級跑相同的八題、全部預熱、三輪取中位。修正後「平均 × 人數 ÷ 合計」在 c1–c4 都是 1.00 上下,三輪離散 ≤ 0.8。

但頭條數字沒有被灌高 —— 修正後 c1 反而從 107.5 升到 109–111,因為八題全暖後平均更高。真正被破壞的是曲線形狀(c4 由 67.4 修正為 65.0)與兩欄的一致性。TP2 與 27B 兩列仍是 v1 量的,重量需要停生產的維護窗口。

27B TP4 為何沒有數字

那一臂在切換前執行,GPU0 還被生產佔著:Free memory on device cuda:0 (0.3/31.73 GiB) —— 排程順序問題,不是 27B TP4 的退化。先前量到的 38.4 tok/s 仍然成立。

串流陷阱

max_tokens 太小時,推理模型會把整個額度花在思考段,串流下呼叫端會收到完全空白且無錯誤的回應(實測 200 tokens 時 4/6 空白)。請給 1024 以上。

已撤回的數字

52.5 tok/s / 每人 — 當時以隨機 token 當提示,掩蓋了輸出退化,而退化的輸出解碼更快,反而灌高數字。基準測試現已內建真實文本的詞彙重複度斷言。

推測解碼 sweep · GPU3

假設

MTP 在自由文本上是淨損,但工具呼叫的輸出高度重複(JSON 骨架、欄位名、<tool_call> 標籤幾乎每次相同)—— 那是 n-gram 命中率最高的地形。因此每個臂同時測工具呼叫與中文散文兩種負載:前者驗證假設,後者當對照組,確認它不會拖累一般對話。三種方法都不需要額外的 draft 模型。

方法工具 c1工具 c4 合計散文 c1uniq備註
baseline(無推測)50.992.671.30.58對照組
ngram · 3 tokens15.723.616.50.68工具 c1 -69.2% · 工具呼叫失敗
ngram · 5 tokens15.645.519.20.53工具 c1 -69.4% · 工具呼叫失敗
ngram_gpu · 5 tokens16.244.525.60.20工具 c1 -68.2% · 工具呼叫失敗 · 輸出退化
suffix · 5 tokens————缺 arctic-inference 套件,未測
閘門本身也要驗證

散文臂帶退化斷言。ngram_gpu 正是它攔下的:散文 25.6 tok/s 是所有推測臂最高,但輸出已是垃圾 —— 沒有閘門會被記成「最快」。但我後來去驗這道閘門,發現它對中文是瞎的。舊寫法用空白切詞,而中文不用空白,純中文輸出常常只切出一個 token,1/1 = 1.00,看起來滿分健康。在生產上實測校準,四種退化有三種拿到滿分:

樣本字元 3-gram舊的 uniq-word
中文正常輸出 ×30.92–1.001.000
英文正常輸出0.5780.713
單字重複 300 次0.0031.000
短句迴圈0.0221.000
兩句交替0.0341.000
英文詞迴圈0.0080.008

改用字元 3-gram(先去掉所有空白,中英文一視同仁):健康最低 0.578、退化最高 0.034,分離度 17 倍,門檻訂 0.40。這也代表先前那批推測臂裡若有純中文的退化,我根本看不見 —— `ngram_gpu` 是因為英文混雜才被抓到。

假設已被推翻

vLLM 的 ngram proposer 比對的是精確 token ID 序列,不是「這看起來像 JSON」—— 結構相似不等於 token 序列相同,所以工具呼叫的重複性並不會轉成命中率。而且失敗是正確性問題而非速度問題:三個推測臂都產不出合法的 tool_calls。同樣的量化 KV + ngram 失敗在 RTX 3090 上也有回報(vLLM issue #40831),因此不能歸因於 SM70 世代。

2×2 隔離 · 是 TurboQuant 還是推測本身

為什麼要隔離

推測臂同時出現「慢三倍」與「工具呼叫失敗」,兩者很可能同源於 TQ2 的 verify / rollback 路徑而非 proposer。五個臂統一用 8192 context —— FP16 KV 在 32K 下裝不進 32GB,不統一就沒有可比性;因此絕對值低於 32K 的 baseline,只有內部比較有意義。

v2 重測:看實際回應才看見真相

v1 那批數據已作廢(metric 名稱其實是對的,是我的抓取靜默吞了例外;中文退化閘門是瞎的)。v2 存下每一則回應,結論完全不同:

tq2_off   ✅ lookup_inventory / XQ-7700-B            完全正確
tq2_on    ❌ lookup_warehouse_inventory / XQ-77000-B   插入了 token
fp16_off  ❌ </tool_Call>                        大小寫差一個字元
fp16_on   ❌ "arguments", "arguments": {...}        重複一次

fp16_off 根本不是工具呼叫失敗 —— 內容完全正確,只是收尾標籤寫成 </tool_Call>,hermes parser 要求精確小寫所以解析不到。一個字元的大小寫,被聚合數字呈現成「講不通的異常」。

真正的問題:推測解碼在插入錯誤 token,而接受率看起來很健康(TQ2 0.40、FP16 0.53)—— 也就是 verify 路徑正在接受目標模型不會產生的 token。這是正確性缺陷,不是效能問題。而且與 KV 格式無關:fp16_on 一樣被汙染,所以委員會猜的「TQ2 的 verify」範圍太窄,是 verify 路徑本身。

KV / 推測工具 c1工具呼叫散文uniqdraft → accepted
TQ2 · 推測關60.63/370.90.74—
TQ2 · ngram 317.10/323.10.75—
FP16 · 推測關54.50/368.31.00—
FP16 · ngram 319.30/316.40.78—
TQ2 · ngram 3 · eager11.60/311.21.00—

DSpark drafter 評估

checkpointτ 接受長度verify rate位置 0位置 1位置 2位置 3+auc 整體auc@0
step_210 · 2 層 · 128 anchors · 6.8GB1.560.1950.4910.0450.015<0.0040.5280.861
step_70 · 5 層 · 512 anchors · 9.0GB1.240.1540.1800.0340.013<0.0050.4850.397
輕量 drafter 每一項都贏

τ 1.24 → 1.56(+26%)、位置 0 接受率 0.180 → 0.491(2.7 倍)、信心頭 auc@0 從 0.397(比亂猜還差)到 0.861,而且模型小 25%(9.0GB → 6.8GB)。論文方向的修正成立。

更有力的是:新配置是帶著資料劣勢贏的 —— 它只用了約 7% 的訓練訊號(anchors 512→128 是每樣本訊號的 ¼,樣本又只取 4948 的 28%)。若 anchors 與資料量才是主導因素,新的應該要輸。

但兩者在絕對值上都還不能用

提議 7+1 個 token 只接受 1.56 個,而且位置 1 就掉到 0.045、位置 2 之後幾乎歸零 —— 鏈條仍然沒有延續性,τ 撐不起 verify 的成本。信心頭也只在第一步有效(auc@1 = 0.355 比亂猜還差,@3–@5 剛好 0.500 等於零訊號)。

下一步是把資料劣勢拿掉:訓練跑完後記憶體全數釋放(閒置 82GB),而當初 512 anchors 吃約 59GB 撞牆是因為那時只剩 61GB 可用。以 512 anchors × 完整 4948 樣本重訓,才是只差「5 層 vs 2 層」的乾淨 A/B。

DSpark 記憶體診斷 · DGX

為什麼四層才到底

前三個假設都被實測推翻,而且它們都很有說服力 —— 留在這裡是為了不再重走。真正的轉折是不再靠推論、改看哪一套帳本對不上:當 cuda_reserved 與程序 RSS 同時持平、系統可用記憶體卻持續下降,這個組合只指向一個地方。

推翻
27B 目標模型全載吃掉 54GB
lowmem 路徑早已只從 safetensors 取出 embed_tokens 與 lm_head。它只在失敗時列印訊息,所以「log 裡沒有訊息」正好代表它有生效。
推翻
103GB 的 target cache 被 mmap 讀爆
輾轉當下 buff/cache 只有 1GB。mmap 的頁面計入 page cache 且可回收,不會逼出 swap。為此建的 1400 樣本子集沒有解決問題,但保留 —— 它讓每輪實驗快很多。
推翻
凍結的 embed / lm_head 仍被配了 Adam 狀態
optim.py 已濾掉 requires_grad=False 的參數,而且用的是 bitsandbytes AdamW8bit。
成立
① 孤兒 CUDA 子程序扣住 59GB
kill 父程序不會殺掉 multiprocessing.spawn 的子程序;它孤兒化後仍持有 CUDA context。GB10 的 GPU 記憶體從系統 RAM 切出,驅動那份不計入 /proc/meminfo 任何類別(所有具名項目加總只有 23GB / 121GB),nvidia-smi 回報 [N/A],該程序 RSS 僅 2.4GB —— ps 和 nvidia-smi 都看不見它。基準線因此從 121GB 悄悄掉到 61GB。
成立
② 注意力 scores 矩陣被實體化
drafter 的注意力是 Q=3584 × KV=7680。sm_121a 拿不到融合核心:flex_attention 不能編譯,換 SDPA 又因自訂遮罩退回 math 後端。兩條路都會實體化整個 fp32 scores 矩陣。
成立
③ 釘選主機記憶體快取無限成長
最後一層,也最隱蔽:cuda_allocated、cuda_reserved 與程序 RSS 三者同時持平,系統可用記憶體卻在 365 步內掉了 9.2GB。釘選區塊不在任何一套帳本裡,而 torch 依尺寸快取且從不釋放 —— 這份資料每個樣本長度都不同,每個新形狀就留下一塊永久快取。

修法與實測

修法修法前修法後說明
num_anchors 512 → 128跑不到第一個 micro-step穩定推進Q_LEN 3584 → 896,scores 面積少 6.2 倍。硬體逼出的偏離,τ 需註明在 128 anchors 下測得。
expandable_segments49→99 步流失 12.3GB流失 1.7GB治裝置端碎片。有效但不足以收斂。
pin_memory=False步 464 剩 12.3GB 後陣亡步 900 仍有 37.4GB治主機端釘選快取。GB10 主機與裝置共用實體 RAM,釘選換不到 DMA 好處 —— 每步耗時反而從 5.0s 降到 2.53s,全程預估從 19 小時縮到 9.4 小時。

本期紀事

修復
TPFIX2 — 多卡輸出從此正確
此 vLLM fork 的張量並行輸出從來沒對過(9B / 27B 都是亂碼)。逐層 dump 定位到 out_proj 的 rank 切片與各卡持有的 head 集合對不上,修好後 TP2 / TP4 首次產出正確文字。
修復
SPECFIX — CUDA graph capture 缺陷根治
capture 時把 CPU 純量烘進圖裡,導致「快但輸出壞」與「正確但很慢」二選一。改成 verify-as-decode 後兩難消失。
翻案
27B 從判死到可用
單卡 14.5 tok/s(判定不可用)→ TP4 單人 38.4,首次越過 30 的互動門檻。
交付
fable-9b 工具呼叫上線
hermes parser + qwen3 reasoning + 支援 tools 的對話模板。非串流 8/8、串流 7/7 通過;含 tool_calls JSON、結果回灌、think 不外洩。
研究
DSpark 訓練方向修正
比對論文後找出三個方向性錯誤:drafter 容量過大、資料規模不足、confidence 排程未部署。已用輕量 drafter 重啟訓練。
解鎖
TP2+PP2 不是不相容,是被自家的除錯訊息擋住
委員會的第二建議是改測 TP2+PP2(TP2→TP4 只有 +19%,all-reduce 已是主導項)。查到 07-17 其實試過並崩潰:'IntermediateTensors' object has no attribute 'shape'。但那是 PP 的正確行為 —— 非最後一個 stage 本來就回傳 IntermediateTensors。崩潰點在 fork 自己加的 _sm70_profile_trace,不在 TurboQuant backend,也不在 vLLM 的 PP 支援(get_pp_group / is_last_rank / IntermediateTensors 處理都完整)。它在任何推論發生前就死了,所以 PP 與 TurboQuant 相不相容從未被驗證到。已修並驗過,等窗口。
治理
生產 vLLM fork 納入版本控管
這個 fork 有 21 個檔案被手工修補過卻完全不在 git,只有零散的 .bak/.pre_ 副本,沒有任何記錄說每個修補改了什麼 —— 生產推論堆疊出事時無人能重建。已建立基準(2444 檔 / 30MB),只納管原始碼:.so 與 .pyc 佔 666MB 中的 579MB 且從不手改。
否定
委員會的頭號優化建議不成立 — 反量化早已融合
建議是「把 2-bit KV 反量化融進 attention kernel,可擠 15-20%」。讀原始碼判定:解碼路徑 _tq_decode_stage1 是 Triton kernel,直接讀打包位元組、在 kernel 內解 2/3-bit 索引、重建 scale/zero、查 centroid、累加到 fp32 —— 從未物化 FP16 的 KV 張量,沒有可融合的東西。物化只發生在分塊 prefill(k_full = torch.empty 後串接餵 SDPA),影響 TTFT 與長 context 首塊,不是穩態每 token 吞吐。省下一個維護窗口。
交付
生產切換 TP4 — 每人 66.6 → 107.5 tok/s
量測鏈在 regen 釋放 GPU 後自動完成 27B TP2 / 9B TP2 量測並切換生產,帶健康檢查與工具呼叫閘門、失敗自動回滾。切換後 8/8 驗收全過(純文字對話、tool_calls JSON、結果回灌、think 不外洩),8 人併發每人仍有 60.3、合計 391.4。
診斷
DSpark 訓練記憶體 — 四層才到底
訓練一啟動就把 121GB 吃光並開始輾轉。前三個歸因(27B 全載 / mmap cache / Adam 狀態)都被實測推翻。真正的原因有三層:孤兒 CUDA 子程序扣住 59GB、注意力 scores 矩陣被實體化、釘選主機快取無限成長。修好後記憶體打平,每步耗時反而從 5.0s 降到 2.53s。
研究
推測解碼 sweep 啟動
單卡旋鈕已測到盡頭(全在 ±3% 雜訊內),TP4 又被 regen 擋著,而 GPU3 整晚閒置。改測三種免 draft 模型的推測方法,針對工具呼叫這種高重複輸出。
事故
PSU 陣亡並更換
多模型同時載入的主板軌尖峰疑似壓垮電供,停機 15 小時。已改為序列載入紀律;四卡與載板無損。

下一步

自動產生 · 自有硬體推論與訓練研究狀態2026-08-05_1955