❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新应用和热点信息,提供开源实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:支持多模态 RAG、多数据类型、上下文压缩和多种检索器类型。
- 技术:基于压缩编码器和选择性压缩机制,显著降低计算负担。
- 应用:适用于开放域问答、对话系统、文档摘要与生成等知识密集型任务。
正文(附运行示例)
FlexRAG 是什么
FlexRAG 是中科院推出的高性能多模态 RAG 框架,旨在解决传统 RAG 系统在处理长上下文时面临的计算成本高和生成质量不足的问题。通过将检索到的上下文信息压缩成紧凑的嵌入表示,显著降低计算负担。
FlexRAG 的核心组件包括压缩编码器和选择性压缩机制,前者负责将长上下文转化为固定尺寸的嵌入,后者则通过评估信息的重要性来选择性地保留关键信息。这种设计提高了生成模型的表现,还支持灵活的压缩比和多模态数据处理。
FlexRAG 的主要功能
- 多模态 RAG:支持多模态 RAG,为不同数据模态开辟了广泛的应用可能性。
- 多数据类型:支持多种数据格式,包括文本(例如 CSV、JSONL)、图像、文档、网页等,可以灵活地处理各种数据源。
- 上下文压缩:通过压缩编码器将检索到的长上下文信息转化为紧凑的嵌入表示,减少计算负担。
- 多种检索器类型:支持稀疏检索器、密集检索器、基于网络的检索器和多模态检索器,灵活应用于不同场景。
- 提示微调:通过学习软提示(soft-prompt),改善下游任务的性能,使模型更好地适应特定任务。
FlexRAG 的技术原理
- 压缩编码器:负责将检索到的长上下文信息转化为紧凑的嵌入表示,通过提取关键信息和特征,减少输入给下游模型的负担。
- 选择性压缩机制:通过评估不同上下文信息的重要性,优先保留对生成最为关键的信息,动态调整保留的上下文信息。
- 双阶段训练工作流:分为预训练和微调两个阶段,预训练建立模型的基本语言理解和生成能力,微调优化模型在特定任务上的表现。
如何运行 FlexRAG
1. 安装 FlexRAG
可以通过 pip 安装 FlexRAG:
pip install flexrag
或者从源码安装:
pip install pybind11
git clone https://github.com/ictnlp/flexrag.git
cd flexrag
pip install ./
2. 准备检索器
下载并准备检索器所需的语料库和索引:
wget https://dl.fbaipublicfiles.com/dpr/wikipedia_split/psgs_w100.tsv.gz
gzip -d psgs_w100.tsv.gz
3. 运行 FlexRAG 助手
运行 FlexRAG 的示例 RAG 应用:
python -m flexrag.entrypoints.run_interactive \
assistant_type=modular \
modular_config.used_fields=[title,text] \
modular_config.retriever_type=dense \
modular_config.dense_config.top_k=5 \
modular_config.dense_config.database_path=${DB_PATH} \
modular_config.dense_config.query_encoder_config.encoder_type=hf \
modular_config.dense_config.query_encoder_config.hf_config.model_path='facebook/contriever' \
modular_config.dense_config.query_encoder_config.hf_config.device_id=[0] \
modular_config.response_type=short \
modular_config.generator_type=openai \
modular_config.openai_config.model_name='gpt-4o-mini' \
modular_config.openai_config.api_key=$OPENAI_KEY \
modular_config.do_sample=False
资源
- 项目官网:https://mimictalk.github.io/
- GitHub 仓库:https://github.com/ictnlp/flexrag
- 环境配置文档:https://flexrag.readthedocs.io/en/latest/
- arXiv 技术论文:https://arxiv.org/pdf/2410.06734
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新应用和热点信息,提供开源实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦