首页 > 其他分享 >论文阅读:T-RAG: LESSONS FROM THE LLM TRENCHES

论文阅读:T-RAG: LESSONS FROM THE LLM TRENCHES

时间:2024-06-18 19:43:04浏览次数:22  
标签:LESSONS RAG 检索 实体 TRENCHES 文档 LLM 上下文

T-RAG: LESSONS FROM THE LLM TRENCHES(https://arxiv.org/abs/2402.07483)

https://github.com/jiangnanboy/paper_read_note

一.概述

大型语言模型(llm)越来越多地应用于各个领域,包括对私有企业文档的问答,其中数据安全性和鲁棒性至关重要。检索增强生成(retrieve - augmented Generation, RAG)是构建此类应用程序的重要框架,但要确保其健壮性,需要对其进行广泛的定制。本研究分享了在私有组织文档上部署LLM应用程序的经验,该应用程序使用名为Tree-RAG (T-RAG)的系统,该系统包含实体层次结构以提高性能。评估证明了这种方法的有效性,为现实世界的llm应用提供了有价值的见解。

由于这些文档的敏感性,安全风险是一个主要问题,这使得在公开api上使用专有的LLM模型以避免数据泄漏风险变得不切实际。这就需要使用可以部署在内部的开源模型。此外,有限的计算资源和基于可用文档的较小的训练数据集也带来了挑战。此外,确保对用户查询的可靠和准确的响应增加了复杂性,需要在这种环境中部署健壮的应用程序时进行广泛的定制和决策。

研究人员开发了一个应用程序,该应用程序将检索增强生成(RAG)与一个经过微调的开源大型语言模型(LLM)集成在一起,用于生成响应。该模型使用来自组织文档的指令数据集进行训练。

他们引入了一种新的评估指标,称为Correct-Verbose,旨在评估生成的响应的质量。该指标根据答案的正确性对答案进行评估,同时还会考虑是否包含超出原问题范围的其他相关信息。

二.T-RAG框架

下面是Tree-RAG (T-RAG)的工作流程:

1.对于给定的用户查询,在向量数据库中搜索相关的文档块,该块作为LLM上下文学习的上下文参考。

2.如果查询提到任何与组织相关的实体,则从实体树中提取有关实体的信息并添加到上下文中。经过微调的lama- 27b模型根据呈现的数据生成响应。

三.实体树(Entities Tree)

T-RAG的一个显著特点是,它将实体树与用于上下文检索的矢量数据库结合在一起。实体树存储有关组织实体及其层次结构安排的详细信息。此树中的每个节点表示一个实体,父节点表示它们各自的组成员关系。在检索过程中,框架利用实体树来增强从矢量数据库检索到的上下文。

实体树搜索和上下文生成的过程如下:

1.最初,解析器模块扫描用户查询,查找与组织内实体名称对应的关键字。

2.在识别一个或多个匹配后,从树中提取关于每个匹配实体的详细信息。

3.这些细节被转换成文本语句,提供有关实体及其在组织层次结构中的位置的信息。

4.随后,将此信息与从矢量数据库检索到的文档块合并以构建上下文。

5.通过采用这种方法,当用户查询实体及其在组织中的层次位置时,模型可以访问有关实体的相关信息。

考虑到上面的图像,上下文生成的检索过程包括使用来自组织结构图的说明性示例来演示如何执行树搜索和检索。除了获取上下文文档之外,还使用spaCy库和自定义规则来标识组织内的命名实体。

如果查询包含一个或多个这样的实体,则从树中提取有关实体层次结构位置的相关信息,并将其转换为文本语句。然后将这些语句与检索到的文档一起合并到上下文中。

但是,如果用户的查询没有提到任何实体,则省略树搜索,只使用检索到的文档中的上下文。

四.总结

该研究结合了RAG和微调。同时利用本地托管的开源模型来解决数据隐私问题,同时解决推理延迟、令牌使用成本以及区域和地理可用性。通过spaCy框架使用实体进行实体搜索和上下文生成的方式很有趣。事实上,这不仅仅是一项研究,而是基于构建用于实际使用的LLM应用程序的经验所获得的经验教训。

标签:LESSONS,RAG,检索,实体,TRENCHES,文档,LLM,上下文
From: https://www.cnblogs.com/little-horse/p/18254999

相关文章

  • 论文阅读:UniMS-RAG: Unified Multi-Source RAG for Personalised Dialogue
    UniMS-RAG:UnifiedMulti-SourceRAGforPersonalisedDialogue(https://arxiv.org/abs/2401.13256)https://github.com/jiangnanboy/paper_read_note一.概述本研究探讨如何分解RAG过程,加入多文件检索、记忆和个人信息等元素。大型语言模型(llm)在自然语言任务中表现出色,但......
  • Activity和fragment是如何交互的
    Fragment是Android中历史十分悠久的一个组件,在Android3.0(API级别11)的时候推出,时至今日已成为Android开发中最常用的组件之一在一开始的时候,引入Fragment的目的是为了在大屏幕(如平板电脑)上能够更加动态和灵活地设计界面,被定义为一个**轻量级Activity**而进行设计......
  • Ragas实践问题记录1 ValueError: Directory ./arxiv-papers/ does not exist.
    纯小白,记录一下在尝试ragas时遇到的一些问题。尝试官方文档“CompareLLMsusingRagasEvaluations”时,在Createsynthetictestdata步骤复制github中的代码时,遇到了以下问题:ragas官方文档查看请点此解决方法是前往openxlab下载数据集,再使用本地的路径替换掉报错的地方......
  • Ragas实践问题记录2 AttributeError: ‘TestsetGenerator‘ object has no attribute
    报错问题依然是在尝试官方文档“CompareLLMsusingRagasEvaluations”的“Createsynthetictestdata”步骤发生报错。官方文档以及文档中代码如下:Ragas:CompareLLMsusingRagasEvaluations官方文档中的代码:importosfromllama_indeximportdownload_loader,Simp......
  • 【AI开发】RAG基础
    RAG的基本流程:用一个loader把knowledgebase里的知识做成一个个的document,然后把document切分成snippets,把snippets通过embedding(比如openai的embedding模型或者huggingface的)向量化,存储到vectordb向量数据库,以供后续相关性检索。至此便完成了私域数据集的索引indexing。......
  • Vector | Graph:蚂蚁首个开源Graph RAG框架设计解读
    检索增强生成(RAG:RetrievalAugmentedGeneration)技术旨在把信息检索与大模型结合,以缓解大模型推理“幻觉”的问题。近来关于RAG的研究如火如荼,支持RAG的开源框架也层出不穷,并孕育了大量专业领域的AI工程应用。我们设计了一个通用的开源RAG框架,以兼容未来多样化的基础研究建设和工......
  • 如何手撸一个自有知识库的RAG系统
    RAG通常指的是"Retrieval-AugmentedGeneration",即“检索增强的生成”。这是一种结合了检索(Retrieval)和生成(Generation)的机器学习模型,通常用于自然语言处理任务,如文本生成、问答系统等。我们通过一下几个步骤来完成一个基于京东云官网文档的RAG系统数据收集建立知识库向......
  • 鸿蒙——数据持久化存储(AppStorage、PersitentStoreage、数据库、首选项)
    Localstorage-内存化存储-局部可用AppStorage-内存化存储-全局可用PersitentStoreage-写入磁盘(沙箱)全局可用首选项-写入磁盘-全局可用关系型数据库-写入磁盘1.用户首选项:获取Preferences实例、保存/更新数据、获取数据用户首选项为应用提供Key-Value键值型的数据处......
  • 冲刺06fragment_reg_chi_fil_inf.xml
    <?xmlversion="1.0"encoding="utf-8"?><FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent&......
  • (高清pdf)UNIX环境高级编程 (W. Richard Stevens, Stephen A. Rago)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoUNIX系统概述:介绍UNIX操作系统的基本组成、特点和发展历程,为读者后续的学习打下基础。文件和目录操作:详细讲解文件和目录的创建、打开、读写、关闭等操作,以及文件属性的获取和设置。进程管理:深入剖析进程的创建......