下载DeepSeek官方提供的整理版本模型,Qwen系列的1.5B、7B、14B和32B。进行上一篇提到的AIME测试。
模型 | AIME2024 @1 [6] |
o1-mini [1] | 63.6 |
DeepSeek-R1-671B [1] | 79.8 |
DeepSeek-R1-distill-Qwen-1.5B [1] | 28.9 |
DeepSeek-R1-distill-Qwen-7B [1] | 55.5 |
DeepSeek-R1-distill-Qwen-32B [1] | 72.6 |
Open-R1-1.5B [2] | - |
Open-R1-7B [2] | - |
Open-R1-32B [2] | - |
bartowski/DeepSeek-R1-distill-Qwen-1.5B-f16 * [3] | 23.3 |
bartowski/DeepSeek-R1-distill-Qwen-7B-Q8 * [4] | 53.3 |
bartowski/DeepSeek-R1-distill-Qwen-32B-Q8 * [5] | 70.0 |
DeepSeek-R1-distill-Qwen-1.5B ** BF16 [8] | 23.3 |
DeepSeek-R1-distill-Qwen-7B ** BF16 [9] | 46.7 |
DeepSeek-R1-distill-Qwen-14B ** BF16 [10] | 70.0 |
DeepSeek-R1-distill-Qwen-32B ** BF16 [11] | 73.3 |
**采用DeepSeek提供的蒸馏模型,链接分别如[8-11]。这里注意,采用FP16和BF16是有差别的,脚本中要将dtype指定为bfloat16。测试时,分别采用1,1,4,8卡。
从测试结果看,DeepSeek提供的蒸馏模型相较于论文中的数据还是有差别。相比于GGUF量化模型,精度有没有显著的优势,反而还有下降,比如7B模型。
在GPU执行时,GGUF量化模型和DeepSeek提供的蒸馏模型最大的差异是一个量化了,一个没有量化。第二个区别是前者使用的是float16,后者使用的是bfloat16。查看4090的手册,FP16和BF16使用cuda core是相同的峰值性能(82.6TFLOPS),使用tensor core以及FP32累加也是相同的峰值性能(165.2TFLOPS)。计算量相同,卡计算能力相对,那计算时间应该一样。那7B和32B量化和不量化的时间差异,可能是模型参数反量化导致的,这个还要深入底层细节再看看。
模型 | 推理时间 AIME2024 @1 [6] |
bartowski/DeepSeek-R1-distill-Qwen-1.5B-f16 * [3] | 4:13 |
bartowski/DeepSeek-R1-distill-Qwen-7B-Q8 * [4] | 17:50 |
bartowski/DeepSeek-R1-distill-Qwen-32B-Q8 * [5] | 21:35 |
DeepSeek-R1-distill-Qwen-1.5B ** BF16 [8] | 4:13 |
DeepSeek-R1-distill-Qwen-7B ** BF16 [9] | 7:42 |
DeepSeek-R1-distill-Qwen-14B ** BF16 [10] | 12:45 |
DeepSeek-R1-distill-Qwen-32B ** BF16 [11] | 17:10 |
总结下来,量化成低精度表示的模型,主要是在于减少模型的存储大小,也就是在硬盘、网络传输时的大小。在实际加载模型、推理计算时,低精度模型是要转成硬件能够支持的精度。FP8的硬件支持是NVIDIA Hopper构架才引入的,之前几代都是INT8。因此,FP8模型,在4090只能采用FP16或者BF16。同时,还会引入模型参数反量化这个计算开销,导致实际推理速度变慢。
对于1.5B和7B的性能和速度折中方面,快了一倍和性能降低一倍,一升一降。这里就存在一个蜜罐,模型参数从1.5B提到3B左右,速度可能不会变化很大。同理,7B和32B也应该存在这么一个蜜罐区域。因此,要想用好计算卡的性能或者提高计算效率,还是存在一定的优化空间。
综上,从系统结构角度看,单节点推理方面尚有优化空间,大规模集群推理服务时应该还有更多的优化空间。此时,如何提供一个轻量化的、好用的框架,确实还有的做。同时,针对现有系统,那就是最大化利用硬件资源,而对于从头搭建新的系统,那就可以卡一下几个性能平衡点,在性能、成本、服务质量取平衡。而更前一步,那就是对于新硬件和构架的设计,能不能进一步挖掘这里面的优化空间,把软件层面、框架层面的一些优化下沉到硬件,进一步提升速度。
[1] DeepSeek-AI. DeepSeek_R1_Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. GitHub - deepseek-ai/DeepSeek-R1
[2] https://github.com/huggingface/open-r1
[3] https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-1.5B-GGUF
[4] https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF
[5] https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-32B-GGUF
[6] https://huggingface.co/datasets/HuggingFaceH4/aime_2024
[7] HuggingFaceH4/MATH-500 · Datasets at HF Mirror
[8] https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
[9] https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
[10] https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
[11] https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B