RAG 的 Orchestration 优化之 Scheduling
随着 RAG 系统的复杂性和适应性的提升,调度模块能够有效地管理整个流程。它在模块化 RAG 系统中发挥着关键作用,帮助识别需要外部数据检索的关键时刻,评估生成结果的质量,并决定是否需要进一步的处理。调度模块常用于递归、迭代和自适应检索场景,确保系统能够在合适的时机停止生成或启动新的检索过程
Scheduling-RuleJudge
后续步骤由一组预设规则控制。通常,系统通过评分机制评估生成的答案质量,是否继续或停止生成取决于这些分数是否超过了预定的阈值,阈值通常与单个 token 的置信度相关
Scheduling-LLMJudge
LLM 能够独立判断后续操作的流程。有两种主要方法可以实现这一能力。第一种方法利用 LLM 的上下文学习能力,通过提示工程来判断是否继续。这种方法的优势在于无需对模型进行微调,然而其判断结果取决于 LLM 是否严格遵循所提供的指令。
第二种方法通过微调 LLM,使其生成特定的 token 来触发操作。这一技术来源于 Toolformer,并已集成到 Self-RAG 等框架中。此方法能够更直接地控制 LLM 的行为,提高其对特定对话上下文触发条件的响应能力。然而,这需要大量符合指令集的微调数据
Scheduling-KnowledgeGuide
除了规则判断和完全依赖 LLM 控制的方式之外,知识引导调度是一种更灵活的中间方法。它利用知识图谱引导检索和生成流程,具体做法是从知识图谱中提取与问题相关的信息并构建推理链。推理链由一系列逻辑相关的节点组成,每个节点提供解决问题的关键信息。基于这些节点的信息,可以分别执行检索和内容生成。这种方法不仅提高了问题解决的效率和准确性,还使生成的解释更加清晰