clef-flash for radiance

Cloudflare's clef-flash decision model as two radiance containers, each with the joint schema head inside, so radiance serves POST /v1/systemone with no Python process beside it. The weights are Cloudflare's, under Apache-2.0; the containers are a repackaging.

File Size Weights Made with
clef-flash-fp8-head.rad 12.2 GB the trunk's large linears block fp8 (e4m3, 128x128, bf16 scales); norms, embeddings, the delta net's small projections and the lm_head bf16 the recipe below
clef-flash-head.rad 19.1 GB bf16 as shipped no recipe

Both carry joint_head.safetensors and the head's geometry and learned scalars in the container header (decision.type=clef, decision.clef.*).

What serves them

radiance built from the clef-flash-support branch (the head on the card, plugin ABI 32). A release before it loads the trunk but answers /v1/systemone with 501.

radiance --model clef-flash-fp8-head.rad --port 8000 --max-model-len 16384

curl -s localhost:8000/v1/systemone -H 'Content-Type: application/json' -d '{
  "state": "I was charged twice this month, please refund one of them.",
  "questions": {
    "refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"},
    "team": {"type": "choice", "instructions": "Which team should handle this?",
             "criteria": {"billing": "Charges, refunds, invoices", "technical": "App or site faults"}},
    "urgency": {"type": "score", "instructions": "How urgent is this?",
                "criteria": ["Can wait", "Today", "Blocking the customer now"]}}}'

The request and response are clef's own System One shape. /v1/decisions is the same endpoint. The answer to that request has this shape, every question decided jointly in one pass:

{
  "answers": {
    "refund":  {"type": "noul", "noul": 0.97},
    "team":    {"type": "choice", "choice": "billing", "confidence": 0.91,
                "probabilities": {"billing": 0.91, "technical": 0.09}},
    "urgency": {"type": "score", "score": 1.12, "confidence": 0.72,
                "probabilities": {"0": 0.08, "1": 0.72, "2": 0.20},
                "legend": {"0": "Can wait", "1": "Today", "2": "Blocking the customer now"}}
  },
  "usage": {"input_tokens": 231, "output_tokens": 0}
}

The numbers above only show the shape. noul is P(true). A choice names its most probable option with that option's probability as confidence, and lists every option in the order the request gave them. A score is the expected level over its levels (0, 1, ... as in legend), confidence the probability of the likeliest level. Each question's probabilities sum to 1, and every value is rounded to four places, as clef's own code rounds them. input_tokens is the whole prompt: the state, every question and its options.

How they were made

rad-convert clef-flash -o clef-flash-head.rad \
    --add clef-flash/joint_head.safetensors --set decision.type=clef
rad-convert clef-flash -o clef-flash-fp8-head.rad --recipe clef-flash-fp8block.recipe \
    --add clef-flash/joint_head.safetensors --set decision.type=clef \
    --set quantization_config.quant_method=fp8 --set quantization_config.fmt=e4m3 \
    --set "quantization_config.weight_block_size=128 128" \
    --set quantization_config.activation_scheme=dynamic

The recipe rounds blk.*.attn_qg, attn_k, attn_v, attn_output, ssm_inz, ssm_out, ffn_gate_up and ffn_down to nearest into fp8 e4m3 codes with a bf16 scale per 128x128 block, the trunk lines of radiance's q38-27b-fp8block-df2.recipe. The lm_head stays bf16: the head averages its rows.

Measured on one AMD gfx1201 card, 2026-10-28

100 survey respondents, one request each, one at a time. The guidance prompts carry a rules text in front of each respondent (about 13,100 tokens; the rules come from the prefix cache after the first respondent of each group); the short prompts are 550 to 800 tokens.

Container Prompt Prompt tokens/s Median per decision Same verdict as clef's head in PyTorch
fp8 guidance, 13,116 tokens 24,204 497 ms 98/100, largest probability difference 0.10
fp8 short, 676 tokens 9,348 74 ms 98/100, largest 0.10
bf16 guidance 14,251 840 ms 100/100, largest 0.01
bf16 short 5,536 125 ms not compared at bf16

Tokens/s counts every prompt token a decision read, the ones the prefix cache supplied included. On the guidance prompts two thirds of them come from the cache. On the short prompts none do.

The PyTorch column is clef's own JointSchemaHead over the same radiance trunk's hidden states, at the same precision. The fp8 differences are the fp8 trunk's, as the PyTorch head over fp8 rows differs from bf16 by the same amount.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support