<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Finetune on Ash Tewari</title><link>https://www.tewari.info/tag/finetune/</link><description>Recent content in Finetune on Ash Tewari</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Tue, 20 Oct 2026 01:52:51 +0000</lastBuildDate><atom:link href="https://www.tewari.info/tag/finetune/feed.xml" rel="self" type="application/rss+xml"/><item><title>All Things Open 2026 - Session Recommendations</title><link>https://www.tewari.info/2026/10/19/all-things-open-2026-session-recommendations/</link><pubDate>Tue, 20 Oct 2026 01:52:51 +0000</pubDate><guid>https://www.tewari.info/2026/10/19/all-things-open-2026-session-recommendations/</guid><description>&lt;p&gt;&lt;a class="link" href="https://2026.allthingsopen.org/" target="_blank" rel="noopener"&#10; &gt;All Things Open 2026&lt;/a&gt; is on in Raleigh! With more than 100 sessions and speakers, choosing what to attend is not easy.&lt;/p&gt;&#10;&lt;p&gt;I went through the conference program and shortlisted the sessions that caught my attention. My interests lean toward AI agents, software architecture, developer productivity, security, and data engineering, practical engineering challenges, along with a few interesting topics on model training, real-time AI, and emerging user interfaces.&lt;/p&gt;&#10;&lt;p&gt;AI coding assistants have evolved considerably. We&amp;rsquo;re now moving toward autonomous agents that can modify repositories, execute commands, provision infrastructure, and even deploy applications. But giving an agent the ability to write code is relatively easy. Making it reliable, secure, efficient, and useful in a real engineering environment is a much harder problem.&lt;/p&gt;&#10;&lt;h2 id="ai-coding-agents-and-developer-infrastructure"&gt;AI Coding Agents and Developer Infrastructure&#10;&lt;/h2&gt;&lt;h3 id="1-death-by-worktree-why-agent-sandboxes-choke-on-disk-io"&gt;1. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/death-by-worktree-why-agent-sandboxes-choke-on-disk-i-o" target="_blank" rel="noopener"&#10; &gt;Death by Worktree: Why Agent Sandboxes Choke on Disk I/O&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Bradley Hilton&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; Git worktrees and isolated sandboxes are becoming common approaches for running multiple coding agents concurrently. But filesystem performance can become a serious bottleneck. This session addresses an often-overlooked infrastructure problem: the I/O overhead associated with agent execution environments. Particularly relevant for anyone experimenting with parallel coding agents and multi-repository workflows.&lt;/p&gt;&#10;&lt;h3 id="2-building-functional-dev-environments-for-humans-and-agents"&gt;2. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/building-functional-dev-environments-for-humans-and-agents" target="_blank" rel="noopener"&#10; &gt;Building Functional Dev Environments for Humans and Agents&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Matyas Danter — Staff Solutions Engineer, Coder&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; AI agents need reproducible development environments just as much as human developers do. The talk explores practical approaches to managing development environments across monorepos, multiple repositories, and distributed teams.&lt;/p&gt;&#10;&lt;h3 id="3-ai-sandboxes-running-coding-agents-safely-in-production-grade-environments"&gt;3. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/ai-sandboxes-running-coding-agents-safely-in-production-grade-environments" target="_blank" rel="noopener"&#10; &gt;AI Sandboxes: Running Coding Agents Safely in Production-Grade Environments&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Shivay Lamba — Lead ML Engineer, Qualcomm&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; Coding agents execute commands and generate code that may not be entirely trustworthy. Sandboxing is becoming essential for safely scaling autonomous development.&lt;/p&gt;&#10;&lt;h3 id="4-sandboxing-ai-agents-in-the-enterprise-a-practitioner"&gt;4. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/sandboxing-ai-agents-in-the-enterprise-a-practitioners-guide-to-isolation-technologies" target="_blank" rel="noopener"&#10; &gt;Sandboxing AI Agents in the Enterprise: A Practitioner&amp;rsquo;s Guide to Isolation Technologies&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Balu Mathew — Machine Learning Engineering Technical Leader, Cisco&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; An architectural perspective on isolation technologies for enterprise AI agents. I&amp;rsquo;m particularly interested in understanding the security, performance, and operational trade-offs between different sandboxing approaches.&lt;/p&gt;&#10;&lt;h3 id="5-the-last-mile-of-ai-assisted-development"&gt;5. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/the-last-mile-of-ai-assisted-development" target="_blank" rel="noopener"&#10; &gt;The Last Mile of AI-Assisted Development&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speakers:&lt;/strong&gt; Colin Griffin and David Johnson — Krumware / SUSE&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; Generating code is only part of software delivery. Building, testing, deploying, and maintaining it remain substantial challenges. The session includes a look at extending Rancher using Epinio, an open-source Kubernetes application deployment platform. Worth considering for its practical platform-engineering angle, although the presentation has a vendor-specific component.&lt;/p&gt;&#10;&lt;h2 id="agent-security-permissions-and-governance"&gt;Agent Security, Permissions, and Governance&#10;&lt;/h2&gt;&lt;h3 id="6-you-can-give-any-agent-access-to-kubectl-but-how-do-you-make-one-that-should-have-access-to-kubectl"&gt;6. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/you-can-give-any-agent-access-to-kubectl-but-how-do-you-make-one-that-should-have-access-to-kubectl" target="_blank" rel="noopener"&#10; &gt;You Can Give Any Agent Access to kubectl. But How Do You Make One That Should Have Access to kubectl?&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Charles Johnson — Mezmo&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; Connecting an agent to Kubernetes is easy; deciding whether it should be trusted with cluster operations is not. This session challenges the assumption that giving agents write access to production systems must inevitably end in disaster. An interesting opportunity to explore controlled autonomy, operational safeguards, and the boundary between agent capabilities and permissions.&lt;/p&gt;&#10;&lt;h3 id="7-fine-grained-access-control-for-hosted-mcp-servers-you-don"&gt;7. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/fine-grained-access-control-for-hosted-mcp-servers-you-dont-own" target="_blank" rel="noopener"&#10; &gt;Fine-Grained Access Control for Hosted MCP Servers You Don&amp;rsquo;t Own&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Nick Taylor — Developer Advocate, Pomerium&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; One of the more practical security topics on my list. Nick demonstrates an identity-aware proxy that enforces per-tool authorization across hosted MCP servers without modifying them. The approach addresses credential sprawl, OAuth limitations, and tool-call auditing. Nick has presented extensively on MCP and Zero Trust security, including at Black Hat and other technical conferences. The demo uses open-source Pomerium.&lt;/p&gt;&#10;&lt;h3 id="8-ai-wrote-the-code--is-it-secure"&gt;8. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/ai-wrote-the-code-is-it-secure" target="_blank" rel="noopener"&#10; &gt;AI Wrote the Code – Is It Secure?&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Adhithi Ravichandran — Founder and Software Consultant, Surya Consulting&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; AI-generated code can introduce vulnerabilities even when it appears functionally correct. This session examines the security implications of AI-assisted software development. Adhithi&amp;rsquo;s software consulting background should offer a practitioner perspective on the security checks and engineering discipline needed before trusting AI-generated code in production.&lt;/p&gt;&#10;&lt;h2 id="model-training-real-time-ai-and-new-interfaces"&gt;Model Training, Real-Time AI, and New Interfaces&#10;&lt;/h2&gt;&lt;h3 id="9-the-beginners-guide-to-training-your-own-ai-coding-model-on-your-own-data"&gt;9. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/the-beginners-guide-to-training-your-own-ai-coding-model-on-your-own-data" target="_blank" rel="noopener"&#10; &gt;The Beginners Guide to Training Your Own AI Coding Model on Your Own Data&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Bekah Hawrot Weigel — The Paper Compute Company&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; I&amp;rsquo;m particularly interested in small, specialized coding models trained on custom datasets. Understanding how to prepare training data and adapt a model for specific coding tasks is becoming increasingly valuable. This should be a useful introduction for developers exploring model customization beyond prompting and RAG.&lt;/p&gt;&#10;&lt;h3 id="10-how-open-is-your-realtime-ai-stack"&gt;10. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/how-open-is-your-realtime-ai-stack" target="_blank" rel="noopener"&#10; &gt;How Open is your Realtime AI Stack?&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Omar Warraky — Senior Solutions Architect, LiveKit&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; Real-time voice AI requires considerably more than an LLM. Speech recognition, synthesis, media transport, orchestration, and latency management all matter. This session should be particularly interesting for understanding the open-source components and architectural choices available when building low-latency conversational applications.&lt;/p&gt;&#10;&lt;h3 id="11-where-is-my-futuristic-app-generative-ui-and-the-open-future"&gt;11. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/where-is-my-futuristic-app-generative-ui-and-the-open-future-2" target="_blank" rel="noopener"&#10; &gt;Where Is My Futuristic App? Generative UI and the Open Future&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speakers:&lt;/strong&gt; Mark Techson, Andrew Brogdon, and Marc Dougherty — Google&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; What happens when agents generate not just content but the user interface itself? This keynote explores Generative UI and the A2UI protocol, including a look at a working application&amp;rsquo;s codebase. Although Google-led, the focus on open protocols and actual implementation makes it worth watching.&lt;/p&gt;&#10;&lt;h3 id="12-to-boldly-go-data-science-exploration-with-ai-agents-ft-star-trek"&gt;12. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/to-boldly-go-data-science-exploration-with-ai-agents-ft-star-treks-lcars-theme" target="_blank" rel="noopener"&#10; &gt;To Boldly Go: Data Science Exploration with AI Agents (ft Star Trek&amp;rsquo;s LCARS Theme)&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Dawn Wages — Director, Community and Developer Relations, Anaconda&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; A creative approach to exploring data science through AI agents, using Star Trek&amp;rsquo;s LCARS interface as inspiration. This looks like an enjoyable opportunity to see how conversational agents and interactive interfaces can make data exploration more approachable.&lt;/p&gt;&#10;&lt;h2 id="software-engineering-and-the-developer-community"&gt;Software Engineering and the Developer Community&#10;&lt;/h2&gt;&lt;h3 id="13-when-code-costs-nothing-tech-debt-in-the-age-of-genai"&gt;13. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/when-code-costs-nothing-tech-debt-in-the-age-of-genai" target="_blank" rel="noopener"&#10; &gt;When Code Costs Nothing: Tech Debt in the Age of GenAI&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Rachel Stephens — Research Director, RedMonk&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; AI dramatically reduces the effort required to produce code, but does it reduce the long-term cost of maintaining software? This session examines how generative AI changes our understanding of technical debt, code ownership, and engineering accountability. This session should bring an independent industry-research perspective, making this particularly appealing as a counterbalance to AI productivity hype.&lt;/p&gt;&#10;&lt;h3 id="14-ai-tinkerers-raleigh-top-demos-of-the-year-and-their-community-impact"&gt;14. &lt;a class="link" href="https://2026.allthingsopen.org/sessions/ai-tinkerers-raleigh-top-demos-of-the-year-and-their-community-impact" target="_blank" rel="noopener"&#10; &gt;AI Tinkerers Raleigh: Top Demos of the Year and Their Community Impact&lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Danny Castro — AI Tinkerers Raleigh&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Why attend:&lt;/strong&gt; Sometimes the most interesting innovations come from local builders rather than major technology companies. This demo showcase highlights practical AI projects from the Raleigh community. A good opportunity to discover emerging tools, meet developers, and see what people are actually building.&lt;/p&gt;&#10;&lt;h2 id="final-thoughts"&gt;Final Thoughts&#10;&lt;/h2&gt;&lt;p&gt;Looking across these sessions, a few important themes stand out:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Agent infrastructure matters.&lt;/strong&gt; Sandboxing, and reproducible environments are becoming fundamental building blocks of AI-assisted development.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Security cannot depend on trusting the model.&lt;/strong&gt; Permission boundaries, isolation, authorization, and auditing must be enforced outside the agent itself.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;The software engineering bottleneck is shifting.&lt;/strong&gt; Generating code is becoming easier, while validation, maintainability, and production readiness remain difficult.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;See the &lt;a class="link" href="https://2026.allthingsopen.org/schedule#day=tuesday" target="_blank" rel="noopener"&#10; &gt;complete All Things Open Tuesday schedule&lt;/a&gt; for session times and locations.&lt;/p&gt;&#10;&lt;p&gt;Looking forward to seeing what the speakers and the open-source community have been working on!&lt;/p&gt;&#10;</description></item><item><title>Agentic finetuning using a custom harness</title><link>https://www.tewari.info/2026/09/24/agentic-finetuning-using-a-custom-harness/</link><pubDate>Fri, 25 Sep 2026 02:56:11 +0000</pubDate><guid>https://www.tewari.info/2026/09/24/agentic-finetuning-using-a-custom-harness/</guid><description>&lt;p&gt;The goal was to figure out whether a small model running on my own hardware could do the job of intent classification and structured parameter extraction  well enough for one of my use-cases - read a request like &amp;ldquo;add 8 spare tent stakes to the camping box&amp;rdquo; and turn it into something the application can act on.&lt;/p&gt;&#10;&lt;p&gt;I created an agentic fine-tuning and evaluation loop with a custom evaluation harness: an AI agent proposes one change at a time, a custom evaluation harness measures it against a frozen test set, and every run gets appended to a log with its settings, result and next decision. The agent does the all the work of dataset generation, training, evaluation and diagnosis.&lt;/p&gt;&#10;&lt;h2 id="setup"&gt;Setup&#10;&lt;/h2&gt;&lt;p&gt;I built a fixed test set of 45 requests covering nine intents, five cases each, and froze it. Every model, change and training run was measured against those same 45 cases. The output metrics of each run were: intent accuracy, meaning did it pick the right action, and parameter accuracy, meaning did it extract the right details. A third important number is: fallbacks, the count of cases where the model declined to answer and returned &amp;ldquo;unclear.&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;The OpenAI baseline (gpt-5.6-luna) was created and frozen. It scored 93.33% intent and 71.11% parameter accuracy with no fallbacks.&lt;/p&gt;&#10;&lt;p&gt;All local training ran on a consumer RTX 3060, in &lt;a class="link" href="https://learn.microsoft.com/en-us/windows/wsl/about" target="_blank" rel="noopener"&#10; &gt;WSL2&lt;/a&gt; with &lt;a class="link" href="https://docs.nvidia.com/cuda/wsl-user-guide/" target="_blank" rel="noopener"&#10; &gt;CUDA&lt;/a&gt;. &lt;a class="link" href="https://arxiv.org/abs/2106.09685" target="_blank" rel="noopener"&#10; &gt;LoRA&lt;/a&gt; &lt;a class="link" href="https://www.cactuscompute.com/blog/finetuning-needle" target="_blank" rel="noopener"&#10; &gt;fine-tuning&lt;/a&gt;, rank 16, alpha 32, learning rate 1e-4, batch size 4. A 15-epoch run takes about 20 minutes.&lt;/p&gt;&#10;&lt;p&gt;The entire source, including training data, eval harness, scripts and agent skill is on GitHub - &lt;a class="link" href="https://github.com/ashtewari/needle-tuner" target="_blank" rel="noopener"&#10; &gt;needle-tuner&lt;/a&gt;.&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://www.tewari.info/wp-content/needle-finetune-gpu-usage.png"&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;h2 id="part-1---needle2"&gt;Part 1 - needle2&#10;&lt;/h2&gt;&lt;p&gt;The first local comparison with &lt;a class="link" href="https://cactuscompute.com/blog/needle-2" target="_blank" rel="noopener"&#10; &gt;needle2&lt;/a&gt; model from &lt;a class="link" href="https://cactuscompute.com/needle" target="_blank" rel="noopener"&#10; &gt;Cactus&lt;/a&gt;. It scored 4.44% intent accuracy. The problem turned out to be how I was asking the question. I had given the model one abstract, generic &amp;ldquo;classify this&amp;rdquo; tool. I replaced it with eight concrete tools, one for each real action the application supports.&lt;/p&gt;&#10;&lt;p&gt;The result went to 62.22% intent and 68.89% parameter accuracy.&lt;/p&gt;&#10;&lt;p&gt;With this reasonable starting point, I &lt;a class="link" href="https://www.cactuscompute.com/blog/finetuning-needle" target="_blank" rel="noopener"&#10; &gt;fine-tuned&lt;/a&gt; on a small purpose-built training set and ran a structured loop: change one thing, measure against the frozen test set, write down the result.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Needle2 configuration&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Intent&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Base model, redesigned tools, no training&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;62.22%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;68.89%&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Best fine-tuned run (5 epochs, rank 8)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;64.44%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;62.22%&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Longer training (30 epochs)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;57.78%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;64.44%&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Heavier defaults&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;42.22%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;51.11%&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;The best training result gained two points on intent accuracy over no training at all, and lost six on parameters. More training made things worse. The heaviest run also refused to answer far more often, with 15 fallbacks against 9 for the untrained model. The results were noisy enough to make any single comparison suspect. Two runs of the identical best configuration measured 64.44% and 60.00%, so I stopped treating one good run as evidence of anything. Validation loss kept improving while held-out accuracy got worse. Had I watched the training dashboard instead of the frozen test set, I would have shipped a regression. I stopped at this point.&lt;/p&gt;&#10;&lt;h2 id="part-2---needle3"&gt;Part 2 - needle3&#10;&lt;/h2&gt;&lt;p&gt;A new version of the model family had shipped in the mean time, with a different architecture and a different native engine. Untrained, &lt;a class="link" href="https://cactuscompute.com/needle" target="_blank" rel="noopener"&#10; &gt;needle3&lt;/a&gt; measured 71.11% intent and 66.67% parameter accuracy with 7 fallbacks. I modified the agentic loop to support the new model and executed again.&lt;/p&gt;&#10;&lt;p&gt;A one-epoch smoke test scored 68.89% and 73.33%, which is one run on one epoch and proves nothing on its own. A full 30-epoch run at the wrapper defaults scored 71.11% and 66.67%, identical to the untrained base. However, the per-intent breakdown had shifted underneath, some intents up and some down, while the totals stayed flat. Validation loss bottomed out at epoch 13 and climbed for the remaining 17 epochs while training loss kept falling. Same &lt;a class="link" href="https://developers.google.com/machine-learning/crash-course/overfitting" target="_blank" rel="noopener"&#10; &gt;overfitting&lt;/a&gt; pattern &lt;a class="link" href="https://cactuscompute.com/blog/needle-2" target="_blank" rel="noopener"&#10; &gt;needle2&lt;/a&gt; had shown.&lt;/p&gt;&#10;&lt;h2 id="the-issue"&gt;The issue&#10;&lt;/h2&gt;&lt;p&gt;Instead of tuning another hyperparameter, I stopped reading aggregate scores and started reading individual failures.&lt;/p&gt;&#10;&lt;p&gt;The training data and the held-out test set agreed on which intent was correct. They disagreed on the convention for writing the parameters down.&lt;/p&gt;&#10;&lt;p&gt;The first problem was descriptive adjectives. For delete requests, the test set strips condition words from item names, so &amp;ldquo;the broken toaster&amp;rdquo; is expected to yield &amp;rsquo;toaster&amp;rsquo;. All 12 authored delete rows in my training data did the opposite, keeping &amp;lsquo;cracked mixing bowl&amp;rsquo; and &amp;rsquo;expired pain reliever&amp;rsquo; intact.&lt;/p&gt;&#10;&lt;p&gt;The second problem was a wrong key name. For inventory-viewing requests, the training data used a &amp;rsquo;location&amp;rsquo; key for the container slot while every other intent, and the test set, used &amp;lsquo;boxLabel&amp;rsquo;. It also carried a &amp;lsquo;scope&amp;rsquo; key that appears in zero held-out cases.&lt;/p&gt;&#10;&lt;p&gt;The model was learning my convention faithfully and being marked wrong for it, on 100% of those cases. That also explains why longer training hurt: more epochs meant learning the wrong answer more thoroughly.&lt;/p&gt;&#10;&lt;h2 id="the-fix"&gt;The Fix&#10;&lt;/h2&gt;&lt;p&gt;I corrected 12 delete rows and 20 view-inventory rows, regenerated the derived datasets, re-pinned the integrity hashes and re-ran the validation suite. No hyperparameter change and dropped Epoch count from 30 to 15, taken from the previous run&amp;rsquo;s validation-loss minimum.&lt;/p&gt;&#10;&lt;p&gt;Result: 82.22% intent and 75.56% parameter accuracy, 6 fallbacks.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Run&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Intent&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Parameter&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Fallbacks&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Needle2 base&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;62.22%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;68.89%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Needle2 best fine-tune&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;64.44%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;62.22%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;not recorded&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Needle3 base&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;71.11%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;66.67%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Needle3 fine-tuned, original data, 30 epochs&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;71.11%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;66.67%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Needle3 fine-tuned, corrected data, 15 epochs&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;82.22%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;75.56%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;OpenAI (frozen baseline)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;93.33%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;71.11%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;0&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;That is 11 points of intent accuracy over its own base model and 20 over &lt;a class="link" href="https://cactuscompute.com/blog/needle-2" target="_blank" rel="noopener"&#10; &gt;needle2&lt;/a&gt;&amp;rsquo;s base. It is also the first time a local model beat the hosted API on parameter accuracy, 75.56% against 71.11%. Intent accuracy is still 11 points behind.&lt;/p&gt;&#10;&lt;p&gt;The per-intent movement matches the diagnosis. Delete went from 80%/40% to 100%/80%. Search went from 60%/60% to 100%/100%. Update improved as well, since the bare-noun convention is shared by every intent that names an item.&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://developers.google.com/machine-learning/crash-course/overfitting" target="_blank" rel="noopener"&#10; &gt;Validation loss&lt;/a&gt; behaved differently too. With the corrected data it declined every one of the 15 epochs, with none of the mid-run turnaround the unfixed run showed. The contradictory labels had been generating the &lt;a class="link" href="https://developers.google.com/machine-learning/crash-course/overfitting" target="_blank" rel="noopener"&#10; &gt;overfitting&lt;/a&gt; signal themselves.&lt;/p&gt;&#10;&lt;h2 id="next"&gt;Next&#10;&lt;/h2&gt;&lt;p&gt;Parameter extraction already beats the API. Intent classification is 11 points behind, and most of the remaining gap sits in one diagnosed failure mode: deciding whether a vague request is actionable.&lt;/p&gt;&#10;&lt;p&gt;The next lever is contrastive training examples sitting right on that boundary. After that the options get expensive: changes to how the model produces its answers, training that explicitly teaches it what a wrong answer looks like, or a different architecture.&lt;/p&gt;&#10;&lt;p&gt;Hyperparameter tuning and the size of the training dataset should also be revisited to explore further improvements to intent classification.&lt;/p&gt;&#10;&lt;p&gt;Because the same 45 cases were used to decide which experiment to run next, they are now a &lt;a class="link" href="https://developers.google.com/machine-learning/crash-course/overfitting/dividing-datasets" target="_blank" rel="noopener"&#10; &gt;model-selection set rather than an unbiased final exam&lt;/a&gt;. Before anyone calls this production-ready it has to be tested against a separate set of cases it has never influenced.&lt;/p&gt;&#10;&lt;p&gt;The project also produced a reproducible pipeline along the way. A frozen test set, hash-pinned datasets, a documented training process, a log of every attempt including the failures, and a default path that validates without training and without calling paid APIs. That infrastructure is the reason the annotation issue was discoverable at all.&lt;/p&gt;&#10;</description></item></channel></rss>