MBE 系统中 Self-Critical Sequence 方法的应用与增强建议

基于论文 "Enhancing LLM Planning Capabilities through Intrinsic Self-Critique" 及 MBE 既有实现,本文档梳理 Self-Critical Sequence(自我批评序列) 在 MBE 中的现状与可扩展应用。


一、Self-Critical Sequence 在 MBE 中的含义

Self-Critique 指:模型生成输出后,由同一模型对输出进行验证、发现问题并修正的迭代过程。核心流程为:

生成 (Generate) → 验证 (Critique) → 修正 (Revise) → [可迭代]

MBE 中已实现多种 Self-Critique 变体,覆盖问答、路径规划、意图理解、专家匹配等场景。


二、MBE 中已有的 Self-Critique 应用

模块 位置 功能 状态
QASelfCritique knowledge/qa_critique.py 答案幻觉检测、 grounding 验证、修正 ✅ DynamicExpert 已用(非 fast 模式)
路径生成 Self-Critique core/self_critique.py, core/paths.py 米塞斯行为学路径验证(前置条件、价值一致性等) ⚠️ engine 中 SELF_CRITIQUE_ENABLED=False
愿望分析 Self-Critique core/desires.py analyze_with_self_critique ⚠️ 同上
意图验证 core/extended_critique.pycritique_integration IntentCritique ✅ 可异步后台
专家匹配验证 同上 ExpertMatchCritique ✅ expert_router 已导入
对话一致性 同上 ConversationConsistencyCritique ✅ 可异步后台
知识更新验证 同上 KnowledgeUpdateCritique ✅ knowledge_manager 可调用
用户画像验证 同上 ProfileCritique ⚠️ 默认关闭(性能)
QA 质量优化 quality/auto_optimizer.py, quality_loop.py QASelfCritique 修正 ✅ 已集成
专家信任分 market/expert_trust_score.py 统计 self_critique_passes/fails ✅ 已记录

三、可增强的 Self-Critique 应用场景

3.1 IntelligentQAEngine 答案验证

现状:IntelligentQAEngine 有意图推理、专家选择、检索、生成,但未使用 QASelfCritique 验证答案。

建议:在主流程答案生成后增加 Self-Critique 步骤,与 DynamicExpert 一致:

  • 验证答案是否 grounded 于检索上下文
  • 检测幻觉并修正或降级回答
  • 可配置为同步(严格)或异步(延迟反馈)

收益:IntelligentQA 与 DynamicExpert 的答案质量更一致,减少幻觉。


3.2 RAG 检索结果质量验证

现状:检索返回 top-k chunks,未对检索结果做显式质量验证。

建议:新增 RetrievalCritique

  • 输入:query、top-k chunks、chunk 分数
  • 验证:chunks 是否覆盖问题、是否包含无关内容、是否遗漏关键信息
  • 输出:是否需要重检索、是否应扩大/缩小 top-k、是否应调整 query

收益:在生成前发现检索不足,减少“答非所问”和幻觉。


3.3 知识库建立流程中的分块质量验证

现状:分块后直接向量化,无分块质量自检。

建议:新增 ChunkQualityCritique

  • 在分块完成后、向量化前,对样本 chunks 做 Self-Critique
  • 验证:边界是否合理、句子是否完整、是否混入无关内容、重叠是否过大
  • 可对低质量 chunk 触发重分块或标记

收益:提升检索质量,减少“截断关键信息”的情况。


3.4 专家配置 AI 建议的验证

现状_analyze_content_for_expert() 生成专家名称、描述、关键词建议,直接使用。

建议:新增 ExpertConfigCritique

  • 验证:建议关键词是否与文档内容匹配、领域是否准确、描述是否夸大
  • 修正:过滤无效关键词、补齐遗漏领域

收益:专家路由更准确,减少错配。


3.5 专家模型训练样本验证

现状:从 chunks 生成训练样本,无样本质量筛选。

建议:新增 TrainingSampleCritique

  • 验证:样本是否歧义、是否过长/过短、是否包含噪声
  • 过滤或重写低质量样本后再送入训练

收益:提高训练数据质量,减轻专家模型噪声。


3.6 用户反馈的 Self-Critique 校验

现状:用户点赞/踩直接用于 HOPE 等学习,未过滤异常反馈。

建议:新增 FeedbackCritique

  • 对与“答案质量”明显矛盾的反馈做校验(如:明显幻觉答案却点赞)
  • 过滤极端或异常模式,避免噪声污染学习

收益:提升 HOPE 等模块的学习稳定性。


3.7 启用并调优 engine 中的 Self-Critique

现状engine.pySELF_CRITIQUE_ENABLED = False,愿望分析、路径生成等的 Self-Critique 未启用。

建议

  • 通过配置或环境变量控制启用
  • 对高复杂度会话(如多轮、多目标)启用;对简单会话保持关闭
  • 可考虑异步/后台执行,避免阻塞首响应

收益:米塞斯行为学路径与愿望分析更符合领域规则。


3.8 Self-Critical Sequence Training (SCST) —— RL 训练

说明:SCST 是 REINFORCE 类方法,用模型自身推理时的输出作为 baseline,优化序列生成。

潜在应用

  • 专家模型微调:用 SCST 优化答案生成策略,使输出更贴近“高 Self-Critique 分数”的序列
  • 路径生成:用 SCST 优化路径推荐策略

当前:MBE 训练流程以知识蒸馏/监督为主,SCST 尚未实现,可作为中长期研究方向。


四、实施优先级建议

优先级 场景 实现难度 收益 建议
IntelligentQA 答案验证 已实现:intelligent_qa.py 中复用 QASelfCritique
启用 engine 愿望/路径 Self-Critique 中高 已实现:engine.py 中配置+条件启用
RAG 检索结果验证 已实现:RetrievalCritique + IntelligentQA 集成
专家配置建议验证 已实现:ExpertConfigCritique + knowledge_manager 集成
分块质量验证 已实现:ChunkQualityCritique + knowledge_manager
训练样本验证 已实现:TrainingSampleCritique + training_tasks
反馈校验 已实现:FeedbackCritique + feedback API
研究 SCST 训练 待评估 作为后续研发方向

五、相关代码位置速查

功能 文件路径
QASelfCritique private/core/src/knowledge/qa_critique.py
路径/愿望 Self-Critique private/core/src/core/self_critique.py, paths.py, desires.py
扩展验证器(意图、专家、一致性等) private/core/src/core/extended_critique.py
集成与配置 private/core/src/core/critique_integration.py
DynamicExpert 调用 private/core/src/knowledge/dynamic_expert.py (约 717–746 行)
Engine 配置 private/core/src/core/engine.py (SELF_CRITIQUE_ENABLED, 约 25–28 行)

六、总结

MBE 已在 QA、路径规划、意图、专家匹配、一致性、知识更新等环节使用 Self-Critique。仍有明显增强空间:

  1. IntelligentQAEngine 补上答案验证,与 DynamicExpert 质量一致
  2. RAG 检索 增加检索结果验证,在生成前发现不足
  3. 知识库建立 对分块、专家配置、训练样本做 Self-Critique
  4. Engine 在合适条件下启用愿望/路径 Self-Critique
  5. SCST 作为长期方向,探索基于 Self-Critique 的强化学习训练

按上述优先级逐步落地,可系统性提升 MBE 的可靠性与可控性。