Multi-Head RAG
Multi-Head RAG (MRAG) 简介
Multi-Head RAG(MRAG)是一种创新的框架,专门处理需要检索多方面信息的复杂查询。传统的查询常常难以获取包含不同内容的多个文档,因为这些文档的嵌入在向量空间中距离较远。MRAG 的核心理念是利用 Transformer 多头注意力层的激活作为关键值来检索多方面文档,而不是使用解码层的激活。不同的注意力头可以学习捕捉不同数据面的特征,这样的激活能够生成代表数据项和查询各个方面的嵌入,从而提高复杂查询的检索准确性。
使用场景
MRAG 特别适用于以下场景:
- 多方面信息检索:当一个查询需要从多个角度获取不同信息时,MRAG 可以有效提升检索效率和准确性。
- 复杂问题解决:适合用于解决需要综合多种信息源的复杂问题,例如跨领域的研究、市场分析等。
- 数据分析与可视化:在需要多维度数据分析和可视化的应用中,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=<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}
}
广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621