<?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: Sumanth Kumar Kotagudem</title>
    <description>The latest articles on DEV Community by Sumanth Kumar Kotagudem (@sumanth_kumarkotagudem).</description>
    <link>https://dev.to/sumanth_kumarkotagudem</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4189676%2F2e71a65d-248e-4f70-8487-f8b7bc8e2539.png</url>
      <title>DEV Community: Sumanth Kumar Kotagudem</title>
      <link>https://dev.to/sumanth_kumarkotagudem</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sumanth_kumarkotagudem"/>
    <language>en</language>
    <item>
      <title>Fine-Tuning with a Handful of Examples</title>
      <dc:creator>Sumanth Kumar Kotagudem</dc:creator>
      <pubDate>Fri, 06 Nov 2026 08:51:22 +0000</pubDate>
      <link>https://dev.to/sumanth_kumarkotagudem/fine-tuning-with-a-handful-of-examples-2420</link>
      <guid>https://dev.to/sumanth_kumarkotagudem/fine-tuning-with-a-handful-of-examples-2420</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;It was my first day of the internship, and I was given a brief about my new project.&lt;/p&gt;

&lt;p&gt;It was a solo project to fine-tune a model on the organization's data; more specifically, on Jira tickets related to the most common database issues in the organization's cloud database services, including their investigations.&lt;/p&gt;

&lt;p&gt;Seems easy, right?&lt;/p&gt;

&lt;p&gt;After digging into the data for 2–3 days, I found these issues: the total dataset contained around 900+ issues. After categorizing the data, I was able to identify 10 broad categories (9 + miscellaneous).&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The total data size is very small (around 800).&lt;/li&gt;
&lt;li&gt;The domain is not niche, nor is the product. As a result, you get a zero-shot response that is almost right but generic and not precise.&lt;/li&gt;
&lt;li&gt;There is a very high class imbalance, which makes the data-sparsity issue worse.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My honest reaction was that I had no hope at the start because the problem did not make much sense to me. I felt that there was not much uniqueness in the domain, nor was there enough data. I had no hope that I would make any meaningful contribution. My internship was at stake, but I still had to make it work, as there was no other option.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Journey
&lt;/h2&gt;

&lt;p&gt;So, the journey of the Desert Wandering begins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collect:&lt;/strong&gt; For the initial two weeks, I spent my time collecting, processing, and preparing the data.&lt;/p&gt;

&lt;p&gt;Why two weeks? You know, organizational data is generally not in one place. You need permissions to access the data, understand the available methods for retrieving it, and determine where the required information is stored.&lt;/p&gt;

&lt;p&gt;I tried using MCPs and different skill files to retrieve the organization's Jira data. Am I good? No. Most of the evidence and logs needed to be accessed from other data providers, such as Splunk, Dynatrace, database admin views, stack calls, etc., to collect all the data.&lt;/p&gt;

&lt;p&gt;I also created an alternative. Since I had little hope in fine-tuning, I created a RAG alternative with hybrid retrieval, rerankers, and different prompting techniques as a fallback.&lt;/p&gt;

&lt;p&gt;Then, &lt;strong&gt;Prepare:&lt;/strong&gt; I summarized the evidence using rules and LLM calls to provide an overview, specified the irregularities or error traces, bound the data to the tickets, cleaned the comments, and organized the data.&lt;/p&gt;

&lt;p&gt;The model needs to predict the root cause and the fix, which are present in the final comments.&lt;/p&gt;

&lt;p&gt;Using LLMs for preprocessing was fast and more accurate. Worried about tokens? The data itself is small.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Augmentation (The Main Part):&lt;/strong&gt; I spent the next 3–4 weeks mostly building different training datasets, as the model-training setup is easy nowadays. Obviously, Claude Code just needs a few prompts, and it is done.&lt;/p&gt;

&lt;p&gt;I went with the synthetic approach first, using an LLM to produce multiple, diverse data entries across the categories, inversely proportional to the size of each label category.&lt;/p&gt;

&lt;p&gt;Did it work? &lt;strong&gt;No.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The fine-tuned results and the zero-shot results looked the same. Why?&lt;/p&gt;

&lt;p&gt;Because the new data entries contained no useful information to learn; they were just repetitions of the model's parametric knowledge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attempt 2:&lt;/strong&gt; I tried different models, including larger models. The results were better, but this still was not a very useful direction. Was the model able to learn the most from the data? No.&lt;/p&gt;

&lt;p&gt;That's when I understood that this was not the way forward. So, what did I do?&lt;/p&gt;

&lt;p&gt;I tried to impute the data from the data itself. How?&lt;/p&gt;

&lt;p&gt;The Jira tickets are basically conversations between the consumer and the engineering team. I used these conversations and tried to create data in turns, resulting in more data without introducing any noise.&lt;/p&gt;

&lt;p&gt;This also helped the model find the early signals of the root cause.&lt;/p&gt;

&lt;p&gt;Hurray! I finally saw some learning, and the model was working.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimizing:&lt;/strong&gt; During the later weeks (7–8), I tried different models, made various attempts to make the data richer, tuned the hyperparameters, performed error analysis, and optimized the pipeline further.&lt;/p&gt;

&lt;p&gt;I was able to produce better-quality results than the RAG approach and larger models in zero-shot settings.&lt;/p&gt;

&lt;p&gt;I gave a presentation to the team, and it went well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optional (Later Weeks 9–11):&lt;/strong&gt; I spent time serving the model, building an agentic version, setting up the local environment, and creating a model harness. I was also made part of a new project to create rule validation in the agentic system.&lt;/p&gt;

&lt;p&gt;I used a combination of Knowledge Graphs, Rule Matching, and RAG to validate the agent's response and suggest the potential impacts of the agent's actions.&lt;/p&gt;

&lt;p&gt;It was a good, quick brainstorming experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Your model is only as good as your data.&lt;/p&gt;

&lt;p&gt;AI still needs humans for new directions; otherwise, it can get stuck in the same loop.&lt;/p&gt;

&lt;p&gt;No matter how unusual the problem may be, there is always a solution. After all, we are engineers; we make it work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the end.&lt;/p&gt;

&lt;p&gt;Let me know your thoughts on where I could improve.&lt;/p&gt;

&lt;p&gt;It's my &lt;strong&gt;first blog&lt;/strong&gt;. I would never have written it if &lt;a class="mentioned-user" href="https://dev.to/georgekobaidze"&gt;@georgekobaidze&lt;/a&gt;   hadn't pushed me.&lt;/p&gt;

</description>
      <category>internship</category>
      <category>ai</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
