LLM+RAG助力企业智能问答工程化实践

LLM(Large Language Model)大语言模型与RAG(Retrieval-Augmented Generation) 检索增强生成技术相结合,已成为企业智能问答领域的热门选择。然而,在实际应用中,仍遇到诸多挑战,如:如何将现实中复杂需求分解为当前技术能够回答的问题、如何有序稳定提升智能问答准确率以及如何进行结果评估实现持续优化等。本文旨在深入剖析LLM与RAG在落地过程中的关键环节,分享相关经验,以期为企业提供更精准、高效的智能问答解决方案。

随着通信技术的快速发展,网络运维面临着用户需求多样化和网络环境复杂化的双重挑战。本文旨在探索以用户感知为核心的自感知体系在网络运维中的工作原理,通过实时监测用户反馈和网络性能指标,构建一个高效、智能的网络运维机制。文章重点介绍了自感知体系的构建过程,包括感知显化、感知诉求、感知响应和感知反馈四个关键阶段,并说明如何通过这四个阶段提升用户感知以及优化网络运维的效率。

1.LLM+RAG解决方案概述

在企业运营过程中,知识问答场景无处不在,需要快速、准确地提供相关信息,属于典型的“三高一低”LLM应用场景,即高频率、高价值、高容错低业务风险。LLM+RAG技术为知识问答场景提供解决方案,即基于大模型强大的语义理解和泛化能力,以及RAG对大语言模型LLM的知识补充,极大缓解了大模型幻觉问题,并增强响应的准确性。

经典的LLM+RAG解决方案,由索引(Indexing)、检索(Retrieval)、生成(Generation)三步完成(如:图1)。

图1:经典LLM+RAG架构

•索引:企业知识向量化,将企业内部的Excel、Word、Pdf等各种形式的零散运维文档进行切分,通过BAAI/bge-m3等Embedding模型将切分后的文档片段向量化到ES、Faiss、Milvus等向量数据库中;

• 检索:向量化匹配,采用Euclid Distance、Manhattan Distance、Cosine Similarity等方法进行相似度匹配,通过HNSW(Hierarchical Navigable Small Worlds,分层导航小世界)等方式建立索引,连接彼此相邻的向量以达到更好的性能和召回率;

•生成:自然语言答复,将检索到的文档片段通过LLM转为连贯的自然语言,并通过Prompt提示LLM,在遇到不知道的问题时,避免出现胡言乱语。

目前,业界提出更高级的RAG框架,从检索前处理、检索模型优化、检索后处理三个方面进行优化,解决当前经典RAG框架面临的低召回率、文本不相关、回复内容重复等问题。但是,高级的RAG框架在落地过程仍然存在诸多挑战。

2.LLM+RAG落地过程中的挑战

LLM+RAG两者结合,可为企业提供高效、精准的智能问答服务,显著提升用户体验和业务效率。然而,在实际落地过程中,我们仍会遇到诸多挑战,具体表现为:

复杂问题难应对:面对复杂问题时,大模型的深度理解和推理能力仍有局限。复杂问题涉及多个知识点和逻辑关系,大模型往往难以全面捕捉并给出针对性的答案,影响了问答的准确性和完整性。如:企业IT运维场景中,解答导致运维故障的根因是什么等复杂问题。

意图理解有偏差:企业智能问答中,问题形式多样且口语化,还包含大量专业术语。这导致大模型在理解提问者真实意图时存在困难,影响了问答的准确性和用户满意度。如:提出的问题中带有“卡单”等内部工作术语。

片段召回不全面:理解问题后,大模型在连接问题和文档时存在语义间隙。这导致模型难以精确找到与问题相关的文档片段,影响了答案的准确性和相关性。如:问题中涉及“4G”套餐情况,生成的答案中却提供了“5G”套餐信息等。

答案无法解问题:尽管模型能够找到知识片段,但在生成答案时,往往无法完全解决问题。这可能是因为模型在整合信息、形成连贯答案方面存在不足,降低了问答系统的实用性。

优化路径不明确:落地过程中拿到需求如何梳理,对数据有哪些要求,遇到回答准确率不高的问题时,是进行大模型精调、还是优化Prompt、或是优化Embedding模型,缺乏一套行之有效的优化路径,保证问答准确率稳步递增。这导致企业在改进系统时感到迷茫和困惑,难以持续提高问答系统的性能。

3.LLM+RAG实践经验分享

面对LLM+RAG落地过程中存在的挑战,我们通过项目实践,总结出一套切实有效的方法,通过六步法(如图2)将回答准确率由30%提升到90%以上。同时,RAG从经典架构升级为企业级应用架构,从检索前处理、检索模型优化、检索后处理进行了优化(如图3),以下是详细介绍:

图2:LLM+RAG落地实践路径

图3:企业级应用RAG架构

(一)理清需求:面对复杂问题需要分解简化

受限于当前LLM的能力水平,在面对复杂问题时,如工单根因分析,我们需要通过横向分类(如销售类、网络问题类等),纵向分级(从发生频率、影响程度等维度划分优先级),处理过程分步骤(如先意图识别、再决策规划、接着执行等)的方式,对复杂问题进行拆解简化,降低问题处理的难度。针对分解后的任务特点,采取不同解决方式分别处理,让大模型处理自身擅长的任务(如意图识别、工单分类等),优先保证成功率,后续根据条件满足情况进行逐步迭代。在针对复杂问题的整体方案中,大模型部分占比不宜过高,甚至可能只占到 20%~30%。针对问题拆分的颗粒度把控,可以通过代表业界最高水平的大模型(如:GPT-4)进行测试,查看拆分后单项任务的准确率来评估效果。如果准确率能够达到90%以上,我们则认为该任务可以通过大模型技术解决,并停止进一步的拆分。反之,我们则会继续对任务进行拆解,直至达到理想的处理效果。

(二)备好数据:数据质量决定上限

确保数据采集的完整性。以“网络性能下降”这一问题为例,造成网络性能下降的原因包括硬件设备的老化和故障、网络架构的设计缺陷、软件程序的错误、用户行为的变化等,因此,采集的数据应包括上述原因的所有数据,用于训练模型,即训练数据的分类100%覆盖了推理时的数据分类,以保证数据完整性,否则,无法准确分析出正确的根因。

数据处理通常需要最大的工作量。首先,对采集的数据进行脱敏处理,以保证隐私及数据合规使用。其次,对数据进行预处理,包括去除噪声、去重、文本清洗、数据标注、切块等步骤。最后,通过数据转换、数据增强等,减少数据异常、缺失、冗余的问题,保证数据集的高质量。通常模型精调标注数据 >3000条以上,可考虑利用大模型辅助生成部分数据。

(三)切好文档:根据需求确保片段独立性

首先需要确认已有文档知识能够覆盖的问题范围,支持此范围内的问题答复。在RAG系统中,文档分块策略主要是寻求一种平衡,确保信息的完整性和相关性得以维持。理想的分块后的文档片段应当具备独立性,即使脱离周围上下文,对人类读者而言也应能传达明确的意义,这对于语言模型来说同样至关重要。为实现这一目标,我们可以采用固定数字分块、依据标点及符号形式、以及内容意义等方式,将运维文档拆分成相对独立的知识点。实践中,我们使用了以下两种方式进行拆分优化:

带上标题:被中间切断的片段内容可以带上标题,如:《大模型微调指导手册》中标题为“大模型微调一般步骤”内容超过了设置单个片段400字符,该内容被拆为3部分,三部分内容均需要带上“大模型微调一般步骤”的标题;

多级分块:把同一文档分割不同大小的分块,然后把不同大小的分块均存入向量数据库,并保存每个分块的上下级关系,进行递归搜索子片段时带上父片段内容。如:在运维知识问答中,父片段1600字符,子片段400字符。

分块的大小主要根据文档的类型和用户问题的长度及复杂性确定,如:用户的问题通常是简短和具体的文字内容,较小的分块可能更为合适;相反,如果问题内容较为复杂,可能需要更大的分块。

(四)理解问题:针对任务提升意图识别能力

实践表明,基于领域数据进行微调的垂直行业大模型,面对复杂发散性场景时,应用落地效果并不理想。在明确具体需求的基础上进行精调,能够更好地发挥大模型的效用。如,在工单根因分析的过程中,工单意图识别就是一项具体的任务,当前工单描述过于笼统、不规范且内容冗余,导致大模型对用户真实意图识别低,进而影响后续向量检索和最终回答准确率。

明确了工单意图识别的具体任务需求后,需要LLM与具体专业知识有效结合,深入理解具体任务的数据,如工单意图识别任务中的涉及的工单分类、工单描述数据及解决方案等。为了准备好这些数据,我们既需要具备工程经验的实施方,也需要对业务有深刻理解的专家。业务与技术之间的紧密协作至关重要,同时,对标准操作流程(SOP)的梳理和打磨也是不可或缺的前提。实践中,技术人员协同业务人员整理了6000余条数据,基于ChatGLM3-6B大模型进行精调后,工单意图识别准确率大幅提升了47%。值得注意的是,相对于传统NLP知识标注的工作量已大大减少,过去工程师需要投入大量精力帮助企业构建专家知识库,而如今大模型已能够自主完成部分工作。由于LLM具备了理解和推理能力,它可以直接从数据中读取并应用相关知识,从而大大提升了工作效率。

(五)找准知识:整体优化增强召回能力

准确理解用户意图后,找准知识才是关键。在工程化落地过程中,我们从问题转换、Embedding模型优化、多路召回与重新排序等多个环节进行了优化,以提高知识的召回能力。

问题转换:用户问题的措辞会直接影响搜索的结果,问题转换通过结合历史对话对问题重新表述等方式,以处理复杂的用户问题。实践中,使用了假设文档嵌入(HyDE)方式进行检索,即先让LLM生成一个假设性的回复。然后,将这个假设性回复和原始问题一起用于向量检索。虽然,假设回复可能包含虚假信息,但蕴含着LLM认为相关的信息和文档模式,有助于在知识库中寻找类似的文档。

Embedding模型优化很重要:Embedding模型优化,可以增强专业领域术语的理解能力,这一步是在专业领域找准答案的基础。如:微调前向量模型认为4G和5G相似度非常高,即在向量空间内距离非常近,这可能导致出现询问4G套餐而回答5G套餐的情况;微调后模型可以识别4G和5G分别指代不同含义,即在向量空间中距离比较远,相似度比较低。Embedding模型优化至少需要1万条以上的标注数据,并整理成问题、正样本、副样本格式(即” query”、”pos”、”neg”)进行模型微调,在部分案例中实现了问答准确率提升30%以上的显著效果。

多路召回与重新排序:单一的检索策略使得召回率不高,且通过比较语义相似度来匹配信息,但最相似这一标准并不总是能够准确反映“最相关”。为了解决以上问题,我们采用了多路召回策略,并借助CohereRerank/bge-reranker-large对召回结果进行重新排序,它们会根据查询与每个检索到的上下文之间的相关性进行评分,过滤掉那些不相关的搜索结果。同Embedding模型一样,根据具体的应用场景,我们还可以对重排序器进行微调,以优化其性能。

(六)优化有方:可观测才可优化

可观测性是实现产品性能优化的关键。围绕产品的可视化数据循环,我们能够系统地提升应用能力。即使产品在初期上线时的表现仅为30分,只要我们精确定义测试集和模型反馈标准,提升至90分是完全可行的。

为实现这一目标,我们需要细化过程指标并设计专门的测试集,包括意图理解测试集(可进一步细分为包含专业术语和不包含专业术语的测试集)、召回率测试集以及最终答案呈现测试集等。针对不同数据集的测试结果,我们能够发现问题出在哪里,并有针对性的改进。如对问题中4G和5G的混淆,反映出Embedding模型对专业术语的识别能力有限,需要针对Embedding模型进行精调。

另外,在工程化落地中涉及到LLM的优化,可以参考OpenAI总结的大模型优化典型过程(见图4)。首先,尝试使用提示工程对模型进行优化,通过调整输入数据的格式或提供额外的提示信息来提升模型性能。若提示工程无法达到预期效果,再考虑对LLM进行微调。需要注意的是,微调的目的主要是增强模型的意图理解和总结能力,而非增加其知识储备。

图4:大模型优化典型过程

4.LLM+RAG未来发展展望‍‍

随着大模型技术的不断发展和完善,LLM+RAG技术在知识问答场景中的应用将更加广泛和深入。未来,我们可以期待LLM+RAG技术在以下几个方面取得更大的突破:

更强大的跨模态检索能力:随着多模态技术的发展,未来的LLM+RAG技术将能够处理文本、图像、音频等多种模态的信息,实现跨模态的知识检索和问答。

更高效的知识更新机制:随着知识图谱和动态学习技术的发展,未来的LLM+RAG技术将能够实时地跟踪和更新知识库中的信息,保证问答系统的时效性和准确性。

更灵活的集成扩展能力:在实际应用中,诸多复杂问题往往需要融合多个周边系统的信息才能有效解决。因此,未来的LLM+RAG系统需具备高效集成周边系统的特性,以便能够迅速获取所需的多元化信息,从而更广泛、更深入的地解答用户问题。

总之,LLM+RAG技术以其独特的优势正在引领知识问答场景的工程化落地进入一个新的阶段。企业应积极拥抱这一技术变革,利用LLM+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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值