模型下载页长这样:同一个模型,底下呼啦啦列了十几个文件,名字只在末尾差几个字符。
qwen2.5-7b-q4_k_m.gguf 4.2 GB
qwen2.5-7b-q5_k_m.gguf 4.8 GB
qwen2.5-7b-q8_0.gguf 7.6 GB
qwen2.5-7b-f16.gguf 14.2 GB
第一次我没细看,挑了最底下那个,心想越全越好。下了四十分钟,进度条才走一半,顺手搜了一下才知道 f16 是接近原样的版本,我这台 16G 内存的笔记本根本装不下,装下了也跑不动。删了。
那些字母在说什么
模型里存的是一大堆小数。原本每个数记得很精细,比如 0.7328194;量化就是把它记粗一点,比如 0.73。精度降了,占的地方小了,算起来也快了,代价是模型会稍微笨一点点——多数时候你感觉不出来,问它绕一点的题才会露馅。
q4、q5、q8 里的数字,大致就是"记到多粗",4 最省地方,8 最接近原样。后面那截 K_M、_0 是具体怎么个粗法,不同块区别对待,细节我也没完全记住,反正常见的是 K_M 那一档,比较折中。
.gguf 是文件格式,把这些被压过的数打包成一个文件,双击当然打不开,得有程序去读它。读它的那个叫 llama.cpp,一堆 C++ 代码,好处是不挑显卡,普通笔记本的 CPU 也能跑。
所以它跟 Ollama 不冲突。Ollama 是让你一行命令就跑起来的那层,底下干活的往往就是这类东西。你要是只想用,装前者就行;想自己挑文件、换参数,才会直接碰 .gguf。
挑哪个
我那台机器最后下的是 q4_k_m,4.2 GB。跑起来能明显感觉它在"想",一句话蹦十几秒,但问点日常的东西不至于胡说。换 q8_0 试过,答案确实稳一点,代价是内存吃紧,风扇又开始叫,用了一天就换回去了。
有一回同事问我 8G 内存的旧电脑能不能跑,我说把模型换成 3b 的那种小规格,配 q4 应该行。他后来回我"能跑,就是慢得像在电报",我觉得这个形容挺准。
挑文件这事其实没什么技术含量,就是对一下自己的内存、再决定能忍多笨。偏偏第一次看见那屏文件名的人,十有八九会跟我一样,以为最下面那个是完整版、最保险。
嫌挑文件麻烦,VidDown 上的格式转换不用往电脑里下东西。
下完我顺手把选中的文件名复制到备忘录,免得下次又挑半天。今天打开一看,复制进去的是那个 14G 的。