都说是7B大模型,为什么人家只用CPU就能吐字飞快...

最近我试用了2款基于LLM大模型+RAG知识库的商业软件,按照发布的时间排序,也按照字母的缩写,分别称为F家和L家吧。

这2款都支持部分离线使用,Windows下无需手动部署,并且无需GPU(当然有GPU可以跑更快)。稍微仔细点观摩下,底层都是基于Ollama,也可以理解为llama.cpp。

关于PC端侧推理应用考虑的要点,我在《PrivateGPT+Qwen2:大模型& RAG Demo(附AIPC懒人包)》中讨论了一些。而使用原生llama.cpp的进一步好处也很简单,就是普通CPU都能跑,并且内存的消耗比iGPU集显(相当于系统内存+共享显存)还要低一些。这样就能兼容更多的低配PC、老机器。

再看RAG的技术门槛

我首先试用的是F家,他们是可选下载包含不同模型的程序包,比如Qwen2-7b-Chat,模型大小一看就是int4量化的。下载后无需安装,试用时每次启动需要连着网,进入之后如果使用基础的LLM+RAG就可以断网了。

image.png
image.png

我使用的PC配置如上表,还不是之前AI PC测试中的最高配置。本次测试会直接跑在CPU核心上,如果给大模型发出字数较少的聊天,等待延时也基本能接受(跟独立GPU自然没法比)。Token/s输出速度并没感觉比iGPU慢太多。与我在《LLM大模型推理测试 & AI PC选型指南 (1)》中测试的情况基本相符。

image.png

然后我又简单试了把LAG知识库,只导入了一个几MB的pdf,问点啥就要等好久了。此时普通PC的CPU核心确实体验不够好。参考之前测试的下图,一旦输入文字量多了,iGPU特别是Core Ultra的集显优势就会很大。至于知识库回复的质量嘛,跟我之前分享的PrivateGPT水平似乎差不多,看来RAG要想效果做好还是有些技术门槛的。

image.png

在这里只能说llama.cpp在选择通用性时,就无法同时兼顾效率。除非您使用IPEX里面的llama.cpp。

F家就先试用到这里,总之确实CPU就能跑,CPU引擎llama.cpp确实节省内存,16GB的集显PC完全可以玩。

笔记本CPU Core就能输出飞快的是什么模型?

接着我又试用了F家的软件,号称也是70亿参数模型。安装完先下载“智能助理”,由于进度条显示问题也没搞太清具体的下载时间和容量(读者朋友们要注意喽)。接着我跟LLM对话,“神奇”的一幕就出现了。

这款LLM只用CPU Core跑llama.cpp,比我之前用Core Ultra的集显(也是调用Ollama)测试居然要快很多!!而同时我也发现,它的内存消耗只有1-2GB。似乎INT2/FP2也达不到这样的效果啊?

为了验证这个疑问,我也单独装个Ollama对比Q4_K_M、Q4_0、Q2_k这些不同大小的量化模型。早先我在NVIDIA GPU上就曾观察到明显的内存(显存)开销变化,但速度的提升却没有达到模型压缩比的水平——用CPU跑也是类似。

正好今天看到一篇外网文章《Honey, I shrunk the LLM! A beginner's guide to quantization – and testing it》,里面一些NVIDIA RTX 6000 Ada的测试对比数字有些参考价值,引用过来,我就不再重复造轮子了。请注意以下列出的3张图都不是CPU性能。

image.png

The Register网站对比的是Mistral 7B和Gemma2 9B两款模型,在不同量化尺寸下的性能和压缩比。比如用GGUF Q4_0格式,文件大小只有量化之前FP16模型的28-29%,而Tok/s性能提升不到3倍。

这篇文章中还介绍了lamma.cpp生成量化模型的具体命令方法,在此我就不赘述了,文末会列出参考链接。下面补充2张更全的量化效果:

image.png

如上图,我以前测试使用Q4_K_M量化模型较多,曾看有人说效果比Q4_0好点,还听朋友说过6bit量化(Q6_K)跑RAG相对更合适。

在4bit以下,像Q3_K_M、Q2_K、IQ1_M、IQ1_S这些还能继续缩小模型尺寸(也能减少内存占用)。但我也看到,特别是到Q1时PPL质量的损失就很大了。

image.png

Mistral 7B和Gemma2 9B的情况总体上类似,只是9B参数量比7B大了,性能也相应下降。而在4bit以下的量化,提升速度应该不是主要目的了吧。

我的问题到此还没有答案。而当我继续使用“私域知识库”功能时,提示需要下载15GB容量(像不像FP16 7B模型的尺寸?),而最终实际的下载量却是4.x GB。大胆猜测下,如果我配置合适的GPU会不会就下载前者,而只用CPU跑Ollama就自动下载int4量化模型呢?

答案大家应该知晓了吧。L软件的聊天机器人和RAG,使用的应该是不同的LLM模型(人家也没说一定都是7B啊)。如果你只是想用任何一台PC、8GB内存就能比较流畅地跟LLM对话玩玩,跑一个3B或者1.5B的模型不行吗?还记得我之前尝试0.5B的时候,先不看效果,那吐字速度还可以更快:)

image.png

今天就先写到这里吧。L家的RAG效果我还没来得及试,不过有一点,如果只是传统CPU Core的llama.cpp,长文本输入的反应速度应该不会太好。我会继续关注AI/LLM/RAG这个话题的,后续有机会再跟大家分享。

参考内容 https://www.theregister.com/2...

作者:唐僧 huangliang
原文:企业存储技术

推荐阅读

欢迎关注企业存储技术极术专栏,欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
5599
内容数
252
关注存储、服务器、图形工作站、AI硬件等方面技术。WeChat:490834312
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息