數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 昨天 13:07:12

Service
天使
註冊日期: 2007-07-15
文章數: 343
目前積分 :   0 

Strata 實測:家用 2080 Ti 22G 跑 125B 的 Qwen3.8-Flash-Next

Strata 實測:家用 2080 Ti 22G 跑 125B 的 Qwen3.8-Flash-Next,順便和 27B 正面比較

Strata 是一個開源(MIT)推論引擎,專門讓 125B 參數的 MoE 模型 Qwen3.8-Flash-Next 在一般電腦上跑起來。做法是把常用的專家放在顯卡、其餘放在系統記憶體,再搭配 MTP 草稿層做推測解碼。官方最低需求是 12 GB 顯存、32 GB RAM。

相較於以往常見的通用型 MoE(混合專家模型)推理引擎(如標準的 llama.cpp、vLLM 或 Ollama 等),專門為超大型稀疏 MoE 模型(如 Qwen3.8-Flash-Next)設計的開源引擎 Strata 在架構與執行邏輯上有幾個關鍵的不同點:   
1. 專家分層快取與記憶體混合調度(Expert Tiering & Caching)

  • 傳統引擎(如 llama.cpp / vLLM): 運行 MoE 模型時,通常要求將整個模型完整載入 VRAM(顯存)中;若顯存不足,則會把整個模型以較平均的方式卸載(offload)到系統 RAM。由於 MoE 的總參數量龐大(例如 125B),全部塞進 RAM 會導致頻寬瓶頸,讓推理速度大幅下滑。
  • Strata: 採用了「熱/溫/冷」分層快取機制。它利用 MoE 模型「每次只會啟動一小部分專家(Sparse)」的特性,將最常被啟動的熱門專家(Hot Experts)常駐在顯卡 VRAM 中,其餘較少用到的專家則放在系統 RAM(甚至支援透過 NVMe SSD 進行 mmap 記憶體對應讀取)。這讓一般消費級顯卡(如 12GB–24GB VRAM)也能夠順暢運行像 125B 這種超大參數規模的模型。
  •  
    2. CPU 與 GPU 的協同運算(Co-processing)   
  • 傳統引擎: 運算主力幾乎 100% 壓在 GPU 上,CPU 多半只負責協調與派送任務。
  • Strata: 將 CPU 視為積極的推理運算組件。當模型推理時,未在 GPU 顯存中的專家,會直接交由 CPU 進行運算,同時 GPU 則持續處理其內部的任務。這也是為什麼 Strata 的效能對主機的 CPU 核心數與 PCIe 頻寬(如 x16 對比 x4) 極度敏感——因為當快取未命中時,大量的資料搬移與 CPU 運算會直接影響整體回應速度。
  •  
    3. 專為 MoE 結合 MTP 草稿層的推測解碼(Speculative Decoding)
  • 傳統引擎: 多數推理引擎的推測解碼需要額外載入一個獨立的小模型(Draft Model)來做多 token 預測,這會消耗額外的記憶體。
  • Strata: 深度整合了模型本身內建的 MTP(Multi-Token Prediction)草稿層,利用模型原生架構來做草稿預測與驗證。這讓它在生成文字時能跳過傳統逐字運算的瓶頸,在熱快取命中率高的時候,展現出遠超一般同級模型的生成速度(tok/s)。
  •  
    整體而言,傳統引擎追求的是「把模型整顆塞進顯存」或「標準的 CPU/GPU 分割卸載」,而 Strata 更像是針對超大型稀疏 MoE 模型量身打造的作業系統級虛擬記憶體與快取調度器,透過動態捕捉專家存取locality(局部性),打破了硬體 VRAM 容量的物理限制。

    這次我手上剛好有兩台不同等級的主機、兩張 2080 Ti 22G(改裝版),就把同一個模型分別放上去跑,再拿來和平常在用的 Qwen3.8 27B 比較。

    https://digiland.tw/uploads/3_20261010_221613_strata_2080ti_125b.jpg

    ■ 先講結論
  • 跑得動,而且比預期快:在 8 核主機上,熱快取時生成速度 70–73 tok/s,比同一張卡跑 27B Q4(約 47 tok/s)還快。
  • CPU 和 PCIe 寬度影響非常大:同一張卡、同一個模型,換到 2 核 CPU+PCIe x4 的主機,新問題要等約 7 秒才回完一句;換到 8 核+x16,縮短到約 2.4 秒。
  • 32 GB RAM 只能跑 2-bit 版本(Q2_0/IQ2_XS),而且跑起來 RAM 幾乎吃滿,沒辦法同時跑其他吃記憶體的服務。
  • 建議選 IQ2_XS,不要選 Q2_0:速度慢一些,但品質明顯較好。
  • 關掉思考時,Flash-Next 的工具呼叫比 27B 可靠:開思考時兩者都滿分;關思考後 IQ2_XS 還有 90%,27B 掉到 66%。不過整體「誰比較聰明」,我的測驗題還不夠難,不敢下結論。


  • ──────────────────

    ◆ 01 測試環境
    項目主機 A(入門)主機 B(主力)
    主機板MSI X470 GAMING PLUS MAXGigabyte X570 AORUS ELITE WIFI
    CPUAMD Athlon 3000G(2C/4T)AMD Ryzen 7 5700G(8C/16T)
    RAM32 GB32 GB
    顯卡RTX 2080 Ti 22G(改裝)RTX 2080 Ti 22G(改裝)
    PCIe 實際連結3.0 x43.0 x16
    模型存放SATA SSD(ext4)NVMe(NTFS 掛載)
    系統Ubuntu 26.04.1 LTSUbuntu 26.04 LTS
    驅動 / CUDA595 / 13.1595 / 13.1
  • Strata:GitHub 最新版(v0.1.41 時期),KV 快取 int8,未開視覺功能。context:主機 A 測速時 32K,主機 B 為 64K。
  • Athlon 3000G 只提供 4 條 PCIe 給顯卡,所以主機 A 只能跑 x4。這不是顯卡的問題。
  • 兩張 2080 Ti 都先做過燒機驗收(memtest_vulkan 顯存全覆蓋零錯誤、運算位元比對零錯誤),排除硬體問題干擾結果。
  • 對照組 27B:Qwen3.8 27B Q4_K_M,用 Ollama 跑在主機 B 的同一張 2080 Ti 上,context 同樣設 64K,模型完全放進顯存。


  • ──────────────────

    ◆ 02 安裝過程(Linux 要自己編譯)

    官方的一鍵安裝(setup.sh)在 Linux 上沒有預編譯引擎,會自動改成從原始碼編譯,需要 CUDA Toolkit 13。
  • Ubuntu 26.04 不在自動安裝的支援清單(只支援 22.04/24.04)。解法是直接裝 Ubuntu 官方套件庫裡的 cuda-toolkit-13-1,再加裝 g++-14,編譯時用 CUDAHOSTCXX=/usr/bin/g++-14 避開 GCC 15 的相容性風險。
  • 2080 Ti(Turing、sm_75)可以正常編譯執行,社群也有兩張 TITAN RTX 的實測。
  • 編譯在 2 核 CPU 上大約十幾分鐘。


  • ▍模型大小與記憶體需求(setup 會自動檢查並建議)
    版本第1分片需要 RAM32 GB 能不能跑
    Q2_037.6 GB約 48 GB可以(低記憶體模式,顯卡放約 50% 專家)
    IQ2_XS39.2 GB約 48 GB可以(低記憶體模式,顯卡放約 48% 專家)
    IQ3_XXS47.0 GB約 60 GB不行
    IQ3_S54.8 GB約 62 GB不行(官方說這版才和原版模型持平)
    另外每個版本都還有一個 28.8 GB 的第 2 分片(查表檔),以及約 6 GB 的 MTP 草稿層。

    ▍下載小技巧
  • Q2_0 和 IQ2_XS 的第 2 分片是同一個檔案(SHA256 完全相同)。兩個版本都要測的話,第 2 分片用硬連結共用就好,省 29 GB 下載和硬碟空間。
  • Hugging Face 下載我這邊約 6–11 MB/s。同一台開兩條連線,總速度不會增加;但換一台電腦同時下載不同區段,總頻寬確實會增加,最後再接起來。
  • 要驗檔案,請用 Hugging Face API 的 lfs.oid,或下載回應中的 X-Linked-ETag 當 SHA256。CDN 回的 ETag 不是 SHA256,我一開始就拿錯值比對,差點以為檔案壞了。
  • 兩台主機之間直接用 rsync 複製模型,Gigabit 跑滿約 110 MB/s,110 GB 只要 16 分鐘,比重新下載快很多。


  • ──────────────────

    ◆ 03 效能實測

    量測方式:同一份腳本,串流計時,分開記「首字時間」和「生成速度」。短問題連問三次,第一次是冷快取,後面是熱快取;另外再測一次 4K token 的長提示詞。
    A:Q2_0A:IQ2_XSB:IQ2_XSB:27B Q4(Ollama)
    生成速度(熱快取)58–6540–4870–7320.7–25.5
    生成速度(冷快取)24–318–1843–60(沒有專家快取,差不多)
    讀 4K 提示詞5805241,005541
    4K 提示詞首字時間7.0 秒7.8 秒4.1 秒7.6 秒
    關思考・新問題回完—約 7 秒約 2.4 秒2.4–3.6 秒
    啟動到可用約 2 分約 2 分約 80 秒冷載入約 43 秒
    顯存用量21.5 GB21.5 GB21.5 GB約 20.7 GB
    RAM 用量(執行中)約 23.6 GB約 25 GB約 26 GB約 3–6 GB
    (速度單位 tok/s。主機 A 為 32K context,主機 B 兩者皆為 64K context。)

    ▍27B 的 context 設定影響很大
    同一個問題、同一張卡,只改 Ollama 的 num_ctx(讀 Ollama 自己回報的 eval 速度):
    num_ctx生成速度讀提示詞
    6553619.4 tok/s73–86 tok/s
    819239.7 tok/s120 tok/s
    在 2080 Ti 上,context 從 8K 開到 64K,27B 的生成速度掉了約 40%。所以拿 27B 和別人的數字比較時,一定要先看 context 設多少。

    ▍看懂這張表
  • 「熱快取」才是它真正的實力:常用專家都在顯卡時,命中率可達 98%。換成內容差異很大的長文,命中率降到約 90%,速度就會明顯下滑。
  • 主機 A 的瓶頸是 CPU 和 PCIe:顯卡放不下的專家要由 CPU 計算,或經 PCIe 搬到顯卡。2 核 CPU 加 x4,讀短提示詞只有每秒 15–30 token,所以每個新問題都要等好幾秒。
  • 主機 B 一解除瓶頸,速度約是 A 的 1.5–3 倍。模型、顯卡、記憶體容量都一樣,差別只在 CPU 和 PCIe。
  • 同樣 64K context,Flash-Next 生成速度約是 27B 的 3 倍,讀長提示詞約快 1 倍。MoE 每個 token 只用到一小部分參數,這就是它的優勢。
  • 27B 的優勢是「整個模型都在顯卡裡」:幾乎不吃 RAM、不靠 CPU,表現也比較穩定。Flash-Next 的速度很依賴快取命中率和平台。
  • 關思考時回答一句短話的時間,兩者差不多(2–4 秒)。這種短回答,時間主要花在讀提示詞和開頭幾個字,生成速度的優勢顯現不出來。


  • https://digiland.tw/uploads/3_20261010_021256_strata_2080ti_125b_1.jpg

    ──────────────────

    ◆ 04 品質實測

    ▍工具呼叫測驗
    我用自己的居家語音助理情境做測驗:20 個工具、10 個情境(緊急求助、確認/否認意外、播放音樂、查天氣、調音量、查生理數值、道別、閒聊,以及「聊到別人發生意外,不應該觸發通報」這類陷阱題),每個情境跑 5 次。
    模型思考整體合規率安全關鍵項
    27B Q4(Ollama)開100%100%
    27B Q4(Ollama)關66%60%
    Flash-Next Q2_0開100%100%
    Flash-Next Q2_0關78%50%(兩題 0/5)
    Flash-Next IQ2_XS開100%100%
    Flash-Next IQ2_XS關90%75%
  • 開思考時三者都是滿分,分不出高下。合規率和硬體無關,Flash-Next 在兩台主機上的結果完全相同。
  • 關掉思考,差異就出來了:
  • 27B 掉得最兇:「確認意外」只對 1/5,連「調音量」都只有 1/5。最常見的錯誤是該呼叫工具時只用口頭回答。
  • Q2_0 的兩題關鍵情境 0/5。
  • IQ2_XS 最好:只錯陷阱題,而且只是多呼叫了一個查詢工具,沒有誤發通報。
  • 開思考的時間成本很高:27B 開思考跑完 50 題花了 8 分 20 秒,平均每題約 10 秒;Flash-Next 每題約 2 秒。
  • 給自己做工具串接的人一個提醒:測驗時的思考開關要和正式使用時一致。我一開始測 27B 時忘了關思考,拿到 100% 就以為沒問題;照實際使用的設定重測,才發現只剩 66%。


  • ▍中文回答品質(5 個長輩日常情境 × 2 次)
  • 簡體字:Q2_0 445 字裡有 8 個簡體字;IQ2_XS 幾乎是 0;27B(關思考)363 字裡有 13 個,集中在講故事那題。2-bit 的 IQ2_XS 在這項反而最好。
  • 注意:用 OpenCC s2t 自動檢查時,台灣常用的「台」「吃」會被誤判成簡體(它會轉成「臺」「喫」),要自己排除。
  • 系統提示詞影響很大:一開始我用很簡短的提示詞測,它出現了「先動動看能不能走」這種不安全的建議;換成完整的系統提示詞後,就變成「先坐著不要急著起身」。評估品質一定要用你實際會用的提示詞。


  • ──────────────────

    ◆ 05 思考模式的取捨

    Qwen3.8-Flash-Next 預設會先思考,而且是用英文思考。
  • 開思考:工具呼叫最可靠,但一般對話要等 2–24 秒(主機 B),還遇過一次思考用光 1,500 token 上限、什麼都沒回答。
  • 關思考:主機 B 上新問題約 2.4 秒就回完一句,適合即時對話,代價是工具呼叫可靠度下降。
  • 關閉方式:請求加上 "chat_template_kwargs": {"enable_thinking": false},或 "reasoning_effort": "none"。


  • ──────────────────

    ◆ 06 適用建議

    適合
  • 有 20 GB 以上顯卡+多核 CPU+PCIe x16,想在本機體驗 125B 等級的模型。
  • 以文字對話、寫作、程式為主,可以接受偶爾等幾秒。
  • RAM 有 64 GB 以上的話更好,可以上 IQ3_S(官方說品質和原版模型持平)。

  • 不適合
  • 入門 CPU 或 PCIe x4 的平台:能跑,但新問題的等待時間很難接受。
  • 32 GB RAM 又要同時跑其他服務:Strata 執行時 RAM 只剩約 5 GB。
  • 需要穩定低延遲的語音對話:開思考太慢,關思考又會犧牲工具呼叫的可靠度。
  • 顯存放得下 27B、又不在乎生成速度的話,27B Q4 仍是最省事的選擇:幾乎不吃 RAM、可以和其他服務並存、工具呼叫一樣滿分。


  • ──────────────────

    ◆ 07 心得總結

    用一張遊戲顯卡跑 125B 模型,在相同 context 下生成速度還是 27B 的 3 倍,Strata 確實讓人驚艷。專家快取的設計也很聰明:常用的專家留在顯卡,命中率可以到 98%。

    但這次測試讓我更清楚一件事:這類「顯卡+RAM 混合」的引擎,瓶頸往往不在顯卡。同一張 2080 Ti,在 2 核 CPU+x4 上和 8 核+x16 上,表現差了好幾倍。想照抄的人,請先看 CPU、PCIe 寬度和 RAM 容量,不要只看顯卡。

    至於「125B 有沒有比 27B 聰明」:開思考時我的測驗題兩者都滿分,分不出來;但在關思考、要求快速回應的情境下,2-bit 的 Flash-Next 工具呼叫反而比 27B Q4 穩定得多(90% 對 66%)。更完整的答案,我想等 RAM 加到 64 GB、能跑 IQ3_S 之後,再用更難的題目來回答。

    附帶一提,Strata 內建的網頁介面可以即時看到 tok/s、專家快取命中率、GPU 使用率等數據,另外還提供 /metrics(JSON 和 Prometheus 格式,指標名稱沿用 vLLM),要接 Grafana 監控很方便。

    參考連結:
    Strata: https://github.com/Niko1221/Strata
    Qwen3.8-Flash-Next: https://huggingface.co/Qwen/Qwen3.8-Flash-Next



    Intel Arc Pro B70

    離線

     

    相關討論主題

    主題 回覆 點閱 最後發表
    1 298 2026-10-05 00:54:11 作者 Service
    0 233 2026-09-24 23:31:45 作者 Service
    0 539 2026-09-18 16:09:23 作者 Service
    0 468 2026-09-15 21:06:41 作者 Service
    0 418 2026-09-13 00:22:08 作者 Service

    友情連結

    論壇頁尾

    Powered by PunBB
    © Copyright 2018 Rickard Andersson
    RSS Feed