RTX 3070 8GB 本地運行 Qwen3.6-35B:llama.cpp 部署要點與最佳化參數

整理 RTX 3070 8GB 顯卡本地運行 Qwen3.6-35B-A3B 多模態 GGUF 模型的關鍵思路、硬體條件、llama.cpp 參數和常見注意事項。

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 版本。需要注意三點:

  1. 顯卡驅動要足夠新,CUDA 執行環境要和下載的 llama.cpp 套件匹配。
  2. 下載後建議放在一個不含中文和特殊字元的路徑下,方便批次腳本呼叫。
  3. 模型檔案統一放到 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 裡可能看不到正常的圖片上傳能力,或者上傳後無法完成視覺理解。

建議目錄結構保持簡單:

1
2
3
4
5
llama.cpp/
├─ llama-server.exe
└─ models/
   ├─ Qwen3.6-35B-A3B-UD-Q4_K_M.gguf
   └─ mmproj-BF16.gguf

RTX 3070 8GB 啟動參數

下面是一份面向 RTX 3070 8GB 的啟動腳本範例。路徑需要改成你自己的 llama.cpp 所在目錄。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
chcp 65001 >nul
cd /d D:\AI\llama.cpp

llama-server.exe ^
  -m "models\Qwen3.6-35B-A3B-UD-Q4_K_M.gguf" ^
  --mmproj "models\mmproj-BF16.gguf" ^
  -ngl 99 ^
  --n-cpu-moe 999 ^
  --flash-attn on ^
  --jinja ^
  -c 32768 ^
  -t 12 ^
  -b 512 ^
  -ub 128 ^
  --cache-type-k q4_0 ^
  --cache-type-v q4_0 ^
  --mlock ^
  --host 127.0.0.1 ^
  --port 8080

pause

啟動後在瀏覽器訪問:

1
http://127.0.0.1:8080

如果頁面可以打開,並且模型能正常回覆,就說明服務已經啟動成功。首次載入模型可能會比較慢,期間不要急著重複運行多個實例,否則更容易把記憶體占滿。

關鍵參數怎麼理解

-ngl 99 表示盡量把可放到 GPU 的層放到顯卡上。實際能放多少,取決於模型結構、量化格式和顯存占用。

--n-cpu-moe 999 用來讓 MoE 專家層更多走 CPU 側,降低顯存壓力。它是這類小顯存運行大 MoE 模型的關鍵參數之一。

--flash-attn on 開啟 Flash Attention,有助於降低注意力計算的開銷。是否可用取決於目前 llama.cpp 版本和顯卡支援情況。

-c 32768 設定上下文長度。長上下文會顯著增加 KV Cache 壓力,如果啟動失敗或推理很慢,可以先降到 819216384

--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
记录并分享
使用 Hugo 建立
主題 StackJimmy 設計