关于构建基于检索增强生成的聊天机器人的事实

    From Marovi AI
    This page is a translated version of the page FACTS About Building Retrieval Augmented Generation-based Chatbots and the translation is 91% complete.
    Outdated translations are marked like this.

    许可证: 原创作品和翻译作品采用CC BY 4.0许可证。

    修改说明: 本页面的文本已经过AI模型或众包修改。可能存在错误或不准确的解释。

    作者: Rama Akkiraju, Anbang Xu, Deepak Bora, Tan Yu, Lu An, Vishal Seth, Aaditya Shukla, Pritam Gundecha, Hridhay Mehta, Ashwin Jha, Prithvi Raj, Abhinav Balasubramanian, Murali Maram, Guru Muthusamy, Shivakesh Reddy Annepally, Sidney Knowles, Min Du, Nick Burnett, Sean Javiya, Ashok Marannan, Mamta Kumari, Surbhi Jha, Ethan Dereszenski, Anupam Chakraborty, Subhash Ranjan, Amina Terfai, Anoop Surya, Tracey Mercer, Vinodh Kumar Thanigachalam, Tamar Bar, Sanjana Krishnan, Jasmine Jaksic, Nave Algarici, Jacob Liberman, Joey Conway, Sonu Nayyar, 和 Justin Boitano - NVIDIA - rakkiraju, anbangx, dbora@nvidia.com

    ArXiv 链接: https://arxiv.org/abs/2407.07858v1

    摘要

    企业聊天机器人,由生成式人工智能驱动,正在迅速成为该技术在行业中最受关注的初始应用,旨在提高员工生产力。检索增强生成(RAG)、大型语言模型(LLM)、Langchain/Llamaindex类型的LLM编排框架是构建生成式AI聊天机器人的关键技术组件。然而,构建成功的企业聊天机器人并不容易。它们需要对RAG管道进行精细的工程设计。这包括微调语义嵌入和LLM,从向量数据库中提取相关文档,重述查询,重新排序结果,设计有效的提示,遵循文档访问控制,提供简明的响应,包含相关参考,保护个人信息,并构建代理来协调所有这些活动。在本文中,我们基于在NVIDIA构建三个聊天机器人的第一手经验,提出了一个构建有效RAG聊天机器人的框架:用于IT和HR福利、公司财务收益和一般企业内容的聊天机器人。我们的贡献有三方面。首先,我们介绍了我们的FACTS框架,用于构建企业级RAG聊天机器人,以解决上述挑战。FACTS助记符指的是RAG聊天机器人必须正确处理的五个维度——即内容新鲜度(F)、架构(A)、LLM的成本经济性(C)、测试(T)和安全性(S)。其次,我们提出了RAG管道的十五个控制点以及在每个阶段优化聊天机器人性能的技术。最后,我们展示了来自企业数据的实证结果,关于大型LLM与小型LLM之间的准确性-延迟权衡。据我们所知,这是第一篇提供全面视角的论文,涵盖了构建安全企业级聊天机器人的因素及解决方案。

    1 介绍

    聊天机器人正日益成为公司中搜索工具的延伸,用于查找相关信息。无论是人力资源福利、IT帮助、销售查询还是工程问题,企业聊天机器人现在已成为首选的生产力工具。在OpenAI的Chat-GPT于2022年11月推出之前,公司依赖于基于对话流的内部开发聊天机器人。这些机器人需要广泛的训练以理解意图,并需要精心编排以生成响应,但最多只能提供提取式答案。这些早期的机器人建立在对话管理系统之上,结合信息检索和问答(IRQA)解决方案,功能脆弱且能力有限。虽然以前的语言模型和GPT模型已经存在,但它们缺乏广泛企业使用所需的准确性、稳健性和可靠性。

    Chat-GPT 的发布、向量数据库的出现以及检索增强生成(RAGs)的广泛使用(8)标志着聊天机器人领域新时代的开始。现在,大型语言模型(LLMs)可以通过自然语言中的简单提示理解用户意图,消除了复杂意图变体训练的需求,能够连贯地合成企业内容,从而赋予聊天机器人超越脚本化意图识别的对话能力。虽然 LLMs 通过其生成能力构建连贯、真实和逻辑的用户查询响应,但由向量数据库驱动的信息检索(IR)系统增强了 LLMs 检索新鲜内容的能力。像 LangChain(1)和 Llamaindex(9)这样的工具促进了聊天机器人的构建,并协调包括记忆、代理、提示模板和整体流程在内的复杂工作流。向量搜索为基础的 IR 系统、LLMs 和类似 LangChain 的框架共同构成了 RAG 管道的核心组件,并在后 Chat-GPT 时代推动了生成式 AI 聊天机器人的发展。

    聊天机器人 领域 数据来源 数据类型 访问控制 示例查询 状态
    NVInfo Bot 企业内部知识 SharePoint, GoogleDrive, Slack, Confluence, ServiceNow, Jira 文档, HTML, PDF, 幻灯片 我可以在总部停车场过夜吗? 早期访问测试
    NVHelp Bot IT 帮助, 人力资源福利 IT 帮助知识文章, 人力资源福利页面 文本, PDF, 文档 如何注册员工股票购买计划? 生产
    Scout Bot 财务收益 公司新闻, 博客, SEC 文件, 收益相关采访 HTML, PDF, 文档 NVIDIA 过去三年的收入是多少? 生产

    在NVIDIA,我们的主要动机是通过构建企业聊天机器人来提高员工的生产力。我们的初始热情很快就遇到了许多挑战的现实。我们了解到,即使在Chat-GPT时代之后,打造一个成功的企业聊天机器人虽然充满希望,但并不容易。这个过程需要精心设计RAG管道、微调LLM和工程提示,确保企业知识的相关性和准确性,遵守文档访问控制权限,提供简洁的回答,包括相关的参考资料,并保护个人信息。所有这些都需要精心设计、熟练执行和彻底评估,要求进行多次迭代。此外,在优化速度和成本效益的同时保持用户参与度也是至关重要的。在我们的旅程中,我们了解到,打造一个完美的企业对话虚拟助手就像实现一场完美的交响乐,每一个音符都具有重要意义!

    在本文中,我们分享了构建高效、安全且成本效益高的聊天机器人的经验和策略。我们从实践者的角度回答以下问题:

    "在构建和部署企业级生成式AI聊天机器人时需要考虑的关键挑战是什么?" 我们展示了在尝试提供新鲜内容(F)、灵活架构(A)、成本效益(C)、良好测试(T)和安全性(S)方面的发现——(FACTS)。

    如何通过RAG系统在构建聊天机器人时实现用户可接受的质量水平?我们介绍了RAG管道的十五个控制点,以及优化每个控制点和整体RAG管道的技术。

    2 个案例研究

    我们公司的内容领域包括权威知识和非权威内容。权威内容包括 IT 帮助文章、ServiceNow 等平台上的人力资源资源,以及 Confluence、SharePoint、Google Drive 和 NVBugs、GitHub 等工程工具上的项目文档。员工生成的内容在 Slack 和 MS Teams 等平台上补充了这些来源。在本文中,我们介绍了 NVIDIA 使用 RAGs 和 LLMs 构建的三个机器人。以下是对这三个机器人的简要介绍。所有三个机器人都基于我们内部构建的生成式 AI 聊天机器人平台 NVBot 平台构建。我们的机器人能够回答的一些查询显示在表 1 中。

    • NVInfo Bot 回答有关企业内容的问题(大约 5 亿份文件,大小约为 7 TB),补充了内联网搜索。它管理多种数据格式并实施文档访问控制。技术栈包括 LangChain、用于检索和处理文档访问控制的供应商向量数据库、LLM 模型(可以选择多个 LLM 模型)以及自定义的 Web 用户界面。
    • NVHelp Bot 专注于IT帮助和人力资源福利(大约2000个多模态文档,包含文本、表格、图像、PDF和HTML页面),使用与NVInfo bot相似的技术栈,但数据量较小。
    • Scout Bot 处理来自公共来源的财务收益问题,管理结构化和非结构化数据(大约 4K 多模态文档,包含文本、表格、PDF 和 HTML 页面)。技术栈包括开源向量数据库、LangChain、Ragas 评估、可选择的 LLM 模型和自定义网页用户界面。

    在本文的其余部分中,我们将介绍我们的FACTS框架,该框架总结了在构建上述三个聊天机器人过程中遇到的挑战和获得的经验。我们首先从处理在每个聊天机器人中提供最新企业内容的挑战开始。

    图1. 构建聊天机器人时典型RAG管道中的控制点。
    图1. 构建聊天机器人时典型RAG管道中的控制点。

    3 确保 LLM 驱动的聊天机器人中的企业数据新鲜度 (F)

    确保企业数据在基于LLM的聊天机器人中保持新鲜性面临诸多挑战。尽管基础模型功能强大,但由于缺乏特定领域和企业特定的知识,它们往往显得不足。一旦训练完成,这些模型基本上就被冻结在某个时间点,可能会出现幻觉,在使用未经过训练的企业内容时提供不需要或不准确的信息。

    检索增强生成(RAG)是一种通过语义匹配从向量数据库中检索相关信息,然后将其提供给大型语言模型(LLM)以生成响应的过程。在RAG管道中,向量数据库和LLM协作确保提供最新的企业知识。然而,RAG管道有许多控制点,如果调校不当,可能导致聊天机器人准确性下降、幻觉和不相关的响应。此外,文档访问控制权限使搜索和检索过程复杂化,需要仔细管理以确保数据安全性和相关性。此外,多模态内容需要使用多模态检索器来处理结构化、非结构化和半结构化数据,包括演示文稿、图表、视频和会议记录。解决这些挑战对于保持企业聊天机器人的准确性和可靠性至关重要。受(3)的启发,我们从案例研究中识别出RAG的十五个控制点,如图1所示。每个控制点都标有一个编号。在本节的其余部分,我们将介绍我们在解决RAG控制点方面的见解和经验。

    3.1 学习心得

    在图4中,我们展示了RAG管道的十五个控制点的概要描述、每个控制点相关的挑战以及我们建议的优化方法。每个控制点分别标记为RAG-C[num]和RAG-Op[num],用于RAG和RAGOps流程。下面,我们介绍了一些管理新企业内容的关键学习和见解。

    元数据增强、分块、查询重述、查询重排序:我们注意到,RAG管道中的元数据增强、分块、查询重述和查询重排序阶段对聊天机器人响应的质量影响最大。LLM响应生成质量高度依赖于检索相关性。而检索相关性又高度依赖于文档元数据增强、分块和查询重述。我们实施了基于网格搜索的自动机器学习功能,以找到合适的分块令牌大小配置,尝试了各种提示变体,并探索了不同的分块重排序策略,以找到每个阶段的最佳设置。虽然我们在检索相关性和答案质量及准确性方面取得了显著的改进,但我们相信,仍需进一步优化整个管道。

    "混合搜索":我们注意到,向量数据库在处理匹配实体(例如人名、地名、公司名称等)方面表现不佳。结合词汇搜索(例如,弹性搜索)和向量搜索可以提供更好的检索相关性和更广的覆盖范围。建立支持混合搜索功能的基础设施,结合词汇和向量搜索的优势,可以提高检索过程的准确性和速度。

    图2. 处理复杂查询的代理架构
    图2. 处理复杂查询的代理架构

    “代理架构”:诸如“比较NVIDIA在2024财年第一季度至第四季度的收入,并对导致此期间收入变化的关键因素进行分析评论”这样的问题,需要能够进行查询分解和协调的复杂代理。图2展示了我们在Scout机器人中实施的一种机制,用于处理此类问题。通过构建这三个机器人的经验,我们意识到信息检索系统和大型语言模型不足以回答复杂查询。需要复杂的代理和多代理架构来处理复杂查询。

    是否微调大型语言模型(LLMs)?这是一个关键决策,涉及在使用基础模型与领域特定定制之间的平衡。对于LLMs来说,没有一种通用的解决方案。一些用例可能适合使用基础模型,而另一些则需要定制。在考虑定制时,有多种选择,包括提示工程、P-tuning、参数高效微调(PEFT)和完全微调(FT)。微调需要在数据标注、训练和评估方面进行大量投资,这些过程都可能耗时且成本高昂。自动化测试和质量评估过程对于确保在定制LLMs时的效率和准确性至关重要。图3展示了我们在NVHelp bot领域的约245个查询中,比较OpenAI的GPT-4模型与一些开源模型的准确性与延迟权衡评估。我们的结果显示,Llama3-70B模型在保持可接受延迟的同时,在多个方面的答案质量上表现出色。

    图3. NVHelp答案质量和延迟指标在不同模型中的比较
    图3. NVHelp答案质量和延迟指标在不同模型中的比较

    处理多模态数据:企业数据是多模态的。处理结构化、非结构化和多模态数据对于多功能的RAG管道至关重要。根据我们的经验,如果文档的结构是一致且已知的(例如在金融收益领域中Scout bot处理的SEC文件数据的EDGAR数据库中找到的那些),实施基于章节的分割,使用章节标题和副标题,并将其纳入块的上下文中,可以提高检索的相关性。我们还发现像Unstructured.io这样的解决方案在从PDF中提取和结构化内容方面很有帮助,这对于解析和分块具有上下文的非结构化文档非常有用。

    RAGOps:一旦 RAG 管道部署后,进行有效的健康监测至关重要。当答案质量较差时,需要进行彻底的错误分析,以确定问题是出在检索相关性还是 LLM 响应生成上。为了调试检索相关性,开发人员需要详细了解哪些数据块存储在向量数据库中及其相关元数据,查询是如何被重新措辞的,哪些数据块被检索到,以及这些数据块是如何被排序的。同样地,如果 LLM 响应不正确,审查用于生成答案的最终提示至关重要。对于引用问题,开发人员必须追溯到原始文档链接及其对应的数据块。RAGOps/LLMOps 和评估框架(如 Ragas)对于提供必要的自动化至关重要,以便在 RAG 管道的准确性改进周期中实现快速迭代。

    有关每个控制点的更多详细信息,请参见图 4。总之,尽管前景可期,但在聊天机器人中实施RAG系统需要精心规划和持续评估,以确保数据检索的安全性和准确性。

    图4. RAG控制点、挑战和补救措施
    图4. RAG控制点、挑战和补救措施
    图5. 侦察机器人:多部分查询
    图5. 侦察机器人:多部分查询
    图6. NVHelp Bot:回答有关人力资源福利的问题
    图6. NVHelp Bot:回答有关人力资源福利的问题

    为生成式AI聊天机器人构建灵活架构 (A)

    跟上人工智能的快速进展就像在快速流动的河流中航行。从向量数据库和嵌入模型到大型语言模型(LLM)、代理架构、低代码/无代码平台、RAG评估框架和提示技术,每个方面都在迅速发展。同时,公司内部的各个部门正在通过构建自己的聊天机器人和AI助手来探索生成式人工智能。

    在这个动态环境中,构建通用、灵活和适应性强的平台至关重要。在NVIDIA,我们的聊天机器人生态系统显著增长,这反映了许多公司可能看到的趋势。从最初构建三个聊天机器人开始,我们意识到建立一个通用平台的重要性,以避免在安全性、防护措施、身份验证、提示、用户界面、反馈机制、使用报告、监控和评估方面的重复工作。

    为了解决这个问题,我们开发了 NVBot 平台(图 7),这是一个具有可插拔架构的模块化平台。它允许开发人员选择最适合其用例的 LLM、向量数据库、嵌入模型、代理和 RAG 评估框架。它还提供了安全性、护栏、身份验证、授权、用户体验和监控等基本功能的通用组件。此外,该平台支持公民开发,允许多个团队贡献他们经过测试的提示、工作流程、护栏和微调模型以供集体使用。

    随着我们的机器人生态系统不断扩展,我们面临一个关键问题:组织应该构建多个特定领域的机器人、一个企业级机器人,还是采用混合方法?特定领域的聊天机器人在定制环境中表现出色,而企业级聊天机器人则作为通才,为所有员工提供一个集中的知识库。通过我们的经验,我们意识到不需要在两者之间做出选择。

    新型的架构模式正在出现,其中企业范围内的聊天机器人充当“交换机”的角色,将查询引导至调校有特定领域数据的专业机器人。这种多机器人架构允许专业聊天机器人的并行开发,同时为用户提供统一的界面。我们的NVBot平台支持企业内多个聊天机器人的共存和协调。关于单一机器人还是多个专业机器人的争论仍在继续。我们设想一个领域特定机器人与集中信息机器人共存的场景,并由“副驾驶”支持——将生成式AI能力集成到编程IDE和协作工具等工作环境中。在NVIDIA,我们正在积极探索这三种聊天机器人变体——领域特定、企业范围和副驾驶,因为生成式AI正在重塑工作场所的效率和信息获取方式。

    图7. NVBot平台架构,多个聊天机器人正在其上构建。
    图7. NVBot平台架构,多个聊天机器人正在其上构建。

    5 聊天机器人部署的成本经济学 (C)

    了解生成式人工智能聊天机器人的成本经济学涉及多个关键因素。主要和商业大型语言模型(LLM)的高成本可能难以维持,因为在多个使用案例中费用会显著增加。此外,随着团队测试各种LLM以满足特定需求,未见的费用往往会累积。此外,在使用商业LLM供应商API时,保护敏感企业数据需要设置防护措施,以检测和防止敏感数据泄漏,并设置审计和法律允许的学习网关。还需要考虑成本与延迟的权衡,因为具有长上下文长度的大型LLM通常响应时间较慢,影响整体效率。

    《大模型与小模型》:大型商业LLM和小型开源LLM在许多用例中越来越具有可行性,从而为公司提供了具有成本效益的替代方案。随着开源模型逐渐赶上大型商业模型,它们在准确性上越来越接近,如我们在NVHelp机器人实证评估中的图3所示,并且通常在延迟性能上优于大型模型。此外,GPU优化的推理模型可以进一步加快处理时间。例如,使用NVIDIA的Tensor RT-LLM推理库优化的开源模型,性能比未优化的模型更快。这些策略有助于在保持高性能和安全标准的同时,平衡成本效益的需求。

    LLM 网关: 如果您必须使用供应商的 LLM API,最好在公司内部实施一个 LLM 网关,以便在整个公司进行审计、订阅和成本管理。实施内部公司 LLM 网关可以简化 LLM 的使用、订阅和数据跟踪,以便进行安全审计。这个中央枢纽简化了管理,并确保了资源的高效分配。在 NVIDIA IT,我们实施了一个 LLM 网关,用于记录入站和出站的负载以进行审计,并通过访问控制权限保护这些数据。我们的 LLM 网关有助于管理 LLM API 调用的订阅和成本。

    总之,制定混合且平衡的LLM策略对于管理成本和推动创新至关重要。这涉及使用较小且定制化的LLM来控制开支,同时通过LLM网关进行负责任的大型LLM探索。通过跟踪LLM订阅和成本,以及评估生成式AI功能的使用和生产力提升,来衡量和监控投资回报率至关重要。确保在云端使用LLM时企业敏感数据的安全,需要实施防护措施以防止数据泄漏,并建立LLM网关以进行审计和法律允许的学习。最后,要注意成本、准确性和延迟之间的权衡,通过定制较小的LLM来匹配较大模型的准确性,同时注意到具有长上下文长度的大型LLM往往响应时间较长。

    6 测试基于RAG的聊天机器人 (T)

    由于需要人工响应验证,测试生成式人工智能解决方案可能是一个漫长的过程。越来越多地使用“LLM-as-a-judge”方法来应用大型语言模型。然而,建议在将大型语言模型作为人类代理时要谨慎,因为将大型语言模型作为评判者可能导致自我实现预言类型的情景,从而在评估中强化其固有的偏见。

    • 安全测试: 自动化安全测试对于在不影响安全性的情况下保持开发速度至关重要。一个强大的安全框架和回归测试数据集确保聊天机器人能够抵御潜在威胁。我们正在与内部的 RED 安全团队合作,准备一套数据集,以便在聊天机器人的每次重大迭代中进行测试。
    • 提示更改测试:生成式AI模型对提示更改非常敏感。为了保持准确性,每次提示更改都需要进行全面的回归测试。
    • 反馈循环: 结合收集到的反馈和RLHF循环对于持续改进至关重要。它使得LLM模型能够随着时间的推移不断优化我们的解决方案和语言模型,确保聊天机器人变得越来越熟练。然而,如果所选择的基础模型不提供定制化,那么就很难将模型与人类反馈对齐。如果反馈在多个领域中显著且广泛,那么模型定制可能是一个选项。目前,我们已经开始收集用户反馈,但尚未使用RLHF构建我们的持续学习管道。拥有能够实现自动化的工具对于这些聊天机器人的后期生产生命周期管理至关重要。

    6.1 学习心得

    "长测试周期计划":有效测试基于RAG的聊天机器人需要预见到漫长的测试周期。首先,专注于自动化测试和提高准确性评估,以简化这一关键阶段。

    构建代表性真实数据集:构建全面的真实数据集至关重要,这些数据集反映了目标解决方案强度的全方位。这确保了聊天机器人在实际使用中会遇到的场景中得到测试。

    自动化评估:虽然利用大型语言模型(LLM)作为评估者可以提供可扩展的测试选项,但请记住,人类评估的质量是无可比拟的。自动化工具应在可行的情况下用于补充,而不是取代人类的监督。

    结合人类反馈和持续学习:建立允许人类反馈和系统性错误分析的机制。优先根据这些反馈进行迭代改进,以不断优化聊天机器人的性能和适应性。

    7 基于RAG的聊天机器人安全性 (S)

    在部署生成式 AI 聊天机器人时,建立信任至关重要。为了降低风险,防止幻觉、毒性、公平性、透明性和安全性等问题的防护措施是关键。强大的基础模型在这些防护措施上越来越好。然而,仍然存在许多越狱、对抗性攻击和其他安全问题的可能性。除了这些安全风险之外,基于生成式 AI 的聊天机器人还容易受到衍生风险(如下所述)的影响。由于我们的机器人都是内部企业聊天机器人,我们更关注企业内容安全和敏感数据的防护。以下是我们基于经验总结的关于保护基于 RAG 的聊天机器人的学习和见解。解决这些挑战对于维护企业环境中基于 RAG 的聊天机器人的完整性和安全性至关重要。

    7.1 学习心得

    企业内容访问控制:企业文档受到访问控制的保护,要求基于RAG的聊天机器人在生成响应时遵循访问控制列表(ACL)。为了确保这种合规性,我们特别选择了一款以有效遵循这些文档ACL而闻名的IR产品。

    生成式人工智能的衍生风险:聊天机器人可能会生成缺乏原始数据来源上下文的响应,从而可能导致误解。此外,如果企业内容未得到适当保护,增强的搜索方法可能会无意中增加暴露敏感数据的风险。作为我们NVInfo机器人旅程的一部分,我们除了利用我们使用的向量搜索解决方案提供的敏感数据过滤和分类功能来在检索过程中自动过滤掉敏感数据外,还实施了敏感数据防护措施。

    数据治理和内容安全:高效的知识访问可能会增加敏感数据泄露的风险。因此,在部署之前优先考虑数据治理,以防止未经授权的访问和数据泄露是至关重要的。在NVIDIA,我们启动了一项企业内容安全计划,用于文档敏感性分类和从聊天机器人中排除敏感内容。

    企业护栏:实施与特定企业政策和规则相一致的护栏对于生成式AI响应至关重要。这些护栏通过确保聊天机器人生成的内容遵循既定的规范和道德准则来帮助降低风险,从而防止潜在的法律和声誉损害。在NVInfo机器人中,我们最初在LLM提示中实施了许多护栏。然而,后来意识到并非所有LLM都能始终如一地遵循这些提示。因此,我们在查询和响应的前后处理中分别使用Nemo Guardrails(13)实施了这些护栏。

    8 相关工作

    我们的工作可以与RAG论文进行比较,这些论文涉及我们所提出的所有FACTS维度(新鲜度、架构、成本、测试和安全性)的RAG质量。由于篇幅限制,我们选择性地对比了一些工作。Barnett等人(3)在工程RAG系统时提出了七个失败点。在他们的工作中,他们通过展示构建三个聊天机器人的经验,强调了正确实现检索增强生成的挑战。Wenqi Glantz(6)详细阐述了12个RAG痛点并提出了解决方案。在构建我们的聊天机器人时,我们也亲身经历了类似的挑战。然而,这些工作都没有讨论复杂查询、测试、处理文档安全性以及灵活架构需求的挑战。在我们的工作中,我们不仅基于上述RAG的失败/痛点,还提出了RAG管道中的15个控制点,并为每个阶段提供了具体的解决方案。此外,我们扩展了我们的见解,提出了处理复杂查询、测试和安全性的实用技术。我们为复杂查询处理的代理架构实现之一提供了参考架构,提出了测试和评估主观查询响应的策略,并提高了处理文档ACL和安全性的意识。此外,我们还为基于生成式AI的灵活聊天机器人平台提供了参考架构。

    ChipNemo(10)提供了使用领域适应语言模型来提高RAG在特定领域问题上的表现的证据。他们对e5-small-unsupervised模型进行了微调,使用了3,000个领域特定的自动生成样本。我们尝试在Scout Bot中微调e5-large嵌入模型。我们的结果没有显示出显著的改进。目前,我们正在收集高质量的人类注释数据以重复实验。这可能是我们未来工作中值得探索的重要方向。Setty et. al.15)提出了另一种有趣的技术,即使用假设文档嵌入(HYDE)技术来提高RAG性能。HyDE在响应查询时使用LLM生成理论文档,然后对原始问题和假设答案进行相似性搜索。这是一种有前途的方法,但可能会使架构变得复杂。

    主动检索增强生成(FLARE)(7)迭代合成假设的下一句。如果生成的句子包含低概率的词汇,FLARE将使用该句子作为新的检索查询并重新生成句子。Mialon et al.12)回顾了语言模型中高级增强生成方法的相关工作。Self-refine(11)构建了一个代理,通过迭代反馈和改进来提升RAG的初始答案。ReAct(16)代理被广泛用于以递归方式处理复杂查询。在RAG评估方面,RAGAS(4)和ARES(14)利用LLM作为评判者,并建立自动RAG基准来评估RAG系统。Zhu et al.17)概述了LLM在RAG流程中的密集使用,包括检索器、数据生成、重写器和阅读器。我们相信,通过我们的FACTS框架,我们的工作为构建安全的企业级聊天机器人提供了独特的视角。

    9 结论

    在本文中,我们介绍了开发有效的基于RAG的聊天机器人的方法,重点介绍了我们在NVIDIA构建三个聊天机器人的经验。我们概述了我们的FACTS框架,强调了内容新鲜度(F)、架构(A)、LLM成本(C)管理、测试计划(T)和安全性(S)在创建稳健、安全和企业级聊天机器人中的重要性。我们还识别并详细说明了RAG管道中的十五个关键控制点,提供了在每个阶段增强聊天机器人性能的策略。此外,我们的实证分析揭示了在比较大型和小型LLM时准确性和延迟之间的权衡。本文提供了关于构建安全高效的企业级聊天机器人的基本因素和实用解决方案的整体视角,为该领域做出了独特贡献。在多个领域仍需进行更多工作以构建有效的基于RAG的聊天机器人。这包括开发用于处理复杂、多部分和分析查询的代理架构;高效总结大量频繁更新的企业数据;结合自动机器学习功能以自动优化各种RAG控制点;以及创建更稳健的评估框架以评估主观响应和对话。

    参考文献

    • (1) Langchain. https://github.com/langchain-ai.
    • (2) Achiam, J., Adler, S., Agarwal, S., Ahmad, L., Akkaya, I., Aleman, F. L., Almeida, D., Altenschmidt, J., Altman, S., Anadkat, S., et al. GPT-4 technical report. arXiv preprint arXiv:2303.08774 (2023).
    • (3) Barnett, S., Kurniawan, S., Thudumu, S., Brannelly, Z., and Abdelrazek, M. Seven failure points when engineering a retrieval augmented generation system. arXiv preprint arXiv:2401.05856 (2024).
    • (4) Es, S., James, J., Espinosa-Anke, L., and Schockaert, S. Ragas: Automated evaluation of retrieval augmented generation. arXiv preprint arXiv:2309.15217 (2023).
    • (5) Galitsky, B. Developing enterprise chatbots. Springer, 2019.
    • (6) Glantz, W. 12 rag pain points and proposed solutions.
    • (7) Jiang, Z., Xu, F. F., Gao, L., Sun, Z., Liu, Q., Dwivedi-Yu, J., Yang, Y., Callan, J., and Neubig, G. Active retrieval augmented generation. arXiv preprint arXiv:2305.06983 (2023).
    • (8) Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., Küttler, H., Lewis, M., Yih, W.-t., Rocktäschel, T., et al. Retrieval-augmented generation for knowledge-intensive nlp tasks. Advances in Neural Information Processing Systems 33 (2020), 9459–9474.
    • (9) Liu, J. LlamaIndex. https://github.com/jerryjliu/llama_index(2022).
    • (10) Liu, M., Ene, T.-D., Kirby, R., Cheng, C., Pinckney, N., Liang, R., Alben, J., Anand, H., Banerjee, S., Bayraktaroglu, I., et al. Chipnemo: Domain-adapted llms for chip design. arXiv preprint arXiv:2311.00176 (2023).
    • (11) Madaan, A., Tandon, N., Gupta, P., Hallinan, S., Gao, L., Wiegreffe, S., Alon, U., Dziri, N., Prabhumoye, S., Yang, Y., et al. Self-refine: Iterative refinement with self-feedback. Advances in Neural Information Processing Systems 36 (2024).
    • (12) Mialon, G., Dessì, R., Lomeli, M., Nalmpantis, C., Pasunuru, R., Raileanu, R., Rozière, B., Schick, T., Dwivedi-Yu, J., Celikyilmaz, A., et al. Augmented language models: a survey. arXiv preprint arXiv:2302.07842 (2023).
    • (13) Rebedea, T., Dinu, R., Sreedhar, M., Parisien, C., and Cohen, J. Nemo guardrails: A toolkit for controllable and safe llm applications with programmable rails. arXiv preprint arXiv:2310.10501 (2023).
    • (14) Saad-Falcon, J., Khattab, O., Potts, C., and Zaharia, M. Ares: An automated evaluation framework for retrieval-augmented generation systems. arXiv preprint arXiv:2311.09476 (2023).
    • (15) Setty, S., Jijo, K., Chung, E., and Vidra, N. Improving retrieval for rag based question answering models on financial documents. arXiv preprint arXiv:2404.07221 (2024).
    • (16) Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., and Cao, Y. React: Synergizing reasoning and acting in language models. arXiv preprint arXiv:2210.03629 (2022).
    • (17) Zhu, Y., Yuan, H., Wang, S., Liu, J., Liu, W., Deng, C., Dou, Z., and Wen, J.-R. Large language models for information retrieval: A survey. arXiv preprint arXiv:2308.07107 (2023).