“Program-as-Weights”
LLMs are great at fuzzy functions like log triage, JSON repair, and intent classification, but calling a big model on every input is slow, expensive, and not local.
This paper compiles the fuzzy function once from a natural language spec into a small neural program, a pseudo-program plus a LoRA adapter.
A frozen 0.6B interpreter then runs it locally, matching Qwen3 32B prompting on FuzzyBench while using about 50x less inference memory and running around 30 tok/s on a MacBook M3!
We're open sourcing a 9B model that extracts structured data from documents at near-frontier performance.
- 90.2% on our bench, vs Gemini 3.5 Flash at 91.3%
- Leads extraction models like NuExtract3 (81.5%)
- 9.5s p50 timings
- Pass JSON schema
Andrej Karpathy: "90% of Claude's mistakes come from missing context, not a weak model."
41% mistake rate without a CLAUDE.md. 11% with the 4-rule baseline. 3% with the 12-rule version below
here are the 12 rules senior engineers settled on:
1. think before coding: state assumptions, don't guess. the model can't read your mind, stop hoping it will
2. simplicity first: minimum code, no speculative abstractions. the moment you let Claude add "for future flexibility," you've added 200 lines you'll delete next quarter
3. surgical changes: touch only what you must. don't let it improve adjacent code, that's how PRs blow up
4. goal-driven execution: define success criteria upfront, loop until verified. without them Claude either loops forever or stops too early
5. use the model only for judgment calls: classification, drafting, summarization, extraction. NOT routing, retries, status-code handling, deterministic transforms. if code can answer, code answers
6. token budgets are not advisory: per-task 4000, per-session 30000. by message 40 of a long debug, Claude is re-suggesting fixes you rejected at message 5
7. surface conflicts, don't average them: two patterns in the codebase? pick one. Claude blending them is how errors get swallowed twice
8. read before you write: read exports, callers, shared utilities. Claude will happily add a duplicate function next to an identical one it never read
9. tests verify intent, not just behavior: a test that can't fail when business logic changes is wrong. all 12 of Claude's tests can pass while the function returns a constant
10. checkpoint every significant step: Claude finished steps 5 and 6 on top of a broken state from step 4. nobody noticed for an hour
11. match the codebase conventions: class components? don't fork to hooks silently. testing patterns assumed componentDidMount, hooks broke them without surfacing
12. fail loud: "completed successfully" with 14% of records silently skipped is the worst class of bug. surface uncertainty, don't hide it
what actually compounds instead of the next framework:
- the CLAUDE.md file as institutional memory across sessions
- eval-driven changes, not vibe-driven
- checkpoints over speed
- explicit conflicts over silent blending
- discipline over framework, every time
- one repo, one rules file, no exceptions
you don't need a better AI
you need better context engineering
complete playbook below ↓
@docmilanfar It is like saying, someone has already won the Nobel prize (ref: black hole work) and listing other (smaller) awards/achievements is like a waste of time.
Microsoft made 100B parameter models run on a single CPU.
bitnet.cpp: The official inference framework for 1-bit LLMs.
The math behind 1-bit LLMs is what makes them revolutionary.
Traditional LLMs use 16-bit floating point weights. Every parameter is a number like 0.0023847 or -1.4729.
When you run inference, you multiply these floats together. Billions of times. That's why you need GPUs, they're optimized for floating point matrix multiplication.
BitNet b1.58 uses ternary weights: {-1, 0, 1}.
That's not a simplification. That's a fundamental change in the math.
When your weights are only -1, 0, or 1:
→ Multiply by 1 = keep the value
→ Multiply by -1 = flip the sign
→ Multiply by 0 = skip entirely
Matrix multiplication becomes addition and subtraction.
No floating point operations. No GPU required.
This is why bitnet.cpp achieves:
→ 2.37x to 6.17x speedup on x86 CPUs
→ 1.37x to 5.07x speedup on ARM CPUs
→ 71.9% to 82.2% energy reduction on x86
→ 55.4% to 70.0% energy reduction on ARM
The speedups scale with model size. Larger models see bigger gains because there are more operations to simplify.
A 100B parameter model running at human reading speed (5-7 tokens/second) on a single CPU.
That's not optimization. That's a different paradigm.
Why 1.58 bits? Because log₂(3) ≈ 1.58. Three possible values = 1.58 bits of information per weight.
The key insight: These models aren't quantized after training. They're trained from scratch with ternary weights. The model learns to work within the constraint. No precision loss. No quality tradeoff.
The velocity in which Anthropic ships is unlike anything I've ever seen
I'm sorry, but we have to assume they have access to an AGI like model that nobody else in the world has correct?
They are simply holding it back so they can ship industry changing updates daily?