AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


RAG |(爱立信经验总结)关于构建技术文档类RAG系统的经验总结
发布日期:2024-07-14 06:34:18 浏览次数: 1786 来源:码农的科研笔记



原文:OBSERVATIONS ON BUILDING RAG SYSTEMS FOR TECHNICAL DOCUMENTS
地址:https://arxiv.org/abs/2404.00657v1
代码:未知
出版:ICLR 2024
机构: 爱立信研发

1 研究问题

本文研究的核心问题是: 如何有效地构建针对技术文档的检索增强生成(RAG)系统。

假设一家电信公司正在为其工程师开发一个基于RAG的智能助手系统。该系统需要能够准确理解和回答关于复杂的无线通信协议和技术规范的问题。然而,传统的RAG方法在处理这类专业性很强的技术文档时往往表现不佳,无法准确捕捉文档中的专业术语和上下文关系。

本文研究问题的特点和现有方法面临的挑战主要体现在以下几个方面:

  • 技术文档中的嵌入向量往往无法充分捕捉领域特定的信息,导致检索效果不佳。
  • 技术文档中大量使用缩写词和专业术语,增加了文本理解的难度。
  • 技术文档的结构往往比较复杂,包含定义、规范和详细说明等多个部分,需要更智能的检索策略。
  • 现有的RAG评估指标可能不适用于技术文档场景,需要开发新的评估方法。

针对这些挑战,本文提出了一种基于实验观察的"最佳实践"方法:

作者通过一系列实验,观察了影响RAG系统性能的多个因素,包括文本块长度、基于关键词的搜索、检索结果的排序等。他们的方法类似于一个"RAG系统调优指南"。例如,他们发现将定义和被定义的词分开进行嵌入可以提高检索效果;句子级别的相似度搜索配合段落级别的检索可以为生成器提供更好的上下文。这种方法就像是一个经验丰富的厨师,通过不断尝试和调整各种"配料"(RAG系统的组件和参数),最终找到了一套适合"烹饪"技术文档的"秘方"。这种实用性强、基于实验的方法,为构建高效的技术文档RAG系统提供了valuable的指导。

2 研究方法

2.1 RAG系统整体架构

论文提出的检索增强生成(RAG)系统旨在解决技术文档问答中的挑战。整个系统的工作流程可以概括为以下几个步骤:

  1. 文档预处理:将技术文档分割成适当的块。
  2. 嵌入生成:为每个文档块生成嵌入向量。
  3. 索引构建:建立文档块的索引,以便快速检索。
  4. 查询处理:将用户查询转换为嵌入向量。
  5. 相关性检索:根据查询嵌入检索最相关的文档块。
  6. 答案生成:基于检索到的相关内容生成回答。

举个例子,假设我们有一份关于无线网络技术的文档。当用户问"什么是MIMO技术?"时,系统会首先将这个问题转换为嵌入向量,然后在文档中搜索最相关的内容块,最后基于这些内容生成一个全面而准确的回答。

2.2 文档处理与嵌入生成

文档处理和嵌入生成是RAG系统的基础,直接影响了检索的质量。论文在这一步骤中采取了几个关键策略:

  1. 文档分割: 论文将文档分为两部分处理:术语表和完整文档。这种分割方法有助于更精确地回答定义类问题。例如,当用户询问"什么是EIRP?"时,系统可以直接从术语表部分检索相关定义。

  2. 嵌入模型选择: 论文选择了MPNET模型来生成文档块的嵌入。MPNET是一种强大的预训练语言模型,能够捕捉文本的语义信息。具体来说,对于每个文档块 ,MPNET模型会生成一个固定维度的嵌入向量 :

  3. 特殊处理:

  • 对于术语表,论文分别为术语和定义生成嵌入,同时也为包含术语和定义的完整段落生成嵌入。这样做的好处是可以从不同角度捕捉术语的语义信息。
  • 对于完整文档,论文排除了表格和标题,只为正文内容生成嵌入。这有助于减少噪音,提高检索的准确性。

举个例子,假设我们有一个术语"MIMO"及其定义。我们会生成三个嵌入:

  1. MIMO的嵌入
  2. 定义内容的嵌入
  3. "MIMO"加上其定义的完整段落的嵌入

这种多角度的嵌入方式使得系统在检索时更加灵活和准确。

2.3 检索策略与生成模型

检索策略和生成模型是RAG系统的核心组件,直接决定了系统的性能。论文在这方面做了深入的探索和观察:

  1. 检索策略: 论文探讨了几种检索策略,包括基于相似度的检索和基于关键词的搜索。具体来说:

    a) 相似度检索: 当用户提出查询 时,系统首先将查询转换为嵌入向量 ,然后计算与文档块嵌入 的余弦相似度:

    系统会选择相似度最高的 个文档块作为检索结果。

    b) 关键词搜索: 论文观察到关键词在句子中的位置会影响检索效果。例如,如果关键词出现在句子开头,通常更容易被检索到。

  2. 生成模型: 论文选择了llama2-7b-chat模型作为生成模型。这是一个强大的语言模型,能够基于检索到的内容生成连贯且相关的回答。

    生成过程可以表示为:

    其中 是用户的原始查询,而 是通过检索策略获得的相关文档块。

  3. 块长度的影响: 论文观察到,随着文档块长度的增加,句子嵌入的可靠性会降低。这是因为长文本块可能包含多个主题,导致嵌入无法准确捕捉其语义。直觉上,这就好比我们试图用一句话概括一整篇文章 - 随着文章长度的增加,这个任务变得越来越困难,概括的准确性也会降低。

  4. 检索结果排序: 论文发现,检索结果的排序对生成模型的性能有显著影响。具体来说,将最相关的内容放在前面可以帮助生成模型更准确地回答问题。这就好比我们在回答问题时,通常会先说最重要的信息,然后再补充细节。同样地,给生成模型提供最相关的信息作为开头,可以帮助它更好地组织答案。

  5. 结果分析: 论文通过实验发现,基于句子的相似度搜索,再检索相应的段落,能够为生成模型提供更好的上下文信息,从而产生更高质量的回答。举个例子,假设用户问:"什么是OFDM技术?"系统会先找到最相关的句子,比如"OFDM是一种多载波调制技术",然后检索包含这个句子的整个段落。这样,生成模型不仅能得到直接的定义,还能获得更多相关的背景信息,从而生成更全面的回答。

总的来说,论文通过深入分析检索策略和生成模型的各个方面,为构建高效的技术文档RAG系统提供了valuable insights。论文的方法不仅考虑了传统的检索技术,还探索了如何更好地将检索结果与生成模型结合,以提供更准确、更相关的回答。这种方法的优势在于它能够处理复杂的技术文档,并为用户提供精确的信息,这在技术支持、文档查询等场景中有着广泛的应用前景。

3 实验

3.1 实验场景介绍

本论文探讨了为技术文档构建检索增强生成(RAG)系统的挑战和最佳实践。实验主要基于IEEE无线局域网媒体访问控制(MAC)和物理层(PHY)规范以及IEEE固定电池术语标准词汇。研究人员通过一系列实验,观察了不同检索策略和生成方法在处理技术文档时的表现。

3.2 实验设置

  • Datasets:使用IEEE 802.11-2020无线局域网标准和IEEE 1881-2016固定电池术语标准词汇
  • Baseline:未明确提及基线模型
  • Implementation details:
    • 使用MPNET进行文档嵌入
    • 采用llama2-7b-chat模型作为生成器
    • 对定义词汇表,分别为术语、定义和完整段落生成嵌入
  • Metric:主要通过定性分析和观察来评估性能,没有使用明确的量化指标
  • 环境:未明确提及具体的硬件环境

3.3 实验结果

实验1、文档长度对相似度的影响

目的:研究文档长度如何影响嵌入的相似度分布
涉及图表:图 1
实验细节概述:对10,970个句子进行两两相似度计算,分析不同长度句子的相似度分布
结果:

  • 当句子长度相对较长时,观察到高相似度
  • 当查询和被查询文档都超过200字时,相似度分布呈双峰
  • 当其中一个超过200字时,在较高相似度处有小幅但不明显的提升

实验2、不同检索方法的效果比较

目的:评估全句检索、定义词检索和定义检索在技术文档检索中的表现
涉及图表:表 2
实验细节概述:使用不同的检索方法(全句、定义词、定义)来回答技术问题,比较它们的检索结果
结果:

  • 对于定义,将定义词和定义分开用于检索通常能获得更好的性能
  • 相似度分数不应用于比较不同方法的检索结果,因为正确答案的绝对分数往往很小
  • 句子开头的关键词更容易被准确检索到
  • 句子后部的关键词较难被检索到

实验3、基于段落vs基于句子的相似度搜索

目的:比较基于段落和基于句子的相似度搜索方法在提供上下文信息方面的效果
涉及图表:表 3
实验细节概述:分别使用基于段落和基于句子的相似度搜索方法进行检索,比较它们提供给生成器的上下文质量
结果:

  • 基于句子的相似度搜索,并检索相应的段落,能为生成器提供更详细的上下文
  • 由于检索了3个不同的段落,提供了更多的上下文信息,有助于生成器创建更好的回答

实验4、生成器性能分析

目的:分析生成器在不同检索结果上的表现
涉及图表:无具体图表
实验细节概述:使用不同的检索结果作为输入,评估生成器的回答质量
结果:

  • 当有更广泛的上下文可用时,生成器通常能创建更好的长篇问答
  • 对于缩写词的定义,生成的回答往往只给出全称而不是定义
  • 有时生成的回答仅仅是缩写词的展开,这可能不符合用户的期望

4 总结后记

本论文针对技术文档的检索增强生成(RAG)系统构建问题,通过实验观察总结了一些最佳实践和潜在挑战。主要发现包括:chunk长度影响检索器嵌入效果;基于相似度分数的检索器结果阈值可能不可靠;句子级相似度搜索和段落级检索可以提供更好的生成器性能;缩写和大量相关段落会影响长篇问答效果。这些观察对构建技术文档RAG系统提供了有价值的指导。

疑惑和想法:

  1. 除了观察实验结果,是否可以设计更系统的评估指标来量化RAG系统在技术文档上的性能?
  2. 如何处理技术文档中的图表、公式等非文本内容,使RAG系统能更全面地理解文档?
  3. 对于不同领域的技术文档(如医学、法律等),RAG系统的最佳实践是否会有所不同?如何进行跨领域的迁移?
  4. 如何将这些观察结果与大型语言模型的微调结合,进一步提升RAG系统在技术文档上的表现?

可借鉴的方法点:

  1. 对chunk长度、关键词位置等因素对检索性能影响的分析方法可以推广到其他文本检索任务中。
  2. 句子级相似度搜索结合段落级检索的思路可以应用于其他需要保持上下文的检索任务。
  3. 对缩写和专业术语的特殊处理方法可以借鉴到其他专业领域的自然语言处理任务中。
  4. 通过观察实验结果总结最佳实践的方法可以应用于其他复杂系统的优化过程中。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询