信息时代到来,企业积累的数字文档知识数量巨大,文档中蕴含的信息对业务发展至关重要,与企业相关的数据价值难以估量。企业利用好现有资源,将企业资源合理配置,将数据串联,产生更大的效益,这才是企业最需要的。然而,传统的搜索技术常常因只能进行关键字查询而无法满足对文档深层次理解的需求。因此需要建立一个面向企业级知识管理的智能问答,对知识进行统一管理,通过精准的信息检索加上严格的权限控制,帮助企业内部员工挖掘企业多年沉淀下来的知识,提升工作效率,增强企业竞争力。
据Gartner调查,高达47%的员工在工作中很难寻找到有效工作文档信息和数据时遇,这一比例在大型组织中这一问题更为突出只会更高。揭示了企业内部知识管理的普遍问题:如何在海量文档中迅速找到确切所需文档和数据?如何从复杂信息中提取关键内容?
为了解决工作中的信息检索问题,企业通常会使用基于ES或采购搜索软件来进行知识搜索,但是常规的搜索对内容格式优先以及不支持语义搜搜和缺少上下文信息,因此导致结果不够精准。
现在LLM(大型语言模型Large Language Model)在自然语言处理方面取得了显著进展,具备了语义理解、信息提取和逻辑推理等多项能力。LLM通过与用户进行对话问答的交互方式,LLM能够更准确地理解用户的需求,提高搜索相关文档的效率和准确性。
尽管通用LLM在知识问答方面取得了非常大的进展,由于大模型的特性,大模型对于企业专业领域的知识问答依然无能为力,因为企业内部领域的数据不会对外公开,通用LLM没有学习过,自然不会回答。目前行业有两种方案,一种是将企业内部数据喂给通用LLM进行微调,但是技术难度和成本较高;另外一种方案是使用RAG(Retrieval Augmented Generation,索引增强生成)方案进行解决专业领域的问答,将用户问题和检索到的相关企业内部知识作为提示词一起给到通用的LLM,由通用的LLM进行理解、分析和总结,给出答案。针对这类问题,业界主流的方案是采用RAG方案。通过RAG的方式为LLM提供更加精准的信息,从而提升最终回答效果,如下图所示:
01.RAG的产品形态
随着RAG技术的发展和演变,RAG产生了Naive RAG、Advanced RAG、Modular RAG。
Naive RAG
初级RAG主要包含以下几个流程:
建立索引:数据清洗并分块,将分块后的知识通过Embedding模型产出语义向量并建立索引;
检索:通过用户query使用相同的Embedding模型,检索上下文;
生成:将给定问题和相关文档合并为新的提示,由LLM基于提供的信息回答问题。
Advanced RAG
高级RAG相比初级RAG,基于初级RAG的流程,围绕着知识检索做优化,对检索前、检索中、检索后进行策略优化,解决索引、检索和生成问题。
检索前优化:知识切分、索引方式和query改写优化等;
检索优化:微调Embedding模型召回最相关知识、使用混合搜索等;
检索后优化:提示压缩、重新排序;
Modular RAG
模块化RAG将RAG具体功能模块化,流程上可以对RAG模块之间进行设计和编排,方便业务进行使用。
02.RAG产品建设路径
RAG整理业务链路划分为5个步骤:知识生产加工、query改写、数据召回、后置处理以及大模型生产;
第一阶段:可运行
第一阶段保障系统可用:
-
知识生产与加工:
-
支持问答对类型;
-
支持长文本类型:先按照固定字符切分,预留冗余字段保证语义不被截断;
-
query改写:结合上下文,使用大模型理解能力,更好回答用户问题;
-
数据召回:实现向量召回,找到契合的embedding模型和向量数据库。
-
数据后置处理:设置符合业务预期的阈值筛选数据,主要是文本匹配度和召回数;
第二阶段:提效果
第二阶段主要目标:提升RAG检索效果
-
知识生产与加工:
-
按照语义进行切分,将上下文联系紧密的句子切分成一个片段;
-
根据数据索引情况,分析索引噪音,制定降噪策略;
-
query改写:
-
根据用户query生成多相似query检索数据;
-
多任务query抽取,将用户的query拆解为多个任务query;
-
数据召回:
-
根据业务场景探索向量、分词、图谱召回的能力;
-
数据后置处理:
-
数据去重合并;
-
多路召回结果重排能力;
第三阶段:高扩展
第三阶段主要目标:提升可扩展性,各个功能做模块化设计
-
功能模块化建设:
-
建设通用模块能力,方便业务接入组合不同的RAG检索系统,满足业务效果。
-
回答能力建设:
-
问答的调试预览;
-
回答过程白盒化;
-
基于问题和回答的问题推荐;
RAG通过检索现有大量知识结合强大的生成模型,为复杂的问答带来全新的解决方案,而在产品建设过程中遇到诸多挑战:
-
数据质量差导致检索效果差:检索阶段的输出影响生成阶段的输入和最终的输出质量。RAG数据库中存在大量的错误信息并检索到,可能导致模型生成的错误,即使在检索阶段做大量工作,可能对结果的影响也微乎其微。
-
数据向量化的信息缺失:数据向量化缺失可能会导致一定程度的信息损失,文本数据的复杂性和多样性很难用有限的向量来完全表达,导致向量化后可能会缺失一些文本数据的细节和特征,从而影响文档检索的准确率。
-
语义搜索的不准确:语义检索利用向量空间中的距离和相似度来进行检索,准确率无法100%保障。
结语
RAG问答系统搭建做出来比较容易,但想做好比较难的,流程中的每一个步骤都有可能对最终效果产生影响。在RAG中需要做大量的探索如不同文档的切分方式、query改写策略、数据如何找回等等。面向企业的知识更有很多难点需要解决,企业中有不同的部门,同一个部门有不同的角色,对应的知识的权限不同,以及还涉及到外部合作伙伴的权限,在不同的权限交互下,处理起来非常复杂。因此做好一个企业内部的RAG智能问答任重而道远。
如何学习大模型 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 的正确特征了。