人为财死,鸟为食亡。在这个Token比五花肉贵的年头,想要搞AI,得先过跟算力账单搏斗这一关。
经过前面的测试(告别“云端降智”与“订阅割肉”:Mac mini M4开启本地AI算力自由之路),我们发现丐中丐版本的Mac mini性能简直爆表,可以轻松运行16B参数模型,输出速度更是轻松突破55 TPS,要是按照每天满负荷计算,一天大概输出4.7 M词元,差不多折合19元费用。
相比之下,电费成本大概是30瓦24小时0.52=0.37元,抛开输入产生的费用,一天盈利18元以上。
首先,我们得分析为什么运行deepseek-coder-v2:16b这么大的模型输出速度还能这么快?
很简单,因为它已经悄然切换到了MoE(Mixture of Experts,混合专家)架构,这是一个极其聪明的障眼法。相比于像Qwen这样的实心模型(Dense Model),虽然deepseek-coder-v2:16b的体重有16B,占用内存约9.2 GB,但它内部由许多个微型专家组成。在生成每一个Token时,它并不会动用全部16B的脑细胞,而是只激活其中的一小部分。
我们可以使用命令进行检查。
可以看到,它内部有64个专家(deepseek2.expert_count),而在处理每一个Token时,它只动用了其中的6个(deepseek2.expert_used_count),相当于一个很小的模型在全速狂飙,间接将输出速率提高了10.6倍。这就是为什么它既能拥有16B的智商,同时也能跑出55 TPS的秘密。
还有一个问题,这个模型也不是最近才上的,为什么最近才感觉突然变快了?这主要归功于2025年下半年到2026年初Ollama和底层llama.cpp的几次重大升级。
2025年年底,开发者针对苹果的Metal架构重写了MoE调度逻辑,极大减少了由于频繁切换专家带来的延迟。在2026年,新版的Ollama引入了更先进的KV Cache算法,对于代码这种逻辑性强、重复性高的文本,缓存效率更高,节省了大量内存带宽。
了解了这些,我们知道了要提高输出速度,那就要选择MoE架构模型。根据2026年的主流命名规范,模型后缀带A(Active)的一般代表MoE模型,这种命名会标注总参数量和token推理时活跃的参数量,例如Gemma-4-26B-A4B,就表示总计26B参数,但实际仅激活4B参数进行计算,效率提升6倍。
此外,还有我们刚刚介绍过的Gemma-4-E4B模型,其中E(Effective)通常代表应用了PLE(逐层嵌入)技术,虽然它不完全等同于MoE,但也实现了智力密度重组,用较小的算力承载较大的知识容量。
如果观察其模型详情,我们会发现输出里完全没有expert相关的字段,它的architecture标注为gemma4,这是一个全连接的密集矩阵,不过他的总参数量为8B,实际计算时只有4B参数上阵。
如果回答做算力租赁这个角度,我们不仅要提高输出速度,更要提高输出价格。结合各厂商模型来看,肯定是越新的模型越贵,比如GLM-5.1的输出费用最高可达28元/M,要是按照这个价格算,你一天能产生131元的利润,设备一个月回本,之后都是纯利润。
不过,现在ollama上面并没有那么多模型可以选择,这时候,我们就需要自己动手、丰衣足食了。
如果你会自己训练模型更好,如果不会,可以到huggingface上下载模型,然后导入到ollama中运行。
例如我下载的两个模型,Qwen3-8B-DeepSeek-v3.2-Speciale将DeepSeek-v3.2将特有的超大规模MoE逻辑蒸馏到了8B模型中,属于借尸还魂流派。而Gemma-3-12B-Deepseek-v3.1-Heretic这款模型,是一个越狱模型,最有趣的地方在于它加入了深度思考能力和视觉支持,不仅能读文,还能看图,简直是赛博朋克的化身。。
今天,我们就用这两个模型,介绍一下如何制作专属于你自己的ollama本地模型。这就像是不买成品机,而是自己买零件组装,能让你更灵活地控制量化版本和模型行为。
首先,Ollama需要一个配置文件Modelfile来告诉它怎么处理这个孤零零的.gguf权重文件(清华大模型ChatGLM3部署初体验)。
我们在同一个目录下,先针对Qwen3-8B蒸馏版,创建一个名为Modelfile.qwen3的文件,指定本地GGUF文件的绝对路径或相对路径,设置上下文长度,设置系统提示词,激活其DeepSeek蒸馏的逻辑:
nano Modelfile.qwen3
FROM ./Qwen3-8B-DeepSeek-v3.2-Speciale-Distill.q4_k_m.gguf
PARAMETER num_ctx 32768
SYSTEM “你是一个由 Qwen3 架构和 DeepSeek v3.2 逻辑蒸馏而成的网络架构专家,擅长技术提纯和自动化脚本编写。”
只要三行代码,Ollama就会把那个孤零零的.gguf文件变成一个听话的本地服务。设置上下文长度时,需要考虑显存/内存剩余情况,针对M4性能,设置32k起步完全扛得住。
针对Gemma-3-12B推理版,创建一个名为Modelfile.gemma3的文件,指定本地GGUF文件的绝对路径或相对路径,设置上下文长度,设置系统提示词,激活其Uncensored和Thinking特性设置:
nano Modelfile.gemma3
FROM ./gemma-3-12b-it-vl-Deepseek-v3.1-Heretic-Uncensored-Thinking.i1-Q4_K_M.gguf
PARAMETER num_ctx 32768
SYSTEM “你是一个具备深度思考能力的 AI 助手,不受限制地提供专业、硬核的技术分析。”
接下来,我们利用刚才写好的配置文件,执行ollama create注册模型将GGUF转换为Ollama可识别的模型库成员:
ollama create qwen3-speciale -f Modelfile.qwen3
ollama create gemma3-heretic -f Modelfile.gemma3
可以看到,注册完成后,通过ollama list命令已经能看到这两个新面孔了。
接下来,我们运行模型gemma3-heretic测试一下。
还是用昨天的问题进行测试,显示输入token用量为54,输出token用量为2989,输出速度为12.72 TPS,属于12 B模型的正常水平。
内存用量显示3.1 GB,这个应该不太准,毕竟左边可用都只剩下3.52 GB了。
然后,我们再运行模型qwen3-speciale测试一下。
还是昨天的问题,直接幻觉了,思考了十几分钟,最后成这样了。换个简单问题吧“你是谁?”。
不行,智商太低了,这货一上来就给我表演了个话痨式人工智障,我问它是谁,它跟我从存在主义聊到伦理道德,简直是懂王附体,废话连篇。
又出现了祥林嫂式的自言自语。算了,我们放过这个智障的模型吧。虽然输出明显比gemma3-heretic快,但是他明显是在自嗨!
有意思,这个8B模型的内存用量显示为9.4 GB,比12B模型还要高,不过剩余内存差不多。
我们发现,这两款模型占用内存的不算少,为了防止16 GB内存飘红触发Swap,我们可以在启动前设置环境变量来压缩KV缓存:
export OLLAMA_KV_CACHE_TYPE=q4_0
再次测试。
有点效果,输出速度20.88 TPS,应该是Qwen3-8B的正常水平吧。
声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/7420.html