GUIDE · GOOGLE CLOUD · GEMINI · FINE-TUNING
Fine-tune Gemini in your own Google Cloud
Step by step: fine-tune Gemini for classification on Google Cloud (Vertex AI, now Agent Platform), yourself or straight from a spreadsheet or Google Sheet.
Fine-tuning and the StayCharted workflow
Gemini is tuned on Gemini Enterprise Agent Platform (formerly Vertex AI), in your own Google Cloud project. The console now says "Agent Platform"; the steps are the same under either name.
- Part 1: tune Gemini yourself.
- Part 2: the same, in your own project, from a spreadsheet or a Google Sheet, with StayCharted doing every step.
Before you start
- A Google Cloud project with billing on, and the Agent Platform API enabled
(
aiplatform.googleapis.com; it may still say Vertex AI API). - Permission to create Cloud Storage buckets, service accounts and tuning jobs, or an administrator who can.
- Labeled examples: past records with the category your team gave each one. A few hundred is a good start; hold some back to test on.
Part 1: Tune Gemini yourself
Step 1. Write the training file
One JSON object per line: the record as the user's turn, the category as the model's turn, and the same system instruction on every line.
Show JSON example
{"systemInstruction": {"role": "system", "parts": [{"text": "Categorize the support ticket. Answer with one of: Billing, Technical, Account, Sales."}]}, "contents": [{"role": "user", "parts": [{"text": "I was charged twice for my subscription this month."}]}, {"role": "model", "parts": [{"text": "Billing"}]}]}
Check every line parses: one trailing comma or curly quote fails validation before the job starts.
Step 2. Upload it to Cloud Storage
Create a bucket in the region you'll tune in (for example us-central1; a bucket's
region can't be changed later) and upload the file.
Step 3. Create the tuning job
Agent Platform → Models → Tuning → Create tuned model (the Managed tuning tab), in the same region:
- Method: supervised tuning.
- Base model: a current Gemini model your region offers for tuning, such as Gemini 3.5 Flash. Google calls the 2.5 models out of date, and a new project may tune one but not be allowed to use it.
- Training data: the file's
gs://path. - Settings: epochs, adapter size and learning rate multiplier. Start with the defaults.
Step 4. Call the tuned model
When the job succeeds, the tuned model has its own endpoint in your project (listed under Endpoints). Call it where you'd call the base model, with the same system instruction you tuned with.
Step 5. Test it
Ask it about every example in your test set, compare with your team's answers, and work out accuracy per category. Gemini gives an answer, not a probability, so decide which answers a person checks.
Part 2: Tune Gemini from a spreadsheet or Google Sheet, with StayCharted
StayCharted does every step of Part 1 in your own Google Cloud project. You need a StayCharted workspace on Business. If your examples are in Google Sheets, the StayCharted add-on trains from the sheet itself.
Step 1. Set up your project (once, about 15 minutes)
- Turn on the Agent Platform API in the project (
aiplatform.googleapis.com). - Make a bucket in your tuning region, such as
us-central1. Keep the defaults: Standard, uniform access, public access prevention on. - Make a service account, for example
staycharted-amt-tuning, with the role Agent Platform User (formerly Vertex AI User,roles/aiplatform.user) on the project. - Give it Storage Object Admin on the bucket: the bucket's Permissions → Grant access, with the service account's full email.
- Make a JSON key for it: Service Accounts → the account → Keys → Add key → JSON.
Service account key creation is disabled? Ask your organization administrator whether a narrowly scoped exception for this project is permitted. Follow your organization’s credential policies. Store the key securely, limit its roles to this workflow and rotate or revoke it when appropriate.
Step 2. Connect it in StayCharted
Settings → AI platforms → Google Cloud:
| Field | What to enter |
|---|---|
| Project ID | the project's ID (lowercase, with dashes), not its name |
| Location | your region, such as us-central1 |
| Also train models here | ticked |
| Cloud Storage bucket | the bucket's name |
| Tuning location | the same region |
| Service-account key (JSON) | the whole key file |
Press Connect, then Test. StayCharted writes and deletes a small file in the bucket and lists your tuning jobs; it should say Training (bucket and tuning): ready.
Step 3. Send your examples
- From Google Sheets: Extensions → StayCharted, choose the column with your team's answers and the columns the model reads, and press Check the data.
- Or upload a spreadsheet (CSV or Excel) in StayCharted.
StayCharted checks the data first: rows that look like they belong in another category, the same text under two categories, near-duplicates.
Step 4. Choose Google Cloud and a Gemini base
Train a model on your examples → Dedicated AI Model → Where it trains: Google Cloud, and the Gemini to tune: Gemini 3.5 Flash. The 2.5 models are listed for projects that already use them; Google refuses them in new projects.
Step 5. Let it run
StayCharted:
- holds back test rows, which never go into training;
- writes the JSONL with the same system instruction it will ask with, and puts it in your bucket;
- starts the tuning job in your project, named
amt-…(you can watch it under Agent Platform → Models → Tuning); - deletes the file when the job ends;
- tests the tuned model on the held-out rows.
You can close the browser; the model page says where it's up to.
How long it took for us: on a 48-row file with Gemini 3.5 Flash in us-central1, Google started the job at once and it finished 29 minutes later (5 epochs). The tuned model scored 87.5% on the 8 rows it never saw.
Step 6. Read the report and publish
The report shows how often the model is right for each category and the examples it got wrong. Publish to make it the live version. A tuned Gemini answers per token at the applicable tuned-model inference rate, with no hourly hosting fee.
Step 7. Use it
Fill the empty rows of the same sheet from the add-on's Fill tab, or use the model from spreadsheet fills, the API, Zapier, Power Automate, or Claude and ChatGPT. Unsure answers wait in the Review Queue.
Not ready to tune? Use Gemini as it is
StayCharted can also use Gemini without tuning it (Use your own AI, without training): each question goes with your categories, your labeling guide and the past examples most like the record. Compare it with a tuned model on the same rows.
Who pays for what
| Billed by | |
|---|---|
| Tuning (tokens × epochs) | Google Cloud, to your project |
| The training file in your bucket (minutes) | Google Cloud Storage |
| Answers (per token, applicable tuned-model inference rate) | Google Cloud, to your project |
| Rows read and answered by StayCharted | Your StayCharted plan, like any model |
If something goes wrong
| You see | What to do |
|---|---|
| "Service account key creation is disabled" (Google) | Ask your organization administrator about an approved project-scoped exception; see Step 1. |
| No "Vertex AI User" role | Google renamed it: choose Agent Platform User (roles/aiplatform.user). |
| "Paste your Google Cloud project ID." | Use the project ID (lowercase, with dashes), not the project name or number. |
| "That JSON is not a service-account key." | Paste the whole key file. |
| "Give the service account Agent Platform User (formerly Vertex AI User) on the project and Storage Object Admin on the bucket" | Add both, then press Test again. |
| "Choose where tuning runs, such as us-central1 (not global)" | Tuning runs in a region; global answers models but doesn't tune them. |
| The tuning job fails at the start | Check your region offers the model, and the bucket is in that region. |
Provider documentation and pricing
Check the rate for your tuned model
Google Cloud bills training, inference and storage. Tuned-model inference pricing depends on the model: Google lists a 1.5× base inference rate for Gemini 3 and later tuned models, while older Gemini tuned models retain the base prediction rate. Check the linked pricing page before starting. StayCharted-managed cloud training requires Business.
Common questions about Gemini fine-tuning (Vertex AI)
Is Vertex AI still called Vertex AI?
Google renamed it Gemini Enterprise Agent Platform in April 2026; the console says Agent Platform. Tuning works the same way.
How long does Gemini tuning take?
A 48-row file took us 29 minutes on Gemini 3.5 Flash, starting at once. This is one internal development run, not a promised completion time; duration varies with the model, dataset and available capacity.
How many examples do I need?
Start around a hundred well-chosen examples, and more when categories are many or similar. Test on examples the model hasn't seen.
Can StayCharted tune Gemini for me?
Yes, on Business: Gemini 3.5 Flash in your own project, and the 2.5 models in projects Google still lets use them.
Can I train from Google Sheets?
Yes. The StayCharted add-on sends the rows from the sheet, trains in your Google Cloud, and fills the empty rows with the tuned model.
Does my data leave my project?
The training file goes to your bucket and is deleted when tuning ends; the tuned model stays in your project and answers there. StayCharted holds your examples to build the file and test the model, as for any model.