模型怎么选:参数、量化和能力差异

[TOC] 硬件摸清楚了,接下来面对的是一个更让人眼花的问题:模型到底选哪个。打开 Ollama 的模型库,几百个模型排在那里,名字是一串英文代号,点进去还有各种标签,同一名字下面又有 8b、3b、q4_0、fp16 这些后缀。新手站在这个路口懵掉太正常了。这篇就帮你把这些概念拆开,讲清楚怎么根据需求挑到合适的模型。

参数规模:模型的能力天花板

先说参数。参数是大模型在训练过程中学到的所有知识的载体,参数量越大,模型能容纳的知识和模式就越多,推理能力通常也越强。业界习惯用 B 作为单位来标注参数量,1B 就是十亿个参数。我们常说的 7B、13B、70B 就是三档很典型的规模。

但参数规模和能力之间不是简单的正比关系。一个用海量高质量数据训练出来的 8B 模型,完全可能在某些任务上超过训练数据一般的 30B 模型。近两年的趋势是训练技术飞速进步,小模型的能力被不断挖掘,新一代的 8B 模型往往能打平甚至超过两三年前的 30B 模型。所以选模型不能只看参数,发布年份和第几代同样重要。

从使用场景来看,可以把参数规模大致分成三档。8B 以下属于轻量级,速度快、门槛低,适合做日常问答、文本摘要、简单翻译这类任务,是大多数人的起步选择。20B 到 35B 是中坚力量,各方面能力上一个台阶,适合写代码、写较长文档、做相对复杂的分析,但对显存要求明显提高。70B 及以上是开源模型的第一梯队,接近闭源模型的中等水平,适合预算充足、对能力有较高要求的场景。

还有一个容易被忽略的中间档:很多模型家族会出 12B 到 14B 左右的版本,卡在轻量级和中坚力量之间。这个档位对 12GB 显存的显卡很友好,能力又明显强过 8B,是很多 3060、4070 用户的最甜点。选模型的时候别只盯着 8B 和 70B 两头,中间档往往更符合实际预算。

需要强调的是,参数规模的说法在不同厂商之间不完全可比。因为训练数据量、训练轮数、架构设计都会影响最终效果,同样是标称 8B 的两个模型,能力可能差出一截。所以规模是估算显存用的,比能力还是要靠实测。

量化:用一点精度换大量空间

同一个模型为什么会有那么多版本?答案就是量化。量化的思想很好理解:模型参数本来是用 float16 这种高精度数字存的,但仔细一想,一个小数点后面那么多位真的有必要吗?把每个参数用 4 比特或者 8 比特来近似表示,体积一下子就小了好几倍,而实际使用中的能力损失往往小到难以察觉。

Ollama 的模型标签里你会看到这些常见的量化级别。fp16 是未经量化的原始精度,体积最大、效果最完整;q8 是 8 比特量化,体积减半,效果几乎无损;q4 是 4 比特量化,体积只有原始的四分之一左右,是最主流的选择;再往下还有 q3、q2 这类极限压缩,体积更小但能力损失开始明显。

量化级别 大致体积占比 质量损失 适用场景
fp16 100% 无 显存充足,追求最佳效果
q8 约 50% 几乎无损 显存充裕时的稳妥选择
q5_K_M 约 40% 极小 质量和体积的平衡点
q4_K_M 约 30% 很小 主流默认选择
q3 约 25% 可感知 显存紧张时的备选
q2 约 20% 明显 只求能跑,不推荐

对大多数人来说,闭着眼睛选 q4 就对了。Ollama 默认拉取的模型基本都是 q4 或者更精细的量化变体,这是社区反复验证过的甜点位。如果你显卡显存特别大,可以试试 q8,心理上更舒服;如果显存实在紧张,q3 是最后可以接受的下限。

需要特别说明的是,同一个模型不同量化的能力差异在不同任务上表现不一样。常识问答、文本润色这类任务即使压到 q3 甚至 q2 也感觉不到什么差别;但数学推导、代码生成这类需要精确性的任务,量化太狠会明显增加出错概率。所以压力测试的时候最好用你最关心的任务类型来试,而不是只看跑分。

再补充一个很实际的问题:同一个模型我可以下两个版本换着用吗?当然可以,而且这是常见操作。硬盘里常备一个 q4 版本日常用、一个 q8 版本需要质量时用,按需切换,比起把显存全占给一个模型灵活得多。相关的命令在拉取和运行模型:pull、run 和版本标签那篇有详细演示。

主流模型家族速览

了解完参数和量化,来看看具体有哪些模型值得考虑。下面这张表列出了目前比较主流的几个家族,方便你建立整体印象。

模型家族 代表型号 规模区间 特点
Llama llama3.1、llama3.2 1B 到 70B 综合能力强,生态最完善
Qwen qwen2.5、qwen3 0.5B 到 72B 中文能力突出,版本多
Gemma gemma、gemma2 2B 到 27B 小尺寸表现出色
Phi phi3、phi4 3.8B 到 14B 微软出品,推理能力强
Mistral mistral、mistral-nemo 7B 到 12B 早期开源代表,稳定
DeepSeek deepseek-r1 1.5B 到 671B 推理特化,思考过程明显

选模型的第一条原则是看你的主要语言。如果你的用途以中文为主,优先考虑国产模型,中文的理解和表达明显更顺;如果主要处理英文代码或者英文文档,英文模型的原始能力往往更强。

第二条原则是版本越新越好。模型领域迭代极快,一年前的旗舰模型放到现在可能已经打不过新出的中端模型。所以除非你有什么特殊的兼容性理由,否则永远优先选择每个家族的最新版本。注意这里说的版本新不是让你去追那些还没稳定的实验版本,而是选官方正式发布的主线版本,稳定性和文档都更跟得上。

第三条原则是小步快跑。不要一上来就纠结哪个模型最强,先下两三个候选模型,用你自己的真实任务各跑一遍,眼见为实。Ollama 切换模型只有一行命令的事,试错成本非常低。

第四条原则是看社区热度。一个模型的讨论越多、教程越多、周边工具适配越多,你遇到问题时找到答案的概率就越大。冷门模型跑分再高,遇到坑没人一起踩也是很痛苦的。主流家族都有活跃的中文社区,新手优先从这些里面选。

中文能力是个重要变量

很多模型的名字你可能没听过,但只要涉及中文场景,情况会有些不一样。英文模型处理中文时经常会出现两种问题:一种是标点符号混乱,句号逗号用的位置不对,或者中英文混排时格式乱掉;另一种是表达翻译腔重,说出来的中文虽然你能看懂,但读着别扭,成语用不到位,语感不自然。

国产模型在这些方面有天然优势。无论是问答的自然程度、中文知识储备还是对中文文化语境的理解,都明显好于同规模的英文模型。如果你的应用要面向中文用户,优先选国产模型可以省掉很多润色的麻烦。

另外一个实际的问题是知识截止日期。每个模型的训练数据都有一个时间点,超过这个时间之后发生的事情它都不知道。问它最近的新闻,它要么老老实实说不知道,要么一本正经地编造。这不是模型坏了而是训练数据的天然限制,别在这一点上花冤枉时间。

顺带提一个中文场景特有的现象:有些英文模型在中文上下文里会突然夹英文单词,或者中英文之间的空格和标点处理得很随意。这种小毛病在自动化流程里挺烦人的,因为下游解析代码经常因此出错。国产模型在这方面普遍规范得多,输出格式更干净,做后处理的时候能省心不少。

如果你做的是面向用户的产品,建议固定一个模型别频繁换。不同模型的语气、格式习惯差异很大,换一次模型可能整个产品的风格都要重新调。先用本文的对比方法选出最合适的那一个,然后信任它一段时间。

亲自对比评估的方法

说到底,选模型最靠谱的方式是自己跑一遍。怎么对比才科学呢?建议准备一组固定的测试问题,每次换模型都跑同样的问题,这样结果才有可比性。问题应该覆盖你实际使用的典型场景,比如一段你工作中常写的代码、一篇你需要摘要的长文、几句你需要翻译的中英混排文本。

观察的好坏可以从几个维度看。首先是准确率,答案对不对,有没有编造内容。其次是相关性,回答是否紧扣问题,有没有跑题。然后是格式,如果你需要特定的输出格式,模型能不能稳定遵守。最后是速度,每秒输出多少 token,等起来难不难受。

把每个维度简单打个分记录下来,几个模型跑完之后,哪个最适合你一目了然。这个过程看起来花时间,但比起盲信网上的跑分要有用得多,因为你的场景只有你自己最清楚。关于速度的具体测试方法,我们会在命令行对话那篇里详细介绍。

这里还有一个省钱省时间的技巧:先从小模型开始筛选。第一阶段用 8B 级别的模型把提示词、输出格式、业务流程调通,确定了大致方向之后,再逐级放大到更大的模型做验证。这样可以用最低的成本试错,避免一上来就下个几十GB的大模型,结果发现方向就错了。

另外注意测试的时候保持变量唯一。同一个问题,温度参数不同结果可能天差地别,所以固定一套参数跑完所有候选模型,对比才公平。参数的含义和怎么固定,在命令行对话:参数、模板和多轮会话那篇有完整说明。

别被跑分绑架

网上各种模型的对比榜单很多,看着一个个分数挺权威,但真到了自己用的时候常常不是那回事。跑分测的是标准题库的得分率,而实际使用中的体验是综合的——输出速度怎么样、格式听不听话、长对话会不会逐渐跑偏、拒答率是不是高得烦人,这些跑分统统反映不出来。

更微妙的是,跑分榜单本身也可能会引导模型厂商去针对性优化,分数高不等于在你的场景里强。所以把榜单当粗筛工具就好,圈出几个候选之后,还是要回到自己的真实任务上做判断。这也正是本地部署最大的好处之一:试错几乎零成本,想怎么试就怎么试。

最后分享一个常见的新手路线。第一步,拉一个国产 8B 主流模型先用起来;第二步,补一个代码能力强的模型专门写代码;第三步,等确认需求之后,再考虑加大模型满足更高要求。大多数人在第二步就停了,因为发现小模型加上好的提示词,已经能解决百分之八十的日常问题。把精力花在调提示词和工作流上,回报往往比换更大的模型高得多。

常见问题

新手入门选什么模型最不容易踩坑

如果只推一个,选国产 8B 模型的最新版本,比如 qwen 系列的 8b 标签。它对中文友好、尺寸亲民、8GB 显存就能跑,日常问答和文本处理都胜任。等你跑顺手了,再往大了试或者尝试更适合代码任务的模型,逐步建立自己的模型库。选模型这件事没有唯一正确答案,先跑起来再说,这是最重要的。

为什么同一个名字下面有那么多标签

标签系统其实是两层意思。标签里的数字部分代表参数规模,比如 llama3.1 后面有 8b、70b 等等;带 q 的是量化标记,比如 q4_K_M 说明用了 4 比特量化。不带任何后缀拉取时用的是默认标签,通常是官方推荐的均衡版本。想精确控制就写完整的标签名,图省事就直接拉默认的。

量化会不会让模型变笨

会有一点点,但普通人很难察觉 q4 相对 fp16 的差别。你可以这样理解:量化相当于把高清图片压缩成中等清晰度,主体内容完全在,细节有一点损失。只有当量化压到 q2、q3 这种程度时,才会在复杂推理和代码生成里明显暴露问题。

模型更新的知识从哪来

训练数据决定了模型的静态知识,想让它知道新信息有两条路。一条是开启联网搜索,让模型先查再答,这需要配合相关工具。另一条是构建私有知识库,把新文档向量化之后提供给模型检索,也就是检索增强的思路,这恰好是 Ollama 生态里很多工具在做的事,比如 Open-WebUI 就内置了知识库功能。

模型文件一般多大,硬盘要留多少

小则两三个GB,大则几十GB。8B 模型的 q4 量化版常见大小在 4 到 5GB,70B 模型的 q4 版本达到 40GB 以上。如果你打算多试几个模型,硬盘留出 100 到 200GB 比较踏实。下载完整之后想换其它量化版本,就还得再下一份,所以管住手、不留用不上的模型很重要,相关的管理操作可以看模型管理:删除、复制和环境变量。