July 14, 2026

Fine-Tuning OpenAI Models: What Still Works

Stephen M. Walker II · Co-Founder / CEO

If you landed here looking for a GPT-3.5-turbo fine-tuning tutorial, that door is closed. OpenAI no longer offers fine-tuning for gpt-3.5-turbo at all, and the model itself shuts down October 23, 2026. Beyond that, OpenAI is winding down its entire self-serve fine-tuning platform. New organizations without prior fine-tuning history have been blocked since May 7, 2026. All existing customers lose the ability to start any new fine-tuning job on January 6, 2027.

This guide replaces the old GPT-3.5-turbo walkthrough with the current situation: which models you can still fine-tune, how to actually run a job against today's API, what it costs, and whether fine-tuning is still the right call before OpenAI closes the door.

The wind-down timeline

OpenAI's fine-tuning guide confirms that the platform is winding down. New users have lost access, while qualifying existing users can create jobs during the remaining window. Source: OpenAI supervised fine-tuning guide.

DateWhat happens
2026-05-07New organizations with no prior fine-tuning history can no longer create fine-tuning jobs
2026-07-02Job creation restricted to organizations with recent fine-tuning inference activity
2026-09-28gpt-3.5-turbo-instruct shuts down entirely
2026-10-23gpt-3.5-turbo (gpt-3.5-turbo-0125) shuts down entirely
2026-10-31OpenAI Evals platform becomes read-only
2026-11-30OpenAI Evals platform shuts down, replaced by Datasets
2027-01-06All existing customers lose the ability to create any new fine-tuning job, on any model

Source: OpenAI deprecations page.

Inference on a model you've already fine-tuned keeps working after these dates. It only stops when the underlying base model itself is deprecated. A fine-tuned gpt-3.5-turbo model, for example, keeps serving requests until October 23, 2026, then stops for good.

Which models you can still fine-tune

ModelMethodNotes
gpt-4.1-2025-04-14Supervised (SFT), DPOFull-size model
gpt-4.1-mini-2025-04-14Supervised (SFT), DPORecommended starting point for most teams
gpt-4.1-nano-2025-04-14Supervised (SFT), DPOSmallest, cheapest to train and serve
o4-mini-2025-04-16Reinforcement fine-tuning (RFT)Grader-based reasoning work
gpt-4o-2024-08-06Vision fine-tuning (SFT)Extends SFT to image inputs

Source: OpenAI supervised fine-tuning guide, reinforcement fine-tuning guide, model optimization guide.

OpenAI dropped gpt-3.5-turbo from the fine-tuning-eligible model set before this rewrite, independent of the platform wind-down.

Reinforcement fine-tuning on o4-mini uses a grader, such as a string_check, score_model, or custom grading function, to score model output. The model improves against that score. OpenAI says dozens to a few hundred high-quality examples are enough to start. Training sets max out at 50,000 examples, test sets at 1,000.

Should you fine-tune at all right now

OpenAI's own stated reason for winding down self-serve fine-tuning is that newer frontier models, plus prompting and retrieval, now cover most of what used to justify it. That's worth taking seriously before you spend the time.

SignalLean toward fine-tuningLean toward prompting and retrieval
Task shapeNarrow, repetitive, consistent formatVaried, open-ended, or still changing
Failure modeModel knows the answer and fails to follow your format or toneModel lacks facts or context
DataYou have hundreds of clean, representative examplesYou have a handful of examples or none
Latency and costYou need a smaller model to match a larger one's quality on your taskA current frontier model already clears the bar
TimelineYou can act before January 6, 2027You're evaluating for a future project

If your gap is missing information, retrieval usually closes it faster and cheaper than fine-tuning. If your gap is format, tone, or a narrow behavior a good prompt can't reliably enforce, fine-tuning still has a place, on the models above, while the window stays open.

Step 1: Prepare your dataset

Training data is a JSONL file, one JSON object per line, in chat-completions message format. OpenAI recommends starting with 50 well-crafted examples and evaluating the results, with a hard minimum of 10.

A plain instruction-following example:

{"messages": [{"role": "system", "content": "You are a support assistant for a software company. Keep replies under three sentences."}, {"role": "user", "content": "How do I reset my password?"}, {"role": "assistant", "content": "Go to Settings, then Account, then Reset Password. You'll get a reset link by email within a few minutes."}]}

An example with tool calling, using tools and parallel_tool_calls:

{"messages": [{"role": "system", "content": "You are a helpful assistant that can check the weather."}, {"role": "user", "content": "What's the weather like in Boston today?"}, {"role": "assistant", "content": null, "tool_calls": [{"id": "call_abc123", "type": "function", "function": {"name": "get_current_weather", "arguments": "{\"location\": \"Boston, MA\"}"}}]}], "tools": [{"type": "function", "function": {"name": "get_current_weather", "description": "Get the current weather for a location", "parameters": {"type": "object", "properties": {"location": {"type": "string", "description": "City and state, e.g. Boston, MA"}}, "required": ["location"]}}}], "parallel_tool_calls": false}

Before uploading, clean the dataset:

  1. Remove duplicates. Repeated examples bias training toward whatever's overrepresented.
  2. Fix errors. Typos and grammatical mistakes in your examples become patterns the model learns.
  3. Handle missing or irrelevant content. Drop examples that don't represent the task you're training for.
  4. Check for representativeness. Your examples should cover the full range of production inputs, including hard cases.

Hold out a separate validation set. OpenAI's own guidance is otherwise unchanged from earlier fine-tuning generations: diverse, high-quality examples beat a larger pile of mediocre ones.

Source: OpenAI supervised fine-tuning guide.

Step 2: Upload your data and create the job

Upload the training file through the Files API, then create the job with the current v1.x client. This replaces the older global openai.api_key = "..." and openai.ChatCompletion.create(...) style you may have seen in older tutorials, including the previous version of this one.

from openai import OpenAI
client = OpenAI()

client.fine_tuning.jobs.create(
    training_file="file-abc123",
    model="gpt-4.1-mini-2025-04-14",
    method={
        "type": "supervised",
        "supervised": {"hyperparameters": {"n_epochs": 2}},
    },
)

The equivalent as a direct API call:

curl https://api.openai.com/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{"training_file": "file-RCnFCYRhFDcq1aHxiYkBHw", "model": "gpt-4.1-nano-2025-04-14"}'

For DPO, the same client.fine_tuning.jobs.create call takes method={"type": "dpo", ...} and trains on pairs of preferred and rejected responses. RFT on o4-mini uses method={"type": "reinforcement", ...} with a grader configuration. Both are documented in OpenAI's model optimization guide and reinforcement fine-tuning guide.

Source: OpenAI fine-tuning jobs API reference.

Step 3: Monitor and evaluate the job

A fine-tuning job runs asynchronously. Poll or listen for job status through the same client.fine_tuning.jobs resource, and OpenAI surfaces training and validation loss as the job progresses.

Once the job finishes, evaluate the result the same way you'd evaluate any model change: run it against a held-out test set you didn't train on, and compare its output directly against the base model's.

One thing to plan around: OpenAI's Evals platform goes read-only on October 31, 2026, and shuts down entirely on November 30, 2026, replaced by a product called Datasets. Build new evaluation pipelines against Datasets to avoid rebuilding them in a few months. Source: OpenAI Evals guide.

Step 4: Deploy and call your fine-tuned model

A fine-tuned model gets an ID in the form ft:{base-model}:{org}::{id}. Call it through the Responses API or Chat Completions exactly like a base model, using that string as the model name.

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{"model": "ft:gpt-4.1-nano-2025-04-14:openai::BTz2REMH", "input": "What is 4+4?"}'

Your fine-tuned model is scoped to your organization. Other OpenAI customers can't call it.

Source: OpenAI supervised fine-tuning guide.

What it costs today

OpenAI publishes these standard fine-tuning rates. GPT-4.1-family prices are per 1M tokens. Reinforcement fine-tuning for o4-mini bills training by the hour.

ModelTrainingInputCached inputOutput
gpt-4.1-2025-04-14$25.00$3.00$0.75$12.00
gpt-4.1-mini-2025-04-14$5.00$0.80$0.20$3.20
gpt-4.1-nano-2025-04-14$1.50$0.20$0.05$0.80
o4-mini-2025-04-16$100.00 per hour$4.00$1.00$16.00

OpenAI also publishes lower batch inference rates. Check the OpenAI pricing page before committing budget because these figures can change.

What to do next

If you're still on a fine-tuned gpt-3.5-turbo model, treat October 23, 2026 as a hard deadline and start testing gpt-5.4-mini, OpenAI's published replacement. Compare it against your existing evaluation set before moving production traffic. If you haven't started fine-tuning yet, run the prompting-versus-fine-tuning decision above first. Organizations with an unresolved behavior gap and active job-creation access should choose a supported fine-tuning model before January 6, 2027 closes the door on new jobs entirely.

More articles

Continue exploring the Klu blog.

Fresh guides and product insights from teams building with Klu.

July 14, 2026

Fine-Tuning Guide: When It Is Worth It and How to Do It in 2026

A current decision framework and production workflow for fine-tuning LLMs, from prompting and RAG through datasets, evaluation, training, deployment, and monitoring.
Read article

July 14, 2026

Fine-Tuning GPT-4 with OpenAI's API: A Current Guide

OpenAI is winding down its fine-tuning platform. Here is what remains fine-tunable in the GPT-4 family, the current API and data format, and the available alternatives.
Read article

It's time to build

Collaborate with your team on reliable Generative AI features.
Want expert guidance? Book a 1:1 onboarding session from your dashboard.

Talk to sales