<?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>Judgment on Tarragon</title><link>https://tarrragon.github.io/blog/tags/judgment/</link><description>Recent content in Judgment on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Mon, 11 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/judgment/index.xml" rel="self" type="application/rss+xml"/><item><title>0.6 判讀本地 LLM 資訊的五個框架</title><link>https://tarrragon.github.io/blog/llm/00-foundations/info-judgment-frames/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/00-foundations/info-judgment-frames/</guid><description>&lt;p>本地 LLM 的核心特性之一是「資訊更新得很快」。新模型 2 ~ 3 個月一個世代、推論伺服器幾週一個版本、社群文章每天大量產出。同樣一件事在不同來源講法可能差很遠：有的精準、有的混淆層級、有的引用過時資訊、有的拿單一情境當普遍能力。學會用一致的框架評估每則資訊、是本地 LLM 使用者最值得培養的能力。&lt;/p>
&lt;p>本章把前面五章的概念整理成五個判讀框架。每個框架對應一類常見資訊問題、給讀者一組可重複套用的提問清單。讀完後你會建立一個反射：看到 LLM 相關內容時、自動跑過這些框架、確認資訊夠不夠扎實再吸收。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;p>讀完本章後，你應該能：&lt;/p>
&lt;ol>
&lt;li>看到「N 倍加速」「能跑 X 大小模型」這類量化宣稱時、知道要追問哪些變數。&lt;/li>
&lt;li>看到「X 工具支援 Y 功能」時、知道怎麼確認時間點與版本。&lt;/li>
&lt;li>把工具放回&lt;a href="https://tarrragon.github.io/blog/llm/00-foundations/three-layer-architecture/" data-link-title="0.2 介面 / 伺服器 / 模型三層架構" data-link-desc="把任何本地 LLM 工具放回正確的層級，用三層心智模型看懂工具關係">三層架構&lt;/a>、辨識「framework vs 伺服器 vs 模型」的混淆。&lt;/li>
&lt;li>區分「載得進記憶體」跟「實際好用」是兩件事。&lt;/li>
&lt;li>把「隱私」從「位置」改成「資料流」來思考。&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="框架一追溯版本與時間點">框架一：追溯版本與時間點&lt;/h2>
&lt;p>本地 LLM 工具的功能支援會隨版本變化。同一句「X 工具支援 Y 功能」可能 2025 年成立、2026 年版本改了、或反過來。判讀任一則「支援 / 整合 / 加入」的宣稱、第一步是確認版本與時間點。&lt;/p>
&lt;h3 id="這個框架解什麼問題">這個框架解什麼問題&lt;/h3>
&lt;p>社群文章常省略版本資訊。「llama.cpp 加入 Gemma 4 MTP」這類句子若沒附上日期或版本號、就有三種可能：上游確實已合入、是某個 fork（從主 repo 分支出去的獨立版本）加的 patch（補丁修改）、或是社群討論的願景。三種狀態下「該怎麼用」的答案完全不同。&lt;/p>
&lt;h3 id="怎麼套用">怎麼套用&lt;/h3>
&lt;p>看到「X 工具支援 / 整合 / 加入 Y」時、按順序問：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>版本與日期&lt;/strong>：在哪個版本加入？發布日期是？&lt;/li>
&lt;li>&lt;strong>支援程度&lt;/strong>：是 GA（一般可用）、beta、實驗性、還是 fork 上的 patch？&lt;/li>
&lt;li>&lt;strong>官方確認&lt;/strong>：是否在 release notes / changelog / 官方文件提到？&lt;/li>
&lt;/ol>
&lt;p>確認來源的最快路徑：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>工具&lt;/th>
 &lt;th>看哪裡確認版本支援狀態&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Ollama&lt;/td>
 &lt;td>&lt;code>github.com/ollama/ollama/releases&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>llama.cpp&lt;/td>
 &lt;td>&lt;code>github.com/ggerganov/llama.cpp/releases&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>LM Studio&lt;/td>
 &lt;td>應用程式內 About 頁、官網 changelog&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>MLX&lt;/td>
 &lt;td>&lt;code>github.com/ml-explore/mlx/releases&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="實際情境">實際情境&lt;/h3>
&lt;p>2026 年 5 月的具體狀態：Ollama v0.23.1（2026/5/7 釋出）一鍵支援 Gemma 4 MTP；llama.cpp 上游的 speculative decoding 框架仍 beta、Gemma 4 官方 drafter 整合是 feature request。同一個功能在兩個工具的狀態差很多、發表時間決定誰領先。&lt;/p>
&lt;p>這個案例的啟示是「Ollama 用 llama.cpp 當底層」這件事、跟「新功能必定先在 llama.cpp 出現」是兩件事。Ollama 維護自己的 fork 加 patch、有時搶先支援上游還沒接受的功能。看資訊時要明確區分。&lt;/p>
&lt;hr>
&lt;h2 id="框架二量化宣稱的三個變數">框架二：量化宣稱的三個變數&lt;/h2>
&lt;p>任何「N 倍加速」「快 X%」「達到 Y 分」的數字、都至少受三個變數影響：任務類型、比較基準、執行硬體。三個變數沒給齊時、跨情境比較會失準、把數字搬到自己場景常常對不上。&lt;/p>
&lt;h3 id="這個框架解什麼問題-1">這個框架解什麼問題&lt;/h3>
&lt;p>「&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/mtp/" data-link-title="Multi-Token Prediction (MTP)" data-link-desc="Google 為 Gemma 系列釋出的 speculative decoding 工程化實作">MTP&lt;/a> 加速 3 倍」這個句子省略了「在 coding 任務上、跟沒開 MTP 比、用 M4 Max 跑」這三個前提。同樣的 MTP 在創意寫作上加速可能只有 1.5 倍、在 M2 Pro 上絕對數字小很多。讀者拿到「3 倍」這個數字、放到自己的場景常常對不上。&lt;/p>
&lt;h3 id="怎麼套用-1">怎麼套用&lt;/h3>
&lt;p>看到量化宣稱時、回到下面三個維度確認：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>變數&lt;/th>
 &lt;th>該問什麼&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>任務類型&lt;/td>
 &lt;td>coding？對話？數學？翻譯？不同任務的加速幅度差很多&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>比較基準&lt;/td>
 &lt;td>跟「沒開該功能」比、還是跟「另一個工具」比？&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>執行硬體&lt;/td>
 &lt;td>M4 Max？M2 Pro？Mac Studio？硬體規格影響絕對數字&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="實際情境-1">實際情境&lt;/h3>
&lt;p>&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/mtp/" data-link-title="Multi-Token Prediction (MTP)" data-link-desc="Google 為 Gemma 系列釋出的 speculative decoding 工程化實作">MTP&lt;/a> 的官方數據是「coding 任務 2 ~ 3 倍加速、其他任務 1.5 ~ 2 倍」。社群文章可能引用成「40% 加速」、這個數字若沒附上前提、無法判斷代表什麼任務或什麼硬體。回到 Google 官方技術報告比對、能還原原始三變數。&lt;/p></description><content:encoded><![CDATA[<p>本地 LLM 的核心特性之一是「資訊更新得很快」。新模型 2 ~ 3 個月一個世代、推論伺服器幾週一個版本、社群文章每天大量產出。同樣一件事在不同來源講法可能差很遠：有的精準、有的混淆層級、有的引用過時資訊、有的拿單一情境當普遍能力。學會用一致的框架評估每則資訊、是本地 LLM 使用者最值得培養的能力。</p>
<p>本章把前面五章的概念整理成五個判讀框架。每個框架對應一類常見資訊問題、給讀者一組可重複套用的提問清單。讀完後你會建立一個反射：看到 LLM 相關內容時、自動跑過這些框架、確認資訊夠不夠扎實再吸收。</p>
<h2 id="本章目標">本章目標</h2>
<p>讀完本章後，你應該能：</p>
<ol>
<li>看到「N 倍加速」「能跑 X 大小模型」這類量化宣稱時、知道要追問哪些變數。</li>
<li>看到「X 工具支援 Y 功能」時、知道怎麼確認時間點與版本。</li>
<li>把工具放回<a href="/blog/llm/00-foundations/three-layer-architecture/" data-link-title="0.2 介面 / 伺服器 / 模型三層架構" data-link-desc="把任何本地 LLM 工具放回正確的層級，用三層心智模型看懂工具關係">三層架構</a>、辨識「framework vs 伺服器 vs 模型」的混淆。</li>
<li>區分「載得進記憶體」跟「實際好用」是兩件事。</li>
<li>把「隱私」從「位置」改成「資料流」來思考。</li>
</ol>
<hr>
<h2 id="框架一追溯版本與時間點">框架一：追溯版本與時間點</h2>
<p>本地 LLM 工具的功能支援會隨版本變化。同一句「X 工具支援 Y 功能」可能 2025 年成立、2026 年版本改了、或反過來。判讀任一則「支援 / 整合 / 加入」的宣稱、第一步是確認版本與時間點。</p>
<h3 id="這個框架解什麼問題">這個框架解什麼問題</h3>
<p>社群文章常省略版本資訊。「llama.cpp 加入 Gemma 4 MTP」這類句子若沒附上日期或版本號、就有三種可能：上游確實已合入、是某個 fork（從主 repo 分支出去的獨立版本）加的 patch（補丁修改）、或是社群討論的願景。三種狀態下「該怎麼用」的答案完全不同。</p>
<h3 id="怎麼套用">怎麼套用</h3>
<p>看到「X 工具支援 / 整合 / 加入 Y」時、按順序問：</p>
<ol>
<li><strong>版本與日期</strong>：在哪個版本加入？發布日期是？</li>
<li><strong>支援程度</strong>：是 GA（一般可用）、beta、實驗性、還是 fork 上的 patch？</li>
<li><strong>官方確認</strong>：是否在 release notes / changelog / 官方文件提到？</li>
</ol>
<p>確認來源的最快路徑：</p>
<table>
  <thead>
      <tr>
          <th>工具</th>
          <th>看哪裡確認版本支援狀態</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Ollama</td>
          <td><code>github.com/ollama/ollama/releases</code></td>
      </tr>
      <tr>
          <td>llama.cpp</td>
          <td><code>github.com/ggerganov/llama.cpp/releases</code></td>
      </tr>
      <tr>
          <td>LM Studio</td>
          <td>應用程式內 About 頁、官網 changelog</td>
      </tr>
      <tr>
          <td>MLX</td>
          <td><code>github.com/ml-explore/mlx/releases</code></td>
      </tr>
  </tbody>
</table>
<h3 id="實際情境">實際情境</h3>
<p>2026 年 5 月的具體狀態：Ollama v0.23.1（2026/5/7 釋出）一鍵支援 Gemma 4 MTP；llama.cpp 上游的 speculative decoding 框架仍 beta、Gemma 4 官方 drafter 整合是 feature request。同一個功能在兩個工具的狀態差很多、發表時間決定誰領先。</p>
<p>這個案例的啟示是「Ollama 用 llama.cpp 當底層」這件事、跟「新功能必定先在 llama.cpp 出現」是兩件事。Ollama 維護自己的 fork 加 patch、有時搶先支援上游還沒接受的功能。看資訊時要明確區分。</p>
<hr>
<h2 id="框架二量化宣稱的三個變數">框架二：量化宣稱的三個變數</h2>
<p>任何「N 倍加速」「快 X%」「達到 Y 分」的數字、都至少受三個變數影響：任務類型、比較基準、執行硬體。三個變數沒給齊時、跨情境比較會失準、把數字搬到自己場景常常對不上。</p>
<h3 id="這個框架解什麼問題-1">這個框架解什麼問題</h3>
<p>「<a href="/blog/llm/knowledge-cards/mtp/" data-link-title="Multi-Token Prediction (MTP)" data-link-desc="Google 為 Gemma 系列釋出的 speculative decoding 工程化實作">MTP</a> 加速 3 倍」這個句子省略了「在 coding 任務上、跟沒開 MTP 比、用 M4 Max 跑」這三個前提。同樣的 MTP 在創意寫作上加速可能只有 1.5 倍、在 M2 Pro 上絕對數字小很多。讀者拿到「3 倍」這個數字、放到自己的場景常常對不上。</p>
<h3 id="怎麼套用-1">怎麼套用</h3>
<p>看到量化宣稱時、回到下面三個維度確認：</p>
<table>
  <thead>
      <tr>
          <th>變數</th>
          <th>該問什麼</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>任務類型</td>
          <td>coding？對話？數學？翻譯？不同任務的加速幅度差很多</td>
      </tr>
      <tr>
          <td>比較基準</td>
          <td>跟「沒開該功能」比、還是跟「另一個工具」比？</td>
      </tr>
      <tr>
          <td>執行硬體</td>
          <td>M4 Max？M2 Pro？Mac Studio？硬體規格影響絕對數字</td>
      </tr>
  </tbody>
</table>
<h3 id="實際情境-1">實際情境</h3>
<p><a href="/blog/llm/knowledge-cards/mtp/" data-link-title="Multi-Token Prediction (MTP)" data-link-desc="Google 為 Gemma 系列釋出的 speculative decoding 工程化實作">MTP</a> 的官方數據是「coding 任務 2 ~ 3 倍加速、其他任務 1.5 ~ 2 倍」。社群文章可能引用成「40% 加速」、這個數字若沒附上前提、無法判斷代表什麼任務或什麼硬體。回到 Google 官方技術報告比對、能還原原始三變數。</p>
<p><a href="/blog/llm/knowledge-cards/swe-bench/" data-link-title="SWE-bench" data-link-desc="用真實 GitHub issue 量化 LLM coding 能力的 benchmark">SWE-bench</a> 的「77.2 分」也一樣：是 SWE-bench Verified（OpenAI 篩選過的子集）、還是 SWE-bench Lite 或 Full？變體間分數差很多、混為一談會誤判模型強弱。</p>
<h3 id="自己驗證的最穩做法">自己驗證的最穩做法</h3>
<p>公開 benchmark 是參考、不是結論。挑你日常工作流的 5 ~ 10 個真實任務當私人 benchmark、跑本地模型看通過率。這個方法繞過所有變數爭議、給你能用在自己場景的數字。</p>
<hr>
<h2 id="框架三工具放回三層架構">框架三：工具放回三層架構</h2>
<p>LLM 生態的工具屬於<a href="/blog/llm/00-foundations/three-layer-architecture/" data-link-title="0.2 介面 / 伺服器 / 模型三層架構" data-link-desc="把任何本地 LLM 工具放回正確的層級，用三層心智模型看懂工具關係">介面層、推論伺服器層、模型層</a>。各層之間用標準介面（<a href="/blog/llm/knowledge-cards/openai-compatible-api/" data-link-title="OpenAI 相容 API" data-link-desc="本地推論伺服器跟雲端 OpenAI 共用的 API 形狀標準">OpenAI 相容 API</a>、<a href="/blog/llm/knowledge-cards/gguf/" data-link-title="GGUF" data-link-desc="llama.cpp 生態定義的模型權重格式：把權重、tokenizer、metadata 打包成單一檔案">GGUF</a> 等）連接、各自可獨立替換。判讀工具相關資訊時、先確認它屬於哪一層、再評估宣稱。</p>
<h3 id="這個框架解什麼問題-2">這個框架解什麼問題</h3>
<p>工具名稱常被當成跨層通用詞。「Ollama 很快」「<a href="/blog/llm/knowledge-cards/mlx/" data-link-title="MLX" data-link-desc="Apple 釋出的 Apple Silicon 數值運算 framework：類似 PyTorch / JAX 的 Mac 對應物">MLX</a> 比 llama.cpp 強」「<a href="/blog/llm/00-foundations/mlx-mtp-omlx/" data-link-title="0.4 MLX / MTP / oMLX 的區別" data-link-desc="三個常被混為一談的術語：framework、加速技巧、特化 server，疊加而非互斥">oMLX</a> 是 Ollama 的 MLX 版」這類句子各自混淆了不同層：Ollama 是推論伺服器、MLX 是 framework、llama.cpp 同時是 library 跟 server、oMLX 是另一個推論伺服器。混淆層級的句子讀起來像在比較、實際上比較的對象不在同一層。</p>
<h3 id="怎麼套用-2">怎麼套用</h3>
<p>看到工具被比較或描述時、按下表分類：</p>
<table>
  <thead>
      <tr>
          <th>工具</th>
          <th>屬於哪一層</th>
          <th>比較對象應該是</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Continue.dev</td>
          <td>介面層</td>
          <td>Cursor、aider、Open WebUI</td>
      </tr>
      <tr>
          <td>Ollama</td>
          <td>推論伺服器</td>
          <td>LM Studio、llama-server、oMLX</td>
      </tr>
      <tr>
          <td>llama.cpp</td>
          <td>library + 推論伺服器</td>
          <td>MLX、PyTorch（library 層）；llama-server 跟其他 server 比</td>
      </tr>
      <tr>
          <td>MLX</td>
          <td>framework / library</td>
          <td>PyTorch、JAX</td>
      </tr>
      <tr>
          <td>Gemma 4 / Qwen3</td>
          <td>模型</td>
          <td>其他模型</td>
      </tr>
      <tr>
          <td>OpenAI 相容 API</td>
          <td>跨層標準介面</td>
          <td>（是介面、不是工具）</td>
      </tr>
  </tbody>
</table>
<h3 id="實際情境-2">實際情境</h3>
<p>「Ollama 用 MLX 加速」這個句子若按本框架追問：Ollama 內部用 llama.cpp（library 層）當推論引擎、用 Metal backend 接 Apple Silicon 的 GPU。它跟 MLX 是平行的選擇、不是包含關係。要用 MLX 當 backend 要選 oMLX 或自己用 Python 把 mlx-lm 包成 server。「Ollama 用 MLX」混淆了 framework 層與 server 層。</p>
<p>「<a href="/blog/llm/00-foundations/mlx-mtp-omlx/" data-link-title="0.4 MLX / MTP / oMLX 的區別" data-link-desc="三個常被混為一談的術語：framework、加速技巧、特化 server，疊加而非互斥">oMLX</a> 比 Ollama 強」這類句子也要拆：oMLX 主要創新是 paged SSD KV cache、解的是長 context 場景的 <a href="/blog/llm/knowledge-cards/ttft/" data-link-title="TTFT" data-link-desc="Time To First Token：送出 prompt 到第一個 token 出現的等待時間">TTFT</a> 痛點。對短 prompt 場景、Ollama 跟 oMLX 速度差不多；對長 context 場景、oMLX 有針對性優勢。直接說「強」會丟失情境。</p>
<hr>
<h2 id="框架四載得進-vs-實際好用">框架四：載得進 vs 實際好用</h2>
<p>「能載入記憶體」跟「實際好用」是兩件事。看到「Mac 跑得起 X 模型」的截圖時、要追問體感速度與資源佔用、而非只看「啟動成功」。</p>
<h3 id="這個框架解什麼問題-3">這個框架解什麼問題</h3>
<p>把模型載入記憶體（<a href="/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">模型權重</a> + <a href="/blog/llm/knowledge-cards/kv-cache/" data-link-title="KV Cache" data-link-desc="已處理 token 的 attention 中間結果暫存：避免重算、加速後續生成">KV cache</a> + 系統保留）只是第一步。實際使用要看：生字速度體感如何、首字延遲多久、整台 Mac 其他工作是否變慢、長時間用會不會降頻。一張截圖只證明「載入成功」、跟「能日常用」是不同層次的問題。</p>
<h3 id="怎麼套用-3">怎麼套用</h3>
<p>看到「我在 Mac 上跑 X 模型」的報告時、按下表追問：</p>
<table>
  <thead>
      <tr>
          <th>指標</th>
          <th>體感分界</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="/blog/llm/knowledge-cards/tokens-per-second/" data-link-title="Tokens Per Second" data-link-desc="LLM 每秒能生成幾個 token：生字速度的標準量化指標">生字速度</a></td>
          <td>&lt; 10 tok/s 卡頓、20 ~ 40 tok/s 流暢、&gt; 40 即時</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/knowledge-cards/ttft/" data-link-title="TTFT" data-link-desc="Time To First Token：送出 prompt 到第一個 token 出現的等待時間">TTFT</a>（首字延遲）</td>
          <td>&gt; 10 秒打斷思路、&lt; 3 秒接近順暢</td>
      </tr>
      <tr>
          <td>整台 Mac 響應</td>
          <td>切 tab / 開 app / 滑滑鼠是否順暢</td>
      </tr>
      <tr>
          <td>記憶體 swap</td>
          <td>Activity Monitor 看 Memory Pressure 是否變紅</td>
      </tr>
      <tr>
          <td>風扇與降頻</td>
          <td>長時間用是否風扇狂轉、體感變熱</td>
      </tr>
  </tbody>
</table>
<h3 id="實際情境-3">實際情境</h3>
<p>16GB Mac「跑得起」31B 模型的截圖、實際多半是：模型剛載入時看起來能用、但系統正在 swap、生字速度掉到 1 ~ 2 tok/s、其他 app 全部變慢、整台 Mac 像泡在糖漿裡。這個狀態下「跑起來」的結論成立、「日常使用」的結論不成立。</p>
<p>換更激進量化（<a href="/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">Q3</a>）來塞更大模型也踩同樣的陷阱。Q3 70B 在 24GB Mac 上勉強載入、但 coding 任務表現常輸給同硬體的 Q5 14B 模型；衰減的判讀訊號是「同任務通過率比未量化版本低 30% 以上」「hallucination 明顯上升（編造 API、忽略 prompt 約束）」、出現這些訊號就回頭重新評估量化等級。</p>
<p>判讀「我跑得起來」這類報告時、把上表五個指標都問一遍、才能還原真實體感。</p>
<hr>
<h2 id="框架五隱私是資料流不是位置">框架五：隱私是資料流、不是位置</h2>
<p>本地推論伺服器把 prompt 留在自己機器上、是隱私光譜的起點、不是終點。完整評估隱私要追資料流：prompt 從你按下 Enter 開始、經過哪些 process、儲存在哪、最終會不會以任何形式離開機器。</p>
<h3 id="這個框架解什麼問題-4">這個框架解什麼問題</h3>
<p>「跑在本地、所以絕對私密」這個結論預設「位置」是隱私的唯一變數、但實際隱私風險來自整條資料流。同樣是「本地 LLM」、不同配置的隱私邊界可以差很多。</p>
<h3 id="怎麼套用-4">怎麼套用</h3>
<p>把你的 LLM 使用環境畫成資料流圖、列出 prompt 經過的每個節點：</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">你打字
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  ↓
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">IDE / 介面層工具（Continue.dev、Cursor、Open WebUI）
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">  ↓ 經過 OpenAI 相容 API
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">本地推論伺服器（Ollama 等）
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">  ↓
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">模型權重 + KV cache 在記憶體
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">  ↓
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">回應顯示在 IDE
</span></span><span class="line"><span class="ln">10</span><span class="cl">  ↓
</span></span><span class="line"><span class="ln">11</span><span class="cl">（可能）對話紀錄存到 SQLite / 雲端同步 / 第三方 telemetry</span></span></code></pre></div><p>每個節點問一次：</p>
<table>
  <thead>
      <tr>
          <th>節點</th>
          <th>該問什麼</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>IDE 介面層</td>
          <td>有沒有 telemetry？是否同時送雲端服務？</td>
      </tr>
      <tr>
          <td>推論伺服器配置</td>
          <td><code>OLLAMA_HOST</code> 是 <a href="/blog/llm/knowledge-cards/port-and-localhost/" data-link-title="Port 與 Localhost" data-link-desc="TCP port 與 listen address 如何決定 API server 的對外暴露範圍"><code>127.0.0.1</code></a> 還是 <code>0.0.0.0</code>？</td>
      </tr>
      <tr>
          <td>對話紀錄保存</td>
          <td>存到本機 SQLite？同步到 Notion / iCloud？</td>
      </tr>
      <tr>
          <td>介面 plugin</td>
          <td>有沒有第三方 plugin 把 prompt 送到別處？</td>
      </tr>
      <tr>
          <td>網路設定</td>
          <td>是否有區網其他裝置能存取本地伺服器？</td>
      </tr>
  </tbody>
</table>
<h3 id="實際情境-4">實際情境</h3>
<p>寫 NDA 客戶 code 時、即使用 Ollama 跑本地 LLM、若同時開著「自動同步 VS Code 設定到雲端」「Open WebUI 對話歷史備份到 iCloud」、prompt 仍可能間接外洩。Cursor 等 IDE 預設可能送 telemetry（含 prompt 片段）給自家服務；用 Cursor 接本地 Ollama 跟用 Continue.dev 接本地 Ollama 的隱私邊界不同。</p>
<p>把 <code>OLLAMA_HOST=0.0.0.0</code> 開出去（讓區網其他機器連）也常被忽略。家用網路風險低、公共 Wi-Fi 在沒設防火牆規則的情況下、本地 LLM 等同暴露給整個網段。預設值是 <code>127.0.0.1</code>、改動前先確認場景。</p>
<p>雲端 LLM 也提供 zero-retention 與「不訓練」選項（企業方案、API 預設等），多數合規場景能滿足。本地的隱私優勢在「物理上資料留在機器」、雲端的隱私保證來自合約與技術控制；兩條路在隱私光譜上各占一段、按實際需求挑。</p>
<hr>
<h2 id="把五個框架當反射">把五個框架當反射</h2>
<p>下表把五個框架壓成一張快速查表、看新資訊時對照：</p>
<table>
  <thead>
      <tr>
          <th>看到這類內容</th>
          <th>先跑哪個框架</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>「N 倍加速」「快 X%」</td>
          <td>框架二（任務、基準、硬體三變數）</td>
      </tr>
      <tr>
          <td>「達到 / 接近 GPT-X」</td>
          <td>框架二 + 框架四（變數 + 真實體感）</td>
      </tr>
      <tr>
          <td>「X 工具支援 Y 功能」</td>
          <td>框架一（版本與日期）</td>
      </tr>
      <tr>
          <td>「A 比 B 強」</td>
          <td>框架三（兩者是不是同一層）</td>
      </tr>
      <tr>
          <td>「我跑得起 X 模型」</td>
          <td>框架四（生字速度、TTFT、整機體感）</td>
      </tr>
      <tr>
          <td>「本地絕對私密」</td>
          <td>框架五（資料流每個節點）</td>
      </tr>
      <tr>
          <td>「換 model 就能做 Y」</td>
          <td>框架三（Y 是不是同一個架構家族？<a href="/blog/llm/knowledge-cards/transformer/" data-link-title="Transformer" data-link-desc="寫 code 用的 LLM 神經網路架構：基於 attention 機制、自回歸生成 token">Transformer</a> 還是 <a href="/blog/llm/knowledge-cards/diffusion/" data-link-title="Diffusion" data-link-desc="產圖用的生成式 AI 架構：跟寫 code 用的 Transformer 是不同路線">Diffusion</a>）</td>
      </tr>
      <tr>
          <td>「量化越激進記憶體越省」</td>
          <td>框架四（量化後品質還夠嗎）</td>
      </tr>
  </tbody>
</table>
<p>五個框架彼此互補、不互斥。一則複雜資訊常需要同時跑兩三個框架才能完整評估。例如「16GB Mac 跑 70B Q3 模型很順、達到 GPT-4 等級」這句話、要同時跑框架二（達到 GPT-4 是什麼任務上的測試？）、框架四（生字速度多少？整台 Mac 還能用嗎？）、框架三（70B Q3 跟 GPT-4 不在同一層、有點混）。三個框架都跑過、就能還原原始宣稱的真實價值。</p>
<h2 id="框架的邊界何時可以省略">框架的邊界：何時可以省略</h2>
<p>五個框架是預設掃描清單、但不是每個情境都要五個一起跑。下表是「該框架不適用」的判讀：</p>
<table>
  <thead>
      <tr>
          <th>框架</th>
          <th>何時可以省略</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>一、追溯版本時間點</td>
          <td>物理上限類數字（記憶體頻寬、bus 寬度）— 不隨版本變化</td>
      </tr>
      <tr>
          <td>二、量化宣稱三變數</td>
          <td>物理常數或寫死的硬體規格（如 M4 Max 頻寬 546 GB/s）— 是硬體事實、非宣稱</td>
      </tr>
      <tr>
          <td>三、工具放回三層</td>
          <td>純應用層討論（如 prompt engineering、agent 設計）— 跟分層架構正交</td>
      </tr>
      <tr>
          <td>四、載得進 vs 好用</td>
          <td>純概念說明 / 教學文（不涉及實際跑模型）— 沒有「好用」維度要評估</td>
      </tr>
      <tr>
          <td>五、隱私資料流</td>
          <td>完全離線的設備（air-gapped Mac）— 資料流退化為單一節點</td>
      </tr>
  </tbody>
</table>
<p>判讀原則：框架不適用於「該維度根本不存在」的情境。寧可多跑一個框架、覆蓋率優先 — 跑了發現不適用比漏掉某維度風險小。</p>
<h2 id="框架是工具不是教條">框架是工具、不是教條</h2>
<p>跑這些框架的目的是「拿到能用在自己場景的判讀」、不是「找出每篇文章的錯」。多數作者寫東西時省略前提、是為了文章流暢、未必是有意誤導。把框架當成補完前提的工具：看到不完整的句子、自己補上「在什麼任務、什麼硬體、什麼版本」的脈絡、就能還原作者想表達的事。</p>
<p>對自己也用同一套標準。寫筆記、發推文、回答同事問題時、附上版本與硬體脈絡、能讓資訊更耐保存、半年後自己回看也仍能讀懂。</p>
<h2 id="下一步">下一步</h2>
<p>下一步：<a href="/blog/llm/01-local-llm-services/" data-link-title="模組一：本地 LLM 服務的安裝與應用" data-link-desc="Ollama、LM Studio、llama.cpp 的安裝與差異、VS Code &#43; Continue.dev 整合、模型選型與期望管理">模組一 本地 LLM 服務的安裝與應用</a>、把概念落地到實際安裝、整合 VS Code、選模型、做期望管理。</p>
]]></content:encoded></item></channel></rss>