Instructions to use jbarney/circuit-audio-7b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use jbarney/circuit-audio-7b with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
circuit-audio-7b
v1.2 (2026-09-22). The options of a choice question are encoded side by side, so the answer cannot depend on the order they are listed in: 2.9% of answers change under reordering (v1.1: 11.7%), the rest on deliberately ambiguous items; grid .898 / ECE .050. config.json carries "parallel_options": true; serve it with the circuit repo's scorer, which applies the mask. See Versions.
v1.1. Same base, head and recipe as v1.0, with real recordings (LibriSpeech, FSDD) and Kokoro-voiced calls added to the training data. "Audio grid v2" below names the dataset, not the model. See Versions.
A System One decision model for sound: a state that carries a clip (speech or not) plus optional text, typed questions in, calibrated probability distributions out, one forward pass, no transcription. It is the audio member of the circuit family behind decision-circuits, next to circuit-1.7b, circuit-8b, and circuit-vl-4b.
circuit-audio-7b is a LoRA adapter on the language model of
Qwen/Qwen2-Audio-7B-Instruct (audio encoder frozen) plus the same
pointer readout head as the rest of the family. Each option is wrapped in
delimiter tokens and the sequence ends with a decide token; the head
scores every option's closing delimiter against the decide token and
applies softmax. Qwen2-Audio's vocabulary lacks the box tokens the text
models use, so three of its unused timestamp tokens serve as delimiters
(recorded in config.json as pointer_tokens).
Results
Audio generalization grid v2: scripted support calls, spoken lists and number readbacks in 27 Kokoro voices and their blends; real LibriSpeech recordings (CC BY 4.0) with questions labeled from the transcript; real people reading digits (Free Spoken Digit Dataset, CC BY-SA 4.0) stitched into account numbers; generated beeps, noise, and silence. 14 cells, every label computed by the code that built the clip. 420 held-out clips, accuracy / ECE (15 bins).
| model | decidable clips (385) | all 420 | ms per clip, M-series laptop |
|---|---|---|---|
| Qwen2-Audio-7B-Instruct, raw, letter logits | 73.2% / 0.199 | 68.1% / 0.232 | 1,260 |
| circuit-audio-7b | 94.5% / 0.039 | 88.8% / 0.073 | 1,220 |
Per cell the fine-tune is at 100% on classifying calls and sounds, counting listed items, "does the speaker say the word X", "which sentence was read", and every negation and consistency cell; 96% on real spoken digits; 89% on word order and on comparing two spoken amounts. The raw base sits at 39% to 85% on most of those. Counting beeps remains the weak cell: 44% (raw 8%).
On the 35 clips made undecidable (speech drowned in noise, the clip cut before the key words, two equal amounts) the fine-tune's mean confidence is 0.54 against the raw base's 0.69: still not the flat distribution the label asks for, but the closest in the family.
Caveats: the grid is ours; the scripted speech is synthesized; the real speech is read audiobook prose, not phone calls. Expect a drop on real call audio until real calls are in the mix.
Training
- Base:
Qwen/Qwen2-Audio-7B-Instruct(Apache 2.0), frozen. LoRA rank 16, alpha 32, on the language model's attention and MLP projections only (40M params). Pointer head: two 4096 x 256 linear maps. - Data: the audio grid v2 (
uv run --group audio python -m s1proto.data.audio_gridin the circuit repo), 1,400 clips, 14 cells, about 8% made ambiguous with soft labels. Speech from Kokoro-82M (Apache 2.0), LibriSpeech dev-clean (CC BY 4.0), and the Free Spoken Digit Dataset (CC BY-SA 4.0). No teacher-model outputs. - 1 epoch, batch 2, max 1,024 tokens, lr 1e-4 (LoRA) / 1e-3 (head), bf16, soft-target cross-entropy, early stopping on validation ECE (best at step 300: ECE 0.052, accuracy 84.2%). About 55 minutes on an Apple laptop GPU; no rented hardware.
Versions
| tag | date | what changed |
|---|---|---|
v1.2 |
2026-09-22 | Options encoded side by side: order-stable answers. Same data and recipe as v1.1 otherwise. |
v1.1 |
2026-09 | Trains on audio grid v2: scripted calls plus real recordings. |
v1.0 |
2026-09 | First release, rendered or scripted data only. |
Pin one with revision="v1.0" in huggingface_hub.
Use
Score a JSONL of {"state": {"audio": path, "text": ...}, "question": ...}
items with the circuit repo's evaluator (clips are resampled to 16 kHz mono):
uv run python scripts/eval_audio.py data/audio/grid/eval.jsonl --lora runs/circuit-audio-7b --out results/agrid.json
Files: adapter/ (PEFT LoRA, language-model targets), head.pt (pointer
head, keys q.weight, k.weight), config.json (base, hidden size, head
type, layout, modality, pointer tokens, training args). It is served at
api.decisioncircuits.com: send state as {"audio": "<data URI or https URL>", "text": "<optional>"}
with "model": "circuit-audio-7b".
Intended use and limits
Research and evaluation of calibrated decision models over recorded speech and sound. Not a production system for decisions that affect people. English only.
License
Adapter and head: Apache 2.0. Base model: Apache 2.0 (Qwen2-Audio).
- Downloads last month
- -
Model tree for jbarney/circuit-audio-7b
Base model
Qwen/Qwen2-Audio-7B-Instruct