Julia 1: A 144M-Parameter Decision Model Trained for $104 Supersonic Labs, a small AI lab in Brazil, released Julia 1, a 144.3-million-parameter decision model that selects among 2 to 20 supplied options rather than generating text, trained for roughly US$104.08 in cloud GPU spending and published on Hugging Face under Apache 2.0. The model runs on CPU-only hardware, including tablets and older laptops, with 550.5 MiB of weights fitting in under 400 MB of RAM, and scored 71.50% across 154,648 examples on the MASSIVE scenario-classification benchmark. The team built it by adapting Johns Hopkins CLSP's mmBERT-small encoder with a decision head, and reports a CPU re-run at 72.55% on typed decisions, essentially matching the GPU result. A small AI lab in Brazil just released a model with an unusual claim. Not "beats GPT." Not "agentic superintelligence." The claim is this: a 144.3-million-parameter model that picks the right answer from a list you give it, runs on a CPU, on a tablet, on a 12-year-old laptop class of chip, and the entire training cost about R$540. That is US$104.08. The model is Julia 1, from Supersonic Labs. It went up on Hugging Face https://huggingface.co/SupersonicLabs/Julia-1 under Apache 2.0. If you read my piece on Jev vs Laya https://dev.to/jamilxt/jev-vs-laya-the-same-ai-idea-one-closed-and-one-open-3c6e , this is a third entrant in the same category, and in one benchmark it beats both. Most production AI pipelines do not need text generation. They need a label. When a support ticket arrives, you do not want a paragraph about billing. You want one word: billing . A large language model does this expensively. It streams tokens like "The correct category is: billing" so your code can parse the label back out. A decision model skips all of that. You supply a context, a question, and 2 to 20 options. The model returns scores for each option in the order you gave them. Julia 1 handles three question types through one interface: Because the model never generates text, it cannot produce a malformed answer. A wrong label is still possible. A broken JSON string is not. The team published their evaluation from September 24, 2026, against the Jev reference values from the same protocol. Three wins, one honest loss: Why does Banking77 hurt? Each native call accepts 2 to 20 options. For 72 banking intent categories, Julia uses a Router that narrows candidates in groups before the final pick, and that narrowing can discard the correct answer. Long lists of similar categories are the model's concrete weak spot, and the team names it instead of hiding it. There is also breadth: on MASSIVE https://huggingface.co/datasets/AmazonScience/massive , a scenario-classification test across 52 locales, Julia 1 scored 71.50% over 154,648 examples. Portuguese came in at 86.25% and US English at 86.75%. Benchmarks on borrowed H200s are easy. The interesting table is the CPU one. A September 25 re-run on a plain CPU scored 72.55% on the typed decisions, essentially the same quality as the GPU run. No GPU. No API round trip. The weights are 550.5 MiB, and the process fits in under 400 MB of RAM on a tablet. This is the "runs on the hardware people already own" thesis made concrete. The team's explanation is refreshingly direct. Training a multilingual model from scratch needs data, infrastructure, time, and money they did not have. So they started from mmBERT-small https://huggingface.co/jhu-clsp/mmBERT-small , a multilingual encoder from Johns Hopkins CLSP, kept its tokenizer, added a decision head, and trained the model to score supplied options. Total cloud GPU spending for training and experiments: about R$540, or US$104.08. Julia 1 is not a fine-tuned Qwen model and not a chat model. It is a general-purpose encoder adapted into a specialist. The whole point is that the specialist task, choose among supplied options, is cheap to evaluate and cheap to serve. For Julia 2, they plan to drop mmBERT and build their own foundation architecture. That is a bigger bet, and the current page is open about limits: no external knowledge, no multi-step reasoning, and pilots of 100 examples are signals, not guarantees. If you currently use an LLM call to classify, route, or score, the economics deserve a look. Supersonic's planned hosted API is $0.025 per million input tokens and $0.00 for output. Jev charges $0.042 per million input tokens. Laya is free if you host it. And Julia 1 you can host yourself on a CPU you already own, at Apache 2.0, with this snippet from their model card: python from julia import load model engine = load model "Julia-1", device="cpu" result = engine.predict state="I was charged twice for the same order.", questions={ "team": { "type": "choice", "criteria": { "billing": "Billing and payment disputes", "shipping": "Shipping and delivery", "access": "Account access and login", }, }, }, The honest guidance, which the team itself gives: evaluate the exact questions and options from your own domain, keep option lists short, and keep a human in the loop for consequential decisions. A 73% router that costs nothing to run may still beat a 95% LLM pipeline that costs dollars per day, but only if you measure it on your data. The interesting story here is not that a 144M model beats a reference on three of four benchmarks. It is that the full loop, train, evaluate, publish weights, publish failures, publish the invoice, now costs about the price of a decent pair of headphones. When a two-person-class lab in Brazil can put a working, multilingual, Apache-licensed specialist model on Hugging Face for a hundred dollars, the barrier to useful, narrow AI stops being capital and starts being taste: choosing a real problem, picking the right foundation, and publishing your failures alongside your wins. That part has been true for a while in software. It is now true for models too. Links: Julia 1 announcement https://supersoniclabs.ia.br/julia-1/ · Hugging Face repo https://huggingface.co/SupersonicLabs/Julia-1 · mmBERT-small https://huggingface.co/jhu-clsp/mmBERT-small