From: Cloudflare <huggingface.co/Cloudflare>Newsgroups: alt.freeweights.textSubject:

clef

Date: 2026-11-15Commit: 171287bSigned: 2DC28CC7B26A283B ✓

Image text to text model with 27.4B parameters. Safetensors weights, 55.0 GB in all. Published by Cloudflare under Apache-2.0.

27.4B params55.0GBclefsafetensorspermissive
FactsParams27.4BSize55.0 GBFormatssafetensorsTaskimage text to textLicenseApache-2.0From sourcepermissive
$ fw get Cloudflare/clef
# manifest sha256 a73701a2af2f… · 55.0 GB · 27 files
$ fw verify ./clef Cloudflare/clef
From sourceHosted (signed)Cloudflare/clefLast check: 2026-11-15 02:31 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of Qwen3.8-27B.

Works with

Overview

Size
55.0 GB
Weights
55.0 GB (safetensors)
Parameters
27.4B
Formats
safetensors
Task
image text to text
License
Apache-2.0 (permissive)
Files
27, each with a sha256
Publisher
Cloudflare
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: Qwen/Qwen3.8-27B

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 02:31 UTCpassed

Model card

From the publisher at commit 171287b. Shown as plain text with links; images open at the publisher.

Clef#

Clef is a 27B multimodal model that turns a state and a schema of typed questions into decisions. It reads the state as text, JSON, images, or video, and returns a probability for every allowed option of every question in a single forward pass. There is no free-form text generation and no output parsing.

The Clef API is fully compatible with Jev and SystemOne.

Clef is post-trained from Qwen/Qwen3.8-27B. See Clef-Flash for the smaller, faster variant.

Model#

  • Backbone: Qwen/Qwen3.8-27B with its vision encoder, stored as standard sharded safetensors.
  • Joint schema head: a small transformer head that reads the backbone's final hidden states, routes evidence from the state to each question, and scores all options of all questions jointly.
  • Output: one logit per allowed option for each question. Apply a softmax per question to get probabilities.

Files#

FilePurpose
model-*.safetensors, model.safetensors.index.json, config.json, generation_config.jsonBackbone, including the vision encoder
joint_head.safetensors, joint_head_config.jsonJoint schema head
joint_schema_model.pyRecord encoding, batching, the model, load_release_model, and systemone
tokenizer.json, tokenizer_config.json, chat_template.jinja, processor_config.jsonTokenizer and image/video processor
LICENSEApache-2.0 license

Usage#

Tested with torch 2.11 and transformers 5.10.2 on a single H200. Image and video inputs also need 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)))
SGLang#

Clef can be served with SGLang. See the SGLang cookbook for launch commands on H200, B200, and B300. On a single H200:

docker run --gpus all \
  --shm-size 32g \
  -p 30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --ipc=host \
  lmsysorg/sglang:dev-clef \
  sglang serve \
    --model-path Cloudflare/clef \
    --host 0.0.0.0 \
    --port 30000

The server answers Jev/SystemOne requests at /v1/systemone:

curl http://localhost:30000/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{"model":"Cloudflare/clef","state":"My Stripe integration keeps failing. Please help ASAP.","questions":{"urgency":{"type":"noul","instructions":"Does this message express urgency?"}}}'
Jev / SystemOne API#

systemone takes a Jev/SystemOne POST /v1/systemone request body and returns the same response body: model, answers keyed by question ID, and usage. A choice answer has choice, confidence, and probabilities; a score answer has the expected score, confidence, legend, and probabilities; a noul answer has the probability of true. instructions is optional, and images and videos may be added to the request.

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#

Add images (PIL images) or videos (frame arrays) to the record and pass the processor to encode_record. Optional processor arguments go in 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)

Text-only and multimodal records can be mixed in the same batch.

Input format#

FieldDescription
stateAny string or JSON value describing the situation to decide on
images, videosOptional lists of images or video frame arrays
media_kwargsOptional keyword arguments for the image/video processor
questionsMapping of question ID to question

Each question has:

  • type: noul (true/false), choice (named options), or score (ordered options)
  • instructions: what to decide; optional, and the question ID is used when it is omitted
  • criteria: for choice, a mapping of option ID to description; for score, a list of option descriptions indexed from 0; for noul, optional descriptions for true and false

encode_record accepts max_length (default 16,384 tokens) and max_state_tokens to bound the input.

Results#

Decision Index#

Per-benchmark results from our internal run of the Decision Index 0.2.1 suite. Scores are percentages; ForecastBench is a Brier score, where lower is better. The last two rows are request latency in milliseconds, where lower is better. The best value in each row is in bold.

BenchmarkClefClef-flashJevDiffusionGemma JevKev 9BLaya
BFCL (case exact accuracy)98.598.895.896.594.538.1
ToolRet (nDCG@10)69.266.465.361.264.312.8
API-Bank (accuracy)91.993.188.283.756.311.5
BANKING77 (macro-F1)94.290.979.774.384.814.3
CLINC150+OOS (macro-F1)97.466.889.383.579.03.2
RouterBench (selected quality)79.779.979.979.080.057.1
Home appliance simulator (case exact accuracy)83.097.752.342.025.00.0
SGD/SGD-X (macro-F1)43.834.243.040.664.042.4
ContractNLI (macro-F1)81.484.371.776.057.829.0
ANLI (macro-F1)69.859.174.866.456.348.7
BPoMP (accuracy)96.995.490.686.967.051.6
Humicroedit (accuracy)66.775.161.963.055.847.2
POP909-CL (accuracy)15.81.618.12.510.85.1
cfcolor (accuracy)66.065.864.758.256.352.3
MMLU (accuracy)90.391.891.779.375.330.7
GPQA Diamond (accuracy)48.051.078.344.938.827.6
ARC-Easy (accuracy)99.099.599.398.297.747.0
ARC-Challenge (accuracy)97.798.397.894.593.728.6
WinoGrande (accuracy)93.597.592.073.673.250.5
HellaSwag (accuracy)98.298.694.583.381.933.1
GSM8K (accuracy)80.867.379.950.348.721.6
ChessBench (accuracy)24.723.017.214.211.27.7
MuSR (accuracy)83.586.066.161.257.943.2
SATA-Bench (case exact accuracy)33.836.726.427.526.70.3
BRIGHT (nDCG@10)45.939.347.542.938.519.9
Amazon ESCI (macro-F1)57.557.455.253.449.224.4
ACOS (per-review F1)33.325.929.524.518.33.5
FinEntity (macro-F1)96.297.187.089.088.461.0
VAST (macro-F1)59.549.664.655.755.440.5
NLI4CT (macro-F1)82.978.684.178.474.947.7
CRUXEval (accuracy)86.786.173.064.751.240.2
CLadder (accuracy)94.097.772.667.862.052.9
ForecastBench (Brier, lower is better)13.910.617.429.617.641.1
Habermas Machine (accuracy)68.771.845.945.039.433.4
PhishNChips (accuracy)79.675.062.585.450.750.1
MMLU-Pro (accuracy)65.965.382.756.951.113.6
BBH (accuracy)73.768.992.970.765.234.1
RAGTruth (hallucination F1)79.435.676.570.446.248.8
HoVer (accuracy)65.261.272.970.958.855.8
When2Call MCQ (accuracy)72.465.681.075.449.611.9
New Yorker (accuracy)69.566.170.163.658.127.1
Median latency (ms)209.338.8524.184.451.45.8
p95 latency (ms)238.6122.4536.0211.2187.9222.5
Workflow evals#

Decision accuracy on four end-to-end business workflows from Typesafe Evals, scored against consensus reference labels. All models are scored on the same dataset revision and case cohort.

WorkflowMetricClefClef-flashJev
Invoice processingExact actions64.757.161.8
Invoice processingPrimary action86.273.383.1
Customer serviceExact actions76.377.076.0
Security incidentsExact actions62.961.761.7
Agent trace observabilityPrimary action68.569.871.6

License#

Released under the Apache-2.0 license, following the base model Qwen/Qwen3.8-27B.

Files

27 files · 55.0 GBWeights 55.0 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 27 files with their sha256
FileSizesha256
.eval_results/Cloudflare__clef.yaml1.11 KB7dc4aa93f7d8475e9817cd1568eeb8c32520596eea9c8586a90ae1d976cfaff1
.eval_results/safeagents-judge-bench.yaml1.19 KB0feaa30b604c521afc0235f65aca3ebe814cc0d6f16f487b50430d7ab87e2fd5
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
LICENSE11.5 KBbbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a
README.md11.1 KB16ee04d296b1ef5edcdb3c4d3d3cd369acdc627fb5d255b34264a73e224d821a
chat_template.jinja8.95 KBc3cf9e34abf4f9e36c2d72165aa9c132d3e2a725b6c2586aaa3a8af9d7a81041
config.json3.69 KBc42e88892bd3fd84e8276b2ad90df58c1c3b797676ea161035006a72ad468c58
generation_config.json214 Bdc36854b2b25176764cfeeda32a3d80fb4fcffbef2b00d55c6614079bf21eb9f
joint_head.safetensors256 MBa010ac04f078e699988e4049cbea5e62c962393f59fec366640b64e8d69a4953
joint_head_config.json119 B890be585d75b981201eb96a35f98a9967afe37bc8d220cfdea2e72d56507534f
joint_schema_model.py23.3 KB0e304cf7c6500e8bb59bef7e2afd2c6373f82596dfb3b57d1aa93c175e2dc3a3
model-00001-of-00012.safetensors2.54 GB54d83c1d36631de231876217a8e0c2483eccee8746369a482b79442bdfc5d958
model-00002-of-00012.safetensors4.84 GB464086af08be8e2ec14960a4dcff083ebc39974ade00d79d35497385f960ab3a
model-00003-of-00012.safetensors4.97 GB092212d3a02fafacd6424723eda59d60e5282d2068d68f0e37cb891f63bbb658
model-00004-of-00012.safetensors4.91 GBd06ff197668c782145fafa74bba61bbc296fb27e39afb15fd522918ce3514dc5
model-00005-of-00012.safetensors4.99 GBcc693b8829614a72e0c2be303fb290cf05dbb4d7ded872a817b97bb222a78427
model-00006-of-00012.safetensors4.91 GBe7cce15da2443cb8b84aaed66a9a71f0c87dc9d043f83b5f58f4a89f64ba60ad
model-00007-of-00012.safetensors4.93 GB75fc7e76b57d5d17a5d85fff3e879d07dd33edc885a8ee04ad437a899bcd5307
model-00008-of-00012.safetensors4.97 GB189b15cb6b1af48d5f118951446e15639bfeaf76081d5f20aed1f1b4253afe1d
model-00009-of-00012.safetensors4.96 GB8101e2664bb14684fc7051f2e1f84903dbdf5489b17cae3212ac08a0af744a60
model-00010-of-00012.safetensors4.93 GBa8e69016a1a8dab1c9ce8dd151c0d3224412ab864cf06d3a5e2b8a5775cfdfb8
model-00011-of-00012.safetensors4.97 GBb328d21c36ab384696e40a30ac86a95aaf6dd82da89438ba009cb97d87c1d6b9
model-00012-of-00012.safetensors2.79 GB7505eed910a84ea18e66953572476f8a8a6a6ef54192a6643d6e9cd21a3bb978
model.safetensors.index.json111 KBa600c6626eb1eb653a3f078ab3dd1c7a8fab2e71185c7ef3aa923a39aaa637be
processor_config.json1.19 KBd89ef49ce9cd37fbf510158e13c1ef063d9286411c1ec9049932dbe0487143b1
tokenizer.json20.0 MB06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
tokenizer_config.json1.07 KB91a08f825d370d085d692e04cf117cdd7faad7bf18e996f1e6031b6dab03db72
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
171287b257 pinned now2026-11-15 02:31 UTC27 files · 55.0 GB

Use it

$ fw get Cloudflare/clef
# manifest sha256 a73701a2af2f… · 55.0 GB · 27 files
$ fw verify ./clef Cloudflare/clef
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/Cloudflare/clef.json --dir ./clef $ python3 fw.py verify ./clef ./Cloudflare__clef.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Cloudflare/clef --revision 171287b2571042abec9e7b99752aee58216b0ed0 --local-dir ./clef
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("Cloudflare/clef", revision="171287b2571042abec9e7b99752aee58216b0ed0") model = AutoModelForImageTextToText.from_pretrained("Cloudflare/clef", revision="171287b2571042abec9e7b99752aee58216b0ed0", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve Cloudflare/clef --revision 171287b2571042abec9e7b99752aee58216b0ed0

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
LICENSE
Text sha256
bbedc3fda3305820b977265f01b8619d87570a6739de3a5582c3464840f1e57a
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: Cloudflare <huggingface.co/Cloudflare>Newsgroups: alt.freeweights.textSubject: clefDate: 2026-11-15Commit: 171287bSigned: 2DC28CC7B26A283B ✓
Upstream
Cloudflare/clef
Pinned commit
171287b2571042abec9e7b99752aee58216b0ed0
Manifest
clef.json · .minisig
Manifest sha256
a73701a2af2fb0053635e45e7128e5c8f8b10ddfc409a0776e5643216e31ea2d
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:31 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/Cloudflare/clef.json $ curl -O https://freeweights.allternit.com/manifests/Cloudflare/clef.json.minisig $ minisign -Vm clef.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

Qwen/Qwen3.8-27B · this model is a finetune of it

4 models in the catalog name this one as their parent.

Quantizations
4
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download Cloudflare/clef
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. clef.json. Provenance. Takedown history: none.

Variants

4 quantized or adapter builds of clef. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B