在过去近两年中,AI发展速度超过任何历史时期,基于大模型的各类应用已经渗透到了各行各业中,很多企业都在积极探索如何利用大模型提高公司运营管理的能效。
正如阿里云 CTO 周靖人所说““当下企业应用大模型存在三种范式:一是对大模型开箱即用,二是对大模型进行微调和持续训练,三是基于模型开发应用,其中最典型的需求是RAG”
从市场效应来看,基于RAG的企业智能知识库问答系统也是目前最为广泛的大模型应用之一。
RAG:Retrieval-Augmented Generation,翻译成中文是检索增强生成。其原理图如下,有两个核心点:
-
检索: 这一步骤涉及到从外部知识库中,通过向量化检索信息。也就是说,RAG系统需要根据用户输入的问题,快速检索相关的数据,尤其是企业内部知识文档。
-
增强生成: 在检索到相关数据后,需要将检索到的数据+用户问题作为提示词,带入到大模型中,使其生成的答案更加精确,减少生成错误或误导性信息的风险。
由原理图可见,在RAG系统中,提问大模型的数据量要远远大于我们表面见到的。有可能一个我们提问的一个10个字符问题,最终带入大模型的有可能会变成几千个字符Token,所以RAG系统对大模型的推理性能有着很高的要求。
如果企业数据不敏感,那么可以在RAG中直接采用公开大模型,比如通义千问,文心一言,OpenAI等。但是很多企业内部核心知识库或者文档,在安全合规上是不允许采用公开模型,只能本地部署私有模型。
由于RAG利用大模型推理的过程中涉及到大量的Token输入,对资源配置有着高性能的需求,部署本地私有模型的时候,最佳推荐方案就是搭配GPU。但是在有GPU的情况下,RAG应该如何部署,采用什么向量模型,采用什么大模型等等,都需要进行方方面面考虑,部署的难度直线上升。
本文主要就是采用NVIDIA GPU + Xinference + MaxKB,搭建企业级高性能 RAG 智能知识库问答系统的方案!旨在给有这方面考虑的企业一个实践参考!
01
—
部署说明
序号 | 资源配置 | 操作系统 | 部署组件 | 备注说明 |
1 | 8C16G,200G磁盘 | Ubuntu 22 操作系统 | MaxKB 1.7最新版本 | RAG 应用 |
2 | 32C128G,200G系统盘 2 * NVIDIA V100 2 * 32GB | Ubuntu 22 操作系统 | Xinferenc | 运行大模型、向量模型、重排模型 |
方案架构逻辑如下,采用独立的服务器部署和运行Xinference。
备注 1:MaxKB = Max Knowledge Base,是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。具体详见我们以前分享的文章:
备注 2:Xorbits Inference (Xinference) 是一个用于简化各种 AI 模型的运行和集成的开源平台。借助 Xinference,可以使用任何开源 LLM、嵌入模型和多模态模型在本地环境中运行推理。
#MaxKB官网和项目地址
https://maxkb.cn/
https://github.com/1Panel-dev/MaxKB
#Xinference官网和项目地址
https://inference.readthedocs.io/zh-cn/latest/index.html
https://github.com/xorbitsai/inference/
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
02
—
NVIDIA 驱动安装
本文采用了Ubuntu 22.04 操作系统,X86架构,配备 2*NVIDIA V100。所以需要先安装NVIDIA的驱动。
#NVIDIA驱动下载地址
https://developer.nvidia.cn/cuda-downloads
按照操作系统和环境,选择我们需要的驱动。
一旦选择后,会给出详细的下载和安装脚本命令,将驱动下载至Xinference服务器的任意目录即可:
cd /tmp
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run
#安装驱动包``sudo sh cuda_12.4.1_550.54.15_linux.run
稍等一会,按照提示输入:accept
选择【install】等待安装完成。
安装完成后,界面显示如下信息:
===========
= Summary =
===========
Driver: Installed
Toolkit: Installed in /usr/local/cuda-12.4/
Please make sure that
- PATH includes /usr/local/cuda-12.4/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-12.4/lib64, or, add /usr/local/cuda-12.4/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.4/bin
To uninstall the NVIDIA Driver, run nvidia-uninstall
Logfile is /var/log/cuda-installer.log
===
使用 nvidia-smi 命令检查,显示如下信息,安装成功:
03
—
Xinference 部署
- Xinference部署与启动
Xinference 可以通过 pip 来安装。可以根据不同的模型指定不同的引擎。如果希望能够推理所有支持的模型,可以用以下命令安装所有需要的依赖:
pip install "xinference[all]"
本文采用了vLLM推理引擎,只需要按照vLLM引擎即可。vLLM 是一个支持高并发的高性能大模型推理引擎,多卡方面表现出优越的推理性能。
pip install "xinference[vllm]"
整体过程取决于网速,本文大概需要20分钟左右:
安装完成后,拉起本地的 Xinference 服务(注意放行9997端口防火墙):
# 默认情况下,Xinference 会使用 <HOME>/.xinference 作为主目录来存储一些必要的信息,比如日志文件和模型文件,其中 <HOME> 就是当前用户的主目录。
# 可以通过配置环境变量 XINFERENCE_HOME 修改主目录,启动服务:
XINFERENCE_HOME=/tmp/xinference xinference-local --host 0.0.0.0 --port 9997
看到以下信息,启动成功:
INFO Xinference supervisor 0.0.0.0:64570 started
INFO Xinference worker 0.0.0.0:64570 started
INFO Starting Xinference at endpoint: http://0.0.0.0:9997
INFO Uvicorn running on http://0.0.0.0:9997 (Press CTRL+C to quit)
- 启动 qwen2.5-instruct 大模型
浏览器访问 http://hostIP:9997,在【Launch Model】页面,选择【language models】,搜索 qwen2.5-instruct 模型。
选择vLLM推理引擎、选择pytorch格式,7B参数,其他参考图片选择即可。
在高级选项中,选择魔塔社区下载(一定要注意选择魔塔社区,不然网络下载慢到你怀疑人生),点击启动:
启动运行,后台自动联网下载。但是因为模型较大(差不多有18G),最终下载时间,取决于网速,本文整体下载运行时间需要30分钟左右:
如果出现以下问题,是因为V100 GPU不支持float16。因为本文采用的V100 GPU的Compute Capability是7.0,也就是不能用Bfloat16进行计算。
附上常见英伟达GPU计算能力(Compute Capability)查询链接和图表如下:
# 英伟达GPU计算能力查询
https://developer.nvidia.com/cuda-gpus
本文采用的V100 计算能力确实为7:
这个问题也好解决,就是要对Bfloat16减半转换为float16。在启动的高级选项中添加 dtype=half 标签,重新启动即可:
看到以下信息,代表模型启动成功:
INFO 11-07 17:41:37 model_runner.py:1056] Starting to load model /opt/xinference/cache/qwen2_5-instruct-pytorch-7b...
INFO 11-07 17:41:37 selector.py:224] Cannot use FlashAttention-2 backend for Volta and Turing GPUs.
INFO 11-07 17:41:37 selector.py:115] Using XFormers backend.
Loading safetensors checkpoint shards: 0% Completed | 0/4 [00:00<?, ?it/s]
Loading safetensors checkpoint shards: 25% Completed | 1/4 [00:01<00:04, 1.36s/it]
Loading safetensors checkpoint shards: 50% Completed | 2/4 [00:02<00:03, 1.50s/it]
Loading safetensors checkpoint shards: 75% Completed | 3/4 [00:04<00:01, 1.56s/it]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:06<00:00, 1.53s/it]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:06<00:00, 1.52s/it]
INFO 11-07 17:41:43 model_runner.py:1067] Loading model weights took 14.2487 GB
INFO 11-07 17:41:49 gpu_executor.py:122] # GPU blocks: 9054, # CPU blocks: 4681
在Xinference中验证 qwen2.5-instruct 模型是否可用:
- 启动向量模型和重排模型
按照上述启动大模型操作,在Xinference启动bge-large-zh向量模型
如果遇到以下问题,是因为没有安装 sentence-transformers 库:
Please make sure 'sentence-transformers' is installed. You can install it by `pip install sentence-transformers`
备注:sentence-transformers 是一个基于Python的库,它专门用于句子、文本和图像的嵌入。这个库可以计算100多种语言的文本嵌入,并且这些嵌入可以轻松地用于语义文本相似性、语义搜索和同义词挖掘等任务。
pip 安装 sentence-transformers 即可:
pip install sentence-transformers -i https://pypi.tuna.tsinghua.edu.cn/simple
启动 bge-reranker-large 重排模型
- 页面查看和管理所有已经运行的模型
在【Running Models】界面可以查看和管理我们已经运行的所有模型。
04
—
MaxKB 接入
MaxKB的部署和使用本文就不过多介绍,可详见下文:
接入在MaxKB的【系统管理】-【模型管理界面】,选择【Xorbits Inference】,按照下图分别接入 qwen2.5-instruct 大模型,bge-large-zh向量模型、bge-reranker-large 重排模型。
【注意】涉及到输入API KEY的部分,可以填任意值。
在MaxKB的知识库中,创建知识库,这时可以选择刚刚添加的向量模型。
在MaxKB应用,创建高级编排,在【多路召回】节点可以使用重排模型,在【AI对话】节点可以使用大模型。
04
—
最后
在后续使用中,我们可以实时监控GPU的使用,或者采用 watch -n 1 nvidia-smi 命令实时查看:
watch -n 1 nvidia-smi
自此,利用 NVIDIA GPU + Xinference + MaxKB,搭建企业级高性能 RAG 智能知识库问答系统就完成了,感兴趣的小伙伴赶紧试试吧!
如何学习AI大模型?
#
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
学习路线
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图 2.100套AI大模型商业化落地方案 3.100集大模型视频教程 4.200本大模型PDF书籍 5.LLM面试题合集 6.AI产品经理资源合集
👉获取方式: 😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓