<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Codecora Dev</title>
    <description>The latest articles on DEV Community by Codecora Dev (codecoradev).</description>
    <link>https://dev.to/codecoradev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14152%2Fd599ab4d-f64a-4d87-a636-f4a3643c645d.png</url>
      <title>DEV Community: Codecora Dev</title>
      <link>https://dev.to/codecoradev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codecoradev"/>
    <language>en</language>
    <item>
      <title>A Small Transformer Trained in 1.5 Hours Beat Many LLMs on ARC</title>
      <dc:creator>Anaz S. Aji</dc:creator>
      <pubDate>Wed, 02 Sep 2026 06:56:56 +0000</pubDate>
      <link>https://dev.to/codecoradev/a-small-transformer-trained-in-15-hours-beat-many-llms-on-arc-49h9</link>
      <guid>https://dev.to/codecoradev/a-small-transformer-trained-in-15-hours-beat-many-llms-on-arc-49h9</guid>
      <description>&lt;p&gt;Mithil Vakde trained a small transformer from scratch in 1.5 hours on a rented RTX 5090. The compute cost came to about 67 cents. The model scored 44% on the ARC-AGI-1 public eval, one point behind TRM's 45% and in the same band that left DeepSeek R1, o3-mini, and Gemini 2.5 Pro behind when the TRM paper ran the comparison (&lt;a href="https://arxiv.org/abs/2510.04871" rel="noopener noreferrer"&gt;arXiv 2510.04871&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;This is the third post in his ARC series. The previous result went viral and drew public scrutiny from researchers including Lucas Beyer, Jeremy Howard, and Rohan Anil. The new one raises the score, cuts the cost, and answers every objection in a long appendix.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the model does
&lt;/h2&gt;

&lt;p&gt;Each puzzle becomes a sequence of tokenized grids. The transformer trains on those sequences from scratch at test time, using both the train puzzles and the eval puzzle inputs, with the eval labels hidden. Test-time training is not a loophole here. ARC is a meta-learning benchmark built around skill acquisition, and Chollet's original paper frames the whole thing as a measure of how efficiently a system gains new skills (&lt;a href="https://arxiv.org/abs/1911.01547" rel="noopener noreferrer"&gt;arXiv 1911.01547&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The architecture got a 2026 refresh: 8 layers, SwiGLU, RMSNorm, the NorMuon optimizer, 3D RoPE, and per-task embeddings. Inference augments each test input with color and dihedral permutations, inverts the augmentations, and submits the two most common outputs.&lt;/p&gt;

&lt;p&gt;The biggest change is the loss function. Previous versions trained on input and output tokens. This one trains on output tokens only, which makes the approach supervised. Score went from 40% to 44%. Vakde admits he does not fully understand why, and the training loss got worse even as scores improved. His guess is finite model capacity. The ablations back him up on what carries the result: drop the 3D RoPE and the score falls to about 24%, drop the per-task embeddings and it falls to about 24%. Representations, not compute, are doing the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lineage it joins
&lt;/h2&gt;

&lt;p&gt;None of these systems pretrain. They learn from the benchmark's roughly thousand examples:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Parameters&lt;/th&gt;
&lt;th&gt;ARC-AGI-1&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CompressARC&lt;/td&gt;
&lt;td&gt;76K&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;&lt;a href="https://arxiv.org/abs/2512.06104" rel="noopener noreferrer"&gt;arXiv 2512.06104&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HRM&lt;/td&gt;
&lt;td&gt;27M&lt;/td&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://arxiv.org/abs/2506.21734" rel="noopener noreferrer"&gt;arXiv 2506.21734&lt;/a&gt;; score from &lt;a href="https://arxiv.org/abs/2510.04871" rel="noopener noreferrer"&gt;2510.04871&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TRM&lt;/td&gt;
&lt;td&gt;7M (see caveats)&lt;/td&gt;
&lt;td&gt;45%&lt;/td&gt;
&lt;td&gt;&lt;a href="https://arxiv.org/abs/2510.04871" rel="noopener noreferrer"&gt;arXiv 2510.04871&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vakde's model&lt;/td&gt;
&lt;td&gt;small (1.5 hrs training)&lt;/td&gt;
&lt;td&gt;44%&lt;/td&gt;
&lt;td&gt;&lt;a href="https://mvakde.github.io/blog/44-on-arc-1/" rel="noopener noreferrer"&gt;author's blog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In about a year, from-scratch systems went from solving a fifth of the eval to nearly half of it, and the cost per result collapsed from research-cluster budgets to spare change on a rented GPU.&lt;/p&gt;

&lt;p&gt;Vakde also measured what happens when you strip his advantages. Restricting training data to ARC-1 plus ConceptARC still scores about 40%. A CompressARC-style unsupervised variant drops to about 18%. He thinks 65% is reachable within the current framework, and a union of solved tasks across his own runs already reached 55%. One request to contributors: do not add more training data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the skeptics have a point
&lt;/h2&gt;

&lt;p&gt;The 67-cent figure deserves a careful read. It counts lifetime compute: training from initialization plus inference on all tasks, which works because every task is trained at once. Dividing that total by task count would amortize it unfairly against models charged per task, and Vakde now compares only against TRM, HRM, and CompressARC for exactly this reason. LLM cost figures, on the other side, leave out pretraining entirely, so no single cost axis treats every approach the same.&lt;/p&gt;

&lt;p&gt;Parameter claims need the same scrutiny. He argues TRM's famous "7M parameters" leaves out O(100M+) trained embedding weights, and that "7M active weights" would be the honest label. Same caution for HRM.&lt;/p&gt;

&lt;p&gt;The score itself stays humble. 44% means 56% of puzzles still fail, and 7% on ARC-2 is early days. OpenAI's o1 reached 75% on ARC-1 through massive post-training (&lt;a href="https://arxiv.org/abs/2412.04604" rel="noopener noreferrer"&gt;ARC Prize 2024 report&lt;/a&gt;), and frontier systems still lead the private leaderboard. This result is about efficiency per training dollar, not about beating GPT-class models across the board. Public eval scores for LLMs are also polluted, since the answers circulate on the internet and end up in training data.&lt;/p&gt;

&lt;p&gt;And this is one researcher's unreviewed work. The previous round got picked apart in public, and while the appendix answers the objections convincingly, independent replication is still thin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Efficiency without the training bill
&lt;/h2&gt;

&lt;p&gt;The pattern matters more to us than the puzzle. Small-model efficiency used to arrive with an invoice: distillation runs, quantization-aware training pipelines, weeks of compute before the first benchmark.&lt;/p&gt;

&lt;p&gt;Vakde's result says the invoice is optional on the reasoning side: train from scratch at test time, in 1.5 hours, for 67 cents. Our own work says the same on the storage side. &lt;a href="https://github.com/codecoradev/vecq" rel="noopener noreferrer"&gt;vecq&lt;/a&gt;, our training-free vector quantization library, gets its 4-bit and 5-bit codes from Lloyd-Max centroids that are fixed constants. There is no training pass to pay for at all.&lt;/p&gt;

&lt;p&gt;In our benchmarks, &lt;a href="https://blog.codecora.dev/vecq-4-bit-vector-search/" rel="noopener noreferrer"&gt;4-bit codes hit recall@10 of 0.958 at 5.98x compression, scanning at 0.89 ms per query on ARM&lt;/a&gt;, and the current release defaults to 5-bit at 4.79x compression with 0.979 &lt;a href="mailto:recall@10"&gt;recall@10&lt;/a&gt;. &lt;a href="https://blog.codecora.dev/quantization-cpu-to-96gb-and-embeddings/" rel="noopener noreferrer"&gt;The same quantization math scales all the way up to an 87GB model on a CPU&lt;/a&gt;. Inside our memory engine, the pipeline reached &lt;a href="https://blog.codecora.dev/uteke-vs-chromadb-vs-mem0-benchmark/" rel="noopener noreferrer"&gt;98.2% recall against ChromaDB and Mem0&lt;/a&gt; without any learned quantizer. The brute-force scan does give back some speed to HNSW, and &lt;a href="https://blog.codecora.dev/why-hnsw-vector-index-uteke/" rel="noopener noreferrer"&gt;why we pick that trade&lt;/a&gt; is an architectural choice for edge hardware, not an accident.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to watch
&lt;/h2&gt;

&lt;p&gt;The interesting shift is the price of admission for credible efficiency results: no pretraining run, one GPU, under two hours, spare change. Chollet's skill-acquisition framing finally has a small-model track with real momentum behind it, and Vakde argues the organizers should go further and ban offline pretraining to make ARC a true sample-efficiency test. His own result is the existence proof that such a rule is survivable.&lt;/p&gt;

&lt;p&gt;The author believes 65% is reachable and that hand-written GPU kernels could cut his costs another 10x. Either would have sounded like trolling a year ago.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Mithil Vakde, &lt;a href="https://mvakde.github.io/blog/44-on-arc-1/" rel="noopener noreferrer"&gt;"44% on ARC-AGI-1 in 67 cents"&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2510.04871" rel="noopener noreferrer"&gt;"Less is More: Recursive Reasoning with Tiny Networks"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2506.21734" rel="noopener noreferrer"&gt;"Hierarchical Reasoning Model"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2512.06104" rel="noopener noreferrer"&gt;"ARC-AGI Without Pretraining"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Francois Chollet, &lt;a href="https://arxiv.org/abs/1911.01547" rel="noopener noreferrer"&gt;"On the Measure of Intelligence"&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2412.04604" rel="noopener noreferrer"&gt;"ARC Prize 2024: Technical Report"&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;This article is crossposted with &lt;a href="https://blog.codecora.dev/small-transformer-1-5-hours-arc/" rel="noopener noreferrer"&gt;blog.codecora.dev&lt;/a&gt; as the canonical source.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>vectorsearch</category>
      <category>quantization</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>Why bigger context windows won't kill memory systems</title>
      <dc:creator>Anaz S. Aji</dc:creator>
      <pubDate>Wed, 02 Sep 2026 03:57:24 +0000</pubDate>
      <link>https://dev.to/codecoradev/why-bigger-context-windows-wont-kill-memory-systems-1fmh</link>
      <guid>https://dev.to/codecoradev/why-bigger-context-windows-wont-kill-memory-systems-1fmh</guid>
      <description>&lt;p&gt;A claim keeps making the rounds: context windows are at a million tokens and climbing, so external memory is a stopgap that better models will make obsolete. If that's true, we picked a strange moment to publish a memory benchmark. We weren't worried, but we did want to know what the evidence says. So we read the papers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a million tokens does to information
&lt;/h2&gt;

&lt;p&gt;The seminal result is Liu et al's "Lost in the Middle" (&lt;a href="https://arxiv.org/abs/2307.03172" rel="noopener noreferrer"&gt;arXiv 2307.03172&lt;/a&gt;). Tested on multi-document QA and key-value retrieval, models performed best when relevant information sat at the beginning or end of the context, and degraded hard when it sat in the middle.&lt;/p&gt;

&lt;p&gt;For a while you could hope that was an engineering wart. Then a 2026 paper derived the same U-shaped retrieval profile from a theoretical model of attention dynamics (&lt;a href="https://arxiv.org/abs/2605.09213" rel="noopener noreferrer"&gt;arXiv 2605.09213&lt;/a&gt;). The position bias falls out of the math. Bigger windows inherit it. They don't remove it.&lt;/p&gt;

&lt;p&gt;Practice matches theory. In a white-box study of coding agents, pass rate fell from 8 of 10 runs in a clean 10,991-character context to 3 of 10 runs at 299,140 characters, and padding the context with irrelevant material hurt as much as relevant code (&lt;a href="https://arxiv.org/abs/2607.17937" rel="noopener noreferrer"&gt;arXiv 2607.17937&lt;/a&gt;). Half the drop had nothing to do with relevance.&lt;/p&gt;

&lt;p&gt;Long-horizon search shows the same shape. Across four flagship models and three benchmarks, researchers documented "premature termination": models give up or answer with falling confidence long before they approach the window limit (&lt;a href="https://arxiv.org/abs/2606.29718" rel="noopener noreferrer"&gt;arXiv 2606.29718&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  The economics nobody mentions
&lt;/h2&gt;

&lt;p&gt;Everything inside the window is re-paid on every call, in every session. A fact from last March costs the same as something the user said ten seconds ago, every single time you send it.&lt;/p&gt;

&lt;p&gt;Retrieval inverts that curve. Store once, then pay for a small set of relevant records when they're needed.&lt;/p&gt;

&lt;p&gt;There's a real trade-off inside memory design itself. Keep raw records and you preserve detail but burn budget. Consolidate and you cover more ground per token but risk dropping a query-critical fact (&lt;a href="https://arxiv.org/abs/2607.17545" rel="noopener noreferrer"&gt;arXiv 2607.17545&lt;/a&gt;). Both strategies argue for the same thing: a small, deliberately chosen working set, not a firehose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory is not a small context window
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2410.10813" rel="noopener noreferrer"&gt;LongMemEval&lt;/a&gt; (arXiv 2410.10813) breaks long-term memory into five measurable abilities: information extraction, multi-session reasoning, temporal reasoning, knowledge updates, and abstention. Look at that list. None of them mean "hold more tokens at once."&lt;/p&gt;

&lt;p&gt;Knowledge updates are the cleanest example. When a user changes deploy targets, the old value has to be overwritten. In a million-token window, the stale fact and the current one both sit there, and the model has to guess which wins. A memory system that tracks updates resolves it by design.&lt;/p&gt;

&lt;p&gt;The field is still moving. &lt;a href="https://arxiv.org/abs/2605.12493" rel="noopener noreferrer"&gt;LongMemEval-V2&lt;/a&gt; landed in May 2026 and pushes evaluation toward whether an agent becomes an experienced colleague in its environment. Nobody builds benchmarks for problems they consider solved.&lt;/p&gt;

&lt;h2&gt;
  
  
  When big context wins
&lt;/h2&gt;

&lt;p&gt;Credit where it's due. Reasoning over one large document you already have, one-shot analysis that needs the whole thing in view at once, needle-style lookups inside a single snapshot: if the world fits in the window and everything in it is current, fill it. Memory systems earn their keep when history is long and facts change across many sessions, which describes most real assistants after their first week.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our numbers, reproducible
&lt;/h2&gt;

&lt;p&gt;We build a memory engine (&lt;a href="https://github.com/codecoradev/uteke" rel="noopener noreferrer"&gt;Uteke&lt;/a&gt;) and we test it the boring way. On LongMemEval-S with 500 questions, it scores &lt;a href="https://blog.codecora.dev/uteke-vs-chromadb-vs-mem0-benchmark/" rel="noopener noreferrer"&gt;98.2% recall_any@5&lt;/a&gt;. Then we &lt;a href="https://blog.codecora.dev/we-published-our-benchmark-then-we-tried-to-break-it/" rel="noopener noreferrer"&gt;re-ran the entire suite on a different CPU architecture&lt;/a&gt;: 107 of 108 questions produced identical rankings, and the one that moved was an adjacent-rank near-tie we traced to float summation order.&lt;/p&gt;

&lt;p&gt;The harness is in the repo. Run your own, and treat numbers you cannot reproduce, including ours, as marketing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdict
&lt;/h2&gt;

&lt;p&gt;Bigger windows raise the ceiling on working memory. Persistence, salience, and overwrite stay separate jobs, and the field is now measuring them directly. Context and memory do different jobs. The agents people keep coming back to are the ones that stopped starting from zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2307.03172" rel="noopener noreferrer"&gt;Lost in the Middle: How Language Models Use Long Contexts&lt;/a&gt; (arXiv 2307.03172)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2605.09213" rel="noopener noreferrer"&gt;Kinetic theory for Transformers and the lost-in-the-middle phenomenon&lt;/a&gt; (arXiv 2605.09213)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2607.17937" rel="noopener noreferrer"&gt;When and How Context Rot Appears in Coding Agents&lt;/a&gt; (arXiv 2607.17937)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2606.29718" rel="noopener noreferrer"&gt;Diagnosing and Mitigating Context Rot in Long-horizon Search&lt;/a&gt; (arXiv 2606.29718)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2607.17545" rel="noopener noreferrer"&gt;Retain or Consolidate? Budget-Dependent Operator Selection for Language Agent Memory&lt;/a&gt; (arXiv 2607.17545)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2410.10813" rel="noopener noreferrer"&gt;LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory&lt;/a&gt; (arXiv 2410.10813)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2605.12493" rel="noopener noreferrer"&gt;LongMemEval-V2: Evaluating Long-Term Agent Memory Toward Experienced Colleagues&lt;/a&gt; (arXiv 2605.12493)&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Full write-up lives on &lt;a href="https://blog.codecora.dev/context-vs-memory/" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;, canonical source for this post.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>memory</category>
      <category>benchmark</category>
    </item>
    <item>
      <title>We re-ran our benchmark on a different CPU architecture. 107 of 108 matched.</title>
      <dc:creator>Anaz S. Aji</dc:creator>
      <pubDate>Tue, 01 Sep 2026 14:06:41 +0000</pubDate>
      <link>https://dev.to/codecoradev/we-re-ran-our-benchmark-on-a-different-cpu-architecture-107-of-108-matched-2n6a</link>
      <guid>https://dev.to/codecoradev/we-re-ran-our-benchmark-on-a-different-cpu-architecture-107-of-108-matched-2n6a</guid>
      <description>&lt;p&gt;We publish benchmarks for Uteke, our open-source memory engine. The headline this week: 98.2% recall on LongMemEval-S. 500 questions, zero config, no LLM in the retrieval path.&lt;/p&gt;

&lt;p&gt;Then we asked the question every benchmark should answer: does the number survive on different hardware?&lt;/p&gt;

&lt;p&gt;The published run came from cloud x86 infrastructure. The re-run happened on a 4-core ARM desktop. Same v0.16.0 binary, same public harness, 108-question subset.&lt;/p&gt;

&lt;p&gt;We compared per question, ranking against ranking.&lt;/p&gt;

&lt;p&gt;107 of 108 identical.&lt;/p&gt;

&lt;p&gt;The one difference is the interesting part. Both runs retrieved the same top-10 sessions. One session sat at rank 5 in the published run and rank 6 in the re-run. Our retrieval fuses two rankings with Reciprocal Rank Fusion, which is floating-point math all the way down. Cross a CPU architecture boundary and near-ties can round differently. That is the whole story: one adjacent-rank flip, and the subset aggregate moved from 100.0% to 99.4%.&lt;/p&gt;

&lt;p&gt;If you compare memory systems for a living, the field guide we wrote alongside this matters more than our numbers. Check what the figure is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recall_any@K means at least one gold session lands in the top K. recall_all@K means all of them. Vendors mostly publish the first family. Our own run scores 98.2% on the first and 88.0% on the second, from the same data. Ten honest points apart.&lt;/li&gt;
&lt;li&gt;The cutoff matters. Recall@15 is easier than &lt;a href="mailto:Recall@5"&gt;Recall@5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sample size matters. 100 questions is a smoke test, 500 is a validation run.&lt;/li&gt;
&lt;li&gt;Version and date matter. Benchmarks are snapshots of moving software.&lt;/li&gt;
&lt;li&gt;The harness being public matters most. A table is marketing. A harness you can clone is a benchmark.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full post has the comparison chart with per-metric disclosures, the full field table (Mnemosyne, MemPalace, agentmemory, Supermemory, each with its metric labeled), and what we deliberately do not claim:&lt;/p&gt;

&lt;p&gt;Read the full breakdown: &lt;a href="https://blog.codecora.dev/we-published-our-benchmark-then-we-tried-to-break-it/" rel="noopener noreferrer"&gt;https://blog.codecora.dev/we-published-our-benchmark-then-we-tried-to-break-it/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't trust our benchmark. Run your own. The harness and reproduction results are in the repo.&lt;/p&gt;

&lt;p&gt;Cross-posted from the CodeCora blog, where we write about local-first AI infrastructure.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>benchmark</category>
      <category>rust</category>
      <category>llm</category>
    </item>
    <item>
      <title>An 87GB model ran on a CPU at 8 tok/s. Quantization did that.</title>
      <dc:creator>Anaz S. Aji</dc:creator>
      <pubDate>Tue, 01 Sep 2026 06:44:17 +0000</pubDate>
      <link>https://dev.to/codecoradev/an-87gb-model-ran-on-a-cpu-at-8-toks-quantization-did-that-57km</link>
      <guid>https://dev.to/codecoradev/an-87gb-model-ran-on-a-cpu-at-8-toks-quantization-did-that-57km</guid>
      <description>&lt;p&gt;Someone on r/LocalLLaMA benchmarked Qwen3.8-Flash-Next in llama.cpp from CPU-only all the way to 96GB of VRAM. The model file is 87.2 GiB. On a plain CPU it decodes at 8.34 tok/s. With the full 96GB, 109 tok/s.&lt;/p&gt;

&lt;p&gt;The number that looks like a party trick is the CPU one. It is a compression story. The weights are 4-bit. At 16-bit the file would be around 4x bigger, north of 300GB, and no consumer setup loads that, GPU or not.&lt;/p&gt;

&lt;p&gt;Two more findings from the benchmark worth stealing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;At 245K context, the 96GB advantage over 24GB shrinks from 2.80x to 1.45x. Long context flattens everything.&lt;/li&gt;
&lt;li&gt;Dropping the model's 27.2 GiB embedding table onto the GPU cut decode from 108.5 to 1.95 tok/s. RAM placement was 55.6x faster. Where a tensor lives matters as much as how much VRAM you have.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why this matters here: embeddings hit the same wall at smaller scale. Every f32 embedding at 768 dims costs 3,072 bytes. A 100k-vector agent memory is about 300MB. Fine on a server, real money on a phone.&lt;/p&gt;

&lt;p&gt;We built vecq for that. Training-free vector quantization in Rust (Apache-2.0, crate: vecq-core). No calibration data, deterministic results across platforms. On real EmbeddingGemma vectors: 4.78x smaller at default width (642 bytes/vector) with recall@10 of 0.979, and the index builds 14x faster than HNSW.&lt;/p&gt;

&lt;p&gt;Honest trade: search is brute force, about 14x slower than HNSW at default width. Made for on-device indexes in the thousands of vectors, not million-vector servers. The file format is versioned and readers accept older versions, so indexes keep loading across releases.&lt;/p&gt;

&lt;p&gt;Full breakdown with the benchmark tables is on the blog:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://blog.codecora.dev/quantization-cpu-to-96gb-and-embeddings/" rel="noopener noreferrer"&gt;https://blog.codecora.dev/quantization-cpu-to-96gb-and-embeddings/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/codecoradev/vecq" rel="noopener noreferrer"&gt;https://github.com/codecoradev/vecq&lt;/a&gt;&lt;br&gt;
Crate: &lt;a href="https://crates.io/crates/vecq-core" rel="noopener noreferrer"&gt;https://crates.io/crates/vecq-core&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>llm</category>
      <category>vectors</category>
      <category>benchmark</category>
    </item>
  </channel>
</rss>
