<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GBNF on CAO ZUOHUA</title><link>https://caozuohua.github.io/tags/gbnf/</link><description>Recent content in GBNF on CAO ZUOHUA</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 13 Sep 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://caozuohua.github.io/tags/gbnf/index.xml" rel="self" type="application/rss+xml"/><item><title>别把 2B 当小号 GPT-4：llama.cpp + Qwen 2B 的六种实战玩法</title><link>https://caozuohua.github.io/posts/2026-09-13-llamacpp-qwen2b-local-playbook/</link><pubDate>Sun, 13 Sep 2026 12:00:00 +0800</pubDate><guid>https://caozuohua.github.io/posts/2026-09-13-llamacpp-qwen2b-local-playbook/</guid><description>&lt;h1 id="别把-2b-当小号-gpt-4llamacpp--qwen-2b-的六种实战玩法"&gt;别把 2B 当小号 GPT-4：llama.cpp + Qwen 2B 的六种实战玩法&lt;/h1&gt;&#10;&lt;p&gt;在本地跑一个 2B 级别的模型（Qwen2.5-1.5B、Qwen3-1.7B 这一类），最常见的失望是「它连个像样的回答都给不出来」。于是很容易得出一个结论：小模型没用，还得上 32B 甚至 72B。&lt;/p&gt;&#10;&lt;p&gt;这个结论错在前提。&lt;strong&gt;2B 的定位从来不是&amp;quot;小号 GPT-4&amp;quot;，而是流水线里一个廉价、快速、输出确定的专用零件。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;在一台普通笔记本上，Qwen 2B（Q4_K_M 量化）的生成速度可以轻松跑到 30 tokens/s 以上，显存占用不到 2GB。这意味着它一秒能吞下几十条请求。真正的技术含量不在于它有多聪明，而在于你&lt;strong&gt;如何把任务切到它擅长的那一格&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;一句话概括本文的判断：&lt;strong&gt;不要让小模型去&amp;quot;思考&amp;quot;，要让它去&amp;quot;填空&amp;quot;。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="先确认你的跑法"&gt;先确认你的跑法&lt;/h2&gt;&#10;&lt;p&gt;下文所有玩法都建立在 &lt;code&gt;llama-server&lt;/code&gt; 上——它提供 OpenAI 兼容接口，任何现成的 SDK 都能直接接。一个够用的启动命令：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./llama-server &lt;span style="color:#ae81ff"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -m models/Qwen2.5-1.5B-Instruct-Q4_K_M.gguf &lt;span style="color:#ae81ff"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -c &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -np &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt; --cont-batching &lt;span style="color:#ae81ff"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --jinja &lt;span style="color:#ae81ff"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --host 127.0.0.1 --port &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;几个参数值得单独说明：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;参数&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;作用&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-c&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;上下文长度，小模型不要盲目开大&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-np&lt;/code&gt; &lt;code&gt;--cont-batching&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;并行槽位 + 连续批处理，是批量吞吐的关键&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--jinja&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;启用模型自带对话模板，工具调用能力依赖它&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-ctk q8_0 -ctv q8_0&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;KV Cache 量化，长上下文时能省一半显存&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--mmproj xxx.gguf&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;加载视觉投影层，进入多模态模式&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="玩法一语法约束输出器--最高杠杆的一招"&gt;玩法一：语法约束输出器 —— 最高杠杆的一招&lt;/h2&gt;&#10;&lt;p&gt;llama.cpp 原生支持 &lt;strong&gt;GBNF 语法&lt;/strong&gt;与 &lt;strong&gt;JSON Schema 约束解码&lt;/strong&gt;。这是它相对于 vLLM、Ollama 最显著的差异点，也是让 2B 从&amp;quot;勉强能用&amp;quot;跳到&amp;quot;近乎可靠&amp;quot;的关键。&lt;/p&gt;</description></item></channel></rss>