Fine-tune Gemini using custom settings for advanced use cases

Tune a Generative AI model using Vertex AI Supervised Fine-tuning with advanced parameters.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

Python

Before trying this sample, follow the Python setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Python API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 time 
 import 
  
  vertexai 
 
 from 
  
 vertexai.tuning 
  
 import 
  sft 
 
 # TODO(developer): Update and un-comment below line 
 # PROJECT_ID = "your-project-id" 
  vertexai 
 
 . 
 init 
 ( 
 project 
 = 
 PROJECT_ID 
 , 
 location 
 = 
 "us-central1" 
 ) 
 # Initialize Vertex AI with your service account for BYOSA (Bring Your Own Service Account). 
 # Uncomment the following and replace "your-service-account" 
 # vertexai.init(service_account="your-service-account") 
 # Initialize Vertex AI with your CMEK (Customer-Managed Encryption Key). 
 # Un-comment the following line and replace "your-kms-key" 
 # vertexai.init(encryption_spec_key_name="your-kms-key") 
 sft_tuning_job 
 = 
  sft 
 
 . 
  train 
 
 ( 
 source_model 
 = 
 "gemini-2.0-flash-001" 
 , 
 # 1.5 and 2.0 models use the same JSONL format 
 train_dataset 
 = 
 "gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_train_data.jsonl" 
 , 
 # The following parameters are optional 
 validation_dataset 
 = 
 "gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_validation_data.jsonl" 
 , 
 tuned_model_display_name 
 = 
 "tuned_gemini_2_0_flash" 
 , 
 # Advanced use only below. It is recommended to use auto-selection and leave them unset 
 # epochs=4, 
 # adapter_size=4, 
 # learning_rate_multiplier=1.0, 
 ) 
 # Polling for job completion 
 while 
 not 
 sft_tuning_job 
 . 
 has_ended 
 : 
 time 
 . 
 sleep 
 ( 
 60 
 ) 
 sft_tuning_job 
 . 
 refresh 
 () 
 print 
 ( 
 sft_tuning_job 
 . 
 tuned_model_name 
 ) 
 print 
 ( 
 sft_tuning_job 
 . 
 tuned_model_endpoint_name 
 ) 
 print 
 ( 
 sft_tuning_job 
 . 
 experiment 
 ) 
 # Example response: 
 # projects/123456789012/locations/us-central1/models/1234567890@1 
 # projects/123456789012/locations/us-central1/endpoints/123456789012345 
 # <google.cloud.aiplatform.metadata.experiment_resources.Experiment object at 0x7b5b4ae07af0> 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: