Multi-Head RAG Multi-Head RAG Multi-Head RAG

Multi-Head RAG Multi-Head RAG (MRAG) Multi-Head RAG

2 分钟阅读

Multi-Head RAG

Multi-Head RAG (MRAG) 简介

Multi-Head RAG(MRAG)是一种创新的框架,专门处理需要检索多方面信息的复杂查询。传统的查询常常难以获取包含不同内容的多个文档,因为这些文档的嵌入在向量空间中距离较远。MRAG 的核心理念是利用 Transformer 多头注意力层的激活作为关键值来检索多方面文档,而不是使用解码层的激活。不同的注意力头可以学习捕捉不同数据面的特征,这样的激活能够生成代表数据项和查询各个方面的嵌入,从而提高复杂查询的检索准确性。

使用场景

MRAG 特别适用于以下场景:

  1. 多方面信息检索 :当一个查询需要从多个角度获取不同信息时,MRAG 可以有效提升检索效率和准确性。
  2. 复杂问题解决 :适合用于解决需要综合多种信息源的复杂问题,例如跨领域的研究、市场分析等。
  3. 数据分析与可视化 :在需要多维度数据分析和可视化的应用中,MRAG 的多头注意力机制能够提供更细致的特征提取。
安装指南

为了使用 MRAG 框架,需要一个 Python 3.9 或更新的工作环境。

安装 MRAG

用户可以从源码安装 MRAG:

git clone https://github.com/spcl/MRAG.git cd MRAG pip install . apt-get install docker-compose

开发者可以以可编辑模式从源码安装:

git clone https://github.com/spcl/MRAG.git cd MRAG pip install -e . apt-get install docker-compose

快速开始

生成合成数据集及其查询:

multirag-cli datagen export OPENAI_API_KEY= multirag-cli querygen

接下来生成数据集和查询的嵌入向量:

multirag-cli embed

设置向量数据库并导入嵌入数据:

multirag-cli db start multirag-cli db import

运行评估命令:

multirag-cli evaluate

可视化评估数据:

multirag-cli plot

详细的命令行接口文档可以在以下链接中找到:

文献引用

如果您觉得这个项目有价值,请给予星标支持!有任何问题或反馈,请随时联系并提出 issue。如果在您的工作中使用了 MRAG,请按以下方式引用:

@misc{besta2024multihead, title = {{Multi-Head RAG: Solving Multi-Aspect Problems with LLMs}}, author = {Besta, Maciej and Kubicek, Ales and Niggli, Roman and Gerstenberger, Robert and Weitzendorf, Lucas and Chi, Mingyuan and Iff, Patrick and Gajda, Joanna and Nyczyk, Piotr and M"{u}ller, J"{u}rgen and Niewiadomski, Hubert and Chrapek, Marcin and Podstawksi, Micha{}l and Hoefler, Torsten}, year = 2024, month = June, eprinttype = {arXiv}, eprint = {2406.05085} }