引言
T-RAG方法基于将检索增强生成(Retrieval-Augmented Generation,简称RAG)架构与开源经过微调的大型语言模型(Large Language Model,简称LLM)以及实体树向量数据库相结合。这种方法的重点在于上下文检索。
具体来说,T-RAG系统:
- 首先利用RAG架构进行信息检索,这一架构通过结合检索到的文档片段和生成的文本来生成响应。
- 通过在开源的LLM上进行微调,使得模型能够更好地理解和适应特定组织的需求和术语。
此外,T-RAG还包括了一个实体树向量数据库 ,这个数据库存储了组织内部实体的详细信息及其层级结构。在处理用户查询时,系统不仅会搜索相关的文档片段,还会检测查询中提到的任何组织相关实体,并将这些实体的详细信息整合到生成的上下文中。
本文分享了在私有文件上部署问答系统的LLM应用的经验,使用了一种名为Tree-RAG(T-RAG)的系统,该系统结合了实体层次结构以提高性能。
亮点
在论文中,研究人员开发了一个应用,该应用将检索增强生成(RAG)与微调后的开源大型语言模型(LLM)结合在一起,用于生成响应。这个模型是使用指令数据集进行训练的。
他们引入了一个新颖的评估指标,称为Correct-Verbose,旨在评估生成响应的质量。这个指标根据其正确性评估响应,同时考虑包含超出原始问题范围的额外相关信息。
T-RAG
以下是Tree-RAG(T-RAG)的工作流程:
对于给定的用户查询,搜索向量数据库以寻找相关的文档片段,这些片段作为LLM在上下文学习中的参考知识。
如果查询提到了有组织性的实体,那么将从实体树中提取关于这些实体的信息,并添加到上下文中。
最终使用微调的Llama-2 7B模型根据输入的数据生成响应。
T-RAG的一个特点是除了向量数据库用于上下文检索之外,还包括了一个实体树。
实体树
T-RAG的一个显著特点是其结合了实体树和向量数据库来进行上下文检索。实体树存储了组织性的实体及其层级安排的详细信息。
这里所说的组织性是指:很多时候,一些概念本身是有组织的,比如一家公司的各个部门,会有一些层级关系。树中的每个节点代表一个实体,父节点表示其所属的一个更广义的实体,比如一个小组的父节点是其所属的部门。
在检索过程中,框架利用实体树来增强从向量数据库检索到的上下文。
实体树搜索和上下文生成的详细过程如下:
- 一个解析模块扫描用户查询,寻找与组织内实体名称相对应的关键词。
- 一旦识别出一个或多个匹配项,就从树中提取每个匹配实体的详细信息。
- 这些细节被转换成文本陈述,提供有关实体及其在组织层级中位置的信息。
- 随后,这些信息与从向量数据库检索到的文档片段合并,构建上下文。
- 由此,当用户询问有关实体时,模型可以获得有关实体及其在组织层级中的定位的相关信息。
例子
如下图所示:
这里使用了一个组织结构树,来展示如何执行树搜索和检索。
除了获取上下文文档外,还使用spaCy库和自定义规则来识别组织内的命名实体。
如果查询包含一个或多个这样的实体,将从树中提取有关实体层级位置的相关信息,并将其转换为文本陈述。然后,这些陈述被整合到上下文中,与检索到的文档一起使用。
然而,如果用户的查询没有提到任何实体,那么将省略树搜索过程,只使用从检索到的文档中获取的上下文以加速响应。
总结
这项研究结合了检索增强生成(RAG)和微调技术。同时,使用在本地部署的开源模型来解决数据隐私问题,。
此外,通过spaCy框架使用实体进行实体搜索和上下文生成也很有趣。通过这种方式,T-RAG能够在提供准确和相关响应的同时,保持对上下文的敏感性和对组织内部结构的理解。这种结合检索、生成和实体检测的方法,为构建高效、可靠的问答系统提供了一种有效的解决方案。