Cloudflare/clef-flash
摘要
Cloudflare 发布了 Clef-Flash,这是一个基于 Qwen3.5-9B 构建的 9B 多模态决策模型,能够在单次前向传播中将一个状态和一组带类型问题的 schema 转换为各选项的概率,无需自由文本生成或输出解析。
查看缓存全文
缓存时间: 2026/10/02 09:39
Cloudflare/clef-flash · Hugging Face
来源:https://huggingface.co/Cloudflare/clef-flash
- **发布公告:**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-Flash 是一个 9B 多模态模型,能够将一个状态和一组带类型的结构化问题转换为决策结果。它可以将状态以文本、JSON、图像或视频的形式读入,并在一次前向传播中为每个问题的每个允许选项返回概率。模型不会进行自由文本生成,也不需要输出解析。
Clef-Flash API 与 Jev 和 SystemOne 完全兼容。
Clef-Flash 是基于 Qwen/Qwen3.5-9B(https://huggingface.co/Qwen/Qwen3.5-9B)后训练得到的。更大的版本请参阅 Clef(https://huggingface.co/Cloudflare/clef)。
模型
- **骨干网络:**Qwen/Qwen3.5-9B 及其视觉编码器,以标准分片 safetensors 格式存储。
- **联合结构化输出头:**一个轻量的 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 测试。图像和视频输入还需要 pillow。
import sys
import torch
from huggingface_hub import snapshot_download
path = snapshot_download("Cloudflare/clef-flash")
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 类型的回答包含为 true 的概率。instructions 是可选的,还可以在请求中添加 images 和 videos。
from joint_schema_model import systemone
response = systemone(model, processor, {
"model": "clef-flash",
"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(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)
纯文本记录和多模态记录可以在同一个批次中混合使用。
输入格式
| 字段 | 描述 |
|---|---|
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 参数,用于限制输入大小。
结果
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 | Laya |
|---|---|---|---|---|---|---|---|
| BFCL(case exact accuracy) | 98.5 | 98.8 | 95.8 | 96.5 | 94.5 | 38.1 | 12.8 |
| ToolRet(nDCG@10) | 69.2 | 66.4 | 65.3 | 61.2 | 64.3 | 11.5 | 12.8 |
| API-Bank(accuracy) | 91.9 | 93.1 | 88.2 | 83.7 | 56.3 | 14.3 | 14.3 |
| BANKING77(macro-F1) | 94.2 | 90.9 | 79.7 | 74.3 | 84.8 | 14.3 | 14.3 |
| CLINC150+OOS(macro-F1) | 97.4 | 66.8 | 89.3 | 83.5 | 79.0 | 3.2 | 3.2 |
| RouterBench(selected quality) | 79.7 | 79.9 | 79.9 | 79.0 | 80.0 | 57.1 | 57.1 |
| 家用电器模拟器(case exact accuracy) | 83.0 | 97.7 | 52.3 | 42.0 | 25.0 | 0.0 | 0.0 |
| SGD/SGD-X(macro-F1) | 43.8 | 34.2 | 43.0 | 40.6 | 64.0 | 42.4 | 42.4 |
| ContractNLI(macro-F1) | 81.4 | 84.3 | 71.7 | 76.0 | 57.8 | 29.0 | 29.0 |
| ANLI(macro-F1) | 69.8 | 59.1 | 74.8 | 66.4 | 56.3 | 48.7 | 48.7 |
| BPoMP(accuracy) | 96.9 | 95.4 | 90.6 | 86.9 | 67.0 | 51.6 | 51.6 |
| Humicroedit(accuracy) | 66.7 | 75.1 | 61.9 | 63.0 | 55.8 | 47.2 | 47.2 |
| POP909-CL(accuracy) | 15.8 | 1.6 | 18.1 | 2.5 | 10.8 | 5.1 | 5.1 |
| cfcolor(accuracy) | 66.0 | 65.8 | 64.7 | 58.2 | 56.3 | 52.3 | 52.3 |
| MMLU(accuracy) | 90.3 | 91.8 | 91.7 | 79.3 | 75.3 | 30.7 | 30.7 |
| GPQA Diamond(accuracy) | 48.0 | 51.0 | 78.3 | 44.9 | 38.8 | 27.6 | 27.6 |
| ARC-Easy(accuracy) | 99.0 | 99.5 | 99.3 | 98.2 | 97.7 | 47.0 | 47.0 |
| ARC-Challenge(accuracy) | 97.7 | 98.3 | 97.8 | 94.5 | 93.7 | 28.6 | 28.6 |
| WinoGrande(accuracy) | 93.5 | 97.5 | 92.0 | 73.6 | 73.2 | 50.5 | 50.5 |
| HellaSwag(accuracy) | 98.2 | 98.6 | 94.5 | 83.3 | 81.9 | 33.1 | 33.1 |
| GSM8K(accuracy) | 80.8 | 67.3 | 79.9 | 50.3 | 48.7 | 21.6 | 21.6 |
| ChessBench(accuracy) | 24.7 | 23.0 | 17.2 | 14.2 | 11.2 | 7.7 | 7.7 |
| MuSR(accuracy) | 83.5 | 86.0 | 66.1 | 61.2 | 57.9 | 43.2 | 43.2 |
| SATA-Bench(case exact accuracy) | 33.8 | 36.7 | 26.4 | 27.5 | 26.7 | 0.3 | 0.3 |
| BRIGHT(nDCG@10) | 45.9 | 39.3 | 47.5 | 42.9 | 38.5 | 19.9 | 19.9 |
| Amazon ESCI(macro-F1) | 57.5 | 57.4 | 55.2 | 53.4 | 49.2 | 24.4 | 24.4 |
| ACOS(per-review F1) | 33.3 | 25.9 | 29.5 | 24.5 | 18.3 | 3.5 | 3.5 |
| FinEntity(macro-F1) | 96.2 | 97.1 | 87.0 | 89.0 | 88.4 | 61.0 | 61.0 |
| VAST(macro-F1) | 59.5 | 49.6 | 64.6 | 55.7 | 55.4 | 40.5 | 40.5 |
| NLI4CT(macro-F1) | 82.9 | 78.6 | 84.1 | 78.4 | 74.9 | 47.7 | 47.7 |
| CRUXEval(accuracy) | 86.7 | 86.1 | 73.0 | 64.7 | 51.2 | 40.2 | 40.2 |
| CLadder(accuracy) | 94.0 | 97.7 | 72.6 | 67.8 | 62.0 | 52.9 | 52.9 |
| ForecastBench(Brier,越低越好) | 13.9 | 10.6 | 17.4 | 29.6 | 17.6 | 41.1 | 41.1 |
| Habermas Machine(accuracy) | 68.7 | 71.8 | 45.9 | 45.0 | 39.4 | 33.4 | 33.4 |
| PhishNChips(accuracy) | 79.6 | 75.0 | 62.5 | 85.4 | 50.7 | 50.1 | 50.1 |
| MMLU-Pro(accuracy) | 65.9 | 65.3 | 82.7 | 56.9 | 51.1 | 13.6 | 13.6 |
| BBH(accuracy) | 73.7 | 68.9 | 92.9 | 70.7 | 65.2 | 34.1 | 34.1 |
| RAGTruth(hallucination F1) | 79.4 | 35.6 | 76.5 | 70.4 | 46.2 | 48.8 | 48.8 |
| HoVer(accuracy) | 65.2 | 61.2 | 72.9 | 70.9 | 58.8 | 55.8 | 55.8 |
| When2Call MCQ(accuracy) | 72.4 | 65.6 | 81.0 | 75.4 | 49.6 | 11.9 | 11.9 |
| New Yorker(accuracy) | 69.5 | 66.1 | 70.1 | 63.6 | 58.1 | 27.1 | 27.1 |
| 中位延迟(ms) | 209.3 | 38.8 | 524.1 | 84.4 | 51.4 | 5.8 | 5.8 |
| p95 延迟(ms) | 238.6 | 122.4 | 536.0 | 211.2 | 187.9 | 222.5 | 222.5 |
工作流评测
以下为来自 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 |
许可证
基于基础模型 Qwen/Qwen3.5-9B(https://huggingface.co/Qwen/Qwen3.5-9B),采用 Apache-2.0 许可证发布。
相似文章
Clef:Cloudflare 发布的开放权重决策模型
Cloudflare 发布了 Clef,这是一个开放权重的 27B 多模态决策模型。它以一个状态和一组带类型的结构化问题作为输入,通过一次前向传播直接输出每个选项的概率,无需自由文本生成,也无需解析输出。该模型在 Qwen3.8-27B 基础上进行后训练,已发布于 Hugging Face,并提供更小的 Clef-Flash 变体,同时兼容 Jev/SystemOne API。
@MiaAI_lab: Cloudflare 的 Clef 仅用两周就超越了 Jev 方法:"冻结"的 Qwen 只做一次 prefill,一个极小的 schema head 对每个……
Cloudflare 发布了 Clef,这是一个开源的 27B 多模态决策模型,采用冻结的 Qwen 主干网络和一个极轻量的 schema 头部,在单次前向传播中对所有答案选项进行打分,无需文本生成,速度可达 Jev 的 4 倍,准确率最高可达其 2 倍。体积更小、速度更快的变体 Clef-Flash 也已在 Hugging Face 上发布。
@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 变体可供选择。
Clef
Cloudflare 推出 Clef 和 Clef-flash,这两款开源决策模型托管于 Workers AI,可实现高速分类和智能体工作流;同时还发布了新的强化学习平台,让开发者使用自己的数据对决策模型进行微调。
Clef:我们的开源决策模型
Cloudflare 发布了两个开源决策模型 Clef 和 Clef-flash,托管于 Workers AI,采用 Apache 2.0 许可并在 Hugging Face 上开放下载,主打低成本、快速且一致的结构化输出,目前在 Jev Decision Index 榜单领先;同时推出新的强化学习微调平台,支持客户针对自身用例对 Clef 进行微调。