Highlights
Built with Llama: trained on Llama 3.3 70B outputs; architecture Qwen/Qwen3.6-35B-A3B.
Structured extraction of entities, facts and citations from documents.
- On its public base quantised to FP8 with a JSON response format, it returned valid JSON on 48/48 held-out documents and usable extractions on 40/48, with grounding 0.939 on the non-empty outputs.
- Strong at training time: schema 0.961 and grounding 0.874 on Curator's 120-document selection slice (base 0.903 and 0.956), with semantic F1 0.589 against its base's 0.468.
- The serving package matters: on Curator's 4-bit W4A16 base the same requests gave 14/48 usable extractions, so serve it on the FP8 public-base package.
Assessment: Strong structured extraction on the public base in FP8: 48/48 valid JSON and 40/48 usable extractions, against 14/48 on a 4-bit package. Semantic F1 was not re-measured on FP8.
Architecture: Qwen/Qwen3.6-35B-A3B · Artifact: adapter · Mode: thinking-on.
Family comparison
Evaluation pools and paired comparisons are described below. This release is shown in bold.
Enrichment evaluation — 1 October 2026
48 held-out documents per measured release.
*35B ON semantic F1 covers 47 scored documents; one was unscored. Nemotron ON is not yet evaluated: no held-out case could be proven unseen by this checkpoint.
Paired comparison — 8 documents per release
Values show student / Llama 3.3 70B teacher.
The eight-document sample limits generalisation. Schema measures format conformance. References and judge use the teacher family, which can favour the teacher.
Checkpoint-selection comparison (training record)
Base and selected adapter used the same 120-document selection slice; run dates were not preserved.
Percentages are relative changes calculated from rounded scores. The 35B OFF checkpoint is recorded as a baseline selection. A 3 October check shows the adapter does change the base: on a fixed prompt the base's most likely first token ends the reply, while the adapter's opens the JSON answer.
In the 1 October run, extracting after the last reasoning-close tag explains 3 of 12 35B ON parse failures: parsed outputs 36/48 → 39/48, schema .741 → .780.
35B Enrichment Thinking-ON — 3 October 2026
Same 48 held-out documents and adapter revision, served on one A100 80 GB with vLLM 0.25.1, JSON object response format, temperature 0 and 4,096 output tokens.
Table with columns: Serving package, Strict valid JSON, Usable extraction, Empty, Cut off, Extracted items, Grounding: non-empty| Serving package | Strict valid JSON | Usable extraction | Empty | Cut off | Extracted items | Grounding: non-empty |
|---|
| This adapter on the public base, FP8 weight-only (Marlin) | 48/48 | 40/48 | 8 | 0 | 330 | .939 |
| This adapter on Curator's W4A16 base | 36/48 | 14/48 | 22 | 12 | 75 |
Usable means valid JSON as returned, non-empty and naturally stopped. JSON repair is excluded. Guided JSON makes valid JSON near-automatic; usable extraction is the informative measure. The references contain 461 items. FP8 improves usable extraction on 26 paired documents and declines on zero. These are two pinned serving packages; quantization-only attribution remains unproven.
At a 512-token limit, FP8 gives 29/48 usable extractions and 11/48 cut off. Use the measured 4,096-token output setting. With guided JSON and no reasoning parser, outputs contain no reasoning blocks. FP8 speed is unmeasured representatively on this A100/eager setup.
GPU serving — 1 October 2026
One NVIDIA A100 80 GB, vLLM 0.29. Each row describes a shared serving package.
Student sweeps used 2,048 input / 256 output tokens and cold cache. The teacher figure comes from a 180-second warm window with different output lengths. Ratios between these rows combine model and workload effects. Energy covers sampled GPU board power. The 8B base occupies about one-sixth of the teacher's weight storage and serves seven adapters. Nemotron ON throughput remains unmeasured.
Selection measurements (training record)
Recorded result: comparable three-signal quality 0.723; semantic F1 0.589; schema 0.961; grounding 0.874.
Comparison pool: 120 documents.
Base on the same pool: Qwen3.6-35B-A3B base on the same slice: quality 0.670; semantic F1 0.468; schema 0.903; grounding 0.956.
From the training record; run dates were not preserved.
Loading and use
Load Qwen/Qwen3.6-35B-A3B with a compatible PEFT runtime and attach this adapter. The measured weight files match the published weight files; the immutable public loading pin is shown below.
For vLLM 0.25.1, prepare a separate serving copy using the measured language-model
namespace remap. All 80 tensor values remain unchanged.
from pathlib import Pathfrom huggingface_hub import snapshot_downloadfrom safetensors.torch import load_file, save_file source = Path(snapshot_download("curator-research/Llama-3.3-Qwen3.6-35B-A3B-Curator-0.1.0-Enrichment-Thinking-ON", revision="fa65fdb8f2395d989aeb5b64ea399bbde482d513", allow_patterns=["adapter_config.json", "adapter_model.safetensors"]))target = Path("adapter-serving")target.mkdir(exist_ok=False)weights = load_file(str(source / "adapter_model.safetensors"))prefix = "base_model.model.model.layers."assert len(weights) == 80 and all(key.startswith(prefix) for key in weights)renamed = {key.replace(prefix, "base_model.model.model.language_model.layers.", 1): value for key, value in weights.items()}save_file(renamed, str(target / "adapter_model.safetensors"))(target / "adapter_config.json").write_bytes((source / "adapter_config.json").read_bytes())
Measured public-base configuration on an A100 80 GB:
vllm serve Qwen/Qwen3.6-35B-A3B --revision 995ad96eacd98c81ed38be0c5b274b04031597b0 \ --dtype bfloat16 --quantization fp8 --enforce-eager --served-model-name curator-base \ --enable-lora --max-lora-rank 16 --max-loras 4 \ --lora-modules Llama-3.3-Qwen3.6-35B-A3B-Curator-0.1.0-Enrichment-Thinking-ON=./adapter-serving \ --max-model-len 163840 --max-num-seqs 32 --gpu-memory-utilization 0.98 \ --enable-prefix-caching --trust-remote-code \ --enable-auto-tool-choice --tool-call-parser qwen3_xml \ --limit-mm-per-prompt '{"image":1,"video":0}' --mm-processor-kwargs '{"max_pixels":2073600}'
Select the full adapter alias in the chat request's model field. Enrichment
requests use response_format: {"type":"json_object"}, temperature 0 and
4,096 output tokens. This FP8 public-base package is the recommended measured setup for this adapter. BF16 serving needs its own compatibility and memory check. Adjust capacity settings for your deployment.
Shared-base multi-LoRA
A single compatible Qwen/Qwen3.6-35B-A3B base can serve this family of 4 adapters. Register each immutable adapter snapshot with --enable-lora --lora-modules alias=./adapter, then select its alias through the HTTP request model field. This reuses the base weights for fast task switching and GPU-memory reuse. Size the LoRA slots, context and concurrency for the deployment. The 8B and 35B families each require their own base.
Set the chat template's enable_thinking option to true for this variant. The base templates think by default, and an adapter alias does not change the template. The 1 October results used Curator's training-time prompt format; this chat-template setting was not separately evaluated.
Curator publishes these weights as an experimental release of its applied model research, with its own measurements on held-out data. Training data, prompts and the output schema remain private, so the published scores cannot be reproduced outside Curator; evaluate this exact revision on your own data before production use.
License and lineage
Released under Apache-2.0, the base's licence (LICENSE, NOTICE.txt). Because its training targets came from Llama 3.3 70B, the Llama 3.3 Community License attribution and naming terms and the Llama Acceptable Use Policy also apply (TEACHER_LICENSE.txt). Both apply together; this is not a dual licence.
Curator Research
Read the model overview and evaluation boundaries, explore the Curator Research organisation, and follow Curator Research on LinkedIn.