T-RAG 的核心设计思路可以这样理解:它巧妙地将检索增强生成(RAG)架构、开源的微调语言模型(LLM)以及实体树向量数据库三者融为一体,专门用于实现精准的上下文检索。简单来说,就是在传统检索增强生成(RAG)的基础上引入了一棵“实体树”,让模型能够更智能地定位并理解信息的位置与关系。

背景介绍
大型语言模型在各行各业的应用日益广泛,尤其是在企业私有文档的智能问答场景中需求旺盛。然而,实际部署时面临一个现实难题:数据安全与模型稳定性是底线,无法直接调用现成的公有API接口。因此,定制化开发成为必经之路。接下来要分享的是一个真实案例——利用 Tree-RAG(T-RAG)系统在企业内部私有文档上构建LLM问答应用的经验。该方案通过将实体层级信息融入检索过程,取得了理想效果,评估结果也验证了其有效性。这些经验对于希望将LLM真正落地到业务场景中的团队,具有很高的参考价值。
数据隐私
由于文档本身涉及敏感信息,安全风险是首要障碍。为防止数据泄露,使用公有API调用私有模型的做法被直接排除。必须选择开源模型,并将其部署在内网环境。除此之外,有限的计算资源、基于现有文档构建的小规模训练集,也都是实实在在的挑战。要在这些约束条件下,确保用户提出的任何问题都能获得可靠、精准的答案,背后需要大量的定制化工作,一系列复杂的问题也随之涌现。
技术亮点
这项研究真正有价值的地方在于,它提出了一种结合检索增强生成(RAG)与基于企业文档微调的开源LLM的应用方案。不仅如此,研究团队还设计了一个全新的评估指标,名为“Correct-Verbose”。该指标不仅考察回答是否正确,还会评判回复中是否额外提供了问题范围之外但仍有助益的信息——从实用角度为回复质量进行了综合打分。
T-RAG
Tree-RAG(T-RAG)的工作流程非常清晰。当用户提出一个问题时,系统首先从向量数据库中检索出相关的文档片段,作为LLM的背景知识。如果问题中提到了任何与组织相关的实体(例如某个部门、某位负责人),系统就会从实体树中提取这些实体的信息,并一同加入背景知识中。最后,经过微调的 Llama-2-7B 模型基于这些丰富的信息给出最终回答。
实体树
T-RAG 一个非常突出的特点是,它在向量数据库之外额外构建了一棵实体树(entities tree)来辅助上下文检索。这棵树中存储了与企业组织相关的内部实体信息,以及它们之间的层级关系。每个节点代表一个实体,父节点则指明了该实体所属的上级组织。检索时,T-RAG 会利用实体树来增强从向量数据库中获取的上下文。具体的查询与上下文生成过程如下:
- 一个解析器模块先扫描用户问题,检测其中是否包含组织内部实体名称的关键词。
- 如果找到了一或多个匹配项,就从实体树中提取每个匹配实体的详细信息。
- 将这些细节转化为文字描述,告知模型该实体的名称及其在组织层级中的具体位置。
- 随后,这段信息与从向量数据库中检索到的文档片段组合在一起,形成最终的上下文。
- 这样一来,当用户询问某个具体实体时,模型就拥有了关于该实体及其层级位置的结构化知识,回答自然更加精准。
结合上方的图示,用一个组织结构图的例子可以直观展示树搜索与检索的过程:
- 除了获取相关的背景文档,系统还会借助 spaCy 库及自定义规则,识别出问题中的命名实体。
- 如果问题包含一个或多个实体,就从实体树中提取该实体的层级位置信息,再转化为文本。
- 这些文本与检索到的文档拼接在一起,构成最终的上下文。
- 需要特别说明:如果用户问题中没有提及任何实体,系统会直接跳过树搜索,仅依赖检索到的文档提供上下文。
总结
这项研究令人深受启发,因为它将 RAG、模型微调与实体识别有机串联起来。一方面,通过内部部署开源模型解决了数据隐私这一核心难题;另一方面,切实降低了推理延迟与 token 使用成本,同时还能满足不同地区用户的多样化需求。此外,利用 spaCy 框架进行实体搜索和上下文生成的思路,也极具借鉴价值。更重要的是,这不仅仅是理论探讨——它背后凝聚了构建实际LLM应用的宝贵经验,是一套能够落地实践的高价值解决方案。
