@julien_c:Cloudflare 又发布了新模型 Clef!
摘要
Cloudflare 发布了新的多模态模型 Clef-Omni,这是一个基于 Qwen3-Omni-30B-A3B-Instruct 后训练的 30B-A3B 混合专家多模态模型,可将状态和结构化问题模式一次性转换为概率决策,无需自由文本生成。
查看缓存全文
缓存时间: 2026/10/10 06:43
Cloudflare/clef-omni · Hugging Face
来源:https://huggingface.co/Cloudflare/clef-omni
- **公告:**Clef-omni 模型发布于 Cloudflare 博客 (https://blog.cloudflare.com/clef-faster-cheaper-multimodal)
Clef-Omni 是一个 30B-A3B 混合专家多模态模型,能够将状态和类型化问题模式转化为决策。它以文本、JSON、图像、音频或视频的形式读取状态,并在单次前向传播中为每个问题的每个允许选项返回一个概率。不存在自由文本生成,也无需输出解析。
Clef-Omni API 与 Jev 和 SystemOne 完全兼容。
Clef-Omni 基于Qwen/Qwen3-Omni-30B-A3B-Instruct (https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct)进行后训练。关于密集图像和视频变体,请参阅Clef (https://huggingface.co/Cloudflare/clef)和Clef-Flash (https://huggingface.co/Cloudflare/clef-flash)。
模型
- **骨干网络:**Qwen/Qwen3-Omni-30B-A3B-Instruct思考器,附带其视觉和音频编码器,以标准分片 safetensors 存储。基础模型的语音输出权重(talker 和 code2wav)原封不动地包含在内但不会使用;
load_release_model不会加载它们。 - **联合模式头:**一个小型 transformer 头,读取骨干网络的最终隐藏状态,将状态中的证据路由到每个问题,并联合评分所有问题的所有选项。
- **输出:**每个问题的每个允许选项对应一个 logit。对每个问题应用 softmax 即可得到概率。
文件
| 文件 | 用途 |
|---|---|
model-*.safetensors、model.safetensors.index.json、config.json、generation_config.json | 骨干网络,包括视觉和音频编码器 |
joint_head.safetensors、joint_head_config.json | 联合模式头 |
joint_schema_model.py | 记录编码、媒体解码、批处理、模型、load_release_model 和 systemone |
tokenizer.json、tokenizer_config.json、chat_template.jinja、processor_config.json | 分词器和图像/音频/视频处理器 |
LICENSE | Apache-2.0 许可证 |
使用方法
在单张 H200 上使用 torch 2.11 和 transformers 5.10.2 测试通过;骨干网络在 bfloat16 下大约需要 64 GB GPU 显存。图像输入还需要 pillow,音频和视频文件需要 av。
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)))
Jev / SystemOne API
systemone 接受 Jev/SystemOne POST /v1/systemone 请求体并返回相同的响应体:model、按问题 ID 索引的 answers 以及 usage。choice 回答包含 choice、confidence 和 probabilities;score 回答包含预期的 score、confidence、legend 和 probabilities;noul 回答包含为真的概率。instructions 是可选的,请求中还可以添加 images、audio 和 videos(base64 数据 URL)。
from joint_schema_model import systemone
response = systemone(model, processor, {
"model": "clef-omni",
"state": "Our checkout started returning errors and orders are blocked.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle the message?",
"criteria": {"billing": "Payments or invoices", "technical": "Bugs or outages"},
},
"urgency": {"type": "score", "criteria": ["Can wait", "This week", "Today"]},
"outage": {"type": "noul", "instructions": "Is a service down?"},
},
})
print(response["answers"])
图像、音频和视频
在记录中添加 images、audio 或 videos,并将处理器传给 encode_record。每个条目可以是文件路径、URL、base64 数据 URL 或原始字节。图像也可以是 PIL 图像,音频可以是 16 kHz 单声道采样数组,视频可以是按每秒 2 帧采样的 RGB 帧数组。视频文件按每秒 2 帧采样,当记录中的每个视频都有音轨时,其音轨会与帧一起被处理。可选的处理器参数放在 media_kwargs 中。
record = {
"state": {"task": "Review the attached call recording and dashcam clip."},
"audio": ["call.wav"],
"videos": ["dashcam.mp4"],
"questions": {
"glass": {"type": "noul", "instructions": "Is glass breaking in the audio clip?"},
"collision": {"type": "noul", "instructions": "Does the video show a collision?"},
},
}
encoded = encode_record(processor.tokenizer, record, processor=processor)
纯文本和多模态记录可以在同一批次中混合使用。
SGLang
使用 SGLang(即将推出!)
输入格式
| 字段 | 描述 |
|---|---|
state | 任意 JSON 值或字符串,描述当前情境 |
images | 可选的图像列表 |
audio | 可选的音频片段列表 |
videos | 可选的视频列表 |
media_kwargs | 可选的处理器关键字参数 |
questions | 问题 ID 到问题的映射 |
每个问题包含:
type:noul(真/假)、choice(命名选项)或score(有序选项)instructions:要判断的内容;可选,省略时使用问题 ID 作为说明criteria:对于choice,是选项 ID 到描述的映射;对于score,是从 0 开始索引的选项描述列表;对于noul,是可选的true和false描述
encode_record 接受 max_length(默认 64,000 个 token)和 max_state_tokens 参数来限制输入。
结果
Decision Index
来自我们内部运行的Decision Index (https://clef-evals.workers-ai-mle.workers.dev/) 0.2.1 套件的各基准测试结果。分数为百分比;ForecastBench 是 Brier 分数,越低越好。每行的最佳值以粗体标出。
| 基准测试 | Clef-Omni | Clef | Clef-flash | Jev |
|---|---|---|---|---|
| BFCL(完全匹配准确率) | 98.2 | 98.5 | 98.8 | 95.8 |
| ToolRet(nDCG@10) | 66.6 | 69.2 | 66.4 | 65.3 |
| API-Bank(准确率) | 92.7 | 91.9 | 93.1 | 88.2 |
| BANKING77(macro-F1) | 94.8 | 94.2 | 90.9 | 79.7 |
| CLINC150+OOS(macro-F1) | 97.7 | 97.4 | 66.8 | 89.3 |
| RouterBench(选择质量) | 79.9 | 79.7 | 79.9 | 79.9 |
| 家用电器模拟器(完全匹配准确率) | 69.3 | 83.0 | 97.7 | 52.3 |
| SGD/SGD-X(macro-F1) | 39.2 | 43.8 | 34.2 | 43.0 |
| ContractNLI(macro-F1) | 80.3 | 81.4 | 84.3 | 71.7 |
| ANLI(macro-F1) | 65.5 | 69.8 | 59.1 | 74.8 |
| BPoMP(准确率) | 96.8 | 96.9 | 95.4 | 90.6 |
| Humicroedit(准确率) | 70.1 | 66.7 | 75.1 | 61.9 |
| POP909-CL(准确率) | 2.6 | 15.8 | 1.6 | 18.1 |
| cfcolor(准确率) | 62.9 | 66.0 | 65.8 | 64.7 |
| MMLU(准确率) | 92.7 | 90.3 | 91.8 | 91.7 |
| GPQA Diamond(准确率) | 47.4 | 48.0 | 51.0 | 78.3 |
| ARC-Easy(准确率) | 99.8 | 99.0 | 99.5 | 99.3 |
| ARC-Challenge(准确率) | 97.8 | 97.7 | 98.3 | 97.8 |
| WinoGrande(准确率) | 96.7 | 93.5 | 97.5 | 92.0 |
| HellaSwag(准确率) | 99.1 | 98.2 | 98.6 | 94.5 |
| GSM8K(准确率) | 79.0 | 80.8 | 67.3 | 79.9 |
| ChessBench(准确率) | 22.1 | 24.7 | 23.0 | 17.2 |
| MuSR(准确率) | 83.8 | 83.5 | 86.0 | 66.1 |
| SATA-Bench(完全匹配准确率) | 31.9 | 33.8 | 36.7 | 26.4 |
| BRIGHT(nDCG@10) | 42.0 | 45.9 | 39.3 | 47.5 |
| Amazon ESCI(macro-F1) | 57.8 | 57.5 | 57.4 | 55.2 |
| ACOS(每条评论 F1) | 28.4 | 33.3 | 25.9 | 29.5 |
| FinEntity(macro-F1) | 96.3 | 96.2 | 97.1 | 87.0 |
| VAST(macro-F1) | 50.9 | 59.5 | 49.6 | 64.6 |
| NLI4CT(macro-F1) | 76.8 | 82.9 | 78.6 | 84.1 |
| CRUXEval(准确率) | 88.8 | 86.7 | 86.1 | 73.0 |
| CLadder(准确率) | 97.2 | 94.0 | 97.7 | 72.6 |
| ForecastBench(Brier,越低越好) | 11.7 | 13.9 | 10.6 | 17.4 |
| Habermas Machine(准确率) | 67.8 | 68.7 | 71.8 | 45.9 |
| PhishNChips(准确率) | 73.2 | 79.6 | 75.0 | 62.5 |
| MMLU-Pro(准确率) | 70.6 | 65.9 | 65.3 | 82.7 |
| BBH(准确率) | 69.0 | 73.7 | 68.9 | 92.9 |
| RAGTruth(幻觉 F1) | 42.0 | 79.4 | 35.6 | 76.5 |
| HoVer(准确率) | 64.2 | 65.2 | 61.2 | 72.9 |
| When2Call 选择题(准确率) | 63.3 | 72.4 | 65.6 | 81.0 |
| New Yorker(准确率) | 64.2 | 69.5 | 66.1 | 70.1 |
工作流评估
来自Typesafe Evals (https://evals.typesafe.ai/) 的四个端到端业务工作流的决策准确率,以共识参考标签进行评分。所有模型在同一数据集修订版和案例群体上评分。
| 工作流 | 指标 | Clef-Omni | Clef | Clef-flash | Jev |
|---|---|---|---|---|---|
| 发票处理 | 精确动作 | 60.2 | 64.7 | 57.1 | 61.8 |
| 发票处理 | 主要动作 | 82.0 | 86.2 | 73.3 | 83.1 |
| 客户服务 | 精确动作 | 71.6 | 76.3 | 77.0 | 76.0 |
| 安全事件 | 精确动作 | 61.7 | 62.9 | 61.7 | 61.7 |
| Agent 跟踪可观测性 | 主要动作 | 65.8 | 68.5 | 69.8 | 71.6 |
许可证
基于 Apache-2.0 许可证发布,基础模型为Qwen/Qwen3-Omni-30B-A3B-Instruct (https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct)。
相似文章
Cloudflare 发布了 Clef-omni,这是一款可直接接收音频和视频的 30B-A3B 决策模型(采用 Apache-2.0 许可证,基于 Qwen3-Omni)
Cloudflare 发布 Clef-omni,一个基于 Qwen3-Omni-30B-A3B 后训练的多模态决策模型,可直接接收音频与视频输入,在单次前向传播中输出每个选项的概率,意图路由类基准表现强劲。
推出全模态 Clef-omni,以及更快的 Clef 和更便宜的 Clef-flash(7分钟阅读)
Cloudflare 发布开源权重决策模型 Clef-omni,支持音频、视频、图像和文本全模态输入,并同时加快了 Clef 速度、降低了 Clef-flash 价格。模型基于 Qwen3-Omni-30B-A3B-Instruct MoE 架构构建,去掉了文本转语音输出组件。
Cloudflare/clef-flash
Cloudflare 发布了 Clef-Flash,这是一个基于 Qwen3.5-9B 构建的 9B 多模态决策模型,能够在单次前向传播中将一个状态和一组带类型问题的 schema 转换为各选项的概率,无需自由文本生成或输出解析。
Clef:我们的开源决策模型
Cloudflare 发布了两个开源决策模型 Clef 和 Clef-flash,托管于 Workers AI,采用 Apache 2.0 许可并在 Hugging Face 上开放下载,主打低成本、快速且一致的结构化输出,目前在 Jev Decision Index 榜单领先;同时推出新的强化学习微调平台,支持客户针对自身用例对 Clef 进行微调。
Clef:Cloudflare 发布的开放权重决策模型
Cloudflare 发布了 Clef,这是一个开放权重的 27B 多模态决策模型。它以一个状态和一组带类型的结构化问题作为输入,通过一次前向传播直接输出每个选项的概率,无需自由文本生成,也无需解析输出。该模型在 Qwen3.8-27B 基础上进行后训练,已发布于 Hugging Face,并提供更小的 Clef-Flash 变体,同时兼容 Jev/SystemOne API。