编者摘要:Cloudflare Clef-Omni 是 Apache-2.0 开源的多模态决策 MoE 模型,基于 Qwen3-Omni-30B-A3B-Instruct 后训练开发,核心特点是不生成自由文本,单前向推理直接输出各候选选项概率。模型由 Qwen 多模态骨干(文 / 图 / 音 / 视频编码器)+ 新增联合 Schema 小 Transformer 头构成,bf16 加载骨干约需 64GB 显存,上下文上限 64k token。输入支持文本、JSON、图片、音频、视频,支持三类结构化决策问题:布尔判断 noul、枚举选择 choice、有序打分 score;原生兼容 Jev/SystemOne API,可批量混合多模态样本。视频默认 2fps 采样,音视频可同步送入模型。评测覆盖通用基准与企业业务工作流,在工单路由、合同 NLI、音视频取证、发票处理等固定选项决策场景表现突出。它省去大模型文本生成与结果解析环节,降低幻觉风险,适合企业智能体自动化决策;局限为仅支持预定义选项任务,不适合开放式问答,本地部署显存门槛较高。
10 个关键问题 Q&A
- Clef-Omni 和普通多模态 LLM 最大差别是什么?
答:普通 LLM 输出自由文本;Clef-Omni 不做文本生成,一次前向直接输出每个预设选项的概率,无需解析,幻觉风险更低,专门做结构化决策。 - Clef-Omni 的基础基座模型是谁?
答:基于 Qwen/Qwen3-Omni-30B-A3B-Instruct(MoE,总参 30B,激活 3B)后训练,保留视觉、音频编码器,不使用原模型语音生成模块。 - 支持哪些模态输入?
答:文本、JSON、图片、音频、视频;视频默认 2fps 抽帧,可同步读取音轨;同批次可混合不同模态样本。 - 三种 question 类型 noul /choice/score 分别是什么?
答:noul 是布尔真假判断;choice 是自定义枚举选项;score 是有序等级打分(如紧急度分级)。 - 显存需求是多少?
答:bfloat16 加载骨干模型约 64GB GPU 显存,搭配 H200 测试;量化版本可降低显存占用。 - Jev/SystemOne API 是什么作用?
答:是 Clef 系列统一决策接口,可直接复用原有 Jev 业务代码,传入标准请求体,返回包含各问题答案、置信度、概率的结构化结果。 - 适合哪些业务场景?
答:工单路由分类、发票 / 合同审核、安全事件判定、音视频证据判断、Agent 工具选择打分等选项预先固定的决策任务。 - 它能写文章、回答开放式问题吗?
答:不能。模型设计目标只有决策打分,无自由文本生成能力,没有开放式问答、内容创作功能。 - 开源协议是什么?
答:Apache-2.0,可商用,继承基座 Qwen3-Omni 的协议。 - Clef-Omni、Clef、Clef-flash 三者怎么选?
答:Clef-Omni:唯一同时支持图文音视频;Clef:稠密图像版本,无音频;Clef-flash:轻量化图像视频版本,成本更低。
附录:Cloudflare Clef-Omni 多模态决策模型(非生成式大模型)
Clef-Omni 是 Cloudflare 发布的多模态决策模型(非生成式大模型),Apache-2.0 开源权重,基于通义千问 Qwen3-Omni-30B-A3B-Instruct MoE 后训练而来,属于 Clef 家族最新成员,核心定位:给定业务状态 + 结构化决策问题,一次性输出每个候选选项的概率,不做自由文本生成Cloudflare。
✅ 核心定位(最大区别于普通 LLM)
普通大模型:生成自由文本,需要解析输出、容易幻觉、输出不稳定。 Clef-Omni:决策专用模型,无文本生成,单前向推理直接输出所有选项 logits,softmax 得到概率。
-
输入: state(文本 / JSON) + 可选 images /audio/video + 一组结构化questions -
输出:每个问题下,每个候选选项的概率、置信度;没有自由文本 -
优势:结果可校验、概率可校准、延迟更低、适合 Agent / 业务自动化、工单分类、风控、事件判定等确定性决策场景Cloudflare
🧠 模型架构
- 骨干 Backbone:Qwen3-Omni-30B-A3B-Instruct(MoE,总 30B,激活 3B 参数)
-
自带视觉、音频编码器;移除 / 不加载原模型的语音输出模块(talker、code2wav),只保留多模态理解能力 -
权重为分片 safetensors,bfloat16 加载骨干约占用 64GB GPU 显存(单 H200) - Joint schema head(联合模式头,新增小 Transformer 头)
-
读取骨干最后隐状态,把证据路由到每一个问题,联合打分所有问题的全部候选选项 -
是 Clef 系列最关键新增模块,专门做 schema 约束下的多问题联合决策 -
上下文窗口:最大 64k tokens
📥 输入格式(Jev/SystemOne 标准 Schema)
输入记录 record 包含:
state待判断的业务上下文(字符串 / JSON) images/ audio/videos(可选):支持文件路径、URL、base64、原始数组;视频默认 2fps 采样帧,音轨同步对齐questions多个决策问题,支持 3 种类型 noul:布尔二分类(true/false) choice:枚举选项(选项 ID + 描述) score:有序打分选项(例如:紧急度:可等待 / 本周 / 今日)
支持批量混合:同一 batch 可以同时放纯文本、图片、音频、视频样本。
⚙️ 推理与环境
-
依赖:torch 2.11、transformers 5.10.2;图片依赖 pillow;音视频依赖 av -
推理方式:原生 Python、vLLM、SGLang(即将支持)、Docker Model Runner -
API:完全兼容 Jev / SystemOne 协议,POST /v1/systemone,可直接替换原有 Jev 模型,无需大幅改业务代码 -
延迟参考(官方):文本请求≈20ms;图像 / 音频 < 100ms;21s 带音视频片段≈300ms(Cloudflare WorkersAI 托管版)Cloudflare
📊 评测要点
1. 通用 Benchmark
Clef-Omni 在 BANKING77、CLINC150+OOS、ContractNLI、CRUXEval 等分类 / NLU 任务表现很强;在 MMLU、GSM8K 这类推理任务也有不错水平。
对比家族:Clef(稠密图像版)、Clef-flash(轻量图像视频版)、Jev(前代决策模型)。
2. 业务端到端 Workflow 评估(来自 typesafe.ai 的 4 类企业工作流)
-
发票处理、客服工单、安全事件、Agent 可观测性,评估指标为精确动作匹配、主动作判定准确率,适合企业自动化 Agent 场景。
🧾 文件清单(HuggingFace 仓库)
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🎯 典型业务场景
-
工单路由:客服消息自动判定归属部门、紧急等级、是否服务中断 -
文档审核:发票、合同 NLI 判定(逾期、金额阈值、条款是否成立) -
音视频取证:录音是否有玻璃破碎、行车记录仪视频是否碰撞(样例代码) -
Agent 工具调用前置决策:ToolRet、API-Bank 工具选择打分 -
安全 / 风控:安全事件判定、钓鱼内容识别
⚠️ 局限
- 不做自由文本生成
不能写总结、回答开放式问题,只适合预先定义候选选项的决策任务 -
显存门槛高:bf16 骨干需要 64GB 显存,本地部署需要高端 A100/H200;量化版可降低显存占用 -
视频固定 2fps 采样;长视频会占用大量 token,受 64k 上下文限制 -
SGLang 支持尚未正式发布
📌 和 Clef 家族对比
-
Clef:稠密图像模型,无原生音频输入 -
Clef-flash:轻量图像视频模型,成本更低 - Clef-Omni:唯一原生同时支持文本 + 图像 + 音频 + 视频多模态输入,MoE 骨干
精简示例代码(你提供的最小 Demo,简化注释)
import sys
import torch
from huggingface_hub import snapshot_download
path = snapshot_download("Cloudflare/clef-omni")
sys.path.insert(0, path)
from joint_schema_model import collate_records, encode_record, load_release_model
model, processor = load_release_model(path, device="cuda")
# 业务状态 + 多个结构化决策问题
record = {
"state": {"invoice": {"vendor": "Acme", "total": 1250.0, "currency": "USD", "status": "overdue"}},
"questions": {
"status": {
"type": "choice",
"instructions": "What is the invoice status?",
"criteria": {"paid": "Invoice is paid.", "overdue": "Invoice is past due.", "draft": "Not sent."},
},
"large": {"type": "noul", "instructions": "Is the total above 1000 USD?"},
},
}
encoded = encode_record(processor.tokenizer, record, processor=processor)
batch = collate_records([encoded], processor.tokenizer.pad_token_id, torch.device("cuda"))
with torch.inference_mode():
logits = model(batch)[0]
for question, question_logits in zip(encoded.questions, logits):
probabilities = question_logits.float().softmax(-1).tolist()
print(question.question_id, dict(zip(question.option_ids, probabilities)))
落地价值
Clef-Omni 把传统 “转写→抽帧→文本 LLM 判断” 的多模型级联流水线,合并成单模型原生多模态决策;去掉文本生成环节,直接输出可量化概率,非常适合企业 Agent、工单、安全审核、音视频证据判定这类固定选项的业务决策场景,并且开源可本地部署,兼容 Jev 生态。

