查看原文
其他

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

唐僧 huangliang 企业存储技术
2024-12-09

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

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

一个小目标:让大多数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/13RAU6S9jJv591GH_9GI9Vg?pwd=03zo

提取码:03zo

简易上手指南

打开上面的网盘链接(或者点本文底部“阅读原文”),可以看到我分享的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驱动合适就行。

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

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

当浏览器打开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"这个报错,请修改下面这个配置文件:

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

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

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

笔记本/工作站机型

CPU

集显(iGPU)

内存(双通道)

Dell Precision 3591(同类机型包括但不限于Latitude 5540、5550)

Core Ultra 5 H45/H28

Intel Arc Graphics(集显配置)

32GB DDR5-5600

Dell Latitude 7450

Core Ultra 7 U15

Intel Graphics

32GB LPDDR5x 6400

Dell Latitude 5440

Core 13代i5 U15

Intel Iris Xe

32GB DDR4-3200

Dell Precision 3660  Tower塔式工作站

Core 12代i7-12700

Intel UHD Graphics 730(集显配置)

16GB DDR5

与上一篇《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-analytics/ipex-llm/blob/main/docs/mddocs/Quickstart/llama_cpp_quickstart.md

Run Ollama with IPEX-LLM on Intel GPU https://github.com/intel-analytics/ipex-llm/blob/main/docs/mddocs/Quickstart/ollama_quickstart.md

Run PrivateGPT with IPEX-LLM on Intel GPU https://github.com/intel-analytics/ipex-llm/blob/main/docs/mddocs/Quickstart/privateGPT_quickstart.md

https://docs.privategpt.dev/installation/getting-started/installation


扩展阅读:《企业存储技术》文章分类索引(微信公众号专辑)


:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流可加微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)


尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:HL_Storage

长按二维码可直接识别关注


历史文章汇总:http://www.toutiao.com/c/user/5821930387/

http://www.zhihu.com/column/huangliang

个人观点,仅供参考
修改于
继续滑动看下一个
企业存储技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存