导语:如何查询 DeepSeek 模型的精度?通过 Ollama 和 HuggingFace 下载模型后,如何快速定位模型精度?并介绍了不同精度方式的区别,如 FP32、FP16、INT8、INT4、BF16 等。最后分享了一个动态优化的全参数量化版本 R1 模型。
关于 DeepSeek 部署的重点目前侧重于模型参数大小和硬件配置。
但是,其中有一个关键的信息——模型精度,并没有详细的介绍,即使我们通过 Ollama run 下载了模型,或者在 Hugging Face 上下载了模型,最先看到的都是模型的参数大小,比如:
ollama run deepseek-r1:14b
DeepSeek-R1:671B
那模型精度在哪里看?今天我们就以 Ollama和 HuggingFace上模型为例,详细介绍模型精度的查询方法,并穿插各种精度的区别,比如 BF16和 F16 的区别。
1、Ollama 下载模型的精度查询
Ollama 查看模型有两种方式,一种是下载前,一种是下载后。
下载前,可以在 model 页面直接查看。
如果你是下载后,可以通过 ollama list 查看已经下载模型列表。再通过 ollama show modelname 就可以看到:
quantization:Q4_K_M。(咦?Q4_K_M 是什么精度?和 INT4 有何异同?)
这就需要列出常用的精度方式,我们之前讲了 FP32、FP16、INT8、INT4 等,但是还有很多其他的精度描述方式:BF16、GGUF、GPTQ 等等。
那 Q4_K_M 是怎么来的,通过下图,可以看到是通过对一些特殊参数进行量化。
那 Q4_K_M和 INT4 有啥区别?都代表了参数用 4 位表示吗?
简单理解INT4是对所有参数进行了量化,而 Q4_K_M 对权重进行了分组具体量化过程可以自行查询 AI。 只需要知道 Ollama 的模型一般是这个精度。
2、HuggingFace 模型的精度如何查询
以DeepSeek-R1为例,在模型下载页面找到 config 文件,然后搜索关键词torch_dtype,就可以看到精度。
等会!bfloat16?这个和我们之前说过的 float16 有关系吗?
BFloat16 中的代表的是 Brain,Google Brain 推出的一种精度方式。看下图,我们都知道浮点型数据在计算机的表示分为
Sign+Precision+10 的 Range 次方。
所以 FP16 就是 16Bits 位,就像我们之前讲的 INT8 是 8 位。
BFloat16 另辟蹊径,将 Range 增大到和 FP32 一样,这样能表示的数字范围就扩大了。但是留给精度 Precision 的位数从 10 位降到 7 位了。
以上就是两种常见的模型查询方法。
3、全参数 671B DeepSeek-R1 但是动态优化
最后介绍的一种动态优化的全参数量化版本 R1 模型。
在 Ollama 上可以下载
以上就是模型精度的极简介绍。
领取专属 10元无门槛券
私享最新 技术干货