<?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: Tyler Edwards</title>
    <description>The latest articles on DEV Community by Tyler Edwards (@tyler007).</description>
    <link>https://dev.to/tyler007</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4088298%2F6d881582-8f62-4da6-b85a-793162ef8815.webp</url>
      <title>DEV Community: Tyler Edwards</title>
      <link>https://dev.to/tyler007</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tyler007"/>
    <language>en</language>
    <item>
      <title>Think smaller: why specialist SLMs beat frontier models in production</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 22 Sep 2026 11:46:42 +0000</pubDate>
      <link>https://dev.to/tyler007/think-smaller-why-specialist-slms-beat-frontier-models-in-production-17gl</link>
      <guid>https://dev.to/tyler007/think-smaller-why-specialist-slms-beat-frontier-models-in-production-17gl</guid>
      <description>&lt;p&gt;Most agent tasks do not need a frontier model. The subtasks inside a production agent are largely repetitive and narrowly scoped, and a small language model of 1B to 8B parameters, fine-tuned on your production data, beats a frontier model on cost, latency and accuracy for that job. Serving a 7B runs roughly 10 to 30x cheaper than a 70B+ model.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/think-smaller?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Frontier models are overkill for most agent tasks. Specialised small language models beat them on cost, latency, and accuracy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The AI industry has spent three years in an arms race measured in billions of parameters, and somewhere along the way everyone agreed that the answer to every problem was a bigger model.&lt;/p&gt;

&lt;p&gt;Bigger clusters, bigger bills, bigger teams to manage the complexity. The implicit assumption is that general intelligence at scale is the end state and everything else is just waiting to catch up.&lt;/p&gt;

&lt;p&gt;Which is obviously great for the foundational teams pushing this agenda, were it not for the fact that the overwhelming majority of problems we throw AI at don't need otherworldly intelligence and infinite compute to solve.&lt;/p&gt;

&lt;p&gt;Llama, Phi, Qwen, Mistral: models that would have been considered frontier-grade two years ago are now freely available, fine-tuneable, and deployable on hardware you control. The performance gap that once justified the cost and lock-in of proprietary giants is now much slimmer, so the question is no longer "which frontier model should we use?" but rather "do we need a frontier model at all?"&lt;/p&gt;

&lt;p&gt;For most tasks, the honest answer is no.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is a frontier model overkill for most agent tasks?
&lt;/h2&gt;

&lt;p&gt;Using a frontier model on every task is like using a flamethrower to light a candle. Technically works, but your eyebrows and your budget are gone.&lt;/p&gt;

&lt;p&gt;The majority of subtasks in a deployed agentic system are repetitive, scoped, and non-conversational. Extract this field, classify this ticket, format this output, none of these require a model trained on the sum of human knowledge. They require a model that is fast, predictable, cheap to run, and tuned to behave exactly as expected in a well-defined context.&lt;/p&gt;

&lt;p&gt;In fact, on well-defined, repetitive tasks, specialised SLMs do not just cost a fraction of what frontier models cost, they outperform them. A model built specifically for one thing, trained on real examples of that thing, is better at that thing than a model trained to do everything.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which small models have beaten frontier models on benchmarks?
&lt;/h3&gt;

&lt;p&gt;And this holds even as the tasks get harder. Qwen2.5-Math-7B, running Microsoft's &lt;a href="https://arxiv.org/abs/2501.04519" rel="noopener noreferrer"&gt;rStar-Math&lt;/a&gt; reasoning framework, scores 90% on the MATH benchmark, beating OpenAI's o1-preview. John Snow Labs' &lt;a href="https://www.johnsnowlabs.com/evaluating-john-snow-labs-medical-llms-against-gpt4o-by-expert-review/" rel="noopener noreferrer"&gt;MedS&lt;/a&gt;, an 8B medical model, was preferred over GPT-4o by practising physicians in blind evaluation across every dimension: factuality, clinical relevance, and conciseness. &lt;a href="https://arxiv.org/abs/2402.09391" rel="noopener noreferrer"&gt;LlaSMol&lt;/a&gt;, a 7B chemistry model, achieves 93% exact match on molecular prediction tasks where GPT-4 scores under 5%. On &lt;a href="https://gorilla.cs.berkeley.edu/leaderboard.html" rel="noopener noreferrer"&gt;Berkeley's function-calling leaderboard&lt;/a&gt;, an 8B model held the top spot at the time of writing, beating GPT-4o and Claude 3.5 Sonnet.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Specialist model&lt;/th&gt;
&lt;th&gt;Params&lt;/th&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Model it beats&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;Qwen2.5-Math-7B with rStar-Math&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;MATH&lt;/td&gt;
&lt;td&gt;90%&lt;/td&gt;
&lt;td&gt;OpenAI o1-preview&lt;/td&gt;
&lt;td&gt;&lt;a href="https://arxiv.org/abs/2501.04519" rel="noopener noreferrer"&gt;rStar-Math, Microsoft&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;John Snow Labs MedS&lt;/td&gt;
&lt;td&gt;8B&lt;/td&gt;
&lt;td&gt;Blind physician review on factuality, clinical relevance and conciseness&lt;/td&gt;
&lt;td&gt;Preferred over GPT-4o on every dimension&lt;/td&gt;
&lt;td&gt;GPT-4o&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.johnsnowlabs.com/evaluating-john-snow-labs-medical-llms-against-gpt4o-by-expert-review/" rel="noopener noreferrer"&gt;John Snow Labs expert review&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LlaSMol&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;Molecular prediction, exact match&lt;/td&gt;
&lt;td&gt;93%&lt;/td&gt;
&lt;td&gt;GPT-4, under 5%&lt;/td&gt;
&lt;td&gt;&lt;a href="https://arxiv.org/abs/2402.09391" rel="noopener noreferrer"&gt;LlaSMol, OSU NLP&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top open function-calling specialist&lt;/td&gt;
&lt;td&gt;8B&lt;/td&gt;
&lt;td&gt;Berkeley function-calling leaderboard&lt;/td&gt;
&lt;td&gt;Top of the leaderboard at the time of writing&lt;/td&gt;
&lt;td&gt;GPT-4o and Claude 3.5 Sonnet&lt;/td&gt;
&lt;td&gt;&lt;a href="https://gorilla.cs.berkeley.edu/leaderboard.html" rel="noopener noreferrer"&gt;Berkeley function-calling leaderboard&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What does open-weights actually unlock for production AI?
&lt;/h2&gt;

&lt;p&gt;The capability trajectory of small open models has been striking, yet the capability of these models is not the most exciting piece, what open weights actually unlock is control.&lt;/p&gt;

&lt;p&gt;A frontier model you do not own, cannot audit, and cannot modify is a dependency, not infrastructure and certainly not your 'technical moat'. When it changes, your system changes. When it halts, your system halts. When the provider decides to deprecate a version or reprice the API, you absorb it. The case for specialised small models is not just that they are better. It is that they are yours.&lt;/p&gt;

&lt;p&gt;The physical dimension matters too. Frontier models run in data centres, behind APIs, with latency measured in hundreds of milliseconds and costs that compound with every token. In an agentic system where a single workflow might invoke a model thirty or forty times, that compounds fast. Serving a 7B SLM is roughly 10 to 30x cheaper in latency, energy, and compute than serving a 70 to 175B LLM. Small models can run on-premise, inside the security perimeter, on the device generating the data. A fraud detection model running locally, fine-tuned on that institution's own transaction patterns, makes faster decisions with no external dependency and no data crossing a network boundary. The performance is better, the risk profile and compliance conversation are entirely different.&lt;/p&gt;

&lt;p&gt;Even more exciting still (if you can believe it) is that a model small enough to run on a phone can be fine-tuned not just to a specific workflow but to a specific person. An agent that lives on your device and learns from how you actually work is a categorically different thing to one calling to a data centre every time you ask it something. We are moving from general intelligence in the cloud to personal intelligence in your pocket. That shift is bigger than most people are currently treating it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which fits your job, a frontier API or a specialist SLM?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Frontier model behind an API&lt;/th&gt;
&lt;th&gt;Specialist SLM you own&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Best at&lt;/td&gt;
&lt;td&gt;Open-ended reasoning and conversation&lt;/td&gt;
&lt;td&gt;Repetitive, scoped, non-conversational subtasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serving cost&lt;/td&gt;
&lt;td&gt;Compounds with every token, and one workflow may invoke the model thirty or forty times&lt;/td&gt;
&lt;td&gt;Roughly 10 to 30x cheaper at 7B than at 70 to 175B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Hundreds of milliseconds, over the network&lt;/td&gt;
&lt;td&gt;No network hop, runs where the data is&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where it runs&lt;/td&gt;
&lt;td&gt;A data centre, behind an API&lt;/td&gt;
&lt;td&gt;On-premise, inside the security perimeter, or on the device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;Version deprecations and repricing land on you&lt;/td&gt;
&lt;td&gt;Yours to audit, modify and version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure surface&lt;/td&gt;
&lt;td&gt;Vast and constantly shifting, answered with hand-written guardrails&lt;/td&gt;
&lt;td&gt;Narrow scope, tighter output distribution, predictable failures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup effort&lt;/td&gt;
&lt;td&gt;Write a prompt, get an answer, iterate, ship&lt;/td&gt;
&lt;td&gt;Instrumentation, curation, fine-tuning jobs, evals, versioning, a deployment you can swap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Production is the best training data you have
&lt;/h2&gt;

&lt;p&gt;Every invocation of a model in an agentic workflow is a natural source of high-quality training data. The prompts are well-defined, the expected outputs are narrow, and whether the workflow succeeded or failed is a clean signal. A listener at the model call interface, logging inputs, outputs, and downstream outcomes, accumulates exactly the dataset you need to continuously fine-tune a specialist model for that task, as the system runs. The production environment is generating its own improvement data in real time.&lt;/p&gt;

&lt;p&gt;This is where the SLM case becomes compelling beyond economics. You instrument the calls, cluster the patterns, fine-tune the specialists, and the system gets better with every run. What determines whether you actually close that loop is whether you have the infrastructure to capture it, label it, and act on it.&lt;/p&gt;

&lt;p&gt;That loop is what we build. Overmind turns your production traces into specialised models you own, automatically trained, benchmarked, and served.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why are specialist models easier to supervise?
&lt;/h3&gt;

&lt;p&gt;AI security has become a pretty bloated term, so stick with me here. The version of it that actually matters is not about firewalls or prompt injection. It is about knowing what your model is doing, and knowing when it is doing something it should not. Specialised models make that question answerable. When a model has a narrow, well-defined scope, you know what it should be doing, which means you know when it is doing something else. The output distribution is tighter, the failure modes are more predictable, and the feedback loop from production behaviour back to model improvement is shorter and more reliable.&lt;/p&gt;

&lt;p&gt;General models are a different problem entirely. The failure surface is vast, constantly shifting, and practically impossible to enumerate in advance. Guardrails are the industry's current answer, which is to say: a list of rules written by humans trying to statically account for an infinite and ever-changing set of ways a frontier model can go wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are small specialist models harder to train?
&lt;/h2&gt;

&lt;p&gt;Now I would love to just dunk on frontier models for the rest of this post, but there is a real counter-argument worth addressing. Calling an API is easy. You write a prompt, you get an answer, you iterate, you ship. The feedback loop is fast and the overhead is minimal. Building SLM-first infrastructure is a different proposition entirely.&lt;/p&gt;

&lt;p&gt;Fine-tuning a specialist model requires training data, which requires instrumentation, which requires someone to own it. You need pipelines to capture production traces, processes to curate and label them, and infrastructure to run fine-tuning jobs on a cadence that actually moves the needle. You need model versioning, evaluation harnesses, and a deployment setup that lets you swap models without taking down the system. None of this is impossibly hard, but none of it is free either.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters to us
&lt;/h2&gt;

&lt;p&gt;Everything in this post is, admittedly, not a neutral observation. &lt;a href="https://www.overmindlab.ai/about?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;We built Overmind&lt;/a&gt; on a specific bet: that the teams who win the next phase of agentic AI will be the ones who own their models, not the ones who rent the most powerful ones.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.overmindlab.ai/product?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;infrastructure to do that&lt;/a&gt;, fine-tuning pipelines, production observability, continuous improvement loops that do not require a dedicated ML team to run, that is what we are building. Not just because it is an interesting technical problem, but because without it the agentic future we are all so excited about, the one where AI runs diagnostics in hospitals or runs locally on your phone and adapts to you as an individual, simply cannot happen.&lt;/p&gt;

&lt;p&gt;So we are building that future.&lt;/p&gt;

&lt;p&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own, automatically trained, benchmarked, and served. If you are &lt;a href="https://docs.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;deploying agentic AI&lt;/a&gt;, get in touch.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Are small language models better than frontier models?
&lt;/h3&gt;

&lt;p&gt;For repetitive, scoped tasks they are. A model trained specifically for one job, on real examples of that job, outperforms a generalist on cost, latency and accuracy. Frontier models still win on open-ended reasoning and conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a specialist SLM?
&lt;/h3&gt;

&lt;p&gt;A small language model (typically 1B to 8B parameters) fine-tuned on a narrow task using your own production data. Llama, Phi, Qwen and Mistral are common open-weight bases.&lt;/p&gt;

&lt;h3&gt;
  
  
  How much cheaper is a 7B SLM compared to a 70B+ LLM?
&lt;/h3&gt;

&lt;p&gt;Roughly 10 to 30x cheaper in latency, energy and compute when self-hosted, and the gap widens at high request volumes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I run a specialist SLM on-device?
&lt;/h3&gt;

&lt;p&gt;Yes. 7B and 8B models run on modern phones and laptops, which enables per-user fine-tuning, offline operation, and no data leaving the device.&lt;/p&gt;

&lt;h3&gt;
  
  
  What do you need in place before you can run specialist models in production?
&lt;/h3&gt;

&lt;p&gt;Four things. Instrumentation that captures production traces, a process to curate and label them, somewhere to run fine-tuning jobs on a regular cadence, and model versioning plus evaluation harnesses so you can swap a model without taking the system down. None of it is impossibly hard, but none of it is free either.&lt;/p&gt;




&lt;p&gt;Tyler Edwards is Co-Founder and CEO of Overmind. He writes about agent infrastructure, fine-tuning, and what it takes to ship AI that actually improves in production. &lt;a href="https://www.linkedin.com/in/tyler-edwards-b393a5352/" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Prompt engineering vs fine-tuning: which one do you need?</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 08 Sep 2026 17:01:47 +0000</pubDate>
      <link>https://dev.to/tyler007/prompt-engineering-vs-fine-tuning-which-one-do-you-need-9n</link>
      <guid>https://dev.to/tyler007/prompt-engineering-vs-fine-tuning-which-one-do-you-need-9n</guid>
      <description>&lt;p&gt;Every LLM team hits the same fork eventually, either keep steering the prompt or start training the model. Here's how to read the signals before you burn a sprint finding out the hard way.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/prompt-engineering-vs-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A perspective on when to tinker with the prompt, and when to train your own model.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most teams building LLM applications start the same way. They write a system prompt, test it against a few examples, and ship. &lt;a href="https://docs.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Prompt engineering&lt;/a&gt; is cheap, fast, and reversible. &lt;a href="https://docs.overmindlab.ai/fine-tuning/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Fine-tuning&lt;/a&gt; used to be something only teams with a training pipeline and a GPU budget could afford. Things have changed but the order of operations hasn't.&lt;/p&gt;

&lt;p&gt;Both techniques steer model behaviour. Prompting changes what you say to the model. Fine-tuning changes the model itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt engineering vs fine-tuning, side by side
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feo6nxunorwj0hlfs2tgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feo6nxunorwj0hlfs2tgc.png" alt="Table comparing prompt engineering and fine-tuning across seven rows. Prompt engineering changes the input, lives in the context window, costs seconds with no infrastructure, needs no data or a handful of examples, reverses instantly, survives a model swap, and plateaus quickly. Fine-tuning changes the model's weights, lives in the model, costs GPU time and a training pipeline, needs thousands of labelled runs, reverses only by retraining, does not survive a model swap, and has a high ceiling bounded by data quality." width="799" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Prompt engineering&lt;/th&gt;
&lt;th&gt;Fine-tuning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What changes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The input&lt;/td&gt;
&lt;td&gt;The model's weights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Where it lives&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The context window&lt;/td&gt;
&lt;td&gt;The model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Seconds, no infrastructure&lt;/td&gt;
&lt;td&gt;GPU time and a training pipeline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data needed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None, or a handful of examples&lt;/td&gt;
&lt;td&gt;Thousands of labelled runs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reversibility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;td&gt;Only by retraining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Survives a model swap&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ceiling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plateaus quickly&lt;/td&gt;
&lt;td&gt;High, bounded by data quality&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why prompting is the right first move
&lt;/h2&gt;

&lt;p&gt;Prompt engineering means editing what enters the context window. No adjustment of the model's weights. You're changing the input and reading the output.&lt;/p&gt;

&lt;p&gt;For a new agent, that's almost always the correct starting point. You learn what the model can already do before you spend anything on training. Most of the behaviour changes you want, prompting will give you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to tell which regime you're in
&lt;/h2&gt;

&lt;p&gt;This isn't a one-time decision so much as a loop. You stay in prompt-engineering mode until the eval curve goes flat, then check whether you actually have what fine-tuning needs, a narrow task and real data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw18dpcxsa2e4yg0pdz3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw18dpcxsa2e4yg0pdz3o.png" alt="Decision flowchart. When new behavior is needed, ship prompt changes while the eval is still moving. Once the eval is flat for three to four changes, check whether you have a narrow task and a few thousand labeled runs: if not, build the dataset first; if yes, fine-tune." width="800" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ship prompt changes until the eval goes flat, then fine-tune.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Where you are&lt;/th&gt;
&lt;th&gt;What you're seeing&lt;/th&gt;
&lt;th&gt;What to do next&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;New behaviour needed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A gap between what the agent does and what it should do&lt;/td&gt;
&lt;td&gt;Ship a prompt change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Eval still moving&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Each change shifts the score&lt;/td&gt;
&lt;td&gt;Keep prompting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Eval flat for 3-4 changes, task is narrow, a few thousand labelled runs in hand&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plateau, and you have the ingredients&lt;/td&gt;
&lt;td&gt;Fine-tune&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Eval flat, but the task is broad or the labelled runs aren't there&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Plateau without the ingredients&lt;/td&gt;
&lt;td&gt;Build the dataset first&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where prompting hits its ceiling
&lt;/h2&gt;

&lt;p&gt;Prompting always runs out of road eventually, and the symptoms show up in predictable order:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The plateau.&lt;/strong&gt; Each prompt tweak moves the eval less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Whack-a-mole.&lt;/strong&gt; The instruction that fixes today's failure mode causes tomorrow's.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt bloat.&lt;/strong&gt; The system prompt keeps growing, slows the model down, and gets partially ignored.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paying rent.&lt;/strong&gt; You're re-sending the same correction on every single call.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, prompting stops being cheap. Engineering hours are the priciest line item in most LLM pipelines, and it's easy to burn a month nudging a prompt that plateaued weeks ago.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to fine-tune
&lt;/h2&gt;

&lt;p&gt;Fine-tuning updates a model's weights on examples of the behaviour you want until the model does it by default, without being told every time. It's worth trying when these conditions are met:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The task is narrow.&lt;/strong&gt; Fine-tuning sharpens a model on one job, not general capability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You have real data.&lt;/strong&gt; A few thousand labelled runs, ideally sampled from production traffic rather than synthetic examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost or latency matters.&lt;/strong&gt; A smaller, fine-tuned model can outperform a much larger general-purpose one carrying a bloated prompt, at a fraction of the inference cost.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>promptengineering</category>
      <category>finetuning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Open-weights LLMs vs frontier APIs: when to rent, when to own</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Mon, 07 Sep 2026 14:54:01 +0000</pubDate>
      <link>https://dev.to/tyler007/open-weights-llms-vs-frontier-apis-when-to-rent-when-to-own-4bdg</link>
      <guid>https://dev.to/tyler007/open-weights-llms-vs-frontier-apis-when-to-rent-when-to-own-4bdg</guid>
      <description>&lt;p&gt;Most AI products start on a frontier API and stay there until the bill, the latency or legal forces a rethink. Here's the practical case for when a self-hosted open-weights model is the better call, and the cost-crossover logic behind it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/open-weights-vs-frontier-apis?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Own your intelligence, or rent the API?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Developers start building AI products by tokenmaxxing. Calling frontier APIs and paying per token.&lt;/p&gt;

&lt;p&gt;Then the bill shows up. Or the agent feels slow. Or legal asks where the data goes. Suddenly "just use the API" might not be the right strategy.&lt;/p&gt;

&lt;p&gt;Underneath every AI product is one choice. Rent a frontier API, or own a model. Renting means closed weights, so someone else trains it, serves it, and sets the price. Owning means picking the model, post-training it and running &lt;strong&gt;self-hosted&lt;/strong&gt; or third-party inference.&lt;/p&gt;

&lt;p&gt;This piece is the practical guide to open vs closed models.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trade-offs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F98aciwgv3scz59bj3k3v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F98aciwgv3scz59bj3k3v.png" alt="Table comparing closed models and open models across seven rows. Closed models give the best capability out of the box, need no infrastructure, cost more with every token, add a network trip and a shared queue, send prompts outside your network, lock you to the vendor's pricing and retirement schedule, and swap with one line of code. Open models are strong and tunable to your task, run on infrastructure you own or buy, drop hard in cost after the upfront work, serve on dedicated hardware with lower time to first token, stay on your own servers or in your own cloud, leave you your stack and your weights, and need a retrain or a re-quantise to swap." width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Closed models (frontier API)&lt;/th&gt;
&lt;th&gt;Open models (open-weights)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Capability&lt;/td&gt;
&lt;td&gt;Best capability out of the box&lt;/td&gt;
&lt;td&gt;Strong, and tunable to your task&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure&lt;/td&gt;
&lt;td&gt;None needed&lt;/td&gt;
&lt;td&gt;Runs on infrastructure you own or buy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Costs more with every token&lt;/td&gt;
&lt;td&gt;Drops hard in cost after the upfront work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Adds a network trip and a shared queue&lt;/td&gt;
&lt;td&gt;Serves on dedicated hardware, with lower time to first token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;Sends prompts outside your network&lt;/td&gt;
&lt;td&gt;Stays on your own servers or in your own cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock-in&lt;/td&gt;
&lt;td&gt;Locks you to the vendor's pricing and retirement schedule&lt;/td&gt;
&lt;td&gt;Leaves you your stack and your weights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switching&lt;/td&gt;
&lt;td&gt;Swap with one line of code&lt;/td&gt;
&lt;td&gt;Needs a retrain or a re-quantise to swap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  LLM inference cost: when open-weights beat the API
&lt;/h2&gt;

&lt;p&gt;Renting feels cheap at the start, especially when showered with credits.&lt;/p&gt;

&lt;p&gt;Then usage grows. The bill grows and a painful chunk of that spend is frontier prices for work a smaller specialised model could do.&lt;/p&gt;

&lt;p&gt;Owning the model changes that. You pay upfront for a &lt;strong&gt;LoRA / QLoRA&lt;/strong&gt; fine-tune, inference setup and some evals. After that, &lt;strong&gt;per-token cost&lt;/strong&gt; is a fraction of the API. Somewhere on the volume axis the lines cross. That &lt;strong&gt;crossover point&lt;/strong&gt; is where a self-hosted open-weights LLM stops being a science project and starts being the cheaper path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3awdl03912ml1d8zr0v5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3awdl03912ml1d8zr0v5.png" alt="Chart of cost per month against tokens per month. The rent line rises linearly with usage; the own line is near-flat after an upfront build. Past the crossover point, every token is cheaper owned." width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is not theory. A LoRA fine-tune of a 7B-8B open-weights model on a few thousand trajectories often costs a few hundred dollars.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond cost: latency, data residency, and vendor lock-in
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Your agent feels sluggish
&lt;/h3&gt;

&lt;p&gt;A small model you serve has no hop to someone else's cluster and fewer parameters per forward pass. If your AI agent makes dozens of tool calls per task, &lt;strong&gt;200ms vs 2s&lt;/strong&gt; is not a benchmark flex, it is whether the product feels alive. Lower &lt;strong&gt;time to first token (TTFT)&lt;/strong&gt; compounds across the whole agent loop. Users notice the speed. They leave when it isn't there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your data cannot leave the building
&lt;/h3&gt;

&lt;p&gt;When you rent, prompts and completions leave your perimeter. For fintech, healthcare, or anyone under data-residency, GDPR, or HIPAA rules, that is not a preference. It is a hard no. A &lt;strong&gt;private LLM&lt;/strong&gt;, self-hosted or VPC-hosted open-weights, is not an optimisation. It is how you ship at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  The vendor moved the goalposts
&lt;/h3&gt;

&lt;p&gt;Renting means their roadmap, their rate limits, their deprecation calendar. When they sunset the model your agent was tuned around, you re-tune on their schedule. Owning means your inference stack and your weights. Still a dependency, but one &lt;strong&gt;you control&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use open-weights vs a frontier API
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Own (open-weights, self-hosted) when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;volume is high and climbing&lt;/li&gt;
&lt;li&gt;the task is narrow&lt;/li&gt;
&lt;li&gt;latency is a product problem&lt;/li&gt;
&lt;li&gt;data cannot leave your perimeter&lt;/li&gt;
&lt;li&gt;the model &lt;em&gt;is&lt;/em&gt; your edge&lt;/li&gt;
&lt;li&gt;you know what you are building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rent (frontier API) when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;volume is low or spiky&lt;/li&gt;
&lt;li&gt;the task is broad and messy&lt;/li&gt;
&lt;li&gt;latency is fine&lt;/li&gt;
&lt;li&gt;data has no residency limits&lt;/li&gt;
&lt;li&gt;raw frontier capability matters most&lt;/li&gt;
&lt;li&gt;you are still finding out&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ: fine-tuning open-weights vs using a frontier API
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do I need a team of ML engineers to fine-tune an open-weights LLM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. LoRA / QLoRA plus a managed inference host (Fireworks, Together, Modal, or vLLM on your own GPUs) is within reach of one strong engineer. The hard part is not GPUs. It is good training data and honest evals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which open-weights base model should I start with?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pick a family that fits your licence and task, such as Llama, Qwen, Mistral or DeepSeek. Start small. A 7B-8B model, fine-tuned on your task, handles more production work than most teams expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if a better frontier model ships next month?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you rent, you get the upgrade (until the API changes). If you own, you decide whether to re-tune. Here is the part people miss. A small model trained on &lt;em&gt;your&lt;/em&gt; production trajectories often still wins on &lt;strong&gt;your&lt;/strong&gt; cost, latency, and task metrics. That is the scoreboard that pays the bill, not the leaderboard screenshot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is my data really at risk on a frontier API?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For most consumer SaaS a zero-retention, no-training contract covers you. For regulated data, get an explicit guarantee in writing or run a private, self-hosted LLM. Do not guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fine-tuning on production data is the real moat
&lt;/h2&gt;

&lt;p&gt;Owning only works if your model is actually better at &lt;em&gt;your&lt;/em&gt; task than the rented one. Downloading open-weights does not get you there. Fine-tuning on your production data does. Traces, tool-call trajectories, preference pairs, real evals from real usage.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>opensource</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>How do you turn traces into a training dataset?</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Fri, 04 Sep 2026 10:17:42 +0000</pubDate>
      <link>https://dev.to/tyler007/how-do-you-turn-traces-into-a-training-dataset-1e9</link>
      <guid>https://dev.to/tyler007/how-do-you-turn-traces-into-a-training-dataset-1e9</guid>
      <description>&lt;p&gt;If you're running agents in production, you already have a training dataset sitting in your traces and most teams never look. Here's the four-stage pipeline for turning that raw telemetry into something you can actually fine-tune on.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/traces-to-training-dataset?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every agentic system can create its own training data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every agentic AI system you run is quietly writing its own training set, and most teams never use it.&lt;/p&gt;

&lt;p&gt;When an agent runs, it emits a stream of inputs and outputs: the prompt, the tool calls, the reasoning and the final answer. That stream is a trace, and once you standardise how you capture it (the &lt;a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/" rel="noopener noreferrer"&gt;OpenTelemetry GenAI semantic conventions&lt;/a&gt; is the default schema here) you have raw telemetry. A training dataset is narrower: a curated set of runs, scored against a spec, designed for fine-tuning jobs.&lt;/p&gt;

&lt;p&gt;Building a dataset like this is a four-stage pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F49c960qfuc3y5w2ayu38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F49c960qfuc3y5w2ayu38.png" alt="Pipeline diagram: 1 Capture every run as a trace, 2 Sample and pick what to label, 3 Label and score against your spec, 4 Build and format for training, then train the model. A dotted feedback loop feeds each week's new runs back into capture." width="799" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Four stages, then a weekly rebuild.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here's a worked example, using a refund agent, to show what each stage actually involves.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Capture every run as a trace
&lt;/h2&gt;

&lt;p&gt;If your agent is instrumented at all, you already have this part. Every run generates a trace: the goal it was given, every model call, every tool invocation, every observation from the environment, and the eventual outcome. That trace is the raw material everything downstream depends on.&lt;/p&gt;

&lt;p&gt;The industry is converging on a shared vocabulary for this. OpenTelemetry's GenAI working group has been building &lt;a href="https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/" rel="noopener noreferrer"&gt;standard span attributes for LLM calls&lt;/a&gt; since 2024, covering model name, token counts, latency, and tool execution as first-class fields rather than something each team invents from scratch. That matters more than it sounds like it should, because a trace schema you have to redesign every time you switch observability vendors is a trace schema nobody trusts enough to build a dataset on top of.&lt;/p&gt;

&lt;p&gt;This is also where a tool like &lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt; tends to sit. Its SDK wraps the model call interface directly, so a single &lt;code&gt;overmind.init()&lt;/code&gt; call captures every LLM invocation across OpenAI, Anthropic, Google Gemini and Agno, logging inputs, outputs, latency, token counts and errors without extra plumbing on your side. The point isn't the SDK itself. It's that capture has to be automatic and total, or the sampling and labelling stages downstream never get the raw material they need.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Sample, because you cannot label everything
&lt;/h2&gt;

&lt;p&gt;You should not try to label every run. Most of what an agent does in a given week is unremarkable, and reviewing all of it teaches a labelling team nothing it didn't already know. The job at this stage is picking which runs are worth a human's attention.&lt;/p&gt;

&lt;p&gt;Three strategies cover most cases:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sampling strategy&lt;/th&gt;
&lt;th&gt;What it gives you&lt;/th&gt;
&lt;th&gt;When to use it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Random&lt;/td&gt;
&lt;td&gt;An honest baseline of what the agent does on an ordinary day&lt;/td&gt;
&lt;td&gt;Every cycle, as the control slice you compare everything else against&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stratified&lt;/td&gt;
&lt;td&gt;Deliberate coverage of cases you already care about, such as a specific refund reason, a customer tier, or a tool that keeps timing out&lt;/td&gt;
&lt;td&gt;When a known segment matters more than the average run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure-weighted&lt;/td&gt;
&lt;td&gt;The most signal per run, because the runs that went wrong carry the most information&lt;/td&gt;
&lt;td&gt;When you have an error flag or a satisfaction score to sort on&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Out of the refund agent's 50,000 weekly runs, a reasonable pull is around 500: a random slice plus every run that hit an error or a low satisfaction score. Whatever strategy you pick, run it on a cadence, weekly to start, rather than treating it as a one-off export you remember to do after something breaks in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Label against what good actually looks like
&lt;/h2&gt;

&lt;p&gt;This is the step almost everyone skips, and it's the one that decides whether the dataset is worth anything.&lt;/p&gt;

&lt;p&gt;The instinct is to label by gut: skim a run, decide it feels fine, move to the next one. That works at a hundred runs and falls apart completely at ten thousand, mostly because "feels fine" means something slightly different to every reviewer and drifts over time even for the same reviewer. The alternative is writing down, explicitly, what good looks like, and scoring every sampled run against that spec.&lt;/p&gt;

&lt;p&gt;You're not starting from nothing here. Your agent's own codebase already encodes most of what it's supposed to do: the outputs it should produce, the tools it's allowed to call, the checks it runs before acting, the paths it should and shouldn't take. Read the code first and most of the labelling criteria fall directly out of it.&lt;/p&gt;

&lt;p&gt;For the refund agent, that read produces a checklist along these lines:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What it requires&lt;/th&gt;
&lt;th&gt;Example violation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Refund within terms&lt;/td&gt;
&lt;td&gt;Amount within the order value and the 30-day window&lt;/td&gt;
&lt;td&gt;Refunded a 90-day-old order&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No invented terms&lt;/td&gt;
&lt;td&gt;Only cites the published refund terms&lt;/td&gt;
&lt;td&gt;Quoted a returns rule that does not exist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Escalate disputes&lt;/td&gt;
&lt;td&gt;Hands chargebacks off to a human&lt;/td&gt;
&lt;td&gt;Auto-refunded a disputed charge&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Automating this scoring step is where LLM-as-judge techniques have become the practical default, since manually reviewing thousands of runs against a rubric doesn't scale. The approach has real limits worth knowing before you lean on it: research comparing LLM judges against human-labelled relevance data found &lt;a href="https://eugeneyan.com/writing/llm-evaluators/" rel="noopener noreferrer"&gt;strong rank correlation but only fair agreement on exact labels&lt;/a&gt;, and accuracy drops sharply on the more nuanced categories rather than the easy pass/fail calls. A &lt;a href="https://arxiv.org/html/2412.05579v2" rel="noopener noreferrer"&gt;survey of LLM-as-judge methods&lt;/a&gt; notes it emerged specifically because manually assessing helpfulness in training data got too expensive to do at scale by hand, which is exactly the tradeoff a labelling pipeline is making. Overmind runs this scoring as evaluators against a rubric you write. Six evaluator kinds cover it, from a deterministic check to an LLM judge, and every run is scored against a baseline before the result counts.&lt;/p&gt;

&lt;p&gt;The runs that fail a criterion, whatever the customer clicked afterward, are the highest-value training data you have. The labels encode your judgment about what good looks like, and that judgment is the one thing no generic tool can supply for you. Do the first pass yourself for the first month. It's the fastest way to find out what your criteria actually are, as opposed to what you assumed they were when you wrote the checklist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Build the training set
&lt;/h2&gt;

&lt;p&gt;Labelled runs aren't training examples yet. The last step shapes them for whatever method you're about to run, and the method decides the shape.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Supervised fine-tuning (SFT)&lt;/th&gt;
&lt;th&gt;Reinforcement learning (RL)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Which runs you keep&lt;/td&gt;
&lt;td&gt;Runs that passed every criterion&lt;/td&gt;
&lt;td&gt;Sampled runs with their criterion scores attached&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What a row holds&lt;/td&gt;
&lt;td&gt;An input-output pair of the behaviour you want repeated&lt;/td&gt;
&lt;td&gt;The run plus the scores, used as a reward signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What the model learns&lt;/td&gt;
&lt;td&gt;To imitate a fixed set of good examples&lt;/td&gt;
&lt;td&gt;To produce runs that score higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What labelling has to produce&lt;/td&gt;
&lt;td&gt;A pass/fail verdict per criterion&lt;/td&gt;
&lt;td&gt;A usable score per criterion, not just pass/fail&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Either way, the format needs to be consistent and machine-readable, with the goal and outcome attached to every run.&lt;/p&gt;

&lt;p&gt;This is also the stage where the case for smaller, specialised models gets concrete. Overmind's own research argues that &lt;a href="https://www.overmindlab.ai/research/think-smaller?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;every model invocation inside an agentic workflow is a natural source of high-quality training data&lt;/a&gt;, precisely because the prompts are narrow and well-defined and the pass/fail signal is clean, unlike open-ended chat data. A team that instruments its model calls, clusters the resulting patterns, and fine-tunes a specialist model on them ends up with a system that improves with every production run instead of one that's frozen at whatever a general-purpose model happened to learn at pretraining time.&lt;/p&gt;

&lt;p&gt;Which method you feed, supervised fine-tuning or RL, is &lt;a href="https://www.overmindlab.ai/research/types-of-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;its own separate decision&lt;/a&gt;. The dataset from steps 1 through 3 is what feeds either one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is the hard part
&lt;/h2&gt;

&lt;p&gt;None of these four steps is exotic on its own. What makes the whole thing difficult is that it never stops. Production keeps producing new traces, your criteria keep getting sharper as you find edge cases you didn't anticipate, and the dataset has to be rebuilt against what users actually did this week, not what they did last quarter. The dotted feedback line on that diagram at the top is the entire job.&lt;/p&gt;

&lt;p&gt;It's also exactly the gap most observability tooling leaves open. Datadog's own writeup on GenAI tracing gets at this directly: teams are encouraged to &lt;a href="https://www.datadoghq.com/blog/llm-otel-semantic-convention/" rel="noopener noreferrer"&gt;promote interesting production traces into curated, version-controlled "golden" datasets&lt;/a&gt; and layer evaluation metadata on top, which is essentially this same capture-to-label pipeline described from the observability side. An observability platform hands you the traces and stops there. Stitching production traces to behavioural training data to a deployed, improved model is work that mostly happens in spreadsheets and one-off scripts today, and it's the specific gap platforms like Overmind are built to close, running the optimise-evaluate-accept loop end to end instead of leaving it as a manual export.&lt;/p&gt;

&lt;p&gt;Owning that labelled dataset matters because differentiation in agentic AI increasingly lives in proprietary behavioural data, not in which foundation model you call. Anyone can capture traces. The labelled dataset built from them, tuned to your own definition of correct, is the thing actually worth owning.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>observability</category>
    </item>
    <item>
      <title>What are the different types of fine-tuning?</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 01 Sep 2026 15:56:43 +0000</pubDate>
      <link>https://dev.to/tyler007/what-are-the-different-types-of-fine-tuning-3mfa</link>
      <guid>https://dev.to/tyler007/what-are-the-different-types-of-fine-tuning-3mfa</guid>
      <description>&lt;p&gt;Picking a fine-tuning method usually comes down to one thing, whether you can write the ideal output yourself or can only judge one when you see it. Here's a practitioner rundown of SFT, RFT with GRPO, distillation and LoRA/QLoRA, and how to choose between them for your own task.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.overmindlab.ai/research/types-of-fine-tuning?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;overmindlab.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Supervised fine-tuning (SFT)
&lt;/h2&gt;

&lt;p&gt;SFT is where most people start, and most people should. You give the model input/output pairs and train it until it reproduces that pattern. It's teaching by worked example: here's the prompt, here's the answer, do more of this.&lt;/p&gt;

&lt;p&gt;You'll typically need a few thousand examples for a narrow task. The catch is that SFT only works if you know what "good" looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  LoRA and QLoRA
&lt;/h2&gt;

&lt;p&gt;LoRA doesn't compete with SFT or RFT.&lt;/p&gt;

&lt;p&gt;Full fine-tuning updates every weight in the model. That's slow, and it eats memory. &lt;a href="https://arxiv.org/abs/2106.09685" rel="noopener noreferrer"&gt;LoRA&lt;/a&gt; freezes the base model and trains a small set of adapter weights on top, which gets you most of the benefit for a fraction of the compute. &lt;a href="https://arxiv.org/abs/2305.14314" rel="noopener noreferrer"&gt;QLoRA&lt;/a&gt; pushes this further by quantising the frozen base model down to 4-bit before training the adapter. That's the reason a 7B model now fits on one consumer GPU instead of a rack of them.&lt;/p&gt;

&lt;p&gt;Tools worth knowing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://unsloth.ai/" rel="noopener noreferrer"&gt;Unsloth&lt;/a&gt; is open source and runs LoRA/QLoRA 2 to 5x faster with up to 80% less VRAM, using custom kernels and 4-bit quantisation. It's become the default starting point for solo builders.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://thinkingmachines.ai/tinker/" rel="noopener noreferrer"&gt;Tinker&lt;/a&gt;, from Thinking Machines Lab, is a managed LoRA API. It handles GPU scheduling and checkpointing but still lets you control the actual training algorithm. It &lt;a href="https://thinkingmachines.ai/news/announcing-tinker/" rel="noopener noreferrer"&gt;launched in October 2025&lt;/a&gt; and supports both SFT and RFT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt; is a model training platform. It runs LoRA fine-tuning on your agent traces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reinforcement fine-tuning (RFT)
&lt;/h2&gt;

&lt;p&gt;This used to just be called "RL," or RLHF if you wanted to impress someone.&lt;/p&gt;

&lt;p&gt;SFT needs you to write the correct answer. RFT only needs you to score it. You define a reward, hand it the model's output, and the model learns to produce completions that score higher across many attempts.&lt;/p&gt;

&lt;p&gt;Reach for this when good is easier to recognise than to demonstrate. I can't write the perfect customer support reply off the top of my head, but I can tell you whether one resolved the ticket, stayed on brand, and didn't promise something we don't offer. RFT is also the natural fit for agents: tool calls, multi-step retrieval, anything where success depends on the whole trajectory and not any single message.&lt;/p&gt;

&lt;p&gt;GRPO (Group Relative Policy Optimization) is the algorithm doing most of the RFT work right now. It came out of &lt;a href="https://arxiv.org/abs/2402.03300" rel="noopener noreferrer"&gt;DeepSeekMath&lt;/a&gt; and got famous when it trained &lt;a href="https://arxiv.org/abs/2501.12948" rel="noopener noreferrer"&gt;DeepSeek-R1&lt;/a&gt;. The trick is sampling a group of responses to the same prompt, then scoring each one against the group average instead of some absolute scale. That kills the need for a separate critic model, which is what made older methods like PPO so expensive to run. &lt;a href="https://arxiv.org/abs/2503.14476" rel="noopener noreferrer"&gt;DAPO&lt;/a&gt; and &lt;a href="https://arxiv.org/abs/2503.20783" rel="noopener noreferrer"&gt;Dr.GRPO&lt;/a&gt; are newer variants that patch specific instabilities GRPO runs into on long chain-of-thought outputs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Distillation
&lt;/h2&gt;

&lt;p&gt;Distillation is copying a big model's behaviour into a small one. Run your inputs through the big model, collect what it says, then train a smaller model to say the same things. You lose a little quality and gain a lot of speed, plus a much smaller bill.&lt;/p&gt;

&lt;p&gt;This is helpful when a frontier model already nails your task but is too slow or too expensive to run at real volume. It's also a big part of why small language models have taken off this past year. Teams distill a specialist model instead of shipping the 400B-parameter original into production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Picking one
&lt;/h2&gt;

&lt;p&gt;Once you know your task, the decision is mostly mechanical.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;What you must supply&lt;/th&gt;
&lt;th&gt;When to pick it&lt;/th&gt;
&lt;th&gt;Data volume&lt;/th&gt;
&lt;th&gt;Relative cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Supervised fine-tuning (SFT)&lt;/td&gt;
&lt;td&gt;Input/output pairs you already know are right&lt;/td&gt;
&lt;td&gt;You can write the ideal output yourself&lt;/td&gt;
&lt;td&gt;A few thousand examples for a narrow task&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reinforcement fine-tuning (RFT, usually GRPO)&lt;/td&gt;
&lt;td&gt;A reward function or judge that can score an attempt&lt;/td&gt;
&lt;td&gt;You can recognise a good output but can't write one, or success spans a whole agent trajectory&lt;/td&gt;
&lt;td&gt;Prompts plus a scorer, no written answers needed&lt;/td&gt;
&lt;td&gt;Highest, you sample many completions per prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distillation&lt;/td&gt;
&lt;td&gt;A teacher model that already does the task, plus your inputs&lt;/td&gt;
&lt;td&gt;A frontier model nails the task but is too slow or too expensive at volume&lt;/td&gt;
&lt;td&gt;As many teacher outputs as you can afford to generate&lt;/td&gt;
&lt;td&gt;Medium, teacher inference then a cheap SFT run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LoRA / QLoRA&lt;/td&gt;
&lt;td&gt;Whichever method above, plus one GPU&lt;/td&gt;
&lt;td&gt;Almost always, unless you specifically need full-weight training&lt;/td&gt;
&lt;td&gt;Same as the method it wraps&lt;/td&gt;
&lt;td&gt;Lowest, a 7B run over a few thousand examples often costs a few hundred dollars&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftle1wi4rk12h2dqf424r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftle1wi4rk12h2dqf424r.png" alt="Decision tree for choosing a fine-tuning method. If a big model already does the job but is too slow or costly, use distillation. Otherwise, if you can write the ideal output, use supervised fine-tuning; if you can only judge it, use reinforcement fine-tuning with GRPO. Every path then runs through LoRA or QLoRA." width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same tree in words.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Your situation&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A big model already does the job, but it's too slow or too costly&lt;/td&gt;
&lt;td&gt;Distillation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You can write the ideal output&lt;/td&gt;
&lt;td&gt;Supervised fine-tuning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You can only judge the output, not write it&lt;/td&gt;
&lt;td&gt;Reinforcement fine-tuning with GRPO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Any of the three, on one GPU&lt;/td&gt;
&lt;td&gt;Run it through LoRA or QLoRA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Data is still the hard part
&lt;/h2&gt;

&lt;p&gt;Every method above needs the same raw material underneath. SFT needs labelled pairs. RFT needs a reward or a judge that can rank attempts. Distillation needs a teacher and your inputs. Pick the wrong method and you lose some efficiency. Show up with bad data and none of them work. No algorithm fixes that for you.&lt;/p&gt;

&lt;p&gt;Fine-tuning has gotten cheap. A LoRA run on a 7B model over a few thousand examples often costs a few hundred dollars. But cheap training doesn't fix bad data, and none of these tools hand you a set of real runs labelled, or ranked, against your own definition of good. That's a separate problem, and it's the one that eats the time. We cover it in &lt;a href="https://www.overmindlab.ai/research/traces-to-training-dataset?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how do you turn traces into a training dataset&lt;/a&gt; and &lt;a href="https://www.overmindlab.ai/research/how-to-train-your-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;how to train your agent&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is LoRA a replacement for fine-tuning?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. LoRA is a way to run fine-tuning or RFT cheaper, not a different goal. You still pick SFT or RFT first, then decide whether to run it through LoRA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When should I use reinforcement fine-tuning instead of SFT?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you can judge a good output but can't write one yourself, or you're training an agent where success depends on a whole multi-step trajectory rather than one response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is distillation cheaper than fine-tuning a small model from scratch?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Usually, if a large model already performs well on your task. You're paying for inference calls to the teacher model instead of building the target behaviour from labelled data by hand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is GRPO and why does everyone use it now?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Group Relative Policy Optimization scores a batch of responses against each other instead of an absolute baseline, which removes the need for a separate critic model. It's cheaper to run than older RL methods like PPO, which is most of why it's become the default for RFT.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Overmind is the model training platform for AI teams. It turns your production traces into specialised models you own. &lt;a href="https://console.overmindlab.ai" rel="noopener noreferrer"&gt;Get started&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>finetuning</category>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>"So, you have observability. Now what?"</title>
      <dc:creator>Tyler Edwards</dc:creator>
      <pubDate>Tue, 01 Sep 2026 13:46:47 +0000</pubDate>
      <link>https://dev.to/tyler007/so-you-have-observability-now-what-fj7</link>
      <guid>https://dev.to/tyler007/so-you-have-observability-now-what-fj7</guid>
      <description>&lt;p&gt;&lt;em&gt;By Tyler Edwards, co-founder and CEO at &lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt;. If you run an agent in production, odds are you already have traces piling up in Langfuse or LangSmith. This piece is about the part nobody instruments: what those traces are for.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Observing your agent is table stakes.&lt;/p&gt;

&lt;p&gt;In the not-so-distant past there was a brief period when picking an LLM meant picking a vendor. You wrote against their SDK, you paid their bill, and when their servers fell over on a Tuesday afternoon so did yours. Switching was easy enough but did require Ctrl+F'ing your way through the codebase - or asking your coding agent of choice to perform this insultingly simple task for you instead.&lt;/p&gt;

&lt;p&gt;Then on the sixth day came the LLM gateway! One endpoint, dozens of models behind it, swap them in and out faster than the UK swaps Prime Ministers (and for international readers &lt;a href="https://en.wikipedia.org/wiki/Liz_Truss_lettuce" rel="noopener noreferrer"&gt;here is the context on that one&lt;/a&gt;). The gateway is, on its own terms, a genuinely nice piece of engineering, and there is now a number of teams shipping model routers with various bells and whistles: Portkey, LiteLLM, OpenRouter, TrueFoundry, Kong, Cloudflare.&lt;/p&gt;

&lt;p&gt;Sitting alongside the gateway, usually paid for separately and instrumented by a different team three weeks later, is the LLM observability stack. Langfuse, Helicone, Arize Phoenix, Braintrust, LangSmith, Datadog now too. Pick your favourite, they mostly do the same thing. They capture every prompt and every completion, stitch them into traces, and present you with dashboards.&lt;/p&gt;

&lt;p&gt;Between the two, your AI product is being watched harder than a Premier League VAR decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Observability?
&lt;/h2&gt;

&lt;p&gt;LiteLLM shipped to solve a pretty annoying problem: every provider's API was almost-but-not-quite the same. Portkey and OpenRouter commercialised the idea, TrueFoundry and Bifrost followed, and the existing API-gateway crowd (Kong, Cloudflare) extended their products to cover LLMs the moment it became clear LLMs were here to stay whether anyone liked it or not.&lt;/p&gt;

&lt;p&gt;The observability side has a similar shape. Langfuse, Helicone, Arize Phoenix, Braintrust all turned up in 2023 to build native LLM observability from scratch. The companies that already did ML observability - Fiddler, WhyLabs, Galileo - pivoted with the arrival of ChatGPT and have spent the last three years insisting they were actually always about LLMs really anyway.&lt;/p&gt;

&lt;p&gt;By 2026 both categories had matured enough to start being acquired. Portkey went to Palo Alto Networks in April for somewhere around $120-140M. Helicone went to Mintlify the month before. Langfuse was rolled into ClickHouse's Series D in January. Cisco picked up Galileo and folded it into Splunk.&lt;/p&gt;

&lt;h2&gt;
  
  
  All Data, No Insight
&lt;/h2&gt;

&lt;p&gt;So you now have hundreds of thousands, possibly millions, of traces composting nicely in a database somewhere. Every prompt, every completion, every tool call, every retry. The gateway has them as individual requests. The observability tool has them stitched into trajectories. Between the two, your AI product is the most thoroughly documented thing in your engineering org.&lt;/p&gt;

&lt;p&gt;The gateway, by design, treats each call as a self-contained unit - the only way to route, cache, fall back and bill at scale. It doesn't have a concept of the trajectory because it doesn't need one. As far as the gateway is concerned, each call was a separate transaction.&lt;/p&gt;

&lt;p&gt;The observability tool does have a concept of the trajectory. It will stitch the spans together, draw you a lovely waterfall diagram, and tell you exactly how the agent arrived at whatever it arrived at. What it won't tell you is whether what it arrived at was any good - because &lt;em&gt;good&lt;/em&gt; is a judgement, and the observability tool is, as its name suggests, there to observe.&lt;/p&gt;

&lt;p&gt;Every call along the way can pass every check either tool runs. A 200 from the provider, the right shape of completion, no PII, latency inside SLO, and cost on budget. The agent can still invent a company policy, ignored an instruction from two steps earlier, and make three perfectly correct-looking calls on its way to &lt;a href="https://uk.pcmag.com/ai/159249/vibe-coding-fiasco-ai-agent-goes-rogue-deletes-companys-entire-database" rel="noopener noreferrer"&gt;deleting a production database&lt;/a&gt; - and then gleefully reported its action back to you in the same way a dog might excitedly drop a dead bird at your feet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Observability Fails
&lt;/h2&gt;

&lt;p&gt;The observability vendors aren't naive about any of this. Most of them ship some version of trace review - LangSmith has annotation queues, Braintrust has human review alongside LLM-as-judge scoring, Langfuse has dataset workflows, Arize Phoenix ships evals out of the box. Teams use them. Engineers were spending afternoons grading traces and writing scoring functions and tagging failure modes, and the tools make this less painful than it would otherwise be.&lt;/p&gt;

&lt;p&gt;What you get at the end of all that effort is a graded slice of traces. A few thousand examples marked good or bad, often with structured scores attached, sometimes with notes. This is useful - for catching regressions, for spotting drift, for arguing with your model provider about why their new release broke something. It is not, on its own, a training or eval dataset, and it is several steps short of a model that has actually improved.&lt;/p&gt;

&lt;p&gt;LLMs are intelligently dumb, they will learn an approximation of what you teach them, as such you need to teach them exactly what you want them to do. A graded trace is an observation. A dataset is a curated, balanced, deduplicated set of examples organised around the behaviours you want the model to learn. The difference between them is curation logic, clustering, sampling strategy, and a clear view of what the model is supposed to get better at - none of which the observability tool produces.&lt;/p&gt;

&lt;p&gt;And even once you have the dataset, the pipeline from there to a better agent has its own shape. You need to fine-tune a model or train a LORA adapter, eval-gate the result against a held-out slice, deploy the new weights behind your routing layer, and watch the next week of traces to see whether the change actually moved the agent's behaviour or just shuffled the failure modes around. Each of those steps is its own piece of infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bridging The Gap
&lt;/h2&gt;

&lt;p&gt;Some of the vendors have started shipping bolt-ons aimed at closing parts of this. Portkey's Autonomous Fine-Tuning wires gateway logs into a provider's training API and hands off the dataset. LangChain's Engine edits prompts and code from production traces. Braintrust's Loop generates evaluators and datasets from natural-language descriptions of failure modes. Each is a real move in the right direction, and each stops one step short of the model itself. The dataset gets handed off and the trail goes cold.&lt;/p&gt;

&lt;p&gt;This is the gap between what's possible and what's shipped. The technology to take a production trace, score it, cluster it, curate it into a dataset, fine-tune a model on it, eval-gate the result and deploy it back through your routing layer - all of that exists, in pieces, sold by different companies with different pricing pages. What doesn't exist yet is a single layer that does the whole loop. You can probably see where i’m going with this but lets not jump ahead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Opportunity
&lt;/h2&gt;

&lt;p&gt;Cursor is the example everyone reaches for, and for good reason. They trained their Composer model on production agent traces using online reinforcement learning, and it now &lt;a href="https://cursor.com/blog/composer-2-5" rel="noopener noreferrer"&gt;beats the frontier at its size&lt;/a&gt; on cost and performance. The model that ships to Cursor users is the model trained on what Cursor users actually do. The labelling encodes the judgement. The fine-tune encodes the labelling. The product encodes the fine-tune. It compounds to create a very powerful product.&lt;/p&gt;

&lt;p&gt;Doing this used to require a research team and the patience of an academic institution. It doesn't anymore. Open-weights bases - Llama, Qwen, Mistral, DeepSeek - are now genuinely competitive on scoped tasks. A LoRA fine-tune on a few thousand labelled trajectories runs for low hundreds of dollars on Modal or Together or your own GPUs if you're feeling brave. Unsloth and Tinker have made the mechanics broadly accessible to anyone willing to spend a weekend with them, with the small caveat that you do still currently have to be a bit of a genius to use them properly.&lt;/p&gt;

&lt;p&gt;What this adds up to is something most teams haven't fully reckoned with yet. The data is sitting in the gateway. The traces are sitting in the observability tool. The curation can be automated. The fine-tuning is cheap. The deployment is a config change. The only thing standing between any reasonably-sized team and a continuously-improving fleet of specialist models trained on their own production traffic is whether anyone has joined the pieces up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overmind
&lt;/h2&gt;

&lt;p&gt;And we arrive at the aforementioned point. We built Overmind on the same bet we wrote about in&amp;nbsp;&lt;a href="https://www.overmindlab.ai/research/think-smaller?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Think Smaller&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;: the teams who win the next phase of agentic AI will be the ones who own their models, not the ones who rent the most powerful ones, and certainly not the ones who own the most expensive plumbing in front of those rented models.&lt;/p&gt;

&lt;p&gt;Overmind is the layer that turns the data your gateway and observability stack are already collecting into models that improve because of it. It plugs into the trace store you've already got, runs the curation, builds the dataset, fine-tunes the model, eval-gates the result and deploys the new weights behind your existing routing layer. The gateway keeps doing what it's good at. The observability stack keeps doing what it's good at. Overmind does the bit in between that nobody else is doing.&lt;/p&gt;

&lt;p&gt;Keep your gateway. Keep your observability stack. Just stop pretending they're enough on their own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FAQ&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What's the difference between an LLM gateway and LLM observability?&lt;/strong&gt; Gateways route and rate-limit calls between your app and model providers. Observability tools record traces and let you inspect them. Neither curates the data or trains models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why isn't observability enough for production agents?&lt;/strong&gt; Observability shows you what happened. It doesn't tell you whether the trajectory was good, and it doesn't turn that judgement into model improvements. That gap is the bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does Overmind do that observability tools don't?&lt;/strong&gt; Overmind sits on top of your trace store, curates the data into training-grade datasets, fine-tunes specialist models, evaluates them, and deploys the new weights behind your existing routing layer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Tyler Edwards is Co-Founder and CEO of Overmind. He writes about agent infrastructure, fine-tuning, and what it takes to ship AI that actually improves in production. &lt;a href="https://www.linkedin.com/in/tyler-edwards-b393a5352/" rel="noopener noreferrer"&gt;Connect on LinkedIn&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stay in-the-loop
&lt;/h2&gt;

&lt;p&gt;Join our newsletter to follow as we build supervision for super-intelligence.&lt;/p&gt;

&lt;p&gt;Sign up for updates&lt;/p&gt;

&lt;p&gt;Related Posts&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.overmindlab.ai/research/who-trains-their-own-models?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.overmindlab.ai%2F_next%2Fimage%3Furl%3Dhttps%253A%252F%252Fcdn.sanity.io%252Fimages%252Fgv4t9qa3%252Fproduction%252F52436243946c705c3e53d056b89da88ec7764636-2048x2048.png%26w%3D3840%26q%3D75" width="760" height="760"&gt;&lt;/a&gt; &lt;a href="https://www.overmindlab.ai/research/open-weights-vs-frontier-apis?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.overmindlab.ai%2F_next%2Fimage%3Furl%3Dhttps%253A%252F%252Fcdn.sanity.io%252Fimages%252Fgv4t9qa3%252Fproduction%252F8acf0910d23b7f1e53e144b4718249082a2c2fb4-2048x2048.png%26w%3D3840%26q%3D75" width="800" height="800"&gt;&lt;/a&gt; &lt;a href="https://www.overmindlab.ai/research/anatomy-of-an-ai-agent?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.overmindlab.ai%2F_next%2Fimage%3Furl%3Dhttps%253A%252F%252Fcdn.sanity.io%252Fimages%252Fgv4t9qa3%252Fproduction%252F9f97b4168f325ce891c48c8088035f10aa4bddfa-2048x2048.png%26w%3D3840%26q%3D75" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If your traces should end as a model you own rather than a dashboard, that loop is what &lt;a href="https://www.overmindlab.ai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;Overmind&lt;/a&gt; does: audited datasets from production traces, fine-tuning, a benchmark against the model you run today, and serving. There is a &lt;a href="https://docs.overmindlab.ai/core/observability?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=research-repost" rel="noopener noreferrer"&gt;live Langfuse import&lt;/a&gt; if your traces already live there.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>observability</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
