AI & Automation6 min readNetray Engineering Team

Fine-Tuning Failure Modes: What Actually Goes Wrong

Most enterprise fine-tuning failures have nothing to do with the training algorithm and everything to do with the evaluation and data pipeline around it. The recurring failure modes are consistent across projects: catastrophic forgetting of general capability, overfitting to a small evaluation set until the score stops meaning anything, data leakage between training and evaluation splits that inflates measured accuracy, and models that ship confidently wrong on inputs nobody tested because the eval set never covered them. Each of these produces a fine-tune that looks successful on the metric the team was watching and fails in ways that only surface after production traffic finds the gap. This guide covers what each failure looks like in practice and the specific checks that catch it before go-live.

Catastrophic Forgetting: Symptoms and Fixes

Catastrophic forgetting shows up as a model that performs well on the fine-tuning target task while becoming noticeably worse at general instruction-following, reasoning, or tasks it was not explicitly trained on, and it is more common with full fine-tuning and high learning rates than with LoRA or QLoRA, which inherently constrain how much the model's weights can shift. Symptoms include the model losing the ability to follow system prompt instructions it previously handled correctly, degraded performance on unrelated tasks users still expect it to handle, and a narrower, more repetitive output style even on the target task. Fix it with a lower learning rate, LoRA rank kept as low as the task allows, fewer training epochs (2 to 3 is typical, more is a red flag rather than a sign of diligence), and running a general-capability evaluation suite alongside the task-specific one at every checkpoint so forgetting is caught during training rather than after deployment.

  • Run a general-capability eval suite alongside task-specific eval at every checkpoint, not just at the end
  • Prefer LoRA or QLoRA over full fine-tuning unless there is a specific reason full weights need updating
  • Cap epochs at 2 to 3 for most task fine-tunes; more epochs is a warning sign, not diligence
  • If forgetting appears, lower the learning rate and reduce rank before adding more data

Eval Overfitting: Gaming Your Own Benchmark

Eval overfitting happens gradually and invisibly: a team iterates against the same small evaluation set across ten or fifteen training runs, tuning hyperparameters and data mix until the score climbs, without noticing that the improvement is increasingly specific to quirks of that particular set of examples rather than a generalizable improvement in the model. This is functionally identical to a student memorizing the answer key rather than learning the material, and it produces a model that looks excellent on the metric everyone has been watching and performs meaningfully worse on any input that was not in the eval set. Guard against it by keeping a held-out set the development team never sees until final acceptance, refreshing or expanding the visible eval set periodically during a long project, and treating a plateau followed by a sudden jump in eval score with suspicion rather than celebration, since it is often a sign the model has started exploiting a pattern specific to the eval set rather than genuinely improving.

Data Leakage: When Your Eval Set Isn't Really Held Out

Data leakage happens when examples in the evaluation set are duplicates, near-duplicates, or derived from the same source document as examples in the training set, which inflates the measured accuracy without any corresponding improvement in real-world performance. This is most common when the eval set was carved out of the training data after the fact rather than held out from the start, or when deduplication was run on the training set alone and never checked against the eval set as well. The fix is procedural: build the held-out evaluation set before any data augmentation or synthetic expansion touches the training data, run the same near-duplicate detection (MinHash or embedding similarity) across the train-eval boundary specifically, not just within each set separately, and treat any eval accuracy that seems unusually high relative to the task's apparent difficulty as a signal to check for leakage first.

  • Carve out the held-out eval set before any data augmentation or synthetic expansion
  • Run near-duplicate detection specifically across the train-eval boundary, not just within each set
  • Treat surprisingly high eval accuracy as a leakage signal to investigate, not a result to celebrate
  • Re-check for leakage any time the training dataset is expanded or refreshed mid-project

Silent Regressions on Out-of-Scope Inputs

A fine-tune scoped narrowly to one task can quietly degrade the model's behavior on inputs outside that scope, and because the evaluation set was built around the target task, nobody notices until a user sends something the eval never covered. This is especially common when a fine-tune shifts the model's default tone, verbosity, or format broadly rather than only in the specific context the training data represented, since the model has no way to know the desired behavior was meant to apply only to a subset of situations. Mitigate it by including a sample of clearly out-of-scope inputs in the evaluation set specifically to check the model still declines or handles them reasonably, and by monitoring production traffic after launch for input patterns that fall outside the original training distribution.

How Netray Guards Against These Failure Modes

Every Netray fine-tuning engagement builds the held-out evaluation set first, before training data augmentation begins, and runs a general-capability check alongside the task-specific metric at every checkpoint so forgetting and overfitting surface during the project rather than after handover. We run train-eval leakage detection as a standard pipeline step, not an optional check, and we keep a portion of the evaluation set that the build team never sees until final client acceptance. That discipline is what lets us tell a client honestly when a fine-tune is not ready, rather than shipping a model that scores well on a compromised metric.

Frequently Asked Questions

What is catastrophic forgetting in LLM fine-tuning?

Catastrophic forgetting is when a model improves on the fine-tuning target task while losing general capability it previously had, such as instruction-following or unrelated task performance. It is more common with full fine-tuning and high learning rates than with LoRA or QLoRA. Catch it by running a general-capability evaluation suite alongside the task-specific one at every training checkpoint, not only at the end.

How do you know if your fine-tuning evaluation set has data leakage?

Suspiciously high accuracy relative to the task's apparent difficulty is the first signal. Run near-duplicate detection using MinHash or embedding similarity specifically across the train-eval boundary, not just within each set separately, since leakage most often happens when the eval set was carved out of training data after the fact rather than held out from the start.

What does eval overfitting look like in a fine-tuning project?

A steadily climbing score on the same small evaluation set across many training iterations, without a corresponding improvement on inputs outside that set. It happens when a team tunes hyperparameters and data mix against the same visible eval repeatedly. Guard against it with a held-out set the build team never sees until final acceptance, and treat a sudden score jump with suspicion rather than celebration.

How many training epochs should a fine-tune use?

Two to three epochs is typical for most task-specific fine-tunes. More epochs is generally a warning sign of overfitting or catastrophic forgetting rather than a sign of thoroughness, since the model has limited unique signal to learn from a fixed dataset and additional passes increasingly memorize rather than generalize. If more training seems needed, check whether the dataset itself needs to grow instead.

Key Takeaways

  • 1Catastrophic Forgetting: Symptoms and Fixes: Catastrophic forgetting shows up as a model that performs well on the fine-tuning target task while becoming noticeably worse at general instruction-following, reasoning, or tasks it was not explicitly trained on, and it is more common with full fine-tuning and high learning rates than with LoRA or QLoRA, which inherently constrain how much the model's weights can shift. Symptoms include the model losing the ability to follow system prompt instructions it previously handled correctly, degraded performance on unrelated tasks users still expect it to handle, and a narrower, more repetitive output style even on the target task.
  • 2Eval Overfitting: Gaming Your Own Benchmark: Eval overfitting happens gradually and invisibly: a team iterates against the same small evaluation set across ten or fifteen training runs, tuning hyperparameters and data mix until the score climbs, without noticing that the improvement is increasingly specific to quirks of that particular set of examples rather than a generalizable improvement in the model. This is functionally identical to a student memorizing the answer key rather than learning the material, and it produces a model that looks excellent on the metric everyone has been watching and performs meaningfully worse on any input that was not in the eval set.
  • 3Data Leakage: When Your Eval Set Isn't Really Held Out: Data leakage happens when examples in the evaluation set are duplicates, near-duplicates, or derived from the same source document as examples in the training set, which inflates the measured accuracy without any corresponding improvement in real-world performance. This is most common when the eval set was carved out of the training data after the fact rather than held out from the start, or when deduplication was run on the training set alone and never checked against the eval set as well.

Worried a fine-tune your team already built might be scoring well on a compromised eval set? Netray will run an independent leakage and forgetting audit against your existing model before it goes further into production.