引言
随着GPT等大型语言模型(LLM)能力越来越强大,如何将这些模型精准地应用于特定垂直领域,让各行业开发者快速利用LLM赋能也成为热点和痛点。众所周知,LLM在处理超出其训练数据或涉及最新实事时,常会产生“幻觉”现象,简单理解就是会出现一本正经的胡说八道,回答不准确。针对此问题,RAG通过从外部知识库检索相关文档作为上下文输入到LLM有效地减少了生成内容不符合实际的情况。
RAG技术原理介绍
在介绍RAG-GPT项目之前,我们首先要理解RAG的基本原理,RAG在问答系统中的一个典型应用主要包括三个模块,分别是:
- Indexing(索引):将文档分割成chunk,编码成向量,并存储在向量数据库中。
- Retrieval(检索):根据用户输入query和向量数据库中chunks语义相似度检索与问题最相关的前k个chunk,形成本次问答的上下文。
- Generation(生成):将原始问题和检索到的chunks整合形成合适的prompt一起输入到LLM中,让LLM输出与上下文有关的回答。
智能文档的在线检索流程可以用一张图说明,上图中展示了一个完整的问答流程:
- 用户发起query
- 结合Bot实际应用场景,评估是否对query进行rewrite
- Retieval模块根据query检索出Indexing中的相关的文档
- 将召回的文档进行Reranking
- 并且根据relevance score进行过滤,过滤掉低质的文档
- 形成合适的Prompt后输入到LLM大模型中,最后生成答案
如何快速实现RAG的智能问答系统?
从RAG的原理介绍中可以看到要实现RAG整套架构还是存在一定工作量,需要构建索引、检索、集成LLM、Prompt优化等一系列模块,具有一定的难度。
基于此,RAG-GPT提供了一整套开源解决方案,旨在利用LLM和RAG技术快速搭建一个全功能的客服解决方案。该项目基于Flask框架,包括前端用户界面、后端服务和管理员控制台,为企业利用LLM搭建智能客服等对话场景提供了一个完整的自动化解决方案,可以帮助开发者快速搭建一个智能问答系统,且代码完全开源。
项目地址:github.com/open-kf/rag…
RAG-GPT的基本架构
RAG-GPT关键特性:
- 内置LLM支持:支持云端LLM和本地LLM。
- 快速设置:只需五分钟即可部署生产级对话服务机器人。
- 多样化知识库集成:支持多种类型的知识库,包括网站、独立URL和本地文件。
- 灵活配置:提供用户友好的后台,配备可定制的设置以简化管理。
- 美观的用户界面:具有可定制且视觉上吸引人的用户界面。
从特性可以知道,RAG相比一些商业收费的基于知识库的问答系统优势在于:
- 易用、快速搭建。
- 能自主管理知识库,避免商业秘密和知识产权泄漏。
- 可以自主选择LLM模型和甚至扩展部署本地模型。
RAG-GPT 快速搭建智能问答系统
RAG-GPT的基本组成分为三部分:
- 智能问答后端服务
- 管理后台系统
- 用户使用的ChatBot UI。
下面,将介绍如何启动RAG-GPT项目和使用这三个模块,将RAG-GPT集成到你的网站只需要5个步骤:
1. 下载源代码,通过Git克隆RAG-GPT的GitHub仓库:
git clone https://github.com/open-kf/RAG-GPT.git && cd RAG-GPT
2.配置环境变量
在启动RAG-GPT服务之前,需要修改相关配置,以便程序正确初始化。
这里使用 OpenAI 作为 LLM 底座
cp env_of_openai .env
.env 文件中的变量
LLM_NAME="OpenAI"
OPENAI_API_KEY="xxxx"
GPT_MODEL_NAME="gpt-3.5-turbo"
MIN_RELEVANCE_SCORE=0.3
BOT_TOPIC="xxxx"
URL_PREFIX="http://127.0.0.1:7000/"
USE_PREPROCESS_QUERY=0
USE_RERANKING=1
USE_DEBUG=0
对 .env 中的变量做以下调整:
- 不要修改 LLM_NAME。
- 将 OPENAI_API_KEY 替换为你自己的密钥。请登录 (OpenAI 网站)[platform.openai.com/api-keys ] 查看你的 API 密钥。
- 更新 GPT_MODEL_NAME 设置,将
gpt-3.5-turbo
替换为gpt-4-turbo
或gpt-4o
,如果你想使用 GPT-4。 - 将 BOT_TOPIC 更改为你的机器人的名称。这非常重要,因为它将在构造Prompt中使用。我在这里要搭建LangChain网站的智能客服,所以改写为
LangChain
。 - 调整 URL_PREFIX 以匹配你的网站的域名。
- 有关常量的含义和用法的更多信息,可以查看 server/constant 目录下的文件。
3.执行启动命令
分别执行以下命令,即可启动。
[!NOTE]
请使用 Python 3.10.x 或以上版本。
先安装python依赖项
python3 -m venv myenv
source myenv/bin/activate
pip install -r requirements.txt
启动项目即可:
python create_sqlite_db.py
python rag_gpt_app.py
或者执行
sh start.sh
4.快速体验聊天效果
- 启动服务后先打开管理后台。
首先要登录到管理后台,浏览器输入:http://127.0.0.1:7000/open-kf-admin/
登录账号为:admin
密码 :open_kf_AIGC@2024
.
- 导入知识库,这里输入LangChain的网站。
在管理后台切换到source tab,输入LangChain官网地址:https://python.langchain.com/v0.1/docs/get_started/introduction/
,
点击 Fetch more links
即可一键爬取网站内容作为知识库。
在后台可以看到爬取网页URL的日志。
获取网站的所有网页URL后,此时网页URL展示的状态是 Stored
。在管理后台,点击 Confirm
提交想要抓取的网页URL(默认抓取获取的所有URL)。
等所有网页URL的文本都被抓取,并且存入向量数据库后,在管理后台上所有网页URL展示的状态都是 Trained
。
浏览器打开http://127.0.0.1:7000/open-kf-chatbot/,就可以访问Bot了。
5.一键嵌入到网站
RAG-GPT提供了将聊天机器人嵌入到网站的方法,使得用户可以直接在网站上使用智能问答服务。
打开管理后台菜单切换到embed,复制两个代码即可实现一键嵌入,这两个代码片效果分别如下:一个是iframe嵌入一个聊天窗口,一个是在页面右下角点击弹出聊天窗口。
可以新建一个文本文件,将代码复制进去,用浏览器打开就可以看到嵌入效果了。
6.管理后台其他功能
- 管理员可以通过仪表板查看用户的历史请求记录,以便进行分析和优化。
可以按照时间、用户查询聊天记录和修改问答对的答案以更符合自身需求。
- 配置聊天对话的UI
用户可以定制化聊天对话框的风格,使其更符合自身网站的风格特性。
结语
RAG-GPT项目具备开源免费、易于部署集成、开箱即用和功能丰富的特点,为LLM大模型在特定领域的应用落地提供了一套企业级的解决方案。RAG-GPT已经支持本地文件知识库,集成国内LLM大模型等特性,使得RAG-GPT满足更多样化的需求。
关于我们
OpenIM是领先的开源即时通讯(IM)平台,目前在GitHub上的星标已超过13k。随着数据和隐私安全的重视以及信息技术的快速发展,政府和企业对于私有部署的IM需求急剧增长。OpenIM凭借“安全可控”的特点,在协同办公软件市场中占据了一席之地。在后AIGC时代,IM作为人机交互的首要接口,其价值愈发重要,OpenIM期待在此时代扮演更关键的角色。
基于这样的视角,我们最近开源了RAG-GPT项目,已被部分企业采用并持续完善中。
如果您对RAG-GPT感兴趣,可以访问以下链接了解更多信息:
项目地址: github.com/open-kf/rag…
在线Demo: demo.rentsoft.cn/
我们的目标是改进文件管理功能,更有效地管理数据,并整合企业级知识库。欢迎大家在GitHub上Star并关注,支持我们的开源旅程。
开源说明:RAG-GPT采用Apache 2.0许可,支持免费使用和二次开发。遇到问题时,请在GitHub提Issue或加入我们的OpenKF开源社区群讨论。如果您需要更智能的客服系统,请与我们联系。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/0dc35641cd2d85e39db6e8cb368fa5cb.png)