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

文摘   科技   2024-05-31 12:00   北京  

编者荐语:



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


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

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框架在落地过程仍然存在诸多挑战。


LLM+RAG落地过程中的挑战

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


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


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


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


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


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


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


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


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

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


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


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


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


LLM+RAG未来发展展望

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


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


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


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


总之,LLM+RAG技术以其独特的优势正在引领知识问答场景的工程化落地进入一个新的阶段。企业应积极拥抱这一技术变革,利用LLM+RAG技术构建高效、智能的知识问答系统,提升自身的竞争力和用户体验。

参考资料

[1] Galileo: Mastering RAG: How To Architect An Enterprise RAG System https://www.rungalileo.io/blog/mastering-rag-how-to-architect-an-enterprise-rag-system,2024.
[2] OpenAI: A Survey of Techniques for Maximizing LLM Performance,2023.
[3] Ravi Theja: Boosting RAG: Picking the Best Embedding & Reranker models,2023.
[4] Luyu Gao,Xueguang Ma,Jimmy Lin,Jamie Callan,Language Technologies Institute, Carnegie Mellon University David R. Cheriton School of Computer Science,University of Waterloo: Precise Zero-Shot Dense Retrieval without Relevance Labels,2022.
[5] RAG实战全解析:一年探索之路https://zhuanlan.zhihu.com/p/682253496.

[6] 「向量召回」相似检索算法——HNSWhttps://www.modb.pro/db/103254 .
[7]  Founder Park:企业内部如何更好落地大模型?我们走访了10+先行者, https://mp.weixin.qq.com/s/fiI1M0sBFoDDxalh8EfAlg

亚信科技新技术探索
亚信科技的ICT前沿技术观点与行业洞见。展现亚信新技术与产品行业实践成果。
 最新文章