@MiaAI_lab: Cloudflare 的 Clef 仅用两周就超越了 Jev 方法:"冻结"的 Qwen 只做一次 prefill,一个极小的 schema head 对每个……
摘要
Cloudflare 发布了 Clef,这是一个开源的 27B 多模态决策模型,采用冻结的 Qwen 主干网络和一个极轻量的 schema 头部,在单次前向传播中对所有答案选项进行打分,无需文本生成,速度可达 Jev 的 4 倍,准确率最高可达其 2 倍。体积更小、速度更快的变体 Clef-Flash 也已在 Hugging Face 上发布。
查看缓存全文
缓存时间: 2026/10/03 04:53
Cloudflare 的 Clef 只用两周就超越了 Jev
原理:“冻结“的 Qwen 只做一次预填充(prefill),一个很小的 schema head 并行为每个答案选项打分,全程不生成任何文本。
所以在某些基准测试上,它比 Jev 快 4 倍,同时精度高出 2 倍。
而且它是开源的!
HF 链接: https://huggingface.co/Cloudflare/clef
Cloudflare/clef · Hugging Face
来源:https://huggingface.co/Cloudflare/clef
- **公告:**Cloudflare 博客上的 Clef 决策模型(https://blog.cloudflare.com/clef-decision-models)
- **Decision Index 排行榜:**clef-evals.workers-ai-mle.workers.dev(https://clef-evals.workers-ai-mle.workers.dev/)
Clef 是一个 27B 多模态模型,能够将状态和一组带类型的 schema 问题转化为决策。它可以以文本、JSON、图像或视频的形式读取状态,并在单次前向传播中为每个问题的每个允许选项返回一个概率。它不做自由文本生成,也不需要输出解析。
Clef 的 API 与 Jev 和 SystemOne 完全兼容。
Clef 是在 Qwen/Qwen3.8-27B(https://huggingface.co/Qwen/Qwen3.8-27B)基础上进行后训练得到的。更小、更快的变体请参见 Clef-Flash(https://huggingface.co/Cloudflare/clef-flash)。
https://huggingface.co/Cloudflare/clef#model模型
- **骨干网络:**Qwen/Qwen3.8-27B 及其视觉编码器,以标准的分片 safetensors 格式存储。
- **联合 schema head:**一个很小的 transformer 头,读取骨干网络的最终隐藏层状态,将来自状态的证据路由到每个问题,并联合为所有问题的所有选项打分。
- **输出:**每个问题的每个允许选项对应一个 logit。对每个问题分别施加 softmax 即可得到概率。
https://huggingface.co/Cloudflare/clef#files文件
| 文件 | 用途 |
|---|---|
model-*.safetensors、model.safetensors.index.json、config.json、generation_config.json | 骨干网络,包括视觉编码器 |
joint_head.safetensors、joint_head_config.json | 联合 schema head |
joint_schema_model.py | 记录编码、批处理、模型、load_release_model 以及 systemone |
tokenizer.json、tokenizer_config.json、chat_template.jinja、processor_config.json | tokenizer 以及图像/视频处理器 |
LICENSE | Apache-2.0 许可证 |
https://huggingface.co/Cloudflare/clef#usage用法
在单张 H200 上,使用 torch 2.11 和 transformers 5.10.2 进行了测试。使用图像和视频输入还需要 pillow。
import sys
import torch
from huggingface_hub import snapshot_download
path = snapshot_download("Cloudflare/clef")
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)))
https://huggingface.co/Cloudflare/clef#jev–systemone-apiJev / SystemOne API
systemone 接受一个 Jev/SystemOne 的 POST /v1/systemone 请求体,并返回相同的响应体:model、按问题 ID 索引的 answers,以及 usage。choice 类型的答案包含 choice、confidence 和 probabilities;score 类型的答案包含预期的 score、confidence、legend 和 probabilities;noul 类型的答案则给出为真的概率。instructions 是可选的,请求中还可以添加 images 和 videos。
from joint_schema_model import systemone
response = systemone(model, processor, {
"model": "clef",
"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"])
https://huggingface.co/Cloudflare/clef#images-and-video图像与视频
在记录中添加 images(PIL 图像)或 videos(帧数组),并将 processor 传给 encode_record。可选的 processor 参数放在 media_kwargs 中。
from PIL import Image
record = {
"state": {"task": "Review the attached receipt."},
"images": [Image.open("receipt.jpg")],
"questions": {
"legible": {"type": "noul", "instructions": "Is the receipt total legible?"},
},
}
encoded = encode_record(processor.tokenizer, record, processor=processor)
纯文本记录和多模态记录可以在同一个批次中混合使用。
https://huggingface.co/Cloudflare/clef#input-format输入格式
| 字段 | 描述 |
|---|---|
state | 描述待决策情形的任意字符串或 JSON 值 |
images、videos | 可选的图像或视频帧数组列表 |
media_kwargs | 可选的图像/视频处理器关键字参数 |
questions | 问题 ID 到问题的映射 |
每个问题包含:
type:noul(真/假)、choice(命名选项)或score(有序选项)instructions:要决策的内容;可选,省略时使用问题 ID 代替criteria:对于choice,是选项 ID 到描述的映射;对于score,是从 0 开始索引的选项描述列表;对于noul,可选的true和false描述
encode_record 接受 max_length(默认 16,384 个 token)和 max_state_tokens 参数,用于限制输入长度。
https://huggingface.co/Cloudflare/clef#results结果
https://huggingface.co/Cloudflare/clef#decision-indexDecision Index
以下是我们内部运行 Decision Index(https://clef-evals.workers-ai-mle.workers.dev/)0.2.1 套件得到的各基准测试结果。分数以百分比表示;ForecastBench 采用 Brier 分数,数值越低越好。最后两行是请求延迟(毫秒),数值越低越好。每行中的最优值以粗体标出。
| 基准测试 | Clef | Clef-flash | Jev | Diffusion | Gemma Jev | Kev 9B | Laya |
|---|---|---|---|---|---|---|---|
| BFCL(完全匹配准确率) | 98.5 | 98.8 | 95.8 | 96.5 | 94.5 | 38.1 | |
| ToolRet(nDCG@10) | 69.2 | 66.4 | 65.3 | 61.2 | 64.3 | 12.8 | |
| API-Bank(准确率) | 91.9 | 93.1 | 88.2 | 83.7 | 56.3 | 11.5 | |
| BANKING77(macro-F1) | 94.2 | 90.9 | 79.7 | 74.3 | 84.8 | 14.3 | |
| CLINC150+OOS(macro-F1) | 97.4 | 66.8 | 89.3 | 83.5 | 79.0 | 3.2 | |
| RouterBench(选择质量) | 79.7 | 79.9 | 79.9 | 79.0 | 80.0 | 57.1 | |
| 家电模拟器(完全匹配准确率) | 83.0 | 97.7 | 52.3 | 42.0 | 25.0 | 0.0 | |
| SGD/SGD-X(macro-F1) | 43.8 | 34.2 | 43.0 | 40.6 | 64.0 | 42.4 | |
| ContractNLI(macro-F1) | 81.4 | 84.3 | 71.7 | 76.0 | 57.8 | 29.0 | |
| ANLI(macro-F1) | 69.8 | 59.1 | 74.8 | 66.4 | 56.3 | 48.7 | |
| BPoMP(准确率) | 96.9 | 95.4 | 90.6 | 86.9 | 67.0 | 51.6 | |
| Humicroedit(准确率) | 66.7 | 75.1 | 61.9 | 63.0 | 55.8 | 47.2 | |
| POP909-CL(准确率) | 15.8 | 1.6 | 18.1 | 2.5 | 10.8 | 5.1 | |
| cfcolor(准确率) | 66.0 | 65.8 | 64.7 | 58.2 | 56.3 | 52.3 | |
| MMLU(准确率) | 90.3 | 91.8 | 91.7 | 79.3 | 75.3 | 30.7 | |
| GPQA Diamond(准确率) | 48.0 | 51.0 | 78.3 | 44.9 | 38.8 | 27.6 | |
| ARC-Easy(准确率) | 99.0 | 99.5 | 99.3 | 98.2 | 97.7 | 47.0 | |
| ARC-Challenge(准确率) | 97.7 | 98.3 | 97.8 | 94.5 | 93.7 | 28.6 | |
| WinoGrande(准确率) | 93.5 | 97.5 | 92.0 | 73.6 | 73.2 | 50.5 | |
| HellaSwag(准确率) | 98.2 | 98.6 | 94.5 | 83.3 | 81.9 | 33.1 | |
| GSM8K(准确率) | 80.8 | 67.3 | 79.9 | 50.3 | 48.7 | 21.6 | |
| ChessBench(准确率) | 24.7 | 23.0 | 17.2 | 14.2 | 11.2 | 7.7 | |
| MuSR(准确率) | 83.5 | 86.0 | 66.1 | 61.2 | 57.9 | 43.2 | |
| SATA-Bench(完全匹配准确率) | 33.8 | 36.7 | 26.4 | 27.5 | 26.7 | 0.3 | |
| BRIGHT(nDCG@10) | 45.9 | 39.3 | 47.5 | 42.9 | 38.5 | 19.9 | |
| Amazon ESCI(macro-F1) | 57.5 | 57.4 | 55.2 | 53.4 | 49.2 | 24.4 | |
| ACOS(每条评价 F1) | 33.3 | 25.9 | 29.5 | 24.5 | 18.3 | 3.5 | |
| FinEntity(macro-F1) | 96.2 | 97.1 | 87.0 | 89.0 | 88.4 | 61.0 | |
| VAST(macro-F1) | 59.5 | 49.6 | 64.6 | 55.7 | 55.4 | 40.5 | |
| NLI4CT(macro-F1) | 82.9 | 78.6 | 84.1 | 78.4 | 74.9 | 47.7 | |
| CRUXEval(准确率) | 86.7 | 86.1 | 73.0 | 64.7 | 51.2 | 40.2 | |
| CLadder(准确率) | 94.0 | 97.7 | 72.6 | 67.8 | 62.0 | 52.9 | |
| ForecastBench(Brier,越低越好) | 13.9 | 10.6 | 17.4 | 29.6 | 17.6 | 41.1 | |
| Habermas Machine(准确率) | 68.7 | 71.8 | 45.9 | 45.0 | 39.4 | 33.4 | |
| PhishNChips(准确率) | 79.6 | 75.0 | 62.5 | 85.4 | 50.7 | 50.1 | |
| MMLU-Pro(准确率) | 65.9 | 65.3 | 82.7 | 56.9 | 51.1 | 13.6 | |
| BBH(准确率) | 73.7 | 68.9 | 92.9 | 70.7 | 65.2 | 34.1 | |
| RAGTruth(幻觉 F1) | 79.4 | 35.6 | 76.5 | 70.4 | 46.2 | 48.8 | |
| HoVer(准确率) | 65.2 | 61.2 | 72.9 | 70.9 | 58.8 | 55.8 | |
| When2Call MCQ(准确率) | 72.4 | 65.6 | 81.0 | 75.4 | 49.6 | 11.9 | |
| New Yorker(准确率) | 69.5 | 66.1 | 70.1 | 63.6 | 58.1 | 27.1 | |
| 中位延迟(ms) | 209.3 | 38.8 | 524.1 | 84.4 | 51.4 | 5.8 | |
| p95 延迟(ms) | 238.6 | 122.4 | 536.0 | 211.2 | 187.9 | 222.5 |
https://huggingface.co/Cloudflare/clef#workflow-evals工作流评测
来自 Typesafe Evals(https://evals.typesafe.ai/)的四个端到端业务工作流上的决策准确率,以共识参考标签进行评分。所有模型均在相同的数据集版本和案例集上评分。
| 工作流 | 指标 | Clef | Clef-flash | Jev |
|---|---|---|---|---|
| 发票处理 | 精确动作 | 64.7 | 57.1 | 61.8 |
| 发票处理 | 主要动作 | 86.2 | 73.3 | 83.1 |
| 客户服务 | 精确动作 | 76.3 | 77.0 | 76.0 |
| 安全事件 | 精确动作 | 62.9 | 61.7 | 61.7 |
| Agent 轨迹可观测性 | 主要动作 | 68.5 | 69.8 | 71.6 |
https://huggingface.co/Cloudflare/clef#license许可证
基于基础模型 Qwen/Qwen3.8-27B(https://huggingface.co/Qwen/Qwen3.8-27B),采用 Apache-2.0 许可证发布。
相似文章
@victormustar: 提醒:Cloudflare 刚刚在 Hugging Face 上发布了 Jev 的替代方案(Apache 2.0)
Cloudflare 在 Hugging Face 上发布了 Clef,一个开源(Apache 2.0)的 27B 多模态决策模型。它能将一个状态和一份带类型的问题 schema 转化为所有选项的概率,且只需一次前向传播即可完成。Clef 基于 Qwen3.8-27B 后训练而来,不支持自由文本生成,并且与 Jev 和 SystemOne 的 API 兼容,另有一个更小的 Clef-Flash 变体可供选择。
Cloudflare/clef-flash
Cloudflare 发布了 Clef-Flash,这是一个基于 Qwen3.5-9B 构建的 9B 多模态决策模型,能够在单次前向传播中将一个状态和一组带类型问题的 schema 转换为各选项的概率,无需自由文本生成或输出解析。
Clef:Cloudflare 发布的开放权重决策模型
Cloudflare 发布了 Clef,这是一个开放权重的 27B 多模态决策模型。它以一个状态和一组带类型的结构化问题作为输入,通过一次前向传播直接输出每个选项的概率,无需自由文本生成,也无需解析输出。该模型在 Qwen3.8-27B 基础上进行后训练,已发布于 Hugging Face,并提供更小的 Clef-Flash 变体,同时兼容 Jev/SystemOne API。
Clef
Cloudflare 推出 Clef 和 Clef-flash,这两款开源决策模型托管于 Workers AI,可实现高速分类和智能体工作流;同时还发布了新的强化学习平台,让开发者使用自己的数据对决策模型进行微调。
Clef:我们的开源决策模型
Cloudflare 发布了两个开源决策模型 Clef 和 Clef-flash,托管于 Workers AI,采用 Apache 2.0 许可并在 Hugging Face 上开放下载,主打低成本、快速且一致的结构化输出,目前在 Jev Decision Index 榜单领先;同时推出新的强化学习微调平台,支持客户针对自身用例对 Clef 进行微调。