<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>推理優化 on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/%E6%8E%A8%E7%90%86%E5%84%AA%E5%8C%96/</link>
        <description>Recent content in 推理優化 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Wed, 22 Apr 2026 21:47:34 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/%E6%8E%A8%E7%90%86%E5%84%AA%E5%8C%96/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>16G 顯卡也能跑 35B 模型：LM Studio 下 MoE 模型的顯存壓縮思路</title>
        <link>https://knightli.com/zh-tw/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</link>
        <pubDate>Wed, 22 Apr 2026 21:47:34 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/22/16gb-gpu-run-35b-moe-models-in-lm-studio/</guid>
        <description>&lt;p&gt;很多人對 16G 顯存的印象是：本地部署大模型時，大概也就跑到 12B 到 14B，量化之後再往上就會變得很吃力。這個判斷不算離譜，但也不是 16G 顯卡真正的上限。&lt;/p&gt;
&lt;p&gt;如果模型選型和參數設定都合適，16G 顯卡其實不一定只能停留在「小參數量模型」這一檔。圍繞這件事，一套比較有代表性的思路是：在 &lt;code&gt;LM Studio&lt;/code&gt; 裡利用 &lt;code&gt;MoE&lt;/code&gt; 模型和合理的卸載策略，把 35B 級模型跑到比較可用的速度。&lt;/p&gt;
&lt;h2 id=&#34;01-為什麼-16g-顯卡不一定只能跑-12b-到-14b&#34;&gt;01 為什麼 16G 顯卡不一定只能跑 12B 到 14B
&lt;/h2&gt;&lt;p&gt;這裡的核心觀點很直接：顯存大小固然重要，但模型架構同樣重要。&lt;/p&gt;
&lt;p&gt;如果你拿一個標準稠密模型硬塞進 16G 顯卡，確實很快就會遇到瓶頸。因為這類模型在推理時通常要參與全部參數計算，顯存壓力和帶寬壓力都會直接上來。&lt;/p&gt;
&lt;p&gt;但 &lt;code&gt;MoE&lt;/code&gt; 模型不一樣。它的總參數量可以很大，可是在單次推理時，只會啟動其中一部分專家參數。以 35B 級模型為例，雖然總參數規模不小，但單次推理實際參與計算的參數量要小得多，所以它對顯存的實際要求沒有想像中那麼誇張。&lt;/p&gt;
&lt;p&gt;也正因為這樣，16G 顯卡在面對這類模型時，並不是完全沒有操作空間。&lt;/p&gt;
&lt;h2 id=&#34;02-實測重點35b-moe-模型可以跑得很快&#34;&gt;02 實測重點：35B MoE 模型可以跑得很快
&lt;/h2&gt;&lt;p&gt;一個重點案例，是 &lt;code&gt;Qwen 3.5 35B A3B&lt;/code&gt; 一類的 &lt;code&gt;MoE&lt;/code&gt; 模型量化版本。在 16G 顯卡配合 &lt;code&gt;LM Studio&lt;/code&gt; 做參數調整後，&lt;code&gt;Q6&lt;/code&gt; 量化大約能跑到 30 多 &lt;code&gt;tokens/s&lt;/code&gt;，此前 &lt;code&gt;Q4&lt;/code&gt; 量化甚至能測到更高的速度。&lt;/p&gt;
&lt;p&gt;這個結果之所以有參考價值，不只是因為「能跑」，而是因為速度已經進入了「明顯可用」的區間。&lt;/p&gt;
&lt;p&gt;作為對比，同類大參數量但不是 &lt;code&gt;MoE&lt;/code&gt; 的模型，在 16G 顯卡上如果直接硬跑，往往會出現爆顯存、速度明顯掉下來的情況。換句話說，決定結果的不是單純看參數總量，而是看模型在推理時到底怎麼用這些參數。&lt;/p&gt;
&lt;h2 id=&#34;03-在-lm-studio-裡重點不只一個參數&#34;&gt;03 在 LM Studio 裡，重點不只一個參數
&lt;/h2&gt;&lt;p&gt;想在 16G 顯卡上把這類模型跑順，關鍵不是碰運氣，而是調對兩個參數：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GPU Offload&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;強制把部分專家層載入到 CPU 記憶體的參數&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;第一項比較好理解，&lt;code&gt;GPU Offload&lt;/code&gt; 基本就是能拉多高就拉多高，讓模型盡量優先使用顯卡計算。&lt;/p&gt;
&lt;p&gt;第二項才是這裡的重點。它的作用不是傳統意義上那種「顯存爆了之後再借系統記憶體」，而是主動把一部分專家層放到 CPU 記憶體裡，提前降低顯存占用。因為 &lt;code&gt;MoE&lt;/code&gt; 模型本來就不是每次都要把所有專家都啟動，所以把一部分專家放到記憶體裡，對整體推理速度的影響沒有很多人想像中那麼誇張。&lt;/p&gt;
&lt;p&gt;比較穩妥的做法，是先在一個區間裡嘗試，再根據自己的機器慢慢調：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以先把相關參數設到 &lt;code&gt;20&lt;/code&gt; 到 &lt;code&gt;35&lt;/code&gt; 之間&lt;/li&gt;
&lt;li&gt;然後結合顯存占用和記憶體壓力，逐步微調&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本質上，這套方法就是用系統記憶體去換顯存空間。&lt;/p&gt;
&lt;h2 id=&#34;04-128k-上下文下也能跑縮小上下文還能繼續壓顯存&#34;&gt;04 128K 上下文下也能跑，縮小上下文還能繼續壓顯存
&lt;/h2&gt;&lt;p&gt;還有一個比較有意思的點：測試時把上下文長度拉到了 &lt;code&gt;128K&lt;/code&gt;，在這種偏激進的設定下，35B 級 &lt;code&gt;MoE&lt;/code&gt; 模型依然能跑出比較高的速度。&lt;/p&gt;
&lt;p&gt;這說明一個問題，16G 顯卡的瓶頸沒有想像中那麼死板。尤其在 &lt;code&gt;LM Studio&lt;/code&gt; 這種本地推理工具裡，很多時候不是「能不能運行」的二選一，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你願不願意拿更多記憶體換顯存&lt;/li&gt;
&lt;li&gt;你願不願意縮短上下文長度&lt;/li&gt;
&lt;li&gt;你願不願意接受不同量化版本之間的能力差異&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果把上下文從 &lt;code&gt;128K&lt;/code&gt; 進一步縮到 &lt;code&gt;64K&lt;/code&gt; 或 &lt;code&gt;32K&lt;/code&gt;，顯存壓力還可以繼續下降。也就是說，某些 35B 級 &lt;code&gt;MoE&lt;/code&gt; 模型甚至可能在更小顯存的顯卡上勉強跑起來，只是速度和記憶體壓力要重新權衡。&lt;/p&gt;
&lt;h2 id=&#34;05-這種方法的代價對系統記憶體和虛擬記憶體要求更高&#34;&gt;05 這種方法的代價：對系統記憶體和虛擬記憶體要求更高
&lt;/h2&gt;&lt;p&gt;這類方案並不是白送性能。&lt;/p&gt;
&lt;p&gt;需要注意的是，當顯存壓力被進一步壓縮時，系統記憶體占用會明顯上升，虛擬記憶體的壓力也會變大。換句話說，你省下來的不是成本，只是把壓力從顯卡挪到了記憶體和磁碟交換空間上。&lt;/p&gt;
&lt;p&gt;所以如果你也想照著試，最好先確認幾件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你的系統記憶體是否足夠&lt;/li&gt;
&lt;li&gt;虛擬記憶體是否留得夠大&lt;/li&gt;
&lt;li&gt;機器背景是否還有很多佔資源的軟體在運行&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果這些條件跟不上，最後看到的可能不是「35B 也能飛快跑」，而是整台機器都被拖慢。&lt;/p&gt;
&lt;h2 id=&#34;06-量化版本也不是越激進越好&#34;&gt;06 量化版本也不是越激進越好
&lt;/h2&gt;&lt;p&gt;這裡還有一個實際取捨：雖然更低位數的量化通常能進一步節省顯存，但不一定就是最合適的方案。&lt;/p&gt;
&lt;p&gt;實際經驗是，有些模型在 &lt;code&gt;Q4&lt;/code&gt; 下速度確實更高，但對原始能力的影響也更明顯；相對來說，&lt;code&gt;Q6&lt;/code&gt; 在速度和能力保留之間更平衡。所以最終不一定要無腦追求最小體積，而是要看你更在意什麼：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果你主要追求速度和塞進顯存&lt;/li&gt;
&lt;li&gt;或者你更在意模型原有能力的保留&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這兩種取向，對應的量化選擇可能並不一樣。&lt;/p&gt;
&lt;h2 id=&#34;07-哪些模型思路值得試&#34;&gt;07 哪些模型思路值得試
&lt;/h2&gt;&lt;p&gt;從這個思路來看，最值得嘗試的並不是「盲目追大參數量」，而是優先找適合這種玩法的模型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MoE&lt;/code&gt; 架構模型&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;LM Studio&lt;/code&gt; 裡支援較好、量化版本較全的模型&lt;/li&gt;
&lt;li&gt;對長上下文或指令跟隨有明確優勢的模型&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;除了主講的 35B &lt;code&gt;MoE&lt;/code&gt; 模型，這類方案也適合延伸到一些其他方向，比如偏長上下文記憶、指令遵循表現更好的實驗性模型，以及一些速度表現不錯的輕量量化版本。&lt;/p&gt;
&lt;p&gt;這類推薦背後的邏輯其實很一致：先找架構上適合「記憶體換顯存」的模型，再談參數調優，而不是先看參數量再決定能不能跑。&lt;/p&gt;
&lt;h2 id=&#34;08-簡單總結&#34;&gt;08 簡單總結
&lt;/h2&gt;&lt;p&gt;如果你手裡正好是一張 16G 顯卡，覺得本地大模型最多只能玩 12B 到 14B，這種想法可以稍微更新一下。&lt;/p&gt;
&lt;p&gt;更準確的說法應該是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16G 顯卡跑大模型並不是完全沒戲&lt;/li&gt;
&lt;li&gt;稠密模型和 &lt;code&gt;MoE&lt;/code&gt; 模型要分開看&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LM Studio&lt;/code&gt; 裡的 &lt;code&gt;GPU Offload&lt;/code&gt; 和專家層轉移到 CPU 記憶體的參數，能明顯改變顯存占用情況&lt;/li&gt;
&lt;li&gt;你實際上是在用更高的記憶體壓力，換更大的模型規模和更高的可用速度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這套思路不一定適合所有機器，但它至少說明了一點：本地部署大模型時，顯存上限不是唯一限制，模型架構和推理配置同樣重要。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>大型模型量化詳解：FP16、Q8、Q5、Q4 到 Q2 怎麼選？</title>
        <link>https://knightli.com/zh-tw/2026/04/05/llm-quantization-guide-fp16-q4-q2/</link>
        <pubDate>Sun, 05 Apr 2026 22:09:11 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/04/05/llm-quantization-guide-fp16-q4-q2/</guid>
        <description>&lt;p&gt;量化的核心目標很簡單：用少量精度損失，換取更小體積、更低顯存占用與更快推理速度。&lt;br&gt;
對本地部署使用者來說，選對量化版本，通常比盲目追求大參數更重要。&lt;/p&gt;
&lt;h2 id=&#34;什麼是量化&#34;&gt;什麼是量化
&lt;/h2&gt;&lt;p&gt;量化是指把模型參數從高精度格式（如 &lt;code&gt;FP16&lt;/code&gt;）壓縮為更低位寬格式（如 &lt;code&gt;Q8&lt;/code&gt;、&lt;code&gt;Q4&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;可以把它理解為：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;原始模型：像高精度照片，清晰但檔案大。&lt;/li&gt;
&lt;li&gt;量化模型：像壓縮照片，細節略有損失但更輕更快。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;常見量化版本對比&#34;&gt;常見量化版本對比
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;量化版本&lt;/th&gt;
          &lt;th&gt;精度/位寬&lt;/th&gt;
          &lt;th&gt;體積&lt;/th&gt;
          &lt;th&gt;品質損失&lt;/th&gt;
          &lt;th&gt;推薦場景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;FP16&lt;/td&gt;
          &lt;td&gt;16 位浮點&lt;/td&gt;
          &lt;td&gt;最大&lt;/td&gt;
          &lt;td&gt;幾乎無損&lt;/td&gt;
          &lt;td&gt;研究、評測、追求極致品質&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q8_0&lt;/td&gt;
          &lt;td&gt;8 位整數&lt;/td&gt;
          &lt;td&gt;較大&lt;/td&gt;
          &lt;td&gt;幾乎無損&lt;/td&gt;
          &lt;td&gt;高配電腦，兼顧品質與效能&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q5_K_M&lt;/td&gt;
          &lt;td&gt;5 位混合&lt;/td&gt;
          &lt;td&gt;中等&lt;/td&gt;
          &lt;td&gt;輕微損失&lt;/td&gt;
          &lt;td&gt;日常主力，平衡方案&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q4_K_M&lt;/td&gt;
          &lt;td&gt;4 位混合&lt;/td&gt;
          &lt;td&gt;較小&lt;/td&gt;
          &lt;td&gt;可接受損失&lt;/td&gt;
          &lt;td&gt;通用預設，性價比高&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q3_K_M&lt;/td&gt;
          &lt;td&gt;3 位混合&lt;/td&gt;
          &lt;td&gt;很小&lt;/td&gt;
          &lt;td&gt;明顯損失&lt;/td&gt;
          &lt;td&gt;低配設備，先求能跑&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Q2_K&lt;/td&gt;
          &lt;td&gt;2 位混合&lt;/td&gt;
          &lt;td&gt;最小&lt;/td&gt;
          &lt;td&gt;較大損失&lt;/td&gt;
          &lt;td&gt;極限資源場景，臨時可用&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;量化命名規則&#34;&gt;量化命名規則
&lt;/h2&gt;&lt;p&gt;以 &lt;code&gt;gemma-4:4b-q4_k_m&lt;/code&gt; 為例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;gemma-4:4b&lt;/code&gt;：模型名稱與參數規模。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;q4&lt;/code&gt;：4 位量化。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k&lt;/code&gt;：K-quants（改進的量化方法）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;m&lt;/code&gt;：medium（中等級別，常見還有 &lt;code&gt;s&lt;/code&gt;/small、&lt;code&gt;l&lt;/code&gt;/large）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;如何按顯存快速選型&#34;&gt;如何按顯存快速選型
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;內存/顯存&lt;/th&gt;
          &lt;th&gt;推薦量化&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;4 GB&lt;/td&gt;
          &lt;td&gt;Q3_K_M / Q2_K&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;8 GB&lt;/td&gt;
          &lt;td&gt;Q4_K_M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;16 GB&lt;/td&gt;
          &lt;td&gt;Q5_K_M / Q8_0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;32 GB+&lt;/td&gt;
          &lt;td&gt;FP16 / Q8_0&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;建議先從能穩定跑起來的版本開始，再逐步提高精度，而不是一開始就追求最大模型。&lt;/p&gt;
&lt;h2 id=&#34;實戰建議&#34;&gt;實戰建議
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;預設從 &lt;code&gt;Q4_K_M&lt;/code&gt; 開始，先驗證真實任務效果。&lt;/li&gt;
&lt;li&gt;如果答案品質不夠，再升到 &lt;code&gt;Q5_K_M&lt;/code&gt; 或 &lt;code&gt;Q8_0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果主要瓶頸是顯存或速度，再降到 &lt;code&gt;Q3_K_M&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;每次切換量化版本，都用同一批測試問題做對比。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;結論&#34;&gt;結論
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;品質優先：&lt;code&gt;FP16&lt;/code&gt; 或 &lt;code&gt;Q8_0&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;平衡優先：&lt;code&gt;Q5_K_M&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;通用預設：&lt;code&gt;Q4_K_M&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;低配兜底：&lt;code&gt;Q3_K_M&lt;/code&gt; 或 &lt;code&gt;Q2_K&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;選型的本質不是「越大越好」，而是「在你的硬體條件下，達到最穩定可用的效果」。&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        
    </channel>
</rss>
