BLOG · AMAZON BEDROCK · FINE-TUNING
Amazon Bedrock fine-tuning for classification: what it takes, and how to skip the plumbing
How Amazon Bedrock fine-tuning works for Amazon Nova, what it costs, when it beats prompting, and how to fine-tune on your own AWS account from a spreadsheet.
From your examples to your own Nova model
Your team has categorized thousands of tickets, emails, claims or documents. You'd like an AI model that categorizes the next ones the same way, and your company would rather it ran in your own AWS account. Amazon Bedrock can do that: it fine-tunes Amazon Nova models on your examples and serves the result, pay-as-you-go, in your account.
This post explains how Bedrock fine-tuning works, what it costs, when it's worth it, and the parts that take the time: the training file, the IAM roles, the deployment, and testing whether the result is any good. Then it shows how StayCharted does those parts for you, from a spreadsheet, so someone who has never opened the Bedrock console can do it.
What fine-tuning is, in one paragraph
A base model like Amazon Nova knows language in general. Fine-tuning trains it further on your own examples, each one a question and the answer you want, until it gives your answers by itself. For classification, every example is a record (a ticket, an email, a description) and the category your team gave it. The result is a custom model: your copy of Nova, tuned to your categories, that you call like any other Bedrock model.
Prompting or fine-tuning?
| Prompting a model | Fine-tuning a model | |
|---|---|---|
| What you give it | Instructions, maybe a few examples, on every call | Hundreds or thousands of examples, once |
| Good for | A handful of clear categories you can describe in words | Many categories, fine distinctions, your team's own judgment calls |
| Consistency | Varies with the wording of the prompt | Learns the pattern from what your team actually did |
| Cost per call | Long prompts with examples cost more tokens | Short prompts, since the examples are built in |
| Effort | Write and maintain a prompt | Prepare data, train, deploy, test |
AWS’s ATIS example shows the gap: on an airline-request dataset (ATIS), base Nova Micro got 41.4% right; after fine-tuning, it got 97% on the held-out test set. Your results depend on your data. This is one AWS experiment, not a StayCharted result or a guarantee. Compare prompting and fine-tuning on the same held-out examples to choose for your task.
How Bedrock fine-tuning works
- Pick a base model. For text, Bedrock fine-tunes Amazon Nova Micro, Nova Lite, Nova Pro and Nova 2 Lite, in US East (N. Virginia).
- Write the training file. One JSON object per line (JSONL), in Bedrock's conversation format: a system prompt, the record as the user message, and your category as the assistant's reply. The system prompt you train with must be the one you ask with later.
- Put it in S3 and give Bedrock a service role that can read it.
- Start a fine-tuning job and choose hyperparameters: epochs (1 to 5 for Nova, default 2), learning rate, warm-up steps. A job runs for an hour or more.
- Deploy the custom model for on-demand inference. Nova custom models can answer pay-as-you-go, at the applicable Nova custom-model inference rate, without buying Provisioned Throughput. You call it with the deployment's ARN as the model ID.
- Test it on examples it never saw, and decide whether it's good enough to use.
What it costs
All of it is on your AWS bill:
- Training: charged by the number of tokens trained on (records × epochs). AWS's ATIS example, about 1.75 million tokens over 3 epochs, cost $2.18 and took about an hour and a half.
- Storage: a monthly fee for each custom model you keep; $1.75 a month in AWS's example.
- Answers: per token, at the applicable Nova custom-model inference rate.
Short classification records can make a pilot inexpensive, but cost depends on the base model, token count and epochs. Include S3 and any other AWS charges. Check current Amazon Bedrock rates.
The parts that take the time
The training job is only part of the work. A team also needs to handle:
- Turning a spreadsheet into JSONL, with a system prompt that lists your categories, every row in the same format, nothing malformed (a bad line fails the job).
- Holding back test rows so you can measure the model honestly, and keeping them out of training.
- IAM: a service role for Bedrock, an S3 bucket it can read, permissions for whoever starts the job, all in the right region.
- Waiting and watching: polling the job, then deploying, then waiting for the deployment to be Active.
- Testing: calling the model on every held-out row, comparing answers, working out accuracy per category.
- Deciding what to trust. Bedrock returns an answer, not a confidence, so you need your own rule for which answers a person should check.
- Doing it again every time your team's categories or decisions change.
The easy way: StayCharted trains it in your AWS account
StayCharted AI Model Trainer does all of the above from a spreadsheet, while the model stays in your AWS account:
- Connect your AWS account once. In StayCharted, Settings → AI platforms → Amazon Bedrock, tick Also train models here, and launch the CloudFormation template it gives you in us-east-1. The template makes a role for StayCharted, a private bucket for training files and Bedrock's service role. You paste back one role ARN. There are no keys to copy.
- Upload your examples: a spreadsheet of past records and the category your team gave each one. StayCharted checks the data first: rows that look like they belong in another category, the same text under two categories, near-duplicates.
- Choose where it trains: Train a model on your examples, then Your servers — Amazon Bedrock, and a Nova base (Micro, Lite or Pro).
- StayCharted does the rest: holds back test rows, writes the JSONL with the same prompt it will ask with, puts it in your bucket, starts Bedrock's fine-tuning, deletes the file when training ends, deploys the tuned model for on-demand answers, and tests it on the held-out rows.
- Read the report: accuracy per category and the examples it got wrong, the same report as every other StayCharted model.
- Use it from a spreadsheet fill, the API, Zapier, Power Automate, Google Sheets, or Claude and ChatGPT through StayCharted's connector. Answers come from your Bedrock; unsure ones go to the Review Queue on eligible plans, and the corrections go into the next version.
You never write JSON, open the IAM console, or call an API.
What to watch for
- Text only. Fine-tuning on your Bedrock is for text models. For pictures, use StayCharted's picture models.
- One region. Bedrock fine-tunes Nova in us-east-1, so the connection used for training has to be there.
- Confidence is estimated. A tuned Nova model gives an answer, not a probability. StayCharted estimates how sure it is from how your team labelled the most similar past examples, and sends anything below a high bar to review.
- Quotas. Bedrock limits how many fine-tuning jobs an account can run at once. A busy account may need a quota increase.
- Each retrain is a new custom model, with its own small monthly storage fee. Delete versions you no longer need in the Bedrock console.
AWS sources and current pricing
Common questions about Amazon Bedrock fine-tuning
How do I fine-tune a model in Amazon Bedrock?
Prepare a JSONL file of examples, put it in S3, give Bedrock a service role that can read it, start a fine-tuning job on a supported base model such as Amazon Nova, deploy the custom model, then test it. StayCharted does all of these steps from a spreadsheet.
Which models can I fine-tune in Bedrock?
For text, Amazon Nova Micro, Nova Lite, Nova Pro and Nova 2 Lite in us-east-1, and some Meta Llama models in us-west-2. StayCharted trains Nova Micro, Lite and Pro.
How much does Bedrock fine-tuning cost?
Training is charged per token trained on, storage per custom model per month, and answers per token at the applicable Nova rate. AWS's own example cost $2.18 to train and $1.75 a month to store.
What format does Bedrock fine-tuning data need?
JSONL in Bedrock's conversation format (`bedrock-conversation-2024`): a system prompt, the user's message and the assistant's reply, one example per line.
Do I need Provisioned Throughput for a fine-tuned Nova model?
No. Nova custom models can be deployed for on-demand inference and called pay-as-you-go.
Does my data leave my AWS account?
Yes, StayCharted processes and stores the examples you upload to prepare training data and test the model. The custom model and S3 training file are in your AWS account; StayCharted deletes the training file when training ends. This is not an account-only data boundary.
Is fine-tuning better than prompting for classification?
It can be, when you have representative labeled examples and categories with fine distinctions. A well-written prompt may be enough for simpler tasks. Test both on the same held-out rows rather than assuming fine-tuning will win.