> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://humanloop.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://humanloop.com/docs/_mcp/server.

> In this guide we will demonstrate how to use Humanloop’s fine-tuning workflow to produce improved models leveraging your user feedback data.

> **Paid Feature**
>
> This feature is not available for the Free tier. Please contact us if you wish
> to learn more about our [Enterprise plan](https://humanloop.com/pricing)

### Prerequisites

* You already have a Prompt — if not, please follow our [Prompt creation](/docs/guides/create-prompt) guide first.
* You have integrated `humanloop.complete_deployed()` or the `humanloop.chat_deployed()` endpoints, along with the `humanloop.feedback()` with the [API](https://www.postman.com/humanloop/workspace/humanloop) or [Python SDK](./generate-and-log-with-the-sdk).

> **Note**
>
> A common question is how much data do I need to fine-tune effectively? Here we
> can reference the [OpenAI guidelines](https://beta.openai.com/docs/guides/fine-tuning):
>
> > *The more training examples you have, the better. We recommend having at least a couple hundred examples. In general, we've found that each doubling of the dataset size leads to a linear increase in model quality.*

## Fine-tuning

The first part of fine-tuning is to select the data you wish to fine-tune on.

### Go to your Humanloop project and navigate to **Logs** tab.

### Create a **filter**

Using the **+ Filter** button above the table of the logs you would like to fine-tune on.

For example, all the logs that have received a positive upvote in the feedback captured from your end users.

![](/docs/_fern-img/d39f56590d20289ef4f6b21a9d0670302d8fe96fabc51283d89efc275fa31a0d.webp)

### Click the **Actions** button, then click the **New fine-tuned model** button to set up the finetuning process.

### Enter the appropriate parameters for the fine-tuned model.

1. Enter a **Model** name. This will be used as the suffix parameter in OpenAI’s fine-tune interface. For example, a suffix of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`.
2. Choose the **Base model** to fine-tune. This can be `ada`, `babbage`, `curie`, or `davinci`.
3. Select a **Validation split** percentage. This is the proportion of data that will be used for validation. Metrics will be periodically calculated against the validation data during training.
4. Enter a **Data snapshot name**. Humanloop associates a data snapshot to every fine-tuned model instance so it is easy to keep track of what data is used (you can see yourexisting data snapshots on the **Settings/Data snapshots** page)

![](/docs/_fern-img/8167f9fc0d371876740aa49bc830a75ef92928e733b33a0f23144bc88321f867.webp)

### Click **Create**

The fine-tuning process runs asynchronously and may take up to a couple of hours to complete depending on your data snapshot size.

### See the progress

Navigate to the **Fine-tuning** tab to see the progress of the fine-tuning process.

Coming soon - notifications for when your fine-tuning jobs have completed.

![](/docs/_fern-img/8c695633524f43e16bceaf168bd40274ba033255c88efa53b0492e5a0a33f07f.webp)

### When the **Status** of the fine-tuned model is marked as **Successful**, the model is ready to use.

🎉 You can now use this fine-tuned model in a Prompt and evaluate its performance.