ReMoM 推理编排
概览
remom 在有界轮次中运行多个候选模型,并将它们的响应合成一个答案。
运行时也支持通过 global.integrations.looper.remom.model_names 使用直接 ReMoM 模型 slug。内置默认值是 vllm-sr/remom。直接 ReMoM 调用只评估 algorithm.type=remom 的决策,这与直接 Fusion 和 Flow 模型表面一致。
灵感来源:PaCoRe — 扩展为支持模型混合。
主要优势
- 多轮并行推理,带宽调度可配置。
- 从多个模型响应中智能合成。
- 模型分配策略:
weighted、equal、round_robin或first_only。 - 用压缩策略管理跨轮 token 预算。
- 可选的法定人数和轮次超时控制,避免等待提供商长尾。
- 可自定义合成模板。
算法原理
ReMoM 编排多轮并行模型调用:
- 第 1 轮:按
breadth_schedule[0]在候选模型上发起并行调用。 - 压缩:可选地压缩中间响应(full 或 last_n_tokens)。
- 第 2 轮:按
breadth_schedule[1]发起调用,并把压缩后的响应作为上下文。 - 最终合成:最后一次调用将所有中间结果合成连贯答案。
ReMoM 后端子请求是非流式的,以便每轮收到完整输出。仅在最终合成之后,才向流式客户端发出响应。
带宽调度控制每轮调用次数。例如 [32, 4] 表示第 1 轮 32 次调用、第 2 轮 4 次调用,然后是 1 次最终合成调用。
执行流程
模型分配策略
| 策略 | 说明 |
|---|---|
weighted | 按 modelRefs 中的模型权重按比例分配调用 |
equal | 在所有候选模型间均分调用 |
round_robin | 按配置顺序轮询候选模型 |
first_only | 全部调用发给第一个声明的模型 |