> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fine Tuning Models Part 2

> Guide to creating and running fine-tuning jobs in Amazon Bedrock, covering model discovery, customization techniques, console workflow, dataset format, S3 storage, and IAM prerequisites.

In this lesson we continue the practical steps for creating fine-tuning jobs in Amazon Bedrock and how to run them end-to-end. You’ll learn how to discover which models in your region support fine-tuning, the available customization techniques, the console workflow to start a job, and the prerequisites for supervised fine-tuning.

## Check which models support fine-tuning

A quick way to discover which foundation models in your region support fine-tuning is to use the AWS CLI Bedrock command to list models filtered by customization type:

```bash theme={null}
aws bedrock list-foundation-models --by-customization-type FINE_TUNING
```

The command returns a JSON response listing models that support fine-tuning. Example output:

```json theme={null}
{
  "modelSummaries": [
    {
      "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k",
      "modelId": "amazon.nova-2-lite-v1:0:256k",
      "modelName": "Nova 2 Lite",
      "providerName": "Amazon",
      "inputModalities": [
        "TEXT",
        "IMAGE",
        "VIDEO"
      ],
      "outputModalities": [
        "TEXT"
      ],
      "responseStreamingSupported": true,
      "customizationsSupported": [
        "FINE_TUNING"
      ],
      "inferenceTypesSupported": [
        "PROVISIONED"
      ],
      "modelLifecycle": {
        "status": "ACTIVE",
        "startOfLifeTime": "2025-12-02T08:00:00+00:00"
      }
    },
    {
      "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-pro-v1:0:300k",
      "modelId": "amazon.nova-pro-v1:0:300k",
      "modelName": "Nova Pro",
      "providerName": "Amazon",
      "inputModalities": [
        "TEXT",
        "IMAGE",
        "VIDEO"
      ],
      "outputModalities": [
        "TEXT"
      ],
      "responseStreamingSupported": true,
      "customizationsSupported": [
        "FINE_TUNING",
        "DISTILLATION"
      ],
      "inferenceTypesSupported": [
        "PROVISIONED"
      ],
      "modelLifecycle": {
        "status": "ACTIVE",
        "startOfLifeTime": "2024-12-03T08:00:00+00:00"
      }
    }
  ]
}
```

Filtering by `FINE_TUNING` helps you quickly determine which foundation models in a region can be customized.

## Customization techniques overview

When creating a fine-tuning job you select one of the available customization techniques. The primary approaches are:

| Technique | When to use | Summary |
| - | - | - |
| Supervised fine-tuning (SFT) | When you have labeled prompt → expected response pairs | Provide curated prompt/completion pairs (JSONL) to teach the model desired outputs. |
| Reinforcement-style training | When you can score or rank candidate responses | Supply prompts with scored or ranked responses so the model learns to prefer higher-scoring outputs. |
| Distillation | When you want to transfer behavior from a stronger model to a smaller model | Use outputs generated by a stronger model as training examples for a smaller or faster model. |

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/BVCvDn4rl3j0TCQq/images/Introduction-to-Amazon-Bedrock/Advanced-Topics-Optional/Fine-Tuning-Models-Part-2/fine-tune-job-setup-workflow.jpg?fit=max&auto=format&n=BVCvDn4rl3j0TCQq&q=85&s=2393848d12f14ab6fb982b3e2f0d86db" alt="A slide titled &#x22;Workflow: How to Fine-Tune – Job Setup&#x22; showing a flow: create a fine-tuning job, choose a model that supports customization, then branch into Reinforcement, Supervised, or Distillation methods." width="1920" height="1080" data-path="images/Introduction-to-Amazon-Bedrock/Advanced-Topics-Optional/Fine-Tuning-Models-Part-2/fine-tune-job-setup-workflow.jpg" />
</Frame>

* Supervised fine-tuning (SFT) is the most common: you provide example prompt-response pairs and the job uses those pairs to teach the model the desired behavior.
* Reinforcement-style fine-tuning uses prompts with associated scores or rankings (for example, 1–10 or ranked choices) so the model learns to choose outputs with higher reward.
* Distillation uses a stronger model (teacher) to generate high-quality prompt-response pairs; those examples train a smaller (student) model for improved latency or cost.

## Console workflow: create a fine-tuning job

In the Bedrock console the typical flow to create a fine-tuning job is:

1. Navigate to Bedrock and choose **Create fine-tuning job**.
2. Provide a job name (example: Customer Support Tone Fine-Tuning).
3. Choose a base model to fine-tune (e.g., Nova Pro, Nova 2 Lite, Titan Image Generator, Nova Canvas — availability varies by region).
4. Select the customization technique (Supervised, Reinforcement, or Distillation).
5. Provide dataset and output S3 locations, and an IAM role that Bedrock can assume with the required permissions.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/BVCvDn4rl3j0TCQq/images/Introduction-to-Amazon-Bedrock/Advanced-Topics-Optional/Fine-Tuning-Models-Part-2/fine-tuning-job-ui-model-selection.jpg?fit=max&auto=format&n=BVCvDn4rl3j0TCQq&q=85&s=908b7a4d74ab05f950a89a2725268ff6" alt="A screenshot of a software interface for creating a fine-tuning job, with a job configuration form on the left and a model selection panel on the right listing options like Nova Pro and Titan Image Generator." width="1920" height="1080" data-path="images/Introduction-to-Amazon-Bedrock/Advanced-Topics-Optional/Fine-Tuning-Models-Part-2/fine-tuning-job-ui-model-selection.jpg" />
</Frame>

Note: The model list in the console may primarily show Amazon-provided models in some regions. Third-party or vendor models may appear or not depending on region and Bedrock updates.

## Custom model artifacts and discovery

When a fine-tuning job completes, Bedrock creates a custom model resource and stores the resulting model artifact in the S3 output location you specified. The custom model is visible under the Bedrock console’s **Custom Models** section (not in the Model Catalog, which lists platform-provided foundation models). Each custom model receives its own ARN and appears in your Custom Models listing.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/BVCvDn4rl3j0TCQq/images/Introduction-to-Amazon-Bedrock/Advanced-Topics-Optional/Fine-Tuning-Models-Part-2/amazon-bedrock-custom-models-dashboard.jpg?fit=max&auto=format&n=BVCvDn4rl3j0TCQq&q=85&s=b549e794e8fb5c988bec596bceecabfa" alt="A screenshot of the Amazon Bedrock &#x22;Custom models&#x22; dashboard showing customization techniques (reinforcement fine‑tuning, supervised fine‑tuning, distillation), an empty models table, and a left navigation menu. The page is framed on a blue gradient background." width="1920" height="1080" data-path="images/Introduction-to-Amazon-Bedrock/Advanced-Topics-Optional/Fine-Tuning-Models-Part-2/amazon-bedrock-custom-models-dashboard.jpg" />
</Frame>

## Supervised fine-tuning: dataset format & prerequisites

Supervised fine-tuning (SFT) requires a properly formatted dataset, storage configuration, and an IAM role Bedrock can assume.

* Training dataset format: Use a JSON Lines (JSONL) file where each line is a JSON object representing a single example. Each example typically contains `prompt` and `completion` fields. Example:

```json theme={null}
{"prompt":"Explain Newton's first law in simple terms.","completion":"An object at rest stays at rest and an object in motion stays in motion unless acted on by an external force."}
```

* Storage: Upload your JSONL file to an S3 bucket. Provide a separate (or same) S3 output location where Bedrock will write the resulting custom model artifact.

* IAM role: Create an IAM role that Bedrock can assume with the required S3 permissions and a trust policy that allows the Bedrock service principal to assume the role. Apply least privilege.

Use the table below as a quick reference for common S3 and IAM considerations:

| Requirement | Example / Notes |
| - | - |
| Input dataset location | S3 bucket with the JSONL file, e.g. `s3://my-bucket/ft-datasets/customer-support.jsonl` |
| Output artifact location | S3 prefix for model artifacts, e.g. `s3://my-bucket/ft-output/` |
| IAM actions (input) | `s3:GetObject`, `s3:ListBucket` (ensure bucket/key access) |
| IAM actions (output) | `s3:PutObject` (for writing artifacts) |
| IAM trust policy | Allow Bedrock to assume the role — ensure the service principal for Bedrock is included in the trust policy |

Bedrock will create and register the custom model resource as part of the training job. You can manage and deploy that custom model from the Custom Models section of the Bedrock console after the job completes.

<Callout icon="lightbulb" color="#1CB2FE">
  Model availability and supported customization techniques change over time and vary by region. Always verify current support with the AWS CLI (`aws bedrock list-foundation-models`) or the Bedrock console before planning a fine-tuning job.
</Callout>

## Links and references

* [Amazon Bedrock — What is Bedrock?](https://docs.aws.amazon.com/bedrock/latest/ug/what-is-bedrock.html)
* [AWS CLI — bedrock list-foundation-models](https://docs.aws.amazon.com/cli/latest/reference/bedrock/list-foundation-models.html)
* [Amazon S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
* [IAM roles — AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/introduction-to-amazon-bedrock/module/7af9f623-7d4e-447a-8b21-6e635dfaccfa/lesson/acdf610d-b08b-4304-bdd3-5e39f2c9ccf0" />
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.