PrivateGPT+Qwen2:大模型& RAG Demo(附AIPC懒人包)

背景:在撰写本文的分享之前,我就已知有一些不完美和遗憾之处,这次希望能达到抛砖引玉的效果。欢迎大家提出自己的建议、可以在下面给我留言。

最近一段时间,发现在我身边玩LLM大模型的同事和朋友越来越多。无论是用服务器、移动工作站,还是想在AI PC笔记本上跑个Demo。如果有个显存够用的NVIDIA GPU,网上可以找到大把现成的软件和攻略;或者基于lamma.cpp跑在CPU上,通用性不错但在低配的机器上速度较慢…

image.png

一个小目标:让大多数PC都能流畅跑起大模型

在上一篇《LLM大模型推理测试 & AI PC选型指南 (1)》中,我曾经提到过自己的第2个小愿望,那就是做一个简单易用的会话聊天Demo。受限于个人软件水平(我没有写代码的基础),这个过程中我踩的坑多了一点,尝试过不少免费开源程序,最终我选择了IPEX-LLM里面的llama.cpp + Ollama配合PrivateGPT搭建本地私有知识库。我评估的主要目标如下:

1、支持Intel iGPU集显推理,包括Core Ultra的Arc、Intel Graphics,也包括前几代笔记本的Iris Xe、台式机CPU集成的UHD 7xx系列。为什么这次的版本不跑在通用CPU核心上?就是因为效率,上面链接里的评测已经证明过这一点,特别是在最新一代AI PC笔记本上。

2、不需要独立GPU,最低16GB系统内存就可以把7B(70亿参数)模型跑起来(尽量不开其他程序的情况下)。只要内存够,那些没有显卡的商用PC、笔记本都可以玩起来。

3、离线LLM + RAG(检索增强生成),不用科学上网,全程无需连网即可运行。本次我使用的大语言模型是qwen2-7b-instruct-q4\_k\_m,按照当前业界的口碑,通义千问2在7B这个水平上应该算中文通用模型中领先的。

4、开放性:基于开源组件搭建,除了在Web界面中的交互操作,还可看到命令行中的输出信息,有助于理解/分析/排错。简单开放的批处理运行脚本,也便于修改调整功能实现。

5、通用性:适用于Windows PC,最好不需要安装Docker容器和WSL(Linux虚拟机环境)。

6、易用性、鲁棒性:解压缩后直接运行,不再需要下载安装各种依赖包;除了集成的qwen2模型,可离线或在线导入不同的中英文LLM模型。(注:导入模型、修改配置文件暂时还只能通过命令/手动,相信这点难不住水平高的朋友,我也可以在下一篇中补充分享相关操作步骤。)

7、遗留问题:我承认Ollama里面的Embedding模型对中文支持不够好,所以本次共享的Demo,只算是能把RAG跑起来,知识库这部分的效果不算好,还无法与Chat with RTX相比。建议对LLM感兴趣的朋友先玩Chat对话功能,后续有机会我再整理更完善的RAG Demo。

来自Chat with RTX的启示

我之前转载过一篇《12G显存/Chat with RTX中文语言模型配置及使用体验》,看读者朋友在下面的留言,评价一般吧。我也尝试过NVIDIA这个Demo的不同版本,起初一个是把Embedding模型跑在GPU上,加上int4量化的7B LLM模型,显存占用就达到9-10.x GB;后来一个新版本把Embedding模型改到了CPU上,对显卡要求的门槛倒是降低了,但CPU处理的速度明显没有之前快。

只是让Chat聊天机器人愉快地跑起来,门槛不高。但具体到RAG的效果,与使用哪种Embedding模型、有没有Rerank模型,以及向量数据库的存储都有关系。当前在这一点上,如果没有一个显存够用的独立GPU确实有点难度?不过高通集成45 TOPS NPU的ARM笔记本不是开始卖了吗?Intel后续Lunar Lake啥的也会提高算力,相信用不了多久,只是搞定单机的本地知识库应该没啥问题吧。

具体的软件应用方面,我也会继续关注和研究的。

PrivateGPT+Qwen2大模型Demo(iGPU版)网盘分享

链接:https://pan.baidu.com/s/13RAU...
提取码:03zo

简易上手指南

image.png

打开上面的网盘链接(或者点本文底部“阅读原文”),可以看到我分享的4个文件。建议下载5.4GB那个带有模型的大文件(其中qwen2:7b模型就占了4GB多),然后推荐用7zip解压缩。如果手头有gguf模型并熟悉用Ollama导入操作的朋友,也可以下载“不带模型”的Demo程序。

还有一个900多MB的Intel显卡驱动,能安装这个31.0.101.5382版本号的都可以跑本次分享的Demo,Intel建议的驱动版本不低于31.0.101.5333,实际上我在12代台式机i7 CPU上用49xx的驱动也能跑起来。主要是IPEX-LLM底下的OpenCL驱动合适就行。

image.png

PrivateGPT… zip包解压缩之后,具体的文件夹和位置不限,但路径中不要有中文或特殊字符。双击上图中的“启动.bat”批处理,正常情况下就可以跑起来。

不难看明白吧,我是安排先弹出2个cmd窗口,1个运行ollama_server,另一个跑private_gpt;然后保守一些,等待20秒后(确保启动完毕)打开浏览器。有不同需求的朋友也可以修改这个批处理,或者手动单独运行2个后台程序,然后用自己喜欢的浏览器访问127.0.0.1:8001。如下图:

image.png

当浏览器打开Private GPT界面之后,左上角默认的工作模式为“Query Files”,如果您只需要与大模型对话就可以切换到“LLM Chat”,接着从右下角的输入框开始和qwen2:7b模型聊天吧:)

除了查询文件之外,还有一个“Search Files”,即像搜索引擎那样简单地,从“被导入文件”生成的向量化数据库(纯文本)中列出相关段落——不用LLM再组织语言所以输出很快。

至于RAG部分,使用Ollama+Private GPT默认搭起来的Demo,其向量数据库存储只是一个sqllite文件,Embedding模型也是跑在CPU上(单线程),所以Upload文件更新至向量数据库的速度有点慢,请耐心等待。

如果您在查询文件时遇到"Initial token count exceeds token limit"这个报错,请修改下面这个配置文件:

image.png

在private-gpt目录下,用记事本打开setting-ollama.yaml参数文件,将context_window(上下文窗口)数值改大为32000、保存,再重启private_gpt,在我的测试中RAG就不报错了。付出的代价是:(共享)显存的总占用会达到8GB,这时就需要32GB系统内存的配置才能流畅运行了。

由于Ollama支持的Embedding模型应该只有3种,Private GPT默认设置的“nomic-embed-text”,我看网上有些口碑还可以。但在搭配qwen2 LLM模型测试时,中文支持的体验不够好。等后续有空我再看看,争取下次分享效果更好的Demo。

下面列出我简单验证过的硬件配置:

image.png

与上一篇《LLM大模型推理测试 & AI PC选型指南 (1)》中的体验类似,集成Intel Arc显卡的Core Ultra H系列CPU,其单机离线LLM推理速度比较流畅了(每秒可达15-20 token);其次是集成Intel Graphics显卡的Core Ultra U15——俗称低压U。这就算我给出的一点点硬件配置建议吧。

如果您对本文有任何疑问或建议,欢迎告诉我。我将认真学习,并尽量在自己能力范围内给出答复。谢谢!

参考信息

Run llama.cpp with IPEX-LLM on Intel GPU https://github.com/intel-anal...

Run Ollama with IPEX-LLM on Intel GPU https://github.com/intel-anal...

Run PrivateGPT with IPEX-LLM on Intel GPU https://github.com/intel-anal...

https://docs.privategpt.dev/i...

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

推荐阅读

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