FIELD NOTE / SINGLE ENTRYNO SIGNAL / NO PROBLEM

3080 20GB 跑 Qwen3.8-Flash-Next IQ2_XS 128K:60 t/s 部署教學

一台 RTX 3080、48GB RAM,跑 125B MoE 模型,輸出穩定在 50–68 t/s。這篇是完整部署過程:什麼能照抄、哪裡會壞、我改了哪些地方。

Strata 是什麼

Strata 是一個開源推理引擎(MIT),專門跑 Qwen3.8-Flash-Next 這類大型 MoE 模型。它的思路很直接:MoE 每個字只用到一部分專家,所以不必把全部專家放在顯卡上——

  • GPU 做每個字都要跑的基礎工作,並快取最常用的幾千個專家;
  • RAM 存放全部專家,缺誰就由 CPU 同時算,GPU 不等 RAM;
  • SSD 放大型查找表,每個字只讀幾行。

加上「先猜再驗證」的投機解碼(小 helper 猜下一個字,大模型一次驗證全部),輸出速度比傳統方式快 1.6–1.8 倍。API 是 OpenAI / Anthropic 相容的,任何客戶端都能直接接。

硬體

項目 規格
GPU RTX 3080 20GB(driver 595.91.07)
RAM 48GB
CPU Intel Xeon E5-2690 v4(28 執行緒)
OS Ubuntu 26.04.1 LTS
模型 Qwen3.8-Flash-Next IQ2_XS,約 73GB
Context 131072 tokens,KV cache int8

20GB 顯卡跑 125B 模型聽起來不合理,但 IQ2_XS 量化加上專家分層,剛好放得下。RAM 48GB 是實際需求,不是建議值——模型已接近記憶體上限。

步驟一:下載

git clone https://github.com/Niko1221/Strata Strata-main
cd Strata-main
./setup.sh

setup.sh 是官方的一鍵流程:建 venv、從 Hugging Face 下載模型(ISTA-DASLab 的 GGUF 版本)、跑起來。理論上裝好 NVIDIA driver 就夠了。

步驟二:一鍵部署在我這裡壞了,這是我的改法

三個地方卡住,每個都要手動處理:

1. 預建 binary 404。官方預編譯好的 engine 下載連結當時回傳 404,只能自己編:

sudo apt install build-essential cmake cuda-13-1 cuda-crt-13-1
cmake -B build
cmake --build build

2. CUDA 13.1 與 glibc 2.43 衝突。編譯時 rsqrt/rsqrtf 的 exception specification 不相容(Ubuntu 26.04 的已知問題)。我對 CUDA header 的相關宣告加了 noexcept(true):

# /usr/local/cuda-13.1/targets/x86_64-linux/include/crt/math_functions.h
extern ... double rsqrt(double x) noexcept (true);

這是系統層 workaround,CUDA 套件更新會把它覆蓋掉。先確認你的版本真的遇到這個錯誤再改,不要照搬。

3. 設定檔要自己改。預設只監聽 127.0.0.1:8080。要給區域網路的其他機器用,改 host 成機器 IP、port 改 1234、加上 api_key,並把檔案權限設成 600。改之前留一份備份。

步驟三:啟動

./run.sh   # 或自己寫一個小啟動腳本
sudo systemd-run --unit=strata --property=User=<user> --property=WorkingDirectory=~/Strata-main ./run.sh

注意 systemd-run 建的是 transient unit:這次起來了,重開機不會自動起來。要長期跑就轉成正式 unit。

步驟四:驗證

curl -sS http://<machine-ip>:1234/v1/models                          # 無 key 應該得到 401
curl -sS -H 'Authorization: Bearer <key>' http://<machine-ip>:1234/v1/models
curl -sS -H 'Authorization: Bearer <key>' http://<machine-ip>:1234/v1/chat/completions \
  -d '{"model":"qwen3.8-flash-next-iq2_xs","messages":[{"role":"user","content":"ping"}],"max_tokens":64}'

401 是好消息——代表 key 保護生效。拿到 HTTP 200 和 finish_reason=stop 就通了。

目前測試結果

已經接上 Hermes 和 DSH 兩個客戶端在實際使用,完整測試數據(長輸入、多輪對話、並發)會後續補上。目前的引擎日誌:

  • 輸出速度:50–68 t/s,長 context(64K–72K tokens)下穩定在 55–60 t/s;
  • prompt cache 生效時,重讀同一份長 prompt 只需讀增量部分,1–2 秒完成;
  • 記憶體:模型加 KV 已接近 48GB 上限,VRAM 約 19.7/20GB。

「設定 128K」和「128K 全程穩定」是兩件事,後者還在測。

小結

一鍵部署在乾淨環境可能直接成功,但在 Ubuntu 26.04 + CUDA 13.1 上需要自己編譯和打 patch。流程本身不複雜:編譯、改設定檔、啟動、驗證。適合想在自己機器上跑大 MoE 模型、且 RAM 足夠的人。

pixel cat

貓說:先讓系統安靜地跑起來。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *