在上期《AI大模型开闭源生死局》特别策划的最后,我们用搭载RTX 4090独显的未来人类X911笔记本体验了Qwen2 7B离线大模型,获得了还不错的端侧AI体验,从测试成绩来看可以达到每秒87 tokens,同时我们也提到端侧AI的参数量最低甚至可以只有0.5B,对显存的需求低至350MB,那么这种参数量的差异,反馈到体验上的区别究竟有多大呢?今天我们就来实际测试一下吧!
01
参数量只是其一,量化也是重要指标
在对比测试之前我们还是有必要对大模型的规格进行基本的科普,除了之前提到的参数量之外,大模型还有一个关键的参数就是量化手段,所谓量化,就是将模型中的参数从高位宽的浮点数,转换为低位宽的整数,例如从32位的浮点数(FP32)转换为8位整数(INT8)。
通俗地说,量化就像是把莎士比亚原作全集书简化为摘要或儿童图书,目的是使其占用空间更小、更容易传播,但缺点就是可能会丢失细节。
量化后的大模型首先是体积变小,还是以Qwen2 7B为例,INT8量化的版本体积为8.87GB,而INT4量化后体积就只有5.58GB了,在8GB显存机器上运行前者会导致每秒tokens明显下降,而运行后者的生成速度就会正常很多。其次,整数量化可以让不具备浮点运算能力的CPU运行大模型,所以没有强力GPU的端侧用户也能借此机会体验到大模型。
同为7B大模型,量化方式不同,文件体积也大不相同
事实上,CPU和GPU的优化方式也是量化的重点方向之一,在很多大模型名称后缀里我们都能看到如GPTQ、GGML、GGUF等限定词,其实这些都是量化方式的简称,它们对应的正是硬件优化方向,比如GPTQ在GPU上运行会更快,而GGML、GGUF在CPU上运行更快,如果量化精度相同,比如都是INT8(文件名表示为Q8)的话,两者的推理能力是相同的,所以我们在搭建端侧模型时就需要按照自己的硬件性能来有的放矢。
我们本次体验的Qwen 0.5B全称是“qwen2-0_5b-instruct-q4_0.gguf”,文件体积353MB,实际显存占用量1GB左右。与之对比的Qwen 7B大模型全称为“qwen2-7b-instruct-q4_0.gguf”,文件体积4.44GB,实际显存占用量5.6GB左右,这两个都是以CPU为优化方向的INT4量化模型。
首先,我们用初中级别的命题作文来进行测试,0.5B大模型虽然能以147 tokens每秒的速度进行快速输出,但内容读起来却有些不对劲,比如文章的主体不一致,描述同一件事情时一会儿是第一人称,一会儿是第三人称,需要修改的地方还不少。
而7B大模型就没有这个问题,它能够保持文章主体的一致性,而且采用段落式写法,每个部分都有小标题,虽然每秒Tokens下降到了20出头,但质量是碾压性地胜利。
0.5B大模型无法正确回答小学五年级奥数题
接下来我们用初中数学常见的相遇问题对这两个大模型进行测试,遗憾的是它们两个都在一大串的自言自语后给出了错误的答案,所以我们把难度放低到小学五年级的奥数题,7B大模型可以迅速找到解题思路,给出正确答案,而0.5B大模型在多次回答的情况下一直处于“胡说八道”的状态,虽然每秒Tokens很高,但准确率太低,显然也没有什么实用价值。
从简单的对比测试结果来看,我们不建议大家在端侧部署0.5B参数大模型作为离线助理,因为它的准确率实在太低了,目前来看,0.5B/1.5B/2B/3B这种小参数量的大模型主要的应用方向是低算力的物联网产品。当然,手机也很适用,因为它的算力、运存和存储空间需求较低,也可以降低能耗提升续航。但考虑到智能手机几乎都是全程联网,所用到端侧AI的机会其实不多,结合专用知识库作为App内辅助功能的意义可能会更大一些。
那么回到PC端,对于当下的高性能机型来说,7B参数量大模型作为“守门员”是没有问题的,毕竟移动端最入门的RTX 4050也有6GB显存,运行起来毫无压力,桌面端的RTX 4090因为有24GB显存,所以运行32B参数的大模型也没有问题……如果你是集显本但内存足够大,也可以尝试用CPU+内存部署7B大模型,但目前来看推理性能的差距还是比较明显的。