<?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>Lm-Studio on Tarragon</title><link>https://tarrragon.github.io/blog/tags/lm-studio/</link><description>Recent content in Lm-Studio 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/lm-studio/index.xml" rel="self" type="application/rss+xml"/><item><title>1.1 LM Studio：GUI 探索模型</title><link>https://tarrragon.github.io/blog/llm/01-local-llm-services/lm-studio/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/01-local-llm-services/lm-studio/</guid><description>&lt;p>LM Studio 跟 Ollama 一樣屬於&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>、但定位完全不同：Ollama 是 CLI-first、LM Studio 是 GUI-first。它的核心承諾是「不打開終端機也能玩本地 LLM」、特別適合對 Hugging Face model hub（社群最大的開源模型 registry、提供權重檔下載與比較）、&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">量化&lt;/a>等級、&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/speculative-decoding/" data-link-title="Speculative Decoding" data-link-desc="用小模型猜未來 token、大模型並行驗證的加速技巧">speculative decoding&lt;/a> 還在摸索階段的使用者。&lt;/p>
&lt;p>對寫 code 場景來說，LM Studio 不一定是日常主力（Ollama 通常更穩、生態更成熟），但它在「探索新模型」「視覺化看推論參數」「拿來教其他人本地 LLM」這幾個情境上明顯佔優勢。本章說明它的安裝、模型瀏覽器、server 模式啟用，以及跟 Ollama 並存的配置。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;p>讀完本章後，你應該能：&lt;/p>
&lt;ol>
&lt;li>安裝 LM Studio 並下載第一個模型。&lt;/li>
&lt;li>在 GUI 跟模型對話、調整參數。&lt;/li>
&lt;li>啟用 LM Studio 的 OpenAI 相容 server 模式。&lt;/li>
&lt;li>判斷你的工作流適不適合用 LM Studio 當主力。&lt;/li>
&lt;li>讓 LM Studio 與 Ollama 並存。&lt;/li>
&lt;/ol>
&lt;h2 id="安裝">安裝&lt;/h2>
&lt;p>LM Studio 是商業軟體（個人使用免費），不在 Homebrew core repo 裡。直接從官網下載：&lt;/p>
&lt;ol>
&lt;li>開 &lt;a href="https://lmstudio.ai">lmstudio.ai&lt;/a>&lt;/li>
&lt;li>下載 macOS（Apple Silicon）版本&lt;/li>
&lt;li>把 LM Studio.app 拖到 Applications&lt;/li>
&lt;li>第一次開啟會被 macOS 安全提示擋，到「系統設定 &amp;gt; 隱私權與安全性」放行&lt;/li>
&lt;/ol>
&lt;p>裝完開啟 app，會看到三個主要分頁：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Discover&lt;/strong>：搜尋 Hugging Face model hub、下載模型&lt;/li>
&lt;li>&lt;strong>My Models&lt;/strong>：管理已下載模型&lt;/li>
&lt;li>&lt;strong>Chat / Developer&lt;/strong>：跟模型對話、啟用 server&lt;/li>
&lt;/ul>
&lt;h2 id="下載第一個模型">下載第一個模型&lt;/h2>
&lt;p>Discover 分頁把 Hugging Face 模型搜尋、&lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">量化等級&lt;/a>挑選、記憶體適配判讀集中在同一個面板。在 Discover 分頁搜尋模型名（例如 &lt;code>gemma-4&lt;/code>）、會列出 Hugging Face 上的對應 repo：&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>Repo 名稱&lt;/td>
 &lt;td>例如 &lt;code>bartowski/gemma-4-31b-it-GGUF&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>量化等級&lt;/td>
 &lt;td>Q4_K_M、Q5_K_M、Q8 等，列在每個檔案旁邊&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>檔案大小&lt;/td>
 &lt;td>直接顯示 GB 數，方便判斷是否塞得進記憶體&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>適配建議&lt;/td>
 &lt;td>LM Studio 會根據你 Mac 記憶體標「Recommended / Too Large」&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>選一個合適量化等級點下載。Q4_K_M 在多數場景是甜蜜點；32GB Mac 跑 31B Q5_K_M 也順暢。下載中可以繼續操作其他功能。&lt;/p>
&lt;p>陷阱：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Repo 來源要看&lt;/strong>。Hugging Face 上同一個模型有多個社群重新封裝的 repo。&lt;code>google/gemma-4-...&lt;/code> 是官方 repo；&lt;code>bartowski/...&lt;/code> 等是社群常見的高品質 quant 提供者。挑下載量高、最近更新的 repo 較安全。完整的供應鏈信任判讀（量化版本污染、權重完整性、registry 信任）見 &lt;a href="https://tarrragon.github.io/blog/llm/06-security/model-supply-chain-trust/" data-link-title="6.0 模型供應鏈與信任邊界" data-link-desc="個人 dev 用本地 LLM 時的模型權重來源信任：GGUF 完整性、Hugging Face / Ollama registry 信任、量化版本污染、檔案完整性檢查">6.0 模型供應鏈與信任邊界&lt;/a>。&lt;/li>
&lt;li>&lt;strong>不是所有檔案都要下載&lt;/strong>。一個 repo 可能有 5 ~ 10 個量化檔案，下載你選的那個就好。LM Studio UI 有時讓人誤以為要全選。&lt;/li>
&lt;li>&lt;strong>下載完成後檢查路徑&lt;/strong>：預設下載到 &lt;code>~/.cache/lm-studio/models/&lt;/code>、跟 Ollama 的 &lt;code>~/.ollama/models/&lt;/code> 分開。兩邊 model storage 各自獨立、想在兩個伺服器都用同一個模型要分別下載。&lt;/li>
&lt;/ol>
&lt;h2 id="chat-分頁與推論參數調整">Chat 分頁與推論參數調整&lt;/h2>
&lt;p>下載完到 Chat 分頁、左上角 model selector 選剛下載的模型。LM Studio 會把模型載入記憶體（30 ~ 60 秒）、然後就能對話。&lt;/p></description><content:encoded><![CDATA[<p>LM Studio 跟 Ollama 一樣屬於<a href="/blog/llm/00-foundations/three-layer-architecture/" data-link-title="0.2 介面 / 伺服器 / 模型三層架構" data-link-desc="把任何本地 LLM 工具放回正確的層級，用三層心智模型看懂工具關係">本地推論伺服器層</a>、但定位完全不同：Ollama 是 CLI-first、LM Studio 是 GUI-first。它的核心承諾是「不打開終端機也能玩本地 LLM」、特別適合對 Hugging Face model hub（社群最大的開源模型 registry、提供權重檔下載與比較）、<a href="/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">量化</a>等級、<a href="/blog/llm/knowledge-cards/speculative-decoding/" data-link-title="Speculative Decoding" data-link-desc="用小模型猜未來 token、大模型並行驗證的加速技巧">speculative decoding</a> 還在摸索階段的使用者。</p>
<p>對寫 code 場景來說，LM Studio 不一定是日常主力（Ollama 通常更穩、生態更成熟），但它在「探索新模型」「視覺化看推論參數」「拿來教其他人本地 LLM」這幾個情境上明顯佔優勢。本章說明它的安裝、模型瀏覽器、server 模式啟用，以及跟 Ollama 並存的配置。</p>
<h2 id="本章目標">本章目標</h2>
<p>讀完本章後，你應該能：</p>
<ol>
<li>安裝 LM Studio 並下載第一個模型。</li>
<li>在 GUI 跟模型對話、調整參數。</li>
<li>啟用 LM Studio 的 OpenAI 相容 server 模式。</li>
<li>判斷你的工作流適不適合用 LM Studio 當主力。</li>
<li>讓 LM Studio 與 Ollama 並存。</li>
</ol>
<h2 id="安裝">安裝</h2>
<p>LM Studio 是商業軟體（個人使用免費），不在 Homebrew core repo 裡。直接從官網下載：</p>
<ol>
<li>開 <a href="https://lmstudio.ai">lmstudio.ai</a></li>
<li>下載 macOS（Apple Silicon）版本</li>
<li>把 LM Studio.app 拖到 Applications</li>
<li>第一次開啟會被 macOS 安全提示擋，到「系統設定 &gt; 隱私權與安全性」放行</li>
</ol>
<p>裝完開啟 app，會看到三個主要分頁：</p>
<ul>
<li><strong>Discover</strong>：搜尋 Hugging Face model hub、下載模型</li>
<li><strong>My Models</strong>：管理已下載模型</li>
<li><strong>Chat / Developer</strong>：跟模型對話、啟用 server</li>
</ul>
<h2 id="下載第一個模型">下載第一個模型</h2>
<p>Discover 分頁把 Hugging Face 模型搜尋、<a href="/blog/llm/knowledge-cards/quantization/" data-link-title="Quantization" data-link-desc="用較少 bits 表示模型權重：壓縮記憶體佔用、加快生字速度，代價是少量品質衰減">量化等級</a>挑選、記憶體適配判讀集中在同一個面板。在 Discover 分頁搜尋模型名（例如 <code>gemma-4</code>）、會列出 Hugging Face 上的對應 repo：</p>
<table>
  <thead>
      <tr>
          <th>顯示資訊</th>
          <th>解讀</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Repo 名稱</td>
          <td>例如 <code>bartowski/gemma-4-31b-it-GGUF</code></td>
      </tr>
      <tr>
          <td>量化等級</td>
          <td>Q4_K_M、Q5_K_M、Q8 等，列在每個檔案旁邊</td>
      </tr>
      <tr>
          <td>檔案大小</td>
          <td>直接顯示 GB 數，方便判斷是否塞得進記憶體</td>
      </tr>
      <tr>
          <td>適配建議</td>
          <td>LM Studio 會根據你 Mac 記憶體標「Recommended / Too Large」</td>
      </tr>
  </tbody>
</table>
<p>選一個合適量化等級點下載。Q4_K_M 在多數場景是甜蜜點；32GB Mac 跑 31B Q5_K_M 也順暢。下載中可以繼續操作其他功能。</p>
<p>陷阱：</p>
<ol>
<li><strong>Repo 來源要看</strong>。Hugging Face 上同一個模型有多個社群重新封裝的 repo。<code>google/gemma-4-...</code> 是官方 repo；<code>bartowski/...</code> 等是社群常見的高品質 quant 提供者。挑下載量高、最近更新的 repo 較安全。完整的供應鏈信任判讀（量化版本污染、權重完整性、registry 信任）見 <a href="/blog/llm/06-security/model-supply-chain-trust/" data-link-title="6.0 模型供應鏈與信任邊界" data-link-desc="個人 dev 用本地 LLM 時的模型權重來源信任：GGUF 完整性、Hugging Face / Ollama registry 信任、量化版本污染、檔案完整性檢查">6.0 模型供應鏈與信任邊界</a>。</li>
<li><strong>不是所有檔案都要下載</strong>。一個 repo 可能有 5 ~ 10 個量化檔案，下載你選的那個就好。LM Studio UI 有時讓人誤以為要全選。</li>
<li><strong>下載完成後檢查路徑</strong>：預設下載到 <code>~/.cache/lm-studio/models/</code>、跟 Ollama 的 <code>~/.ollama/models/</code> 分開。兩邊 model storage 各自獨立、想在兩個伺服器都用同一個模型要分別下載。</li>
</ol>
<h2 id="chat-分頁與推論參數調整">Chat 分頁與推論參數調整</h2>
<p>下載完到 Chat 分頁、左上角 model selector 選剛下載的模型。LM Studio 會把模型載入記憶體（30 ~ 60 秒）、然後就能對話。</p>
<p>右側面板提供推論參數調整：</p>
<table>
  <thead>
      <tr>
          <th>參數</th>
          <th>預設</th>
          <th>何時調整</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Temperature</td>
          <td>0.7</td>
          <td>寫 code 建議 0.2 ~ 0.4 增加確定性</td>
      </tr>
      <tr>
          <td>Top-K</td>
          <td>40</td>
          <td>通常不動</td>
      </tr>
      <tr>
          <td>Top-P</td>
          <td>0.95</td>
          <td>通常不動</td>
      </tr>
      <tr>
          <td>Repeat Penalty</td>
          <td>1.1</td>
          <td>模型一直重複時微調</td>
      </tr>
      <tr>
          <td>Context Length</td>
          <td>模型支援的最大值</td>
          <td>短 context 任務可以調小省記憶體</td>
      </tr>
      <tr>
          <td>GPU Offload Layers</td>
          <td>Auto</td>
          <td>M-series Mac 留 Auto，Apple Silicon 是統一記憶體</td>
      </tr>
  </tbody>
</table>
<p>對寫 code 場景的關鍵調整是 <strong>Temperature 降到 0.2 ~ 0.4</strong>，可以讓回答更穩定、減少幻覺。預設 0.7 是給創意寫作的設定。</p>
<h2 id="speculative-decoding-設定面板">Speculative decoding 設定面板</h2>
<p>LM Studio 內建 <a href="/blog/llm/knowledge-cards/speculative-decoding/" data-link-title="Speculative Decoding" data-link-desc="用小模型猜未來 token、大模型並行驗證的加速技巧">speculative decoding</a> 的 UI 設定。在 model 載入頁面下方有 <strong>Draft Model</strong> 設定區：</p>
<ol>
<li>選 target model（主力，例如 Gemma 4 31B）</li>
<li>選 draft model（小模型，例如 Gemma 4 E4B）</li>
<li>啟用 speculative decoding</li>
</ol>
<p><a href="/blog/llm/knowledge-cards/speculative-decoding/" data-link-title="Speculative Decoding" data-link-desc="用小模型猜未來 token、大模型並行驗證的加速技巧">Speculative decoding</a> 真的加速需要 target 與 <a href="/blog/llm/knowledge-cards/drafter-model/" data-link-title="Drafter Model" data-link-desc="speculative decoding 中用來快速猜未來 token 的小模型">drafter</a> 用同一個 tokenizer。Gemma 4 31B 配 Gemma 4 E4B 可以工作；Gemma 4 配 Llama 因 tokenizer 不同無法配對。LM Studio UI 會自動過濾相容的 draft 候選。</p>
<p>跟 Ollama 比，LM Studio 的優勢是「能看到並調整每個推論細節」。劣勢是「Gemma 4 的官方 MTP drafter 整合不是一鍵」，要自己挑 draft model。多數使用者用 Ollama 的 <code>gemma4:31b-coding-mtp-bf16</code> 一行解決就好；想自己組合 target + drafter 的進階使用者選 LM Studio。</p>
<h2 id="啟用-server-模式">啟用 Server 模式</h2>
<p>Server 模式是 LM Studio 暴露 OpenAI 相容 API 的開關、預設關閉以避免 GUI 使用者誤開網路 port。讓 VS Code 等介面層接 LM Studio、要開 <strong>Local Server</strong> 模式：</p>
<ol>
<li>切到 Developer 分頁（左側 icon 像 <code>&lt;/&gt;</code>）</li>
<li>在頂部 model selector 選要 serve 的模型</li>
<li>點 <strong>Start Server</strong></li>
</ol>
<p>預設聽 <code>localhost:1234</code>，提供 OpenAI 相容 API。</p>
<p>驗證：</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">curl http://localhost:1234/v1/chat/completions <span class="se">\
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="se"></span>  -H <span class="s2">&#34;Content-Type: application/json&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="se"></span>  -d <span class="s1">&#39;{
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="s1">    &#34;model&#34;: &#34;gemma-4-31b-it&#34;,
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="s1">    &#34;messages&#34;: [{&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: &#34;Hello&#34;}],
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="s1">    &#34;stream&#34;: false
</span></span></span><span class="line"><span class="ln">7</span><span class="cl"><span class="s1">  }&#39;</span></span></span></code></pre></div><p>回應的 JSON 應該包含 <code>choices[0].message.content</code>。</p>
<p>陷阱：</p>
<ol>
<li><strong>Server 跟 GUI 同生命週期</strong>。關閉 LM Studio 視窗或登出 macOS 會停止 server、IDE 連不上。修法：日常常駐改用 <a href="/blog/llm/01-local-llm-services/ollama/#%e8%83%8c%e6%99%af%e5%b8%b8%e9%a7%90launchd-service" data-link-title="1.0 Ollama：主流推論伺服器" data-link-desc="一行 brew 裝完、ollama run 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on localhost:11434">Ollama 的 launchd service 模式</a>、LM Studio 只在桌面 session 啟動探索。</li>
<li><strong>CORS 預設關</strong>。要從瀏覽器（如 Open WebUI 跑在不同 port）連，要去 Server 設定打開 CORS。</li>
<li><strong>Model name 不是 tag</strong>。LM Studio 在 API 用的 model name 是檔名（如 <code>gemma-4-31b-it</code>），跟 Ollama 的 tag 格式不同。</li>
</ol>
<h2 id="與-ollama-並存">與 Ollama 並存</h2>
<p>LM Studio（port 1234）跟 Ollama（port 11434）port 不同，可以同時跑。在 Continue.dev 的 <code>config.json</code> 可以同時列：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="nt">&#34;models&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">      <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;Ollama: Gemma 4 31B MTP&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">      <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;ollama&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">      <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;gemma4:31b-coding-mtp-bf16&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">      <span class="nt">&#34;apiBase&#34;</span><span class="p">:</span> <span class="s2">&#34;http://localhost:11434&#34;</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">    <span class="p">},</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">      <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;LM Studio: Qwen3-Coder 30B&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl">      <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;openai&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">12</span><span class="cl">      <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;qwen3-coder-30b&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">13</span><span class="cl">      <span class="nt">&#34;apiBase&#34;</span><span class="p">:</span> <span class="s2">&#34;http://localhost:1234/v1&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln">14</span><span class="cl">      <span class="nt">&#34;apiKey&#34;</span><span class="p">:</span> <span class="s2">&#34;not-needed&#34;</span>
</span></span><span class="line"><span class="ln">15</span><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="ln">16</span><span class="cl">  <span class="p">]</span>
</span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>UI 上可以下拉切換 model。這個設計讓你「Ollama 跑主力、LM Studio 跑實驗模型」，兩條工作流不互相干擾。</p>
<h2 id="lm-studio-適合誰">LM Studio 適合誰</h2>
<table>
  <thead>
      <tr>
          <th>你是這樣的人</th>
          <th>LM Studio 適合度</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GUI 派、不愛打 CLI</td>
          <td>高</td>
      </tr>
      <tr>
          <td>想看推論參數細節並調整</td>
          <td>高</td>
      </tr>
      <tr>
          <td>想頻繁探索 Hugging Face 上新模型</td>
          <td>高</td>
      </tr>
      <tr>
          <td>想自己組合 target + drafter</td>
          <td>高</td>
      </tr>
      <tr>
          <td>想 server 隨開機常駐</td>
          <td>低（GUI app 不適合 daemon）</td>
      </tr>
      <tr>
          <td>想跟 Anthropic Claude Code 等工具整合</td>
          <td>中（API 相容但 model name 規則不同）</td>
      </tr>
      <tr>
          <td>已經習慣 Ollama CLI</td>
          <td>低（除非有探索需求）</td>
      </tr>
  </tbody>
</table>
<p>簡單的建議：<strong>LM Studio 適合當「副廚」、Ollama 適合當「主廚」</strong>。日常工作流用 Ollama 跑主力模型、需要探索新東西時開 LM Studio。</p>
<h2 id="何時改回-ollama-或-llamacpp">何時改回 Ollama 或 llama.cpp</h2>
<p>LM Studio 的 GUI 定位在以下情境會變成阻礙、建議改用其他伺服器：</p>
<table>
  <thead>
      <tr>
          <th>情境</th>
          <th>建議路由</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Headless 環境（無 GUI 桌機 / 遠端 SSH）</td>
          <td><a href="/blog/llm/01-local-llm-services/ollama/" data-link-title="1.0 Ollama：主流推論伺服器" data-link-desc="一行 brew 裝完、ollama run 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on localhost:11434">Ollama</a> — CLI-first、能用 launchd / systemd 跑</td>
      </tr>
      <tr>
          <td>CI / 自動化跑 batch 推論</td>
          <td>Ollama 或 llama-server — 可用 systemd / Docker 起、不依賴 GUI session</td>
      </tr>
      <tr>
          <td>需要 daemon 24/7 常駐</td>
          <td>Ollama 配 <a href="/blog/llm/knowledge-cards/launchd-service/" data-link-title="launchd Service" data-link-desc="macOS 原生的服務管理機制、把 process 註冊成自動啟動的 daemon 或 agent">launchd service</a> — LM Studio 視窗關閉 server 就停</td>
      </tr>
      <tr>
          <td>自己量化模型 / 跑特殊冷門模型</td>
          <td><a href="/blog/llm/01-local-llm-services/llama-cpp/" data-link-title="1.2 llama.cpp：底層推論引擎" data-link-desc="GGUF 格式、量化、MTP 仍 beta；多數讀者不需要直接接觸，Ollama 已經包好">llama.cpp</a> — 直接面對 GGUF / quantize 工具</td>
      </tr>
      <tr>
          <td>想用 Ollama Library 的 1-tag 即裝</td>
          <td>Ollama — <code>ollama run gemma4:31b-coding-mtp-bf16</code> 已內含 MTP drafter、LM Studio 需手動挑 draft model</td>
      </tr>
  </tbody>
</table>
<p>LM Studio 的最佳定位是「需要 GUI、桌面 session 內探索、有人在電腦前操作」的場景；任何「沒人看著 / 後台跑 / 跨機器 daemon」的需求、Ollama 通常更穩。</p>
<h2 id="跟-anthropic-claude-api-的對比">跟 Anthropic Claude API 的對比</h2>
<p>如果你習慣 Claude 的工具用法（Anthropic Console、Claude Code）、LM Studio 的 GUI 體驗比較像 Anthropic Console：可以調 system prompt、看 token 計數、儲存對話。兩者都用 <a href="/blog/llm/00-foundations/openai-compatible-api/" data-link-title="0.3 OpenAI 相容 API" data-link-desc="為什麼幾乎所有本地 LLM 工具不用改就能切到本地：背後是同一套 API 形狀">OpenAI 相容 API</a> 形狀（Anthropic 自有 messages API 是另一條路徑、LM Studio 不接 Anthropic 格式）。差別是：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>Anthropic Console</th>
          <th>LM Studio</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>模型</td>
          <td>Claude Sonnet、Opus、Haiku（雲端）</td>
          <td>自己下載的本地模型</td>
      </tr>
      <tr>
          <td>隱私</td>
          <td>走 Anthropic 雲端</td>
          <td>完全本地</td>
      </tr>
      <tr>
          <td>計費</td>
          <td>按 token 計費</td>
          <td>一次性硬體</td>
      </tr>
      <tr>
          <td>進階功能</td>
          <td>Tools、Vision、Computer Use 完整</td>
          <td>視模型而定，多半較陽春</td>
      </tr>
      <tr>
          <td>Streaming UI</td>
          <td>流暢</td>
          <td>流暢</td>
      </tr>
      <tr>
          <td>Prompt 偵錯</td>
          <td>Workbench 完整</td>
          <td>Chat / Developer 分頁可調參數</td>
      </tr>
  </tbody>
</table>
<p>LM Studio 對寫 code 場景不是 Anthropic Console 的替代品，但作為「本地版 console」的體驗很完整。</p>
<h2 id="下一章">下一章</h2>
<p>下一章：<a href="/blog/llm/01-local-llm-services/llama-cpp/" data-link-title="1.2 llama.cpp：底層推論引擎" data-link-desc="GGUF 格式、量化、MTP 仍 beta；多數讀者不需要直接接觸，Ollama 已經包好">1.2 llama.cpp 底層引擎</a>，澄清網路上「llama.cpp 才是真本地」這類迷思。</p>
]]></content:encoded></item><item><title>模組一：本地 LLM 服務的安裝與應用</title><link>https://tarrragon.github.io/blog/llm/01-local-llm-services/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/01-local-llm-services/</guid><description>&lt;p>本模組的核心目標是把 &lt;a href="https://tarrragon.github.io/blog/llm/00-foundations/" data-link-title="模組零：基礎知識與心智模型" data-link-desc="建立本地 LLM 的心智模型、釐清 MLX / MTP / oMLX 等常被混淆的術語、Apple Silicon 記憶體現實">模組零&lt;/a> 的心智模型落地到實際安裝步驟與工作流。網路上多數本地 LLM 教學是「列三個工具裝法」，缺乏選型脈絡與期望管理；本模組會先回答「為什麼選這個」，再給「怎麼裝」與「裝完之後該調哪些設定」。&lt;/p>
&lt;p>讀完本模組後，你應該能在自己的 Mac 上裝好一個本地 LLM 工作流，並知道它的能力邊界、什麼時候該切回雲端。&lt;/p>
&lt;h2 id="章節列表">章節列表&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>章節&lt;/th>
 &lt;th>主題&lt;/th>
 &lt;th>關鍵收穫&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/ollama/" data-link-title="1.0 Ollama：主流推論伺服器" data-link-desc="一行 brew 裝完、ollama run 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on localhost:11434">1.0&lt;/a>&lt;/td>
 &lt;td>Ollama：主流推論伺服器&lt;/td>
 &lt;td>一行 brew 裝完、&lt;code>ollama run&lt;/code> 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on 11434&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/lm-studio/" data-link-title="1.1 LM Studio：GUI 探索模型" data-link-desc="GUI 取向的本地推論伺服器：內建模型瀏覽器、speculative decoding 設定面板、適合探索新模型">1.1&lt;/a>&lt;/td>
 &lt;td>LM Studio：GUI 探索模型&lt;/td>
 &lt;td>內建模型瀏覽器、speculative decoding 設定面板、適合探索新模型&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/llama-cpp/" data-link-title="1.2 llama.cpp：底層推論引擎" data-link-desc="GGUF 格式、量化、MTP 仍 beta；多數讀者不需要直接接觸，Ollama 已經包好">1.2&lt;/a>&lt;/td>
 &lt;td>llama.cpp：底層引擎&lt;/td>
 &lt;td>直接面對 GGUF 與量化選項、MTP 仍 beta、需要進階設定&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/vscode-continue-integration/" data-link-title="1.3 VS Code &amp;#43; Continue.dev 整合" data-link-desc="安裝 Continue 擴充套件、config.json 設定、Cmd&amp;#43;L 對話 / Cmd&amp;#43;I 行內編輯快捷鍵">1.3&lt;/a>&lt;/td>
 &lt;td>VS Code + Continue.dev 整合&lt;/td>
 &lt;td>安裝擴充套件、config.json 設定、Cmd+L / Cmd+I 快捷鍵&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/model-selection-priority/" data-link-title="1.4 寫 code 場景的模型選型優先順序" data-link-desc="Gemma 4 31B MTP → Qwen3-Coder 30B → Qwen3 14B → gpt-oss 20B 的取捨與適用情境">1.4&lt;/a>&lt;/td>
 &lt;td>寫 code 場景的模型選型優先順序&lt;/td>
 &lt;td>Gemma 4 31B MTP → Qwen3-Coder 30B → Qwen3 14B → gpt-oss 20B 的取捨理由&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/expectation-management/" data-link-title="1.5 期望管理：本地 LLM 的擅長領域與分工" data-link-desc="本地 LLM 是免費的初階 pair programmer：辨識它的擅長領域、跟雲端旗艦做結構性分工">1.5&lt;/a>&lt;/td>
 &lt;td>期望管理：本地 LLM 的擅長領域與分工&lt;/td>
 &lt;td>本地是免費的初階 pair programmer，不是 Claude 替代品；混用是現階段正解&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/extension-paths/" data-link-title="1.6 延伸方向：Web UI、coding agent、產圖" data-link-desc="日常路徑跑穩後可以玩的延伸：Open WebUI、aider、ComfyUI；先把基底跑穩再進階">1.6&lt;/a>&lt;/td>
 &lt;td>延伸方向：Web UI、coding agent、產圖&lt;/td>
 &lt;td>先把寫 code 跑穩，再評估 Open WebUI、aider 等延伸；產圖另闢戰場&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/troubleshooting/" data-link-title="1.7 排錯方法論：用三層架構做故障定位" data-link-desc="故障定位的分層思考、症狀到層級的對應反射、log 在三層的角色差異、最小可重現的縮減策略">1.7&lt;/a>&lt;/td>
 &lt;td>排錯方法論：用三層架構做故障定位&lt;/td>
 &lt;td>先定位哪一層壞、log 角色差異、最小可重現、跨層級誤判模式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/hands-on/" data-link-title="Hands-on：本地 AI 工具實作筆記" data-link-desc="Ollama / ComfyUI / Whisper / Piper TTS：實際安裝、驗證、跑通的紀錄。隨工具版本演化、跟 1.x 原理章節互補。">Hands-on&lt;/a>&lt;/td>
 &lt;td>實作筆記：Ollama / ComfyUI / Whisper / Piper TTS / RAG / MCP&lt;/td>
 &lt;td>實際安裝指令、驗證流程、跟 1.x 原理章節互補的當下快照&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="推論伺服器選型總表">推論伺服器選型總表&lt;/h2>
&lt;p>模組零已建立的三層架構視角告訴你 Ollama、LM Studio、llama.cpp 都屬於&lt;strong>伺服器層&lt;/strong>。本模組要回答的是這三者的具體差異：&lt;/p></description><content:encoded><![CDATA[<p>本模組的核心目標是把 <a href="/blog/llm/00-foundations/" data-link-title="模組零：基礎知識與心智模型" data-link-desc="建立本地 LLM 的心智模型、釐清 MLX / MTP / oMLX 等常被混淆的術語、Apple Silicon 記憶體現實">模組零</a> 的心智模型落地到實際安裝步驟與工作流。網路上多數本地 LLM 教學是「列三個工具裝法」，缺乏選型脈絡與期望管理；本模組會先回答「為什麼選這個」，再給「怎麼裝」與「裝完之後該調哪些設定」。</p>
<p>讀完本模組後，你應該能在自己的 Mac 上裝好一個本地 LLM 工作流，並知道它的能力邊界、什麼時候該切回雲端。</p>
<h2 id="章節列表">章節列表</h2>
<table>
  <thead>
      <tr>
          <th>章節</th>
          <th>主題</th>
          <th>關鍵收穫</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/ollama/" data-link-title="1.0 Ollama：主流推論伺服器" data-link-desc="一行 brew 裝完、ollama run 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on localhost:11434">1.0</a></td>
          <td>Ollama：主流推論伺服器</td>
          <td>一行 brew 裝完、<code>ollama run</code> 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on 11434</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/lm-studio/" data-link-title="1.1 LM Studio：GUI 探索模型" data-link-desc="GUI 取向的本地推論伺服器：內建模型瀏覽器、speculative decoding 設定面板、適合探索新模型">1.1</a></td>
          <td>LM Studio：GUI 探索模型</td>
          <td>內建模型瀏覽器、speculative decoding 設定面板、適合探索新模型</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/llama-cpp/" data-link-title="1.2 llama.cpp：底層推論引擎" data-link-desc="GGUF 格式、量化、MTP 仍 beta；多數讀者不需要直接接觸，Ollama 已經包好">1.2</a></td>
          <td>llama.cpp：底層引擎</td>
          <td>直接面對 GGUF 與量化選項、MTP 仍 beta、需要進階設定</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/vscode-continue-integration/" data-link-title="1.3 VS Code &#43; Continue.dev 整合" data-link-desc="安裝 Continue 擴充套件、config.json 設定、Cmd&#43;L 對話 / Cmd&#43;I 行內編輯快捷鍵">1.3</a></td>
          <td>VS Code + Continue.dev 整合</td>
          <td>安裝擴充套件、config.json 設定、Cmd+L / Cmd+I 快捷鍵</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/model-selection-priority/" data-link-title="1.4 寫 code 場景的模型選型優先順序" data-link-desc="Gemma 4 31B MTP → Qwen3-Coder 30B → Qwen3 14B → gpt-oss 20B 的取捨與適用情境">1.4</a></td>
          <td>寫 code 場景的模型選型優先順序</td>
          <td>Gemma 4 31B MTP → Qwen3-Coder 30B → Qwen3 14B → gpt-oss 20B 的取捨理由</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/expectation-management/" data-link-title="1.5 期望管理：本地 LLM 的擅長領域與分工" data-link-desc="本地 LLM 是免費的初階 pair programmer：辨識它的擅長領域、跟雲端旗艦做結構性分工">1.5</a></td>
          <td>期望管理：本地 LLM 的擅長領域與分工</td>
          <td>本地是免費的初階 pair programmer，不是 Claude 替代品；混用是現階段正解</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/extension-paths/" data-link-title="1.6 延伸方向：Web UI、coding agent、產圖" data-link-desc="日常路徑跑穩後可以玩的延伸：Open WebUI、aider、ComfyUI；先把基底跑穩再進階">1.6</a></td>
          <td>延伸方向：Web UI、coding agent、產圖</td>
          <td>先把寫 code 跑穩，再評估 Open WebUI、aider 等延伸；產圖另闢戰場</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/troubleshooting/" data-link-title="1.7 排錯方法論：用三層架構做故障定位" data-link-desc="故障定位的分層思考、症狀到層級的對應反射、log 在三層的角色差異、最小可重現的縮減策略">1.7</a></td>
          <td>排錯方法論：用三層架構做故障定位</td>
          <td>先定位哪一層壞、log 角色差異、最小可重現、跨層級誤判模式</td>
      </tr>
      <tr>
          <td><a href="/blog/llm/01-local-llm-services/hands-on/" data-link-title="Hands-on：本地 AI 工具實作筆記" data-link-desc="Ollama / ComfyUI / Whisper / Piper TTS：實際安裝、驗證、跑通的紀錄。隨工具版本演化、跟 1.x 原理章節互補。">Hands-on</a></td>
          <td>實作筆記：Ollama / ComfyUI / Whisper / Piper TTS / RAG / MCP</td>
          <td>實際安裝指令、驗證流程、跟 1.x 原理章節互補的當下快照</td>
      </tr>
  </tbody>
</table>
<h2 id="推論伺服器選型總表">推論伺服器選型總表</h2>
<p>模組零已建立的三層架構視角告訴你 Ollama、LM Studio、llama.cpp 都屬於<strong>伺服器層</strong>。本模組要回答的是這三者的具體差異：</p>
<table>
  <thead>
      <tr>
          <th>維度</th>
          <th>Ollama</th>
          <th>LM Studio</th>
          <th>llama.cpp</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>介面</td>
          <td>CLI + REST API</td>
          <td>GUI + REST API</td>
          <td>CLI only（server 子命令需自編譯）</td>
      </tr>
      <tr>
          <td>學習曲線</td>
          <td>低（一行裝完）</td>
          <td>低（一鍵安裝）</td>
          <td>中高（編譯、量化、參數要自己選）</td>
      </tr>
      <tr>
          <td>模型瀏覽器</td>
          <td>命令列 <code>ollama list</code>，registry 在網頁</td>
          <td>GUI 內建，直接搜尋下載</td>
          <td>沒有，要自己去 Hugging Face 下載</td>
      </tr>
      <tr>
          <td>Gemma 4 MTP（2026/5）</td>
          <td>v0.23.1 內建</td>
          <td>支援，要在 UI 開啟 speculative</td>
          <td>仍 beta，drafter 整合是 feature request</td>
      </tr>
      <tr>
          <td>適合誰</td>
          <td>多數工程師、想快速開始</td>
          <td>GUI 派、探索模型階段</td>
          <td>進階使用者、研究、特殊量化</td>
      </tr>
      <tr>
          <td>同台共存</td>
          <td>可以，預設 port 11434</td>
          <td>可以，預設 port 1234</td>
          <td>可以，預設 port 8080</td>
      </tr>
  </tbody>
</table>
<p>讀完本表後的決策建議是：<strong>先裝 Ollama，跑穩後再評估其他</strong>。LM Studio 可以同時裝來探索模型，但日常主力建議 Ollama；llama.cpp 暫時不需要直接接觸（Ollama 內部已經用 llama.cpp）。</p>
<h2 id="為什麼這個順序">為什麼這個順序</h2>
<p>本模組章節順序的設計脈絡：</p>
<ol>
<li><strong>先 1.0 Ollama</strong>：學習曲線最低、生態最成熟、Gemma 4 MTP 一鍵支援。多數讀者裝完這個就能開始用。</li>
<li><strong>再 1.1 LM Studio</strong>：給「想要可視化探索」的讀者另一條路；也可以跟 Ollama 並存。</li>
<li><strong>接 1.2 llama.cpp</strong>：澄清網路上「llama.cpp 才是真本地」的迷思，給進階讀者完整背景。</li>
<li><strong>再 1.3 VS Code + Continue.dev</strong>：把伺服器接到日常工作環境，這才是寫 code 的真正起點。</li>
<li><strong>然後 1.4 模型選型</strong>：伺服器跑起來後該裝哪個模型，給優先順序。</li>
<li><strong>再 1.5 期望管理</strong>：用一週後該怎麼判斷「值不值得繼續用」「什麼時候切雲端」。</li>
<li><strong>最後 1.6 延伸方向</strong>：日常路徑穩了再玩 Web UI、coding agent、產圖。</li>
</ol>
<p>每一章可以單獨讀，但若你是第一次接觸本地 LLM，照順序讀最不容易迷路。</p>
<h2 id="一個小時的最短路徑">一個小時的最短路徑</h2>
<p>如果你沒時間讀完整本模組、只想用一小時搞定本地 LLM 寫 code 的最基本工作流，下面是最短路徑：</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"><span class="c1"># 1. 裝 Ollama（5 分鐘）</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">brew install ollama
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">ollama serve <span class="p">&amp;</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="c1"># 2. 拉模型（首次下載約 20 ~ 30 分鐘，看網速）</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">ollama run gemma4:31b-coding-mtp-bf16
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">
</span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="c1"># 3. 在 VS Code 裝 Continue 擴充套件（2 分鐘）</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl"><span class="c1"># 4. 設定 ~/.continue/config.json（5 分鐘）</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="c1"># 5. 試用 Cmd+L（對話）、Cmd+I（行內編輯）（剩下時間）</span></span></span></code></pre></div><p>需要 32GB+ Mac 才能流暢跑這個 model；16GB / 24GB 請改用 <a href="/blog/llm/01-local-llm-services/model-selection-priority/" data-link-title="1.4 寫 code 場景的模型選型優先順序" data-link-desc="Gemma 4 31B MTP → Qwen3-Coder 30B → Qwen3 14B → gpt-oss 20B 的取捨與適用情境">1.4 模型選型</a> 的對照表選對應大小的模型。完整步驟在 <a href="/blog/llm/01-local-llm-services/ollama/" data-link-title="1.0 Ollama：主流推論伺服器" data-link-desc="一行 brew 裝完、ollama run 一鍵跑 Gemma 4 MTP、OpenAI 相容 API on localhost:11434">1.0 Ollama</a> 跟 <a href="/blog/llm/01-local-llm-services/vscode-continue-integration/" data-link-title="1.3 VS Code &#43; Continue.dev 整合" data-link-desc="安裝 Continue 擴充套件、config.json 設定、Cmd&#43;L 對話 / Cmd&#43;I 行內編輯快捷鍵">1.3 VS Code + Continue.dev</a>。</p>
<h2 id="跑穩之後該做什麼">跑穩之後該做什麼</h2>
<p>裝完不是終點。本地 LLM 跟雲端的差別在於「需要持續調教」。跑穩後建議的後續工作：</p>
<ol>
<li><strong>用一週實測</strong>：把日常工作流真實餵進去、記錄通過率與痛點、用真實任務當判讀依據而非示範任務。</li>
<li><strong>建立切換習慣</strong>：明確哪些任務交給本地、哪些切雲端。詳見 <a href="/blog/llm/01-local-llm-services/expectation-management/" data-link-title="1.5 期望管理：本地 LLM 的擅長領域與分工" data-link-desc="本地 LLM 是免費的初階 pair programmer：辨識它的擅長領域、跟雲端旗艦做結構性分工">1.5 期望管理</a>。</li>
<li><strong>觀察記憶體與發熱</strong>：開 Activity Monitor 看記憶體 swap 狀態、機殼溫度是否過高。</li>
<li><strong>追新模型</strong>：本地模型發布速度很快、每 2 ~ 3 個月會有新候選、值得追蹤。</li>
<li><strong>判斷是否升級硬體</strong>：用一個月後若限制都來自記憶體、再評估升級 Mac；先確認痛點再投資硬體。</li>
</ol>
<h2 id="不在本模組內的主題">不在本模組內的主題</h2>
<p>本模組不討論：</p>
<ol>
<li>訓練、fine-tuning、LoRA 微調 — 跟「跑現成模型」是不同的工程問題。</li>
<li>部署到雲端 GPU、Linux server — 本指南範圍只在 Apple Silicon Mac。</li>
<li>Cursor、Windsurf、Cline 等其他 IDE 整合 — Continue.dev 是與本地 LLM 整合最成熟的選擇，其他工具的整合度視版本而定。</li>
<li>詳細的 benchmark 跑分方法 — 本指南只引用官方數據，自己跑分屬於另一個工程主題。</li>
</ol>
<p>需要這些主題時請另尋專門資源；硬塞進來只會讓「Mac 本地寫 code」這條最短路徑被淹沒。</p>
]]></content:encoded></item><item><title>5.4 LM Studio 在 Windows</title><link>https://tarrragon.github.io/blog/llm/05-discrete-gpu/lm-studio-on-windows/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/llm/05-discrete-gpu/lm-studio-on-windows/</guid><description>&lt;p>LM Studio 在 PC 場景的價值是「不打開終端機也能調 &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 跑得了更大模型">MoE 卸載&lt;/a> 與 KV cache 量化」。本章不重複 &lt;a href="https://tarrragon.github.io/blog/llm/01-local-llm-services/lm-studio/" data-link-title="1.1 LM Studio：GUI 探索模型" data-link-desc="GUI 取向的本地推論伺服器：內建模型瀏覽器、speculative decoding 設定面板、適合探索新模型">Mac 版 LM Studio&lt;/a> 的基本定位、改聚焦 Windows + 獨立 GPU 場景的特有設定：CUDA / ROCm backend 選擇、GUI 內對應 &lt;a href="https://tarrragon.github.io/blog/llm/05-discrete-gpu/moe-cpu-offload-strategy/" data-link-title="5.1 MoE 模型與 CPU 卸載策略" data-link-desc="PC 場景把 MoE 不活躍專家層留在系統 RAM 的判讀：何時值得卸載、卸幾層、對 prefill 跟生成的影響各自不同">5.1 MoE 卸載&lt;/a> / &lt;a href="https://tarrragon.github.io/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 量化&lt;/a> 旗標的位置。LM Studio 跟 Ollama、llama-server 一樣屬於 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/inference-server/" data-link-title="Inference Server" data-link-desc="載入模型權重、處理 prompt、產生 token 的常駐 process">推論伺服器&lt;/a> 層、對外提供 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/openai-compatible-api/" data-link-title="OpenAI 相容 API" data-link-desc="本地推論伺服器跟雲端 OpenAI 共用的 API 形狀標準">OpenAI 相容 API&lt;/a>。&lt;/p>
&lt;p>讀完本章後、你應該能在 Windows 上：選對 LM Studio 的 GPU backend、在 GUI 內設定卸載層數與 KV cache 量化、啟動 OpenAI 相容 server、接到 VS Code Continue.dev。&lt;/p>
&lt;h2 id="本章目標">本章目標&lt;/h2>
&lt;ol>
&lt;li>在 Windows 上安裝 LM Studio、選對 GPU backend。&lt;/li>
&lt;li>知道 GUI 設定面板的哪幾個欄位對應 llama.cpp 的核心旗標。&lt;/li>
&lt;li>啟動 LM Studio 的本地 server、提供 OpenAI 相容 API。&lt;/li>
&lt;li>判斷你的工作流適不適合用 LM Studio 當主力。&lt;/li>
&lt;li>處理常見的 Windows + GPU 整合議題（driver 版本、CUDA toolkit）。&lt;/li>
&lt;/ol>
&lt;h2 id="安裝">安裝&lt;/h2>
&lt;p>LM Studio 是 Electron 桌面 app、個人使用免費、Windows / Linux / macOS 三平台都支援。從 &lt;a href="https://lmstudio.ai">lmstudio.ai 官網&lt;/a> 下載對應系統的安裝檔即可。&lt;/p>
&lt;p>Windows 版的安裝步驟：&lt;/p>
&lt;ol>
&lt;li>下載 &lt;code>.exe&lt;/code> 安裝程式、執行安裝（不需 admin 權限的情況下會裝在使用者目錄）。&lt;/li>
&lt;li>首次啟動時、LM Studio 會偵測 GPU 並提示選擇 backend。&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>&lt;strong>事實查核註&lt;/strong>：LM Studio 是商業軟體、UI 跟功能會隨版本變化。本章描述以 2026 年 5 月的穩定版為基準、實際 UI 元素位置以當前版本為準。&lt;/p>&lt;/blockquote>
&lt;h2 id="gpu-backend-選擇">GPU backend 選擇&lt;/h2>
&lt;p>LM Studio 在 Windows 上的 &lt;a href="https://tarrragon.github.io/blog/llm/knowledge-cards/gpu-compute-backend/" data-link-title="GPU Compute Backend" data-link-desc="GPU 加速計算的底層 API 介面（CUDA / ROCm / Vulkan / Metal / SYCL）、決定推論軟體能否用 GPU 跑得快">GPU compute backend&lt;/a> 選項依 GPU 廠商不同：&lt;/p></description><content:encoded><![CDATA[<p>LM Studio 在 PC 場景的價值是「不打開終端機也能調 <a href="/blog/llm/knowledge-cards/moe-cpu-offload/" data-link-title="MoE CPU 卸載" data-link-desc="把 Mixture-of-Experts 模型不活躍的專家層權重放在系統 RAM、用到再走 PCIe 拉回 GPU、讓有限 VRAM 跑得了更大模型">MoE 卸載</a> 與 KV cache 量化」。本章不重複 <a href="/blog/llm/01-local-llm-services/lm-studio/" data-link-title="1.1 LM Studio：GUI 探索模型" data-link-desc="GUI 取向的本地推論伺服器：內建模型瀏覽器、speculative decoding 設定面板、適合探索新模型">Mac 版 LM Studio</a> 的基本定位、改聚焦 Windows + 獨立 GPU 場景的特有設定：CUDA / ROCm backend 選擇、GUI 內對應 <a href="/blog/llm/05-discrete-gpu/moe-cpu-offload-strategy/" data-link-title="5.1 MoE 模型與 CPU 卸載策略" data-link-desc="PC 場景把 MoE 不活躍專家層留在系統 RAM 的判讀：何時值得卸載、卸幾層、對 prefill 跟生成的影響各自不同">5.1 MoE 卸載</a> / <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> 旗標的位置。LM Studio 跟 Ollama、llama-server 一樣屬於 <a href="/blog/llm/knowledge-cards/inference-server/" data-link-title="Inference Server" data-link-desc="載入模型權重、處理 prompt、產生 token 的常駐 process">推論伺服器</a> 層、對外提供 <a href="/blog/llm/knowledge-cards/openai-compatible-api/" data-link-title="OpenAI 相容 API" data-link-desc="本地推論伺服器跟雲端 OpenAI 共用的 API 形狀標準">OpenAI 相容 API</a>。</p>
<p>讀完本章後、你應該能在 Windows 上：選對 LM Studio 的 GPU backend、在 GUI 內設定卸載層數與 KV cache 量化、啟動 OpenAI 相容 server、接到 VS Code Continue.dev。</p>
<h2 id="本章目標">本章目標</h2>
<ol>
<li>在 Windows 上安裝 LM Studio、選對 GPU backend。</li>
<li>知道 GUI 設定面板的哪幾個欄位對應 llama.cpp 的核心旗標。</li>
<li>啟動 LM Studio 的本地 server、提供 OpenAI 相容 API。</li>
<li>判斷你的工作流適不適合用 LM Studio 當主力。</li>
<li>處理常見的 Windows + GPU 整合議題（driver 版本、CUDA toolkit）。</li>
</ol>
<h2 id="安裝">安裝</h2>
<p>LM Studio 是 Electron 桌面 app、個人使用免費、Windows / Linux / macOS 三平台都支援。從 <a href="https://lmstudio.ai">lmstudio.ai 官網</a> 下載對應系統的安裝檔即可。</p>
<p>Windows 版的安裝步驟：</p>
<ol>
<li>下載 <code>.exe</code> 安裝程式、執行安裝（不需 admin 權限的情況下會裝在使用者目錄）。</li>
<li>首次啟動時、LM Studio 會偵測 GPU 並提示選擇 backend。</li>
</ol>
<blockquote>
<p><strong>事實查核註</strong>：LM Studio 是商業軟體、UI 跟功能會隨版本變化。本章描述以 2026 年 5 月的穩定版為基準、實際 UI 元素位置以當前版本為準。</p></blockquote>
<h2 id="gpu-backend-選擇">GPU backend 選擇</h2>
<p>LM Studio 在 Windows 上的 <a href="/blog/llm/knowledge-cards/gpu-compute-backend/" data-link-title="GPU Compute Backend" data-link-desc="GPU 加速計算的底層 API 介面（CUDA / ROCm / Vulkan / Metal / SYCL）、決定推論軟體能否用 GPU 跑得快">GPU compute backend</a> 選項依 GPU 廠商不同：</p>
<table>
  <thead>
      <tr>
          <th>GPU 廠商</th>
          <th>可選 backend</th>
          <th>建議起點</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>NVIDIA RTX 系列</td>
          <td>CUDA、Vulkan</td>
          <td>CUDA（成熟度高、社群實測案例多）</td>
      </tr>
      <tr>
          <td>AMD Radeon 系列</td>
          <td>ROCm（部分卡型）、Vulkan、DirectML</td>
          <td>視 GPU 型號與 driver 版本、社群常見從 Vulkan 起步</td>
      </tr>
      <tr>
          <td>Intel ARC</td>
          <td>Vulkan、OpenVINO（部分版本）</td>
          <td>Vulkan 較通用</td>
      </tr>
      <tr>
          <td>整合顯卡 / CPU only</td>
          <td>CPU backend</td>
          <td>模型較小、適合試水溫</td>
      </tr>
  </tbody>
</table>
<p>backend 的切換位置：LM Studio 的設定面板（齒輪圖示）→ Hardware / Runtime 區段、會列出當前可用的 backend 與下載連結。部分 backend 在首次使用時需要下載對應的 runtime（如 CUDA runtime）。</p>
<p>選錯 backend 的常見徵兆：</p>
<ol>
<li><strong>模型載入時間異常長</strong>：可能 fallback 到 CPU、確認 GPU backend 是否正確啟用。</li>
<li><strong>生字速度遠低於同硬體的社群回報</strong>：backend 不對、或 driver 版本不對、或 VRAM 不足而啟用了 CPU offload。</li>
<li><strong>載入時錯誤訊息提到 CUDA 版本不符</strong>：driver 跟 LM Studio 內建的 CUDA runtime 不對齊、需更新 driver 或選擇對應的 LM Studio build。</li>
</ol>
<blockquote>
<p><strong>事實查核註</strong>：各 backend 的可用性跟下載方式依 LM Studio 版本變動、以當前版本的 Hardware / Runtime 設定面板顯示為準。</p></blockquote>
<h2 id="gui-設定對應到-llamacpp-旗標">GUI 設定對應到 llama.cpp 旗標</h2>
<p>LM Studio 在背後使用 llama.cpp、GUI 內的設定欄位通常對應到 llama.cpp 的某個旗標。對熟悉 <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> 旗標的讀者、這個對應表能加速 GUI 內的設定：</p>
<table>
  <thead>
      <tr>
          <th>LM Studio GUI 欄位（位置依版本變化）</th>
          <th>對應 llama.cpp 旗標</th>
          <th>作用</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GPU Offload / GPU Layers</td>
          <td><code>-ngl &lt;N&gt;</code></td>
          <td>把 N 層丟到 GPU</td>
      </tr>
      <tr>
          <td>CPU Threads</td>
          <td><code>-t &lt;N&gt;</code></td>
          <td>CPU thread 數</td>
      </tr>
      <tr>
          <td>Context Length</td>
          <td><code>-c &lt;N&gt;</code></td>
          <td>context window</td>
      </tr>
      <tr>
          <td>K Cache Quantization</td>
          <td><code>--cache-type-k &lt;type&gt;</code></td>
          <td>K cache 量化等級</td>
      </tr>
      <tr>
          <td>V Cache Quantization</td>
          <td><code>--cache-type-v &lt;type&gt;</code></td>
          <td>V cache 量化等級</td>
      </tr>
      <tr>
          <td>Flash Attention</td>
          <td><code>-fa</code> / <code>--flash-attn</code></td>
          <td>flash attention 開關</td>
      </tr>
      <tr>
          <td>MoE Expert Offload / CPU MoE Layers</td>
          <td><code>--n-cpu-moe &lt;N&gt;</code></td>
          <td>MoE 專家層卸載</td>
      </tr>
      <tr>
          <td>Batch Size</td>
          <td><code>-b &lt;N&gt;</code> / <code>-ub &lt;N&gt;</code></td>
          <td>batch / micro-batch</td>
      </tr>
      <tr>
          <td>Parallel Sequences</td>
          <td><code>--parallel &lt;N&gt;</code></td>
          <td>同時處理的 sequence 數</td>
      </tr>
  </tbody>
</table>
<p>具體欄位名稱跟位置依 LM Studio 版本變化、以實際 UI 為準。新加入 llama.cpp 的旗標通常會在後續 LM Studio 版本被加進 GUI。</p>
<h2 id="啟動-lm-studio-server">啟動 LM Studio Server</h2>
<p>LM Studio 內建 OpenAI 相容 server、預設 port 1234。啟用步驟：</p>
<ol>
<li>載入想用的模型（GUI 左側 Chat / Local Server 切換）。</li>
<li>切到「Local Server」分頁。</li>
<li>設定上面對應的旗標（GPU Offload、Context、KV Quant、MoE Offload 等）。</li>
<li>點「Start Server」、看 log 確認模型載入成功、port 顯示為 1234（或自訂）。</li>
</ol>
<p>啟動成功後、可以用任何 OpenAI 相容 client 連接：</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">curl http://localhost:1234/v1/chat/completions <span class="se">\
</span></span></span><span class="line"><span class="ln">2</span><span class="cl"><span class="se"></span>  -H <span class="s2">&#34;Content-Type: application/json&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="ln">3</span><span class="cl"><span class="se"></span>  -d <span class="s1">&#39;{
</span></span></span><span class="line"><span class="ln">4</span><span class="cl"><span class="s1">    &#34;model&#34;: &#34;loaded-model-name&#34;,
</span></span></span><span class="line"><span class="ln">5</span><span class="cl"><span class="s1">    &#34;messages&#34;: [{&#34;role&#34;: &#34;user&#34;, &#34;content&#34;: &#34;Hi&#34;}]
</span></span></span><span class="line"><span class="ln">6</span><span class="cl"><span class="s1">  }&#39;</span></span></span></code></pre></div><p>接到 VS Code Continue.dev：</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">  <span class="nt">&#34;models&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">    <span class="p">{</span>
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">      <span class="nt">&#34;title&#34;</span><span class="p">:</span> <span class="s2">&#34;LM Studio&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">      <span class="nt">&#34;provider&#34;</span><span class="p">:</span> <span class="s2">&#34;openai&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">      <span class="nt">&#34;model&#34;</span><span class="p">:</span> <span class="s2">&#34;loaded-model-name&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">      <span class="nt">&#34;apiBase&#34;</span><span class="p">:</span> <span class="s2">&#34;http://localhost:1234/v1&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">      <span class="nt">&#34;apiKey&#34;</span><span class="p">:</span> <span class="s2">&#34;not-needed&#34;</span>
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="ln">10</span><span class="cl">  <span class="p">]</span>
</span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="p">}</span></span></span></code></pre></div><p><code>model</code> 欄位填 LM Studio 載入的模型名稱、要跟 GUI 顯示一致。</p>
<h2 id="模型瀏覽器與下載">模型瀏覽器與下載</h2>
<p>LM Studio 的內建模型瀏覽器直接連到 Hugging Face、可以搜尋 GGUF 格式的模型並一鍵下載。對「想試新模型但不想自己抓 GGUF」的使用者較友善。</p>
<p>下載時的選擇：</p>
<ol>
<li><strong>量化等級</strong>：LM Studio 會列出可用的量化版本（Q4_K_M、Q5_K_M、Q8_0 等）、可依 VRAM 預算選擇。</li>
<li><strong>模型大小估計</strong>：LM Studio 通常會顯示「在你當前硬體上能不能跑」的提示；提示為估計、實際載入仍以 llama.cpp 啟動結果為準。</li>
<li><strong>下載位置</strong>：LM Studio 預設下載到使用者目錄；可在設定面板改路徑（適合把模型放到大容量 SSD）。</li>
</ol>
<blockquote>
<p><strong>事實查核註</strong>：LM Studio 對「能否在當前硬體跑」的判讀是基於 VRAM + RAM 容量的估算、不考慮 MoE 卸載、KV cache 量化等進階設定；提示僅供參考、實際以實測為準。</p></blockquote>
<h2 id="跟-ollama--llamacpp-並存">跟 Ollama / llama.cpp 並存</h2>
<p>LM Studio、Ollama、llama-server 可以同時跑、用不同 port：</p>
<table>
  <thead>
      <tr>
          <th>推論伺服器</th>
          <th>預設 port</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Ollama</td>
          <td>11434</td>
      </tr>
      <tr>
          <td>llama-server</td>
          <td>8080</td>
      </tr>
      <tr>
          <td>LM Studio</td>
          <td>1234</td>
      </tr>
  </tbody>
</table>
<p>實務上同時跑多個的場景是調參階段比較不同 backend 或設定；常態使用通常一個就夠。</p>
<p>切換主力的判讀：</p>
<table>
  <thead>
      <tr>
          <th>工作流類型</th>
          <th>較適合的主力工具</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>多模型探索、Hugging Face 抓新模型試</td>
          <td>LM Studio（GUI 瀏覽器較順）</td>
      </tr>
      <tr>
          <td>穩定日常寫 code、模型不常換</td>
          <td>Ollama（命令列管理較簡潔）</td>
      </tr>
      <tr>
          <td>進階調參、<code>llama-bench</code> 校準</td>
          <td>直接 <code>llama-server</code>（旗標控制最完整）</td>
      </tr>
      <tr>
          <td>不想接觸 CLI、視覺化看參數</td>
          <td>LM Studio</td>
      </tr>
      <tr>
          <td>多 agent / 多 client 同時連</td>
          <td>任一、視併發設定</td>
      </tr>
  </tbody>
</table>
<h2 id="windows--gpu-整合常見議題">Windows + GPU 整合常見議題</h2>
<p>Windows 上跑本地 LLM 的常見議題：</p>
<ol>
<li><strong>NVIDIA driver 版本</strong>：driver 太舊可能不支援 LM Studio 內建的 CUDA runtime；過新 driver 偶爾出現相容性問題。建議用 NVIDIA Studio Driver（相對 Game Ready Driver 更穩）、或 NVIDIA 官方建議的當前長期支援版本。</li>
<li><strong>WSL2 vs 原生 Windows</strong>：LM Studio 在原生 Windows 跟 WSL2 都能跑；WSL2 可以更接近 Linux 環境（適合熟悉 Linux 工具的使用者）、但 GPU 透傳的配置略多。</li>
<li><strong>windows defender / 防毒軟體掃描</strong>：模型檔案常為 10+ GB、安全軟體的即時掃描可能拖慢載入速度；建議把模型目錄加入排除清單。</li>
<li><strong>電源計劃</strong>：Windows 的「省電」電源計劃可能讓 CPU 在閒置時降頻、影響 prefill 速度；建議使用「高效能」或自訂「卓越效能」計劃。</li>
<li><strong>VRAM 被其他應用佔用</strong>：Chrome、Discord、遊戲都可能佔用 VRAM；觀察「工作管理員 → 效能 → GPU」確認 VRAM 餘量。</li>
</ol>
<blockquote>
<p><strong>事實查核註</strong>：上面的議題以 Windows 10 / 11 為背景、具體現象跟解法依 Windows 版本、driver 版本變化。引用前以自己版本的官方文件為準。</p></blockquote>
<h2 id="給多數讀者的建議">給多數讀者的建議</h2>
<p>LM Studio 在 Windows + 獨立 GPU 場景的核心價值是「降低 MoE 卸載與 KV cache 量化的學習成本」。對下面類型的使用者特別合適：</p>
<ol>
<li>剛接觸本地 LLM、不熟悉 CLI 旗標。</li>
<li>主力工作是探索新模型、不是調穩定 production-like 設定。</li>
<li>想視覺化看「卸載層數 vs VRAM 用量」的關係、再決定要不要轉到 CLI。</li>
</ol>
<p>對下面類型的使用者、Ollama 或直接 <code>llama-server</code> 通常更適合：</p>
<ol>
<li>熟悉 CLI、想最完整地控制旗標。</li>
<li>主力是穩定日常寫 code、模型不常換。</li>
<li>想用 <code>llama-bench</code> 做精確校準。</li>
<li>部署到團隊或多人共用的 server 環境（GUI app 不適合 headless 部署）。</li>
</ol>
<h2 id="下一章">下一章</h2>
<p>下一章：<a href="/blog/llm/05-discrete-gpu/model-selection-priority-pc/" data-link-title="5.5 PC 場景的模型選型優先順序" data-link-desc="PC 獨立 GPU 場景下、MoE 卸載讓「全載小模型 vs 卸載大 MoE」變成主要的選型軸；對應不同 VRAM 容量的模型推薦">5.5 PC 場景的模型選型優先順序</a>、用前面四章建好的工程選項回答「具體裝哪個模型」。</p>
]]></content:encoded></item></channel></rss>