Qwen3.5-9B Clef-Flash adapter

Cloudflare's Clef-Flash decision model as a runtime adapter on stock Qwen/Qwen3.5-9B, plus Cloudflare's joint schema head. Cloudflare publishes Clef-Flash as merged weights; this repo holds the difference from the base as a LoRA, so one server can answer chat with the base weights and Clef-Flash decisions (POST /v1/systemone) with the adapter applied to decision passes only.

Files

file what
adapter.safetensors the LoRA: 248 projections (every linear projection in all 32 layers), bf16, layers.{i}.{module}.lora_A / lora_B; rank 256, or the full rank 32 for the GDN in_proj_a / in_proj_b
joint_head.safetensors, joint_head_config.json, joint_schema_model.py Cloudflare's joint schema head, unchanged (byte-identical to the release)
lm_head_rows.safetensors the base's bf16 output embedding (identical in Clef-Flash), used by the head
manifest.json base and Clef-Flash revisions, rank, convention, and every module's shape
SHA256SUMS.json checksums
LICENSE Apache-2.0, from Cloudflare/clef-flash

Convention: y = x Wáµ€ + (x Aáµ€) Báµ€, A [rank, in] with orthonormal rows, B [out, rank] with the scale folded in.

How it was made

From Qwen/Qwen3.5-9B @ c202236235762e1c871ad0ccb60c8ee5ba337b9a and Cloudflare/clef-flash @ f0b7d3cd65296abfe459e6c228b618f5d8b26d2f:

  • 296 tensors differ between the two. 248 are the linear projections of all 32 layers (the LoRA). The other 48 are each GDN layer's A_log and linear_attn.norm.weight, which the base stores in fp32 and the release in bf16; they are identical after rounding the base's values to bf16, so they are not part of the adapter.
  • Each projection's difference was factored by SVD at rank 256 (the 48 rank-32 projections exactly). The residual is 0.2–3.7% of each delta, at most 1.02× the bf16 rounding floor of the merge itself.

Verification

  • Against the merged release (Transformers bf16 on an Apple GPU, Cloudflare's 60 records / 557 questions): base + this adapter vs Cloudflare/clef-flash: mean KL 4.6e-5, top choice 99.64% (100% up to 4K tokens). The remaining differences are bf16 noise: the native engine running the merged release scores 5.7e-5 / 99.64% against the same reference.
  • On native TensorFold (one DGX Spark, CUDA; the runtime adapter of ashhart/TensorFold#1364 and the f32-norm loading of #1372), stock Qwen/Qwen3.5-9B unconverted + this adapter, the same 60 records against Cloudflare's own bf16 output: mean KL 6.9e-5, top choice 99.46%. Chat replies are bit-identical with and without decisions; four concurrent decisions equal decisions alone (60/60 records).
  • Cost: decisions through the runtime adapter take about 4× as long as the merged release served on its own (p50 1.1 s vs 0.35 s up to 1K tokens, 36 s vs 8.8 s above 10K, on one DGX Spark), because the adapter's products run on row-exact kernels. Serve the merged release when decisions are all a server does.

Use with TensorFold

tensorfold-native serve <Qwen/Qwen3.5-9B checkpoint> --clef <this repo's folder> ...

Chat goes to the base model as usual; POST /v1/systemone returns Clef-Flash's option probabilities (Jev/SystemOne request format; "raw": true returns unrounded probabilities). See ashhart/TensorFold#1361 (Clef endpoint and head), #1364 (runtime adapter) and #1372 (stock Qwen3.5-9B loading).

License and credit

Apache-2.0. Clef-Flash and its joint schema head are Cloudflare's (Cloudflare/clef-flash); the base model is Qwen's (Qwen/Qwen3.5-9B). This repo only re-expresses Clef-Flash's weights as an adapter.

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

Model tree for unigilby/Qwen3.5-9B-clef-flash-adapter

Finetuned
Qwen/Qwen3.5-9B
Adapter
(10)
this model