模态信号
概览
modality 检测请求应留在文本生成、切到图像生成,还是同时支持两者。在 routing.signals.modality 下定义其输出标签。
已配置的 modality_detector 对预期输出模式分类;命名结果随后可供普通决策使用。
主要优势
- 将图像生成路由与纯文本路由分开。
- 使多模态流量在
routing.decisions中可见。 - 避免把模态检查混进每条决策规则。
- 可从简单请求形态路由扩展到检测器支持的多模态分类。
解决什么问题?
文本聊天、图像生成与混合工作流常常共享同一入口,但不应共享同一模型路径。没有 modality 信号时,路由逻辑会变得脆弱且重复。
modality 将输出模式暴露为命名路由输入。
何时使用
在以下情况使用 modality:
- Router 同时服务自回归与扩散风格后端
- 部分路由应只接受图像生成提示
- 多模态处理必须在路由图中保持显式
- 希望使用稳定信号名,例如
AR、DIFFUSION或BOTH
配置
routing:
signals:
modality:
- name: AR
description: Text-only autoregressive requests.
- name: DIFFUSION
description: Requests that should route into image generation flows.
- name: BOTH
description: Requests that need both text and image generation behavior.
保持规则名与决策要引用的路由行为对齐。通过 global.model_catalog.modules.modality_detector 配置检测器。
依赖与限制
未声明配方模型绑定时,classifier.max_sequence_length: 0 保留 512-token 默认值。长提示会选取开头、中间和结尾的代表性片段用于路由;原生分类器还可能按 token 预算截断。这项策略限制推理成本,并不对每个 token 分类。
要让模态分类接收未经路由采样的输入,请将 modality_detector 绑定到命名部署,并将 input.max_tokens 设为大于 512。设置 input.overflow: reject 可拒绝超出预算的输入。预算应在所选模型产物和提供方已验证的范围内;模型标称支持 32K,并不表示每种提供方都已验证 32K 执行。模块的 classifier.max_sequence_length 设为大于 512 的正值也会跳过路由采样,但仍保留模块的截断策略。
method: classifier 下,实际推理错误会使模态保持未知,由决策的 on_unknown 策略处理,不会产生 AR 匹配。method: hybrid 则显式允许关键词回退。
模态检测器对预期输出模式分类;它不证明后端支持请求的输入附件。请保持模型卡能力与提供方校验对齐。完整示例见:
config/fragments/signal/modality/multimodal.yaml。