本地 AI 体验
2026-08-16
为什么要跑本地 AI
- 前沿模型不停地涨价,token 用不起了
glm5.2 以上,或者 kimi k3 等等,能力上面我是承认它们越来越强的。但是价格上面也是越来越离谱了,用不起。
像什么 lite 套餐的定位,拿着跑一个复杂任务都跑不完;pro 套餐也根本经不起蹬几下;max 到了 800多一个月,这也才到一个勉强日常使用,但是还达不到放开了蹬的水平。
当然,可以反驳说上便宜模型,比如 deepseek flash 的,5刀的 opencode go 订阅,放开了蹬基本蹬不完。 确实是有道理...
假设一个月 token 上面花费 150,那三年下来是 5400。所以如果显卡成本投入过高会很不划算。
- 隐私
本地模型一个重要好处,就是信息不会被发送到服务器。 模型提供厂商可能拿我们的数据去训练它们的模型,更无节操的是如果使用中转,谁知道数据会被卖到哪里。
隐私对我来说不算特别 concern 的一个点,算是了胜于无吧。
- 有硬件可以用来学习 AI
是,也不是。本地有了硬件确实可以玩一些很小的东西。比如从零开始学习训练一个模型。 但是稍微大一点点的规模,本地消费级的显卡都搞不了。9B 的模型,训练起来消费级的单卡都搞不了。 而这个尺寸的模型其实干了不啥。跑训练适合的是去租云上的硬件。
- 可以以微调模型
LoRA 和 QLoRA 这些,确实可以微调模型用的显存不那么高,还是可以搞一搞
- 可以跑 agent harness 实验
对,自己写 agent 然后做一些比较跑 benchmark,或者 auto evolve 的实验,用 token plan 跑太贵了。 跑工作中使用不一样,不足已产生有效价值。所以如果本地模型跑,还是挺适合的
什么样的硬件,可以跑什么样的模型,在这个网站上可以查到
- 了解本地 AI 的发展速度
一个东西发展到什么程度,其实听别人说是不靠谱的。或者说,等大众都开始说的时候,已经晚了。 信息的先发优势就是价值。
计算机刚出来的时候,大型机是整个房间那么大的设备。 谁能想到,后来有了台式机,普通家庭都能用上了,有了笔记本,还能携带办工。 再后来,有了手机!每个人都有了智能设备,名赋其实的第二脑。
前沿的云端 AI 确实在探索智能的上限,但是有理由相信,未来的 AI 一定是本地设备, 甚至是手机都能享受到 AI 便利的。
硬件选择逻辑
前面算过账了,假设按三年多的硬件寿命算,超过 6000 的硬件投入,越往上越是回不了本。
所以就是捡垃圾可以搞一搞。咸鱼上面,telsa v100 这种,或者 mi50,都属于垃圾佬很喜欢的。 就是卡比较老。
消费级显卡,2080魔改22G 太老了,3080魔改20G 可以搞一搞。3090 24G 算是一个甜点区,已经开始有点太贵了。 矿卡风险以及购买渠道要跟商家斗智斗勇这种,不是我善长的。5090这种就不要想,绝对太贵了。买硬件的钱投到 deepseek token 上可以用到天荒地老。
其实跑 AI 的场景,显卡的计算能力都不是瓶颈。就是看显存容量,和显卡带宽。 显存容量决定了模型放不放得下,而显卡带宽决定了吐字速度快不快。 20G 以上算是跑本地大模型的一个基础要求,太小的模型智力低没意义,再大的模型要求的显存更多,消费级显卡放不上。
网上那种把 glm5 硬塞到内存,ssd 上面,用 CPU 跑的项目,其实没有任何实际意义。0.几 token 每秒,不到 1token 每秒的,即使跑起来又能干嘛呢?
还有一个异端就是 mac/amd/nivdia 他们几家出的共享显存的方案。内存可以堆特别高充当显存,可以解决模型放不放得下的问题。 但是带宽受限,吐字速度问题解决不了。价格也都不便宜了。redis 作者 antirez 就搞了项目 mac 上面跑 deepseek flash。
咸鱼上还能看到华为昇腾 atlas,96G 显卡。这种卡它能解决模型放得下的问题, 但是硬件带宽太低了,吐字肯定速度不太够的。还有就是据说这种其实是多个核拼起来的 96G,不是那种真的统一的 96G。 再有就是它的生态兼容性问题,这些都是给企业玩的,不适合个人玩家玩。 如果企业买多张卡组装起来,带宽就够了,服务许多用户,吞吐可以搞起来,并且放得下更大参数的模型。 对于个人用户而言,它就是生态极差的 mac 统一内存方案。
论硬件的兼容性,nivdia 的卡肯定是最强的。但是性价比如嘛,就有点低。intel 的暂时不用看,退出显卡市场了。 AMD 算是 RoCM 生态慢慢在成熟,已经非常多的场景能跑了,至少我要玩的本地 ai 场景基本可行。而且未来肯定是越来越好的,属于"战未来"了。
最后选择的是蓝宝石白金 7900xtx 24G,新卡三年质保。
我的判断是,下一代卡出来,上一代卡二手肯定要降价。然而...按当前行情,即使出下一代卡,新出的卡肯定要涨价,而不是价格持平,硬件变强。 想想同样的货,卖给企业级,和卖给游戏玩家,赚到的钱不一样,那肯定做优先供应给企业。 那么上一代卡仍然保值,我就当多花点钱,买个三年质保吧,性价比也还是挺实在的。
(更新:买完就涨价了,从 6000 不到涨到了 7000 多)
模型验证
Qwen 3.6 27B
这个模型就是当前的消费级硬件上能跑的最强模型了。当然,有钱人可能会自己重新定义“消费级显卡”。
它强到地步?在 30B ~ 120B 模型区间来看,并没有比它强的。它的存在,就是断档的强。 只用 30B 不到的这个规模的参数,可以把 100B 规模内的其它模型全部都按在地上捶。
48G 显卡能部署的上限是 70B 的模型,但是很尴尬,目前市面上 70B 的模型没有一个能打的, 所以对于 ai coding 场景,即使 48G 的硬件,也没有直接的收益。
显卡到位后,我安装的第一个模型就是 Qwen 3.6 27B。ollama 默认配置跑,实测速度是 31 token/s。 这个速度干活是可以接受了,交互式的场景,20 token/s 大概是及格线吧,就是输出的速度,跟用户读输出的速度,大概匹配的程度。
至于效果嘛,很遗憾,按我的标准,它还是干不了写代码这种活。
做了一个画鹈鹕测试,表现很惊艳,是我测试的模型中表现最好的一个。

做这道题,它始终不能一口气把一个大文件生成好。 不是生成出来有 bug,是文件都生成不好的程度。所以拿它写代码就别想了。
哪怕是被我吐糟为,妥妥的垃圾,顶多在 openclaw 场景搞一搞,不能用来写代码的 minimax 2.7,能力也比 qwen3.6 27B 更强。 虽然我吐糟说,minimax 跟豆包坐一桌,但是吐糟归吐糟,好歹 minimax 2.7 是一个 230B A10B 的模型。qwen 27B 碰瓷不了。
也就是说,云上哪怕目前最差的模型,他们当前也比最强本地的模型强的。参数量碾压决定模型的能力,就是这么的直白和朴实无华。 只能说本地 AI coding 的总体状况就是这样了。
deepseek v4 flash 284B 参数,激活13B。又便宜,量大管饱,体感上,能力之前大概是高于 GLM4.7,略弱于 GLM5.1 的水平。 昨天刚放新版本出来又更新了一轮,据说又有提升,很可能已经超越 GLM5.1 这档了。
(题外话,用习惯了 deepseek v4 flash 的吐字速度,再回头看 GLM4.7 的吐字速度, 真是有种拉屎拉不出来感觉。而哪怕是 GLM4.7 的时代,也是跨过了 AI 能写代码了这个门槛的)。
性价比高的编程场景,还是默认用 deepseek flash,遇到它搞不定或者很复杂的任务, 切换到旗舰模型,多 agent 协作来搞。说到底,我最后的使用姿势,还是走上 opencode 那套邪路上了。
Ornith 1.0 3.5B A3B 去审查版本
由于我发现靠 Qwen3.6 27B 用于我平时的写代码场景不太现实,我又去探索了一下其它场景。也不是日常非 coding,像 openclaw 那类场景。
本来 Qwen3.6 35B A3B 是这种场景候选,我直接选了一个基于它微调的版本。因为正好看到 Ornith 1.0 发布,就试了一下。
说体感吧,Ornith 1.0 3.5B A3B 在追求把任务自主完成的努力上面,比 Qwen 3.6 27B 更拼。 Qwen27B 有时候莫名奇妙地停止,而 Ornith 这边没观察到类似问题。 不过智商也就回事了,它很努力地在推进,不停地试,但是就是搞不出来。有时候也是各种乱七八糟的幻觉。
但是相对好玩的点是,这些去审查的版本你可以问它任何事情,它不拒绝。比如

本地 AI 才方便这么玩,你懂的!
Laguna 2.1 S
laguna 2.1 s 也是最近出来的一个模型。这个模型的参数是 118B A8B。 这是美国本地团队的开放权重模型,所以算是它们那边的国货之光,可以拿来宣传一下。
我在油管上看到一个视频,是 16G 显卡通过 offload 部分权重到 CPU,可以跑起来有 10 token/s。 我的硬件比它强一点,所以抱着侥幸的心理万一我能跑个 15-20 token/s, 再如果它能力比 Qwen27B 强一档,说不定能摸到本地 AI 编程的门槛。
结果是,60G 多的模型我下载了老半天才下好,跑来一看,7 token/s,这...
一顿调参下去,终于搞到了 10 token/s,虽然我硬件是比网上看的那个视频中更强的,也没跑出更高的吐字速度。 再测试一下模型能力,先画个鹈鹕吧:
鹈鹕.png
啊,噗!美国的开放权重模型中国货之光就这玩意呀?这跟我们的 deepseek 相比有种 “北乔峰,南慕容”的感觉。 果然,AI 人才方面,现在只存在在中国的中国人,和在美国的中国人之间的竞争。
我没办法测它在我自己的 benchmark 那边的数据,因为显存不够,模型都要部分 offload 到 CPU,而留给上下文缓存的显存空间更是没有了。 我没办法到开着比如 8K 的上下文,干任何实际有意义的活。测试也就没有继续测下去了。反正拉胯得狠,我都没法肯定这个模型是强于 Qwen 27B 的。
Qwen3 Coder Next
由于 laguna 2.1 S 我实际上是跑不起来的,模型又拉。而 Qwen27B 又达不到我能用来日常编程的程度,我还是有点不甘心,就去找一找规模在 100B 左右,期望能用来本地写代码的模型。
于是就找到 Qwen3 Coder Next 了。这个模型是 Qwen 3.6 27B 之前的模型,大概是今天的 2 月份发布的。 结果这个速度还扯淡一下,也不知道是我调参没调好还是咋滴,总是在 CPU 上而不是好好用好 GPU,速度 <1 token/s。
这个模型也跑不起来,算是彻底放弃了本地 token 能用来写代码这个念头了。
Agents A1
其实有一堆 35B A3B 这种模型,像 Ornith,像 Agents A1 等等,这些基本都是基于 Qwen 去微调的。 有些微调后的能力比原版本还更强一些,但也只是 Qwen 的底子实在太好,在巨人的肩膀上再踮踮脚。
其实日常也不太需要真的用去审查版本模型。所以微调去审查不如微调优化 agent 能力的。于是再测试了这个 Agents A1。
35B A3B MoE 跟 27B Dense 的主要差异是,都不做任何调优情况下,27B 在我显卡跑 30 token/s,而 35B A3B MoE 直接 76 token/s,速度飞起,丝滑得狠。 感觉都有一点云上 deepseek flash 的速度爽感了。还有就是 35B A3B 这种模型,在 24G 显卡上跑我是可以开到 256K 上下文的,算是真正能做一点,这个智力水平下能做的事情。
我拿 Agents A1 这个模型也跑了个鹈鹕测试以及画金门大桥。鹈鹕画的不如 Qwen27B 的,但是金门大桥它能输出到文件了,虽然还是跑不起来任务失败,但是至少比 Qwen27B 的更近了一步。
最后是一些实测数据吧。
Qwen 3.6 27B -> Agents A1 -> Deepseek V4 flash (旧版) -> GLM 5.1
- 功能完成: 62.5% -> 67.5% -> 78.38% -> 81.08%
- 行为评估: 47.5% -> 52.5% -> 62.16% -> 64.86%
这是我本地自己测试我的 agent 的时候自建的一些 benchmark,无利益相关,算是相对公正的体现模型的实际水平吧。 要说多少分能拿来真正干活,我说不上来,体感上就是 Agents A1 这种程度,还不行。
但是对于本地 AI 也不用过于失望吧,说不定这些参数量不大的模型,能力还有上涨空间。 又或者,说不定哪天谁发布一个 70B 的模型,用 48G 显卡能跑,能力超过上一代 200B 模型的能力,那也可能能够得上能写代码的及格线。 这是很有可能的。
要不然,另一个路线就是苹果的 mac m5 max 或者 AMD 的 Ryzen AI MAX+ 395 或者英伟达的 DGX Spark 这类的,靠统一内存充当显存,把容量搞上去。 软件也在优化的进步,吐字速度会越来越快,这条路径 antirez 也就是 redis 那老哥的 deepseek flash 已经是可实用了。
ComfyUI
网上搜了一下,看到一个说法 “个人场景搞私有化的唯一作用就是涩涩,涩涩的话也不需要参数多大的模型”。 暂时还没验证搞涩涩的效果,反正这张卡肯定是够的。
2026.8.15 更新:今天 Qwen3.8 27B 出来后,重新测试一下。 很强,已经能作为日常使用了。
Qwen3.6 27B -> Agents A1 -> Qwen3.6 27B Fable Fusion -> Qwen3.8 27B -> Deepseek V4 flash (旧版) -> GLM 5.1 -> Deepseek V4 Flash (新版)
- 功能完成: 62.5% -> 67.5% -> 70% -> [72.5%] -> 78.38% -> 81.08% -> ?
- 行为评估: 47.5% -> 52.5% -> 57.5% -> [60%] -> 62.16% -> 64.86% -> ?
主观感受是,这个本地模型的水平,已经不输去年的年底的云端模型水平,达到了可用阶段。 也就是大概 9 个月左右的时间,本地模型追赶上了前沿模型。
开启 MTP 后的吐字速度能上 50 多 token/s,快的时候能上 70:
155.47.970.093 I slot launch_slot_: id 0 | task 131914 | processing task, is_child = 0
155.51.454.617 I slot print_timing: id 0 | task 131914 | n_gen = 197, tg = 64.37 t/s, tg_3s = 64.69 t/s
155.54.469.975 I slot print_timing: id 0 | task 131914 | n_gen = 411, tg = 67.65 t/s, tg_3s = 70.97 t/s
155.57.490.783 I slot print_timing: id 0 | task 131914 | n_gen = 629, tg = 69.16 t/s, tg_3s = 72.17 t/s
156.00.526.851 I slot print_timing: id 0 | task 131914 | n_gen = 858, tg = 70.73 t/s, tg_3s = 75.43 t/s
156.03.562.550 I slot print_timing: id 0 | task 131914 | n_gen = 1090, tg = 71.87 t/s, tg_3s = 76.42 t/s
156.06.605.008 I slot print_timing: id 0 | task 131914 | n_gen = 1322, tg = 72.60 t/s, tg_3s = 76.25 t/s
156.08.408.668 I slot print_timing: id 0 | task 131914 | prompt eval time = 438.73 ms / 22 tokens ( 19.94 ms per token, 50.14 tokens per second)
156.08.408.672 I slot print_timing: id 0 | task 131914 | eval time = 19998.81 ms / 1464 tokens ( 13.67 ms per token, 73.15 tokens per second)
156.08.408.672 I slot print_timing: id 0 | task 131914 | total time = 20437.54 ms / 1486 tokens
156.08.408.673 I slot print_timing: id 0 | task 131914 | graphs reused = 128657
156.08.408.677 I slot print_timing: id 0 | task 131914 | draft acceptance = 0.82385 ( 1043 accepted / 1266 generated), mean len = 3.47
156.08.409.045 I slot release: id 0 | task 131914 | stop processing: n_tokens = 7881, truncated = 0
156.08.466.811 I slot get_availabl: id 0 | task -1 | selected slot by LCP similarity, f_sim_best = 0.991 (> 0.100 thold), f_keep = 1.000
156.08.467.189 I slot launch_slot_: id 0 | task 132339 | processing task, is_child = 0
156.12.093.936 I slot print_timing: id 0 | task 132339 | n_gen = 190, tg = 62.27 t/s, tg_3s = 62.59 t/s
156.15.125.794 I slot print_timing: id 0 | task 132339 | n_gen = 386, tg = 63.46 t/s, tg_3s = 64.65 t/s
156.18.172.624 I slot print_timing: id 0 | task 132339 | n_gen = 597, tg = 65.39 t/s, tg_3s = 69.25 t/s
156.21.195.019 I slot print_timing: id 0 | task 132339 | n_gen = 818, tg = 67.32 t/s, tg_3s = 73.12 t/s
156.24.211.425 I slot print_timing: id 0 | task 132339 | n_gen = 1030, tg = 67.91 t/s, tg_3s = 70.28 t/s
156.27.224.748 I slot print_timing: id 0 | task 132339 | n_gen = 1243, tg = 68.37 t/s, tg_3s = 70.69 t/s
156.30.245.391 I slot print_timing: id 0 | task 132339 | n_gen = 1452, tg = 68.49 t/s, tg_3s = 69.19 t/s
上下文我开到了 192K,这不是测试能跑起来,而是真的能用了:
llama-server -m /home/genius/models/Qwen3.8-27B/Qwen3.8-27B-Q4_K_M.gguf --mmproj /home/genius/models/Qwen3.8-27B/mmproj-F16.gguf -c 196608 --cache-type-k q8_0 --cache-type-v q4_0 --device Vulkan1 -ngl 999 --host 0.0.0.0 --port 8080 -fa on --spec-type draft-mtp --alias qwen3.8-27b --reasoning-preserve --reasoning-format deepseek --reasoning-effort xhigh