首页 > 其他分享 >【RAG】LongRAG:利用长上下文LLMs增强检索增强生成

【RAG】LongRAG:利用长上下文LLMs增强检索增强生成

时间:2024-09-06 18:51:12浏览次数:3  
标签:检索 RAG 框架 LLMs LongRAG 阅读器 上下文 单元

前言

现有的RAG框架通常使用100词的短段落作为检索单元,这种设计使得检索器需要在大量语料库中搜索,增加了工作负担,并且容易引入难负样本,影响性能。LongRAG框架为了解决这一问题,该框架使用长检索单元(最多4K词),显著减少了语料库的大小(从22M减少到600K),从而减轻了检索器的负担,并提高了检索性能。

一、方法

LongRAG框架由两个主要组件构成:长检索器(Long Retriever)和长阅读器(Long Reader)。LongRAG框架的目标是通过使用长检索单元来平衡检索器和阅读器之间的工作负载,并利用长上下文语言模型的能力。

  1. 长检索单元:LongRAG框架通过组合整个文档或相关文档组来形成长检索单元,这些单元的长度超过4K个token。如果原始文档已经很长(例如超过4K个令牌),则将其视为一个单一的检索单元。对于较短的文档,则通过相关文档分组来形成单个检索单元。

    下面是一种用于将多个短文档分组以形成长检索单元的算法:

    算法的核心思想是根据文档之间的相关性将它们分组,以便在长检索单元中保留更多的上下文信息。

  2. 长检索器:长检索器的任务是在整个语料库中搜索相关的上下文信息,而不是寻找精确的细粒度短上下文。检索过程分为三个步骤:形成长检索单元、相似性搜索和聚合检索结果。相似性搜索使用编码器将查询和检索单元映射到向量空间,并通过点积计算它们之间的相似性。聚合检索结果时,将前K个最相似的检索单元连接起来作为长上下文。

    • 相似性搜索:使用编码器EQ(·)将输入问题映射到d维向量,使用另一个编码器EC(·)将检索单元映射到d维向量。定义问题和检索单元之间的相似性为向量的点积:


      由于g的长度较长,采用近似方法(通过最大化检索单元内所有片段的得分来近似):

    • 聚合检索结果:将前k个检索单元连接成长上下文作为检索结果:

  3. 长阅读器:长阅读器将检索到的结果(约30K词)输入现有的长上下文LLM中进行零样本答案生成。不需要任何训练,流程如下:

    1. 输入:将相关指令、问题和长检索结果输入到长语言模型中。
    2. 初始答案生成:长语言模型首先生成一个较长的答案,这个答案通常包含几句话。
    3. 答案精炼:通过进一步的提示,长语言模型从初始的长答案中提取出最终的简短答案。

    提示设计:为了有效地从长上下文中提取答案,长阅读器采用了两步提示法

    • 第一步提示:将问题和长检索结果拼接后输入到长语言模型中,不使用任何上下文示例。长语言模型生成一个较长的初步答案。
    • 第二步提示:使用8个上下文示例来引导长语言模型从长答案中提取最终的简短答案。

    提示词模版

二、实验

在基于维基百科的数据集上,LongRAG框架在不进行任何训练的情况下,达到了与最先进的全训练RAG模型相当的性能。在非基于维基百科的数据集上,LongRAG框架也表现出色,显著优于传统的RAG框架。

消融实验,验证了长检索单元和长阅读器在提高性能方面的有效性。发现检索单元大小和阅读器变体对性能有显著影响。

总结

LongRAG框架通过引入长检索器和长阅读器,减轻了检索器的负担,提高了检索质量和全文问答性能。该框架在不进行任何训练的情况下,达到了与最先进的全训练RAG模型相当的性能。总的来说,LongRAG是一种检索和生成平衡的方法,供参考。

标签:检索,RAG,框架,LLMs,LongRAG,阅读器,上下文,单元
From: https://blog.csdn.net/yjh_SE007/article/details/141950066

相关文章

  • 大型语言模型(LLMs)是怎样“学习”的?一封给网络工程师的大模型指南
    数字时代,人工智能(AI)及其相关技术正日益成为许多领域的热门话题。其中,生成式人工智能(GenAI)和大型语言模型(LLMs)引起了广泛的兴趣和讨论。然而,尽管这些术语在科技界和专业领域中频繁出现,网络工程师对其的理解却不多。什么是生成式人工智能和大型语言模型?本文将为大家介绍大......
  • WebGL入门(031):EXT_frag_depth 简介、使用方法、示例代码
    还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。No.内容链接1Openlayers【入门教程】-......
  • 论 LLMs 如何解决长文本问题?
    一、长文本的核心问题与解决方向1.1文本长度与显存及计算量之关系要研究清楚长文本的问题,首先应该搞清楚文本长度在模型中的地位与影响。那么我们便以Decoder-base的模型为例来进行分析1.1.1模型参数量Decoder-base的模型主要包括3个部分:embedding,decoder-laye......
  • 【Azure Policy】使用deployIfNotExists 把 Azure Activity logs 导出保存在Storage A
    问题描述使用AzurePolicy,对订阅下的全部ActivityLog配置DiagnosticSetting,要求:在Subscription或ManagementGroup级别,针对未启用ActivityLog功能的订阅,启用ActivityLog功能;对已经启用了Activitylog功能的订阅,使用该Policy纠正并统一其参数配置;所收集到的AzureActivityLog存......
  • 本地ollama的LLM模型运行微软GraphRAG
    pipinstallgraphragpipinstallollama1、ollama安装直接从modelscope下载ollama安装包modelscopedownload--model=modelscope/ollama-linux--local_dir./ollama-linux#运行ollama安装脚本sudochmod777./ollama-linux/ollama-modelscope-install.shsh./ollam......
  • INSIDE: LLMS’ INTERNAL STATES RETAIN THE POWER OF HALLUCINATION DETECTION
    本文是LLM系列文章,针对《INSIDE:LLMS’INTERNALSTATESRETAINTHEPOWEROFHALLUCINATIONDETECTION》的翻译。INSIDE:LLMS的内部状态保留了幻觉检测的力量摘要1引言2幻觉检查的背景3方法4实验5相关工作6结论摘要知识幻觉引起了人们对部署的LLM的......
  • 【Azure Policy】使用deployIfNotExists 把 Azure Activity logs 导出保存在Storage A
    问题描述使用AzurePolicy,对订阅下的全部ActivityLog配置DiagnosticSetting,要求:在Subscription或ManagementGroup级别,针对未启用ActivityLog功能的订阅,启用ActivityLog功能;对已经启用了Activitylog功能的订阅,使用该Policy纠正并统一其参数配置;所收集到的AzureActivity......
  • k8s创建nfs+StorageClass
    什么是StorageClass前置准备nfsservernfsserver地址:192.168.2.152nsfpath:/datak8s集群集群版本:1.22容器:containerd1.6创建rbac参考https://github.com/kubernetes-retired/external-storage/blob/master/nfs-client/deploy/rbac.yamlapiVersion:v1kind:Ser......
  • 搞了一年多的RAG,在业务上落地还是很有挑战
    现在提到大模型落地,目之所及所有公司都在做RAG。RAG通过利用外部数据库来增强大模型,很大程度上解决了模型幻觉问题,以及知识更新和数据安全等问题。如果在企业内落地大模型应用,还得从技术侧和业务侧共同入手。技术层面上,大模型的出现带来基于自然语言就能实现的逻辑分析能......
  • 【新书】掌握大语言模型:高级技术、应用、尖端方法和顶尖LLMs
    主要特性探索自然语言处理(NLP)基础和大语言模型基本原理,包括基础知识、挑战和模型类型。学习数据处理和预处理技术,以实现高效的数据管理。了解神经网络概述,包括神经网络基础、循环神经网络(RNNs)、卷积神经网络(CNNs)和变压器模型。利用大语言模型的策略和示例。描述通过强大的大语言模......