@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 变体可供选择。
查看缓存全文
缓存时间: 2026/10/03 06:53
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 多模态模型,能够将状态(state)和类型化问题的 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)。
模型(Model)
- 主干网络(Backbone):
Qwen/Qwen3.8-27B,包含其视觉编码器,以标准分片 safetensors 格式存储。 - **联合 schema 头(Joint schema head):**一个小型 transformer 头部,读取主干网络的最终隐藏状态,将状态中的证据路由到每个问题,并联合对所有问题的所有选项进行打分。
- **输出(Output):**每个问题的每个合法选项对应一个 logit 值。对每个问题应用 softmax 即可得到概率。
文件(Files)
| 文件 | 用途 |
|---|---|
model-\*.safetensors、model.safetensors.index.json、config.json、generation_config.json | 主干网络,包括视觉编码器 |
joint_head.safetensors、joint_head_config.json | 联合 schema 头部 |
joint_schema_model.py | 记录编码、批处理、模型定义、load_release_model 以及 systemone |
tokenizer.json、tokenizer_config.json、chat_template.jinja、processor_config.json | 分词器以及图像/视频处理器 |
LICENSE | Apache-2.0 许可证 |
使用方法(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)))
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 和 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"])
图片与视频(Images and video)
在记录中添加 images(PIL 图像)或 videos(帧数组),并将处理器传给 encode_record。可选的处理器参数放在 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)
纯文本记录和多模态记录可以在同一个批次中混合使用。
输入格式(Input format)
| 字段 | 描述 |
|---|---|
state | 描述待决策场景的任意字符串或 JSON 值 |
images、videos | 可选的图像或视频帧数组列表 |
media_kwargs | 图像/视频处理器的可选关键字参数 |
questions | 问题 ID 到问题的映射 |
每个问题包含:
type:noul(真/假)、choice(命名选项)或score(有序选项)instructions:要决策的内容;可选,省略时使用问题 IDcriteria:choice类型为选项 ID 到描述的映射;score类型为从 0 开始索引的选项描述列表;noul类型可为true和false提供可选描述
encode_record 接受 max_length(默认 16,384 个 token)和 max_state_tokens 参数以限制输入规模。
结果(Results)
Decision 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 |
|---|---|---|---|---|---|---|
| BFCL(case exact accuracy) | 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(accuracy) | 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(selected quality) | 79.7 | 79.9 | 79.9 | 79.0 | 80.0 | 57.1 |
| 家用电器模拟器(case exact accuracy) | 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(accuracy) | 96.9 | 95.4 | 90.6 | 86.9 | 67.0 | 51.6 |
| Humicroedit(accuracy) | 66.7 | 75.1 | 61.9 | 63.0 | 55.8 | 47.2 |
| POP909-CL(accuracy) | 15.8 | 1.6 | 18.1 | 2.5 | 10.8 | 5.1 |
| cfcolor(accuracy) | 66.0 | 65.8 | 64.7 | 58.2 | 56.3 | 52.3 |
| MMLU(accuracy) | 90.3 | 91.8 | 91.7 | 79.3 | 75.3 | 30.7 |
| GPQA Diamond(accuracy) | 48.0 | 51.0 | 78.3 | 44.9 | 38.8 | 27.6 |
| ARC-Easy(accuracy) | 99.0 | 99.5 | 99.3 | 98.2 | 97.7 | 47.0 |
| ARC-Challenge(accuracy) | 97.7 | 98.3 | 97.8 | 94.5 | 93.7 | 28.6 |
| WinoGrande(accuracy) | 93.5 | 97.5 | 92.0 | 73.6 | 73.2 | 50.5 |
| HellaSwag(accuracy) | 98.2 | 98.6 | 94.5 | 83.3 | 81.9 | 33.1 |
| GSM8K(accuracy) | 80.8 | 67.3 | 79.9 | 50.3 | 48.7 | 21.6 |
| ChessBench(accuracy) | 24.7 | 23.0 | 17.2 | 14.2 | 11.2 | 7.7 |
| MuSR(accuracy) | 83.5 | 86.0 | 66.1 | 61.2 | 57.9 | 43.2 |
| SATA-Bench(case exact accuracy) | 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(per-review 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(accuracy) | 86.7 | 86.1 | 73.0 | 64.7 | 51.2 | 40.2 |
| CLadder(accuracy) | 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(accuracy) | 68.7 | 71.8 | 45.9 | 45.0 | 39.4 | 33.4 |
| PhishNChips(accuracy) | 79.6 | 75.0 | 62.5 | 85.4 | 50.7 | 50.1 |
| MMLU-Pro(accuracy) | 65.9 | 65.3 | 82.7 | 56.9 | 51.1 | 13.6 |
| BBH(accuracy) | 73.7 | 68.9 | 92.9 | 70.7 | 65.2 | 34.1 |
| RAGTruth(hallucination F1) | 79.4 | 35.6 | 76.5 | 70.4 | 46.2 | 48.8 |
| HoVer(accuracy) | 65.2 | 61.2 | 72.9 | 70.9 | 58.8 | 55.8 |
| When2Call MCQ(accuracy) | 72.4 | 65.6 | 81.0 | 75.4 | 49.6 | 11.9 |
| New Yorker(accuracy) | 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 |
工作流评测(Workflow evals)
来自 Typesafe Evals(https://evals.typesafe.ai/)的四个端到端业务工作流上的决策准确率,以共识参考标签进行评分。所有模型均在相同的数据集版本和案例集上进行评分。
| 工作流 | 指标 | Clef | Clef-flash | Jev |
|---|---|---|---|---|
| 发票处理 | Exact actions | 64.7 | 57.1 | 61.8 |
| 发票处理 | Primary action | 86.2 | 73.3 | 83.1 |
| 客户服务 | Exact actions | 76.3 | 77.0 | 76.0 |
| 安全事件 | Exact actions | 62.9 | 61.7 | 61.7 |
| Agent 轨迹可观测性 | Primary action | 68.5 | 69.8 | 71.6 |
许可证(License)
基于基础模型 Qwen/Qwen3.8-27B(https://huggingface.co/Qwen/Qwen3.8-27B),以 Apache-2.0 许可证发布。
相似文章
@MiaAI_lab: Cloudflare 的 Clef 仅用两周就超越了 Jev 方法:"冻结"的 Qwen 只做一次 prefill,一个极小的 schema head 对每个……
Cloudflare 发布了 Clef,这是一个开源的 27B 多模态决策模型,采用冻结的 Qwen 主干网络和一个极轻量的 schema 头部,在单次前向传播中对所有答案选项进行打分,无需文本生成,速度可达 Jev 的 4 倍,准确率最高可达其 2 倍。体积更小、速度更快的变体 Clef-Flash 也已在 Hugging Face 上发布。
Clef:Cloudflare 发布的开放权重决策模型
Cloudflare 发布了 Clef,这是一个开放权重的 27B 多模态决策模型。它以一个状态和一组带类型的结构化问题作为输入,通过一次前向传播直接输出每个选项的概率,无需自由文本生成,也无需解析输出。该模型在 Qwen3.8-27B 基础上进行后训练,已发布于 Hugging Face,并提供更小的 Clef-Flash 变体,同时兼容 Jev/SystemOne API。
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 推出 Clef 和 Clef-flash,这两款开源决策模型托管于 Workers AI,可实现高速分类和智能体工作流;同时还发布了新的强化学习平台,让开发者使用自己的数据对决策模型进行微调。