RAG各模块联合优化思路:多智能体协作建模-MMOA-RAG浅尝

大模型机器学习算法

现有RAG系统的各个模块的任务目标不一致 :传统方法(如监督微调SFT)单独优化查询重写、文档检索、答案生成等模块,但单个模块的“局部最优 ”无法保证最终答案的“全局最优 ”。(ps:这一点可以通过之前的一个分类比赛准确性分析理解《CCF-BDCI-数字安全公开赛:基于人工智能的漏洞数据分类冠军方案》)。

MMOA-RAG创新点是将RAG系统的可训练模块建模为协作式多智能体 ,让所有智能体的优化目标统一对齐到“最终答案质量”(如F1分数),通过多智能体强化学习(MAPPO算法)实现模块间的联合优化 ,解决这个问题。

picture.image

MMOA-RAG 的整体框架

总结如下:

| 模块 | 角色(智能体/环境) | 功能 | | --- | --- | --- | | 查询重写器(QR) | 智能体(可训练) | 将复杂/模糊的初始问题 q 拆解为多个子问题 subq ,提升后续检索的精准度。 | | 文档检索器(Retriever) | 环境(固定,建模为RL智能体难度较高,使用Contriever、BGE等成熟检索模型) | 根据每个 subq 从语料库中检索候选文档集 D (默认 K=10 个文档,如2个 subq 各检索5个)。 | | 文档选择器(S) | 智能体(可训练) | 从 D 中筛选出对生成答案真正有用的子集 D_selected ,过滤噪声文档。 | | 答案生成器(G) | 智能体(可训练) | 基于 qD_selected 生成最终预测答案 Ans_predict 。 |

联合优化需要实现参数共享 :三个智能体复用同一LLM参数(通过不同提示词区分任务),降低计算开销。

两阶段优化

MMOA-RAG的训练分为“预热SFT”和“多智能体优化(MAPPO)”两阶段,确保模型先掌握基础功能,再通过协作agent提升性能。

阶段1:预热SFT

让每个智能体先学会“基础任务逻辑”(如QR拆解问题、S选择文档、G生成答案),为后续强化学习提供“基线模型”。

数据集构建

针对三个智能体分别构建SFT数据:

  1. QR的SFT数据 :复用Rewrite-Retrieve-Read论文的公开查询重写数据集(问题→子问题对);
  2. S的SFT数据 :用启发式方法标注“有用文档ID”:
  • 对问题 q 和黄金答案 Ans_golden ,去除停用词、小写化后得到词集 Set_q
  • 对每个候选文档 d ,同样处理得到 Set_d
  • Set_qSet_d 有交集,则标注 d 的ID为“有用”;
  • G的SFT数据 :以“ q

D_selectedAns_golden ”为样本( Ans_golden 为黄金答案)。

损失函数

采用标准语言建模损失,最小化模型预测与标签的负对数似然:

  • :每个智能体的输入(如QR的

);

  • :每个智能体的标签(如QR的

);

  • :LLM参数。

阶段2:多智能体优化(MAPPO)

MAPPO是PPO的多智能体扩展,支持“共享全局奖励”,适合完全协作场景。

模型组件

训练过程中涉及三个模型:

  1. Actor模型 (参数

):负责为每个智能体生成动作(如QR生成子问题、S输出ID); 2. Critic模型 (参数

):负责估计“状态价值”

,用于计算优势函数(衡量动作的“额外收益”); 3. SFT模型 (参数

):作为基线,防止Actor模型偏离基础任务逻辑(类似InstructGPT的KL惩罚)。

实验性能

picture.image

不同方法在数据集上的表现

picture.image

关于优化不同智能体的消融实验

picture.image

不同模块配置下 RAG 系统的通用性实验

Improving Retrieval-Augmented Generation through Multi-Agent Reinforcement Learning,https://arxiv.org/pdf/2501.15228v2
repo:https://github.com/chenyiqun/MMOA-RAG

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论