8GB 顯存能不能跑 35B 級別模型,關鍵不只看模型總參數量,還要看模型結構、量化格式和推理框架的調度方式。
這次案例的核心思路是:使用 Qwen3.6-35B-A3B 這類 MoE 模型的 GGUF 量化版本,再透過 llama.cpp 的 CUDA 加速、CPU Offload、MoE 參數調度和 KV Cache 量化,把顯存壓力分攤到 GPU 與記憶體之間。這樣一來,RTX 3070 8GB 這類老顯卡也有機會跑起 35B 級別的本地多模態模型。
需要先說明一點:這不是「8GB 顯存完整裝下 35B 模型」。更準確的理解是,顯卡負責更適合 GPU 的計算部分,部分專家層和快取壓力由系統記憶體承擔。實際體驗會受到記憶體容量、CPU 效能、模型量化格式、上下文長度和參數設定影響。
測試環境
這類配置對記憶體比較敏感。參考環境如下:
- CPU:Intel Core i7-12700 級別
- GPU:NVIDIA RTX 3070 8GB
- 記憶體:64GB
- 系統:Windows 11
- 推理框架:llama.cpp CUDA 版本
- 模型格式:GGUF
如果只有 16GB 或 32GB 記憶體,也不是完全不能嘗試,但 35B MoE 模型在載入和長上下文推理時更容易觸發記憶體壓力。想要穩定使用,64GB 記憶體會更穩。
為什麼 8GB 顯存也有機會跑 35B
Qwen3.6-35B-A3B 的關鍵點在於 MoE 架構。它的總參數規模是 35B,但每次推理並不是所有參數都同時啟用,而是只啟用其中一部分專家參數。
這會帶來兩個結果:
- 總模型檔案仍然很大,需要足夠磁碟和記憶體承載。
- 單次推理的活躍計算量低於完整 35B Dense 模型。
llama.cpp 的 CPU Offload 和 MoE 相關參數可以進一步降低顯存門檻。GPU 主要承擔注意力和部分高收益計算,CPU 與記憶體承擔一部分專家層權重。代價是速度、回應延遲和穩定性會更依賴整機配置,而不是只看顯卡型號。
準備 llama.cpp
Windows 使用者可以直接下載 llama.cpp 的預編譯 CUDA 版本。需要注意三點:
- 顯卡驅動要足夠新,CUDA 執行環境要和下載的 llama.cpp 套件匹配。
- 下載後建議放在一個不含中文和特殊字元的路徑下,方便批次腳本呼叫。
- 模型檔案統一放到
models目錄,避免命令裡寫太長路徑。
如果是 AMD、Intel 顯卡或純 CPU 環境,也可以選擇 Vulkan、HIP、SYCL 或 CPU 版本,但參數和效能表現會不同。本文重點仍然是 NVIDIA 顯卡上的 CUDA 路線。
下載模型和多模態投影檔案
本次使用的模型是:
Qwen3.6-35B-A3B-UD-Q4_K_M.gguf
量化格式選擇 Q4_K_M,主要是為了在精度、體積和速度之間取得平衡。顯存較小的機器不建議一開始就嘗試更高精度版本,否則載入失敗或系統頻繁換頁的機率會明顯上升。
如果要使用圖片理解能力,還需要同時準備多模態投影檔案,例如:
mmproj-BF16.gguf
這個檔案非常重要。只下載主模型通常只能完成文字推理;如果缺少 mmproj,網頁 UI 裡可能看不到正常的圖片上傳能力,或者上傳後無法完成視覺理解。
建議目錄結構保持簡單:
|
|
RTX 3070 8GB 啟動參數
下面是一份面向 RTX 3070 8GB 的啟動腳本範例。路徑需要改成你自己的 llama.cpp 所在目錄。
|
|
啟動後在瀏覽器訪問:
|
|
如果頁面可以打開,並且模型能正常回覆,就說明服務已經啟動成功。首次載入模型可能會比較慢,期間不要急著重複運行多個實例,否則更容易把記憶體占滿。
關鍵參數怎麼理解
-ngl 99 表示盡量把可放到 GPU 的層放到顯卡上。實際能放多少,取決於模型結構、量化格式和顯存占用。
--n-cpu-moe 999 用來讓 MoE 專家層更多走 CPU 側,降低顯存壓力。它是這類小顯存運行大 MoE 模型的關鍵參數之一。
--flash-attn on 開啟 Flash Attention,有助於降低注意力計算的開銷。是否可用取決於目前 llama.cpp 版本和顯卡支援情況。
-c 32768 設定上下文長度。長上下文會顯著增加 KV Cache 壓力,如果啟動失敗或推理很慢,可以先降到 8192 或 16384。
--cache-type-k q4_0 和 --cache-type-v q4_0 用於量化 KV Cache,能節省記憶體和顯存,但可能對輸出品質和速度有輕微影響。
-b 512 與 -ub 128 控制批次處理相關參數。小顯存環境下,不要一開始就把批次參數設得太激進。
常見問題
如果啟動時提示顯存不足,可以先降低上下文長度,例如把 -c 32768 改成 -c 8192,再嘗試減小 -b 和 -ub。
如果圖片上傳按鈕不可用,優先檢查 --mmproj 路徑是否正確,以及使用的 mmproj 是否和模型匹配。
如果模型載入後回應很慢,通常不是顯卡完全沒工作,而是大量權重或專家層由 CPU 與記憶體承擔。可以觀察工作管理員裡的 GPU、CPU、記憶體和磁碟占用,判斷瓶頸在哪裡。
如果輸出格式異常,確認是否啟用了 --jinja,並檢查目前模型是否需要對應聊天模板。
如果服務啟動後瀏覽器打不開,檢查 --host 和 --port 設定,確認 8080 端口沒有被其他程式占用。
適合誰嘗試
這套方案適合手上已有 RTX 3070、RTX 4060 Laptop、RTX 3060 8GB 這類 8GB 顯存設備,但又想嘗試更大 MoE 模型的使用者。
它不適合追求極致速度的人。小顯存運行 35B MoE 本質上是在用記憶體和 CPU 換顯存門檻,能跑起來是一回事,是否足夠流暢是另一回事。
如果目標是日常高頻聊天,7B、8B、14B 模型可能更舒服。如果目標是體驗更大 MoE 模型、多模態能力和本地部署邊界,那麼 RTX 3070 8GB 加 64GB 記憶體仍然有嘗試價值。
小結
RTX 3070 8GB 能運行 Qwen3.6-35B-A3B 的關鍵,不是顯存突然變大,而是 MoE 架構、GGUF 量化、llama.cpp CPU Offload 和 KV Cache 最佳化共同降低了門檻。
這類方案最值得關注的地方,是它讓舊顯卡仍然能參與本地大模型實驗。只要接受速度和穩定性上的取捨,8GB 顯存機器也可以成為本地 AI 模型測試平台,而不只是運行小模型的入門設備。
參考資料:
- 原文連結:https://www.freedidi.com/24267.html