<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cpu-Offload on Tarragon</title><link>https://tarrragon.github.io/blog/tags/cpu-offload/</link><description>Recent content in Cpu-Offload on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Tue, 12 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/cpu-offload/index.xml" rel="self" type="application/rss+xml"/><item><title>5.1 MoE 模型與 CPU 卸載策略</title><link>https://tarrragon.github.io/blog/llm/05-discrete-gpu/moe-cpu-offload-strategy/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/05-discrete-gpu/moe-cpu-offload-strategy/</guid><description>&lt;p>MoE CPU 卸載是 PC 場景相對 Mac 統一記憶體場景多出來的工程選項：把 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/moe/" data-link-title="Mixture of Experts (MoE)" data-link-desc="把 transformer 的 FFN 層拆成多個專家、每 token 只啟用少數、總參數大但每 token 計算量小的架構">Mixture-of-Experts (MoE)&lt;/a> 模型不活躍的專家層權重留在系統 RAM、活躍時走 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe&lt;/a> 拉到 GPU。本章不再重複&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">卡片定義&lt;/a>、而是處理「實際要不要用、用多少」的判讀。卸載判讀的關鍵變數是 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/active-parameter/" data-link-title="Active Parameter" data-link-desc="MoE 模型每生成一個 token 實際參與計算的參數量、跟模型總參數量不同、影響推論速度上限">active parameter&lt;/a> 比例。&lt;/p>
&lt;p>讀完本章後、你應該能對自己的硬體配置回答：這個模型適不適合用 MoE 卸載、卸幾層是合理起點、卸到讓 prefill 變慢時該怎麼調、跟 KV cache 量化怎麼搭配。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;ol>
&lt;li>理解 MoE 架構為什麼適合卸載（active parameter 少 ≠ 模型小）。&lt;/li>
&lt;li>判讀「該不該用 MoE 卸載」的工作流類型。&lt;/li>
&lt;li>知道卸載層數的調參範圍跟兩端的徵兆。&lt;/li>
&lt;li>區分卸載對 prefill 跟 generation 的影響差異。&lt;/li>
&lt;li>認識 llama.cpp 的 &lt;code>--n-cpu-moe&lt;/code> 旗標與相關旗標的協作。&lt;/li>
&lt;/ol>
&lt;h2 id="moe-架構為什麼適合卸載">MoE 架構為什麼適合卸載&lt;/h2>
&lt;p>MoE 模型適合卸載的關鍵是「總參數大、active parameter 小」這個結構特性：每個 token 只啟用少數專家、走 PCIe 的權重量遠小於 Dense 模型卸載同比例層數的傳輸量。卸載因此變成可行的工程選項、而不是「速度大幅下降的退路」。&lt;/p>
&lt;p>對比 Dense 模型：Dense 模型每個 token 都會用到所有層的所有權重、任何一層放到 RAM 都會讓每個 token 等 PCIe 拉回來、生字速度衰減較明顯。MoE 在每個 transformer block 內把 FFN（feed-forward network）拆成多個「專家」、router 為每個 token 挑選少數啟用、不啟用的專家權重留在 RAM 不參與計算。&lt;/p>
&lt;p>MoE 卸載成立的三個結構要點：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>總參數大、active parameter 小&lt;/strong>：例如 Qwen3-30B-A3B 的 A3B 表示 active parameter 約 3B、總參數約 30B、每個 token 只走 ~10% 的權重。&lt;/li>
&lt;li>&lt;strong>每 token 走 PCIe 的權重量大幅縮減&lt;/strong>：不活躍的專家權重留在 RAM、不參與本 token 的計算。具體幅度依模型 active 比例變化、可透過 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">量化&lt;/a> 再進一步壓縮。&lt;/li>
&lt;li>&lt;strong>共用層（&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/attention/" data-link-title="Attention" data-link-desc="Transformer 內部讓每個 token 對其他 token 加權平均的核心機制、形成 KV cache 跟 context window 的計算基礎">attention&lt;/a>、layernorm）放 VRAM&lt;/strong>：這些是每 token 必經、放 VRAM 確保速度上限不被拉低、跟 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache&lt;/a> 一起佔用 VRAM 主要區段。&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>&lt;strong>事實查核註&lt;/strong>：MoE 模型的 active / total parameter 比例依模型而異（Qwen3-30B-A3B、Llama 4 Scout、DeepSeek V3 等各有不同設計）。具體比例見各模型的官方技術報告或 Hugging Face model card。&lt;/p>&lt;/blockquote>
&lt;p>對照 Dense 模型的卸載（在 llama.cpp 中、Dense 模型可以用 &lt;code>-ngl&lt;/code> 控制放 GPU 的層數、剩下走 CPU）：Dense 卸載每 token 都要傳輸卸載層權重、生字速度衰減較明顯；MoE 卸載每 token 只傳輸啟用的專家、衰減較小。社群常見回報指出「MoE 卸載比 Dense 同比例卸載友善」、但具體幅度依模型架構（專家數、active 比例）變化、需用 &lt;code>llama-bench&lt;/code> 校準。&lt;/p></description><content:encoded><![CDATA[<p>MoE CPU 卸載是 PC 場景相對 Mac 統一記憶體場景多出來的工程選項：把 <a href="/blog/llm/knowledge-cards/moe/" data-link-title="Mixture of Experts (MoE)" data-link-desc="把 transformer 的 FFN 層拆成多個專家、每 token 只啟用少數、總參數大但每 token 計算量小的架構">Mixture-of-Experts (MoE)</a> 模型不活躍的專家層權重留在系統 RAM、活躍時走 <a href="/blog/llm/knowledge-cards/pcie/" data-link-title="PCIe" data-link-desc="PC 上連接 GPU 跟主機板的高速序列匯流排、影響模型載入速度跟 MoE 卸載時的推論吞吐">PCIe</a> 拉到 GPU。本章不再重複<a href="/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">卡片定義</a>、而是處理「實際要不要用、用多少」的判讀。卸載判讀的關鍵變數是 <a href="/blog/llm/knowledge-cards/active-parameter/" data-link-title="Active Parameter" data-link-desc="MoE 模型每生成一個 token 實際參與計算的參數量、跟模型總參數量不同、影響推論速度上限">active parameter</a> 比例。</p>
<p>讀完本章後、你應該能對自己的硬體配置回答：這個模型適不適合用 MoE 卸載、卸幾層是合理起點、卸到讓 prefill 變慢時該怎麼調、跟 KV cache 量化怎麼搭配。</p>
<h2 id="本章目標">本章目標</h2>
<ol>
<li>理解 MoE 架構為什麼適合卸載（active parameter 少 ≠ 模型小）。</li>
<li>判讀「該不該用 MoE 卸載」的工作流類型。</li>
<li>知道卸載層數的調參範圍跟兩端的徵兆。</li>
<li>區分卸載對 prefill 跟 generation 的影響差異。</li>
<li>認識 llama.cpp 的 <code>--n-cpu-moe</code> 旗標與相關旗標的協作。</li>
</ol>
<h2 id="moe-架構為什麼適合卸載">MoE 架構為什麼適合卸載</h2>
<p>MoE 模型適合卸載的關鍵是「總參數大、active parameter 小」這個結構特性：每個 token 只啟用少數專家、走 PCIe 的權重量遠小於 Dense 模型卸載同比例層數的傳輸量。卸載因此變成可行的工程選項、而不是「速度大幅下降的退路」。</p>
<p>對比 Dense 模型：Dense 模型每個 token 都會用到所有層的所有權重、任何一層放到 RAM 都會讓每個 token 等 PCIe 拉回來、生字速度衰減較明顯。MoE 在每個 transformer block 內把 FFN（feed-forward network）拆成多個「專家」、router 為每個 token 挑選少數啟用、不啟用的專家權重留在 RAM 不參與計算。</p>
<p>MoE 卸載成立的三個結構要點：</p>
<ol>
<li><strong>總參數大、active parameter 小</strong>：例如 Qwen3-30B-A3B 的 A3B 表示 active parameter 約 3B、總參數約 30B、每個 token 只走 ~10% 的權重。</li>
<li><strong>每 token 走 PCIe 的權重量大幅縮減</strong>：不活躍的專家權重留在 RAM、不參與本 token 的計算。具體幅度依模型 active 比例變化、可透過 <a href="/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">量化</a> 再進一步壓縮。</li>
<li><strong>共用層（<a href="/blog/llm/knowledge-cards/attention/" data-link-title="Attention" data-link-desc="Transformer 內部讓每個 token 對其他 token 加權平均的核心機制、形成 KV cache 跟 context window 的計算基礎">attention</a>、layernorm）放 VRAM</strong>：這些是每 token 必經、放 VRAM 確保速度上限不被拉低、跟 <a href="/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache</a> 一起佔用 VRAM 主要區段。</li>
</ol>
<blockquote>
<p><strong>事實查核註</strong>：MoE 模型的 active / total parameter 比例依模型而異（Qwen3-30B-A3B、Llama 4 Scout、DeepSeek V3 等各有不同設計）。具體比例見各模型的官方技術報告或 Hugging Face model card。</p></blockquote>
<p>對照 Dense 模型的卸載（在 llama.cpp 中、Dense 模型可以用 <code>-ngl</code> 控制放 GPU 的層數、剩下走 CPU）：Dense 卸載每 token 都要傳輸卸載層權重、生字速度衰減較明顯；MoE 卸載每 token 只傳輸啟用的專家、衰減較小。社群常見回報指出「MoE 卸載比 Dense 同比例卸載友善」、但具體幅度依模型架構（專家數、active 比例）變化、需用 <code>llama-bench</code> 校準。</p>
<h2 id="何時值得用-moe-卸載">何時值得用 MoE 卸載</h2>
<p>MoE 卸載的主要用途是「處理 VRAM 容量不足以全載目標模型」的場景。當模型已能全載 VRAM、卸載通常會降低生字速度而沒有對應的收益。下表整理常見的判讀情境：</p>
<table>
  <thead>
      <tr>
          <th>場景</th>
          <th>是否值得卸載</th>
          <th>主要考量</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>16GB VRAM 想跑 30B 級 MoE 模型</td>
          <td>值得</td>
          <td>沒卸載則 VRAM 不足以載入</td>
      </tr>
      <tr>
          <td>24GB VRAM 跑 30B 級 MoE</td>
          <td>視 context 跟併發數需求</td>
          <td>全載也許可行、卸載可換取更大 context 或更多併發</td>
      </tr>
      <tr>
          <td>16GB VRAM 跑 14B Dense</td>
          <td>通常不需要</td>
          <td>模型已可全載 VRAM、卸載反而降速</td>
      </tr>
      <tr>
          <td>跑 70B 級 MoE 模型</td>
          <td>多數情況需要卸載</td>
          <td>即使 32GB VRAM 也通常需要部分卸載</td>
      </tr>
      <tr>
          <td>高頻短補完工作流（追求即時補完）</td>
          <td>評估、可能不適合</td>
          <td>卸載會降速、若工作流對即時體感敏感、改用較小 Dense 模型全載可能更合適</td>
      </tr>
      <tr>
          <td>長 context 工作流（大型 codebase RAG、長對話）</td>
          <td>值得</td>
          <td>卸載換 VRAM 給 KV cache、能開更大 context</td>
      </tr>
  </tbody>
</table>
<p>判讀原則：<strong>先確認瓶頸是「模型載不進」還是「速度不夠」</strong>。前者卸載是解法、後者卸載通常會惡化問題、應該往別的方向調（選較小模型、升級顯卡、提高量化等級）。</p>
<h2 id="卸載層數的調參範圍">卸載層數的調參範圍</h2>
<p>llama.cpp 的 <code>--n-cpu-moe &lt;N&gt;</code> 旗標表示「把 N 層的 MoE 專家權重放 CPU 記憶體」。實際範圍取決於模型結構：</p>
<ol>
<li><strong>下限</strong>：0、表示所有 MoE 專家層都在 VRAM。對 16GB VRAM + 30B MoE 而言通常不可行（VRAM 不足）。</li>
<li><strong>上限</strong>：模型的 MoE 層總數、表示所有 MoE 層的專家都在 CPU。對應 VRAM 佔用最低、生字速度也最低。</li>
</ol>
<p>調參的兩端徵兆：</p>
<table>
  <thead>
      <tr>
          <th>徵兆</th>
          <th>表示</th>
          <th>建議調整</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>llama.cpp 報 CUDA OOM、模型載入失敗</td>
          <td>VRAM 餘量不足</td>
          <td>增加 <code>--n-cpu-moe</code>、把更多層放 RAM</td>
      </tr>
      <tr>
          <td>模型載入成功、但 KV cache 開不大、context 受限</td>
          <td>VRAM 餘量足、但邊際空間少</td>
          <td>增加 <code>--n-cpu-moe</code>、或開 KV cache 量化</td>
      </tr>
      <tr>
          <td>生成速度顯著低於對應 VRAM 頻寬的理論值</td>
          <td>卸載過多、PCIe 跟 CPU 在拖速</td>
          <td>減少 <code>--n-cpu-moe</code>、把更多層放回 VRAM</td>
      </tr>
      <tr>
          <td>系統 RAM 接近上限、page cache 被擠壓</td>
          <td>卸載量超出 RAM 容量</td>
          <td>減少 <code>--n-cpu-moe</code>、或升級 RAM</td>
      </tr>
  </tbody>
</table>
<p>常見起點：對 16GB VRAM + 64GB RAM 跑 30B 級 MoE 模型、社群常見回報的 <code>--n-cpu-moe</code> 落在 25 ~ 35 區間、具體值依模型 MoE 層數而定。建議從中間值（如 30）起步、再依 OOM / 速度徵兆雙向調整。</p>
<h2 id="卸載對-prefill-跟-generation-的影響不同">卸載對 prefill 跟 generation 的影響不同</h2>
<p><a href="/blog/llm/knowledge-cards/prefill/" data-link-title="Prefill" data-link-desc="Prompt 首次處理時的計算階段：把整段輸入跑過模型、產生 KV cache">prefill</a> 跟 generation 是兩個不同的計算階段、對卸載的反應也不同：</p>
<ol>
<li><strong>prefill（處理 prompt）</strong>：一次處理整個 prompt、可用 batch 平行化、屬於 compute-bound 階段。卸載對 prefill 的衰減相對小、因為 batch 大可以攤平 PCIe 傳輸成本。</li>
<li><strong>generation（生字）</strong>：一個 token 接一個 token、每 token 都要走完整個 forward pass、屬於 memory-bandwidth-bound 階段。卸載對 generation 的衰減較明顯、因為每 token 都要走 PCIe 拉部分權重。</li>
</ol>
<p>實務影響：</p>
<ul>
<li><strong>長 prompt + 短回答</strong>（如「總結這份 codebase」）：prefill 主導總時間、卸載的代價較小。</li>
<li><strong>短 prompt + 長回答</strong>（如「從 spec 寫一段功能」）：generation 主導、卸載的代價較大、可能適合用較小 Dense 模型全載。</li>
<li><strong>互動式補完</strong>（每幾秒一次短 prompt 短回答）：prefill 跟 generation 都重要、卸載的整體成本依工作流節奏而定。</li>
</ul>
<blockquote>
<p><strong>事實查核註</strong>：prefill 跟 generation 的具體 t/s 差異依模型、量化、batch size、CUDA backend 變化；建議用 <code>llama-bench</code> 或實際工作流任務分別校準。</p></blockquote>
<h2 id="跟-kv-cache-量化的協調">跟 KV cache 量化的協調</h2>
<p>MoE 卸載騰出 VRAM、KV cache 量化讓騰出的 VRAM 拿去開大 context。兩者的關係是「先後」而非「替代」：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln">1</span><span class="cl">總 VRAM 預算
</span></span><span class="line"><span class="ln">2</span><span class="cl">├── 模型權重（活躍部分）= 由 --n-cpu-moe 決定
</span></span><span class="line"><span class="ln">3</span><span class="cl">├── KV cache             = 由 -c (context) × cache-type 決定
</span></span><span class="line"><span class="ln">4</span><span class="cl">└── 推論中間結果         = 通常固定</span></span></code></pre></div><p>調參順序（社群常見做法）：</p>
<ol>
<li><strong>先決定目標 context 長度</strong>：例如 32K、128K、256K。</li>
<li><strong>估算 KV cache 體積</strong>：依模型 attention head 配置、context 長度、量化等級。具體值用 llama.cpp 啟動時的 log 確認。</li>
<li><strong>算出 VRAM 餘量</strong>：總 VRAM − KV cache − 推論中間結果。</li>
<li><strong>決定 <code>--n-cpu-moe</code></strong>：讓「模型權重活躍部分」放得進 VRAM 餘量。</li>
</ol>
<p>如果做完上面四步發現 VRAM 仍不夠、就回頭調 KV cache 量化（K=fp16 → Q8 → Q4_0）、或降低 context 長度。</p>
<p>詳細的 KV cache 量化判讀見 <a href="/blog/llm/05-discrete-gpu/kv-cache-quantization-strategy/" data-link-title="5.2 KV cache 量化策略" data-link-desc="PC 場景用 K=Q8 / V=Q4 等量化把 KV cache 壓縮、騰出 VRAM 開大 context window 或加併發數的判讀">5.2 KV cache 量化策略</a>。</p>
<h2 id="llamacpp-的相關旗標">llama.cpp 的相關旗標</h2>
<p>跑 MoE 卸載時、常一起出現的旗標：</p>
<table>
  <thead>
      <tr>
          <th>旗標</th>
          <th>作用</th>
          <th>對 MoE 卸載的關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>-ngl &lt;N&gt;</code></td>
          <td>把 N 層丟到 GPU（Dense + MoE 共用層）</td>
          <td>通常設成 99 或 max、表示所有可放 GPU 的都放 GPU</td>
      </tr>
      <tr>
          <td><code>--n-cpu-moe &lt;N&gt;</code></td>
          <td>把 N 層的 MoE 專家權重保留在 CPU 記憶體</td>
          <td>MoE 卸載的核心旗標</td>
      </tr>
      <tr>
          <td><code>--cache-type-k &lt;type&gt;</code></td>
          <td>KV cache 中 K 的量化（如 <code>q8_0</code>、<code>q4_0</code>）</td>
          <td>用於騰出 VRAM 給更大 context</td>
      </tr>
      <tr>
          <td><code>--cache-type-v &lt;type&gt;</code></td>
          <td>KV cache 中 V 的量化</td>
          <td>用於騰出 VRAM 給更大 context</td>
      </tr>
      <tr>
          <td><code>-c &lt;N&gt;</code></td>
          <td>context window 大小</td>
          <td>跟 KV cache 體積線性相關</td>
      </tr>
      <tr>
          <td><code>--parallel &lt;N&gt;</code></td>
          <td>併發處理數</td>
          <td>高併發會增加 KV cache 體積、需重新調預算</td>
      </tr>
      <tr>
          <td><code>-b &lt;N&gt;</code> / <code>-ub &lt;N&gt;</code></td>
          <td>batch size / micro-batch size</td>
          <td>影響 prefill 速度與記憶體用量</td>
      </tr>
  </tbody>
</table>
<p>完整旗標清單見 <a href="https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md">llama.cpp 官方文件</a>；版本更新後參數名稱可能變動、以實際 <code>llama-server --help</code> 為準。</p>
<h2 id="給讀者的判讀步驟">給讀者的判讀步驟</h2>
<p>實際設定 MoE 卸載時、可以照下面的步驟調：</p>
<ol>
<li>
<p><strong>確認模型適合 MoE 卸載</strong>：模型是 MoE 架構（如 Qwen3-30B-A3B、Llama 4 Scout、DeepSeek V3 系列）、且總參數量明顯超過 VRAM 容量。</p>
</li>
<li>
<p><strong>抓取 GGUF 量化版本</strong>：寫 code 場景的常見起點是 Q4_K_M、品質 / 體積平衡較好。</p>
</li>
<li>
<p><strong>設定起點旗標</strong>：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl">llama-server -m &lt;model.gguf&gt; -ngl <span class="m">99</span> --n-cpu-moe <span class="m">30</span> <span class="se">\
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="se"></span>  --cache-type-k q8_0 --cache-type-v q4_0 -c <span class="m">32768</span></span></span></code></pre></div></li>
<li>
<p><strong>觀察啟動 log</strong>：llama.cpp 會列出「實際載入 VRAM 的層數」「KV cache 體積」「剩餘 VRAM」。</p>
</li>
<li>
<p><strong>跑 <code>llama-bench</code> 校準</strong>：用同樣的旗標跑 prefill / generation benchmark、記錄 t/s。</p>
</li>
<li>
<p><strong>依瓶頸調整</strong>：</p>
<ul>
<li>想開更大 context → 加大 <code>-c</code>、若 VRAM 不足則加 <code>--n-cpu-moe</code> 或量化 KV cache</li>
<li>想要更快生字 → 減 <code>--n-cpu-moe</code>、確認 VRAM 仍夠</li>
<li>VRAM OOM → 加 <code>--n-cpu-moe</code> 或降量化</li>
</ul>
</li>
</ol>
<p>完成這六步後、再進入 <a href="/blog/llm/05-discrete-gpu/llama-cpp-on-pc/" data-link-title="5.3 llama.cpp 在 PC 上" data-link-desc="CUDA / ROCm build 取得、核心旗標地圖、llama-bench 校準、多卡 tensor split 的入門設定">5.3 llama.cpp 在 PC 上</a> 了解更全面的旗標組合。</p>
<h2 id="下一章">下一章</h2>
<p>下一章：<a href="/blog/llm/05-discrete-gpu/kv-cache-quantization-strategy/" data-link-title="5.2 KV cache 量化策略" data-link-desc="PC 場景用 K=Q8 / V=Q4 等量化把 KV cache 壓縮、騰出 VRAM 開大 context window 或加併發數的判讀">5.2 KV cache 量化策略</a>、深入 K=Q8 / V=Q4 跟 context 長度的權衡。</p>
]]></content:encoded></item></channel></rss>