Tuning API

Penyesuaian model adalah proses penting dalam menyesuaikan Gemini untuk melakukan tugas tertentu dengan presisi dan akurasi yang lebih tinggi. Penyesuaian model bekerja dengan menyediakan model dengan set data pelatihan yang berisi kumpulan contoh tugas downstream tertentu.

Gunakan API penyesuaian Gemini untuk kasus penggunaan berikut:

Model yang Didukung:

Anda dapat menggunakan penyesuaian yang diawasi pada model Gemini berikut:

Model Versi
Gemini 1.5 Pro gemini-1.5-pro-002
Gemini 1.5 Flash gemini-1.5-flash-002
Gemini 1.0 Pro gemini-1.0-pro-002

Contoh sintaksis

Sintaksis untuk menyesuaikan model.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs \
-d '{
  "baseModel": "...",
  "supervisedTuningSpec" : {
    ...
      "hyper_parameters": {
        ...
      },
  },
  "tunedModelDisplayName": "",
}'

Daftar parameter

Lihat contoh untuk mengetahui detail penerapan.

Isi permintaan

Isi permintaan berisi data dengan parameter berikut:

Parameter

source_model

Opsional: string

Nama model dasar yang sedang disesuaikan. Nilai yang didukung adalah: gemini-1.0-pro-002.

tunedModelDisplayName

string

Nama tampilan TunedModel. Nama dapat berisi hingga 128 karakter dan dapat terdiri dari karakter UTF-8 apa pun.

supervisedTuningSpec

Parameter

training_dataset

string

URI Cloud Storage set data pelatihan Anda. Set data harus diformat sebagai file JSONL. Untuk hasil terbaik, berikan minimal 100 hingga 500 contoh. Untuk mengetahui informasi selengkapnya, lihat Tentang set data penyesuaian terpantau.

validation_dataset

Opsional: string

URI Cloud Storage set data validasi Anda. Set data Anda harus diformat sebagai file JSONL. Set data dapat berisi hingga 256 contoh. Jika Anda menyediakan file ini, data akan digunakan untuk menghasilkan metrik validasi secara berkala selama penyesuaian. Untuk informasi selengkapnya, lihat Tentang set data penyesuaian terpantau .

epoch_count

Opsional: int

Jumlah penerusan lengkap yang dilakukan model di seluruh set data pelatihan selama pelatihan. Vertex AI akan otomatis menyesuaikan nilai default dengan ukuran set data pelatihan Anda. Nilai ini didasarkan pada hasil benchmark untuk mengoptimalkan kualitas output model.

learning_rate_multiplier

Opsional: float

Pengganda untuk menyesuaikan kecepatan pembelajaran default.

adapter_size

Opsional: AdapterSize

Ukuran adaptor untuk penyesuaian.

tuned_model_display_name

Opsional: string

Nama tampilan TunedModel. Nama dapat berisi hingga 128 karakter dan dapat terdiri dari karakter UTF-8 apa pun.

AdapterSize

Ukuran adaptor untuk tugas penyesuaian.

Parameter

ADAPTER_SIZE_UNSPECIFIED

Ukuran adaptor tidak ditentukan.

ADAPTER_SIZE_ONE

Ukuran adaptor 1.

ADAPTER_SIZE_FOUR

Ukuran adaptor 4.

ADAPTER_SIZE_EIGHT

Ukuran adaptor 8.

ADAPTER_SIZE_SIXTEEN

Ukuran adaptor 16.

Contoh

Membuat Tugas penyesuaian yang diawasi

Anda dapat membuat tugas penyesuaian model teks yang diawasi menggunakan Vertex AI SDK untuk Python atau dengan mengirimkan permintaan POST.

Kasus penggunaan dasar

Kasus penggunaan dasar hanya menetapkan nilai untuk baseModel dan training_dataset_uri. Semua parameter lainnya menggunakan nilai default.

REST

Untuk membuat tugas penyesuaian model, kirim permintaan POST menggunakan metode tuningJobs.create. Perhatikan bahwa beberapa parameter tidak didukung oleh semua model. Pastikan Anda hanya menyertakan parameter yang berlaku untuk model yang sedang disesuaikan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas penyesuaian berjalan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload.
  • BASE_MODEL: Nama model dasar yang akan disesuaikan. Nilai yang didukung: gemini-1.5-pro-002, gemini-1.5-flash-002, gemini-1.0-pro-002.
  • TRAINING_DATASET_URI: Cloud Storage URI set data pelatihan Anda. Set data harus diformat sebagai file JSONL. Untuk hasil terbaik, berikan minimal 100 hingga 500 contoh. Untuk informasi selengkapnya, lihat Tentang set data penyesuaian terpantau .

Metode HTTP dan URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

Isi JSON permintaan:

{
  "baseModel": "BASE_MODEL",
  "supervisedTuningSpec" : {
      "training_dataset_uri": "TRAINING_DATASET_URI"
  },
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip seperti berikut:

Python


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")

sft_tuning_job = sft.train(
    source_model="gemini-1.5-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_train_data.jsonl",
)

# 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>

Kasus penggunaan lanjutan

Kasus penggunaan lanjutan memperluas kasus penggunaan dasar, tetapi juga menetapkan nilai untuk hyper_parameters opsional, seperti epoch_count, learning_rate_multiplier, dan adapter_size.

REST

Untuk membuat tugas penyesuaian model, kirim permintaan POST menggunakan metode tuningJobs.create. Perhatikan bahwa beberapa parameter tidak didukung oleh semua model. Pastikan Anda hanya menyertakan parameter yang berlaku untuk model yang sedang disesuaikan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas penyesuaian berjalan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload.
  • BASE_MODEL: Nama model dasar yang akan disesuaikan. Nilai yang didukung: gemini-1.5-pro-002, gemini-1.5-flash-002, dan gemini-1.0-pro-002.
  • TRAINING_DATASET_URI: Cloud Storage URI set data pelatihan Anda. Set data harus diformat sebagai file JSONL. Untuk hasil terbaik, berikan minimal 100 hingga 500 contoh. Untuk informasi selengkapnya, lihat Tentang set data penyesuaian terpantau .
  • VALIDATION_DATASET_URIOpsional: Cloud Storage URI dari file set data validasi Anda.
  • EPOCH_COUNTOpsional: Jumlah penerusan lengkap yang dilakukan model di seluruh set data pelatihan selama pelatihan. Biarkan tidak ditetapkan untuk menggunakan nilai yang direkomendasikan dan telah diisi otomatis.
  • ADAPTER_SIZEOpsional: Ukuran adaptor yang akan digunakan untuk tugas penyesuaian. Ukuran adaptor memengaruhi jumlah parameter yang dapat dilatih untuk tugas penyesuaian. Ukuran adaptor yang lebih besar menyiratkan bahwa model dapat mempelajari tugas yang lebih kompleks, tetapi memerlukan set data pelatihan yang lebih besar dan waktu pelatihan yang lebih lama.
  • LEARNING_RATE_MULTIPLIER: Opsional: Pengganda untuk diterapkan ke kecepatan pembelajaran yang direkomendasikan. Biarkan tidak ditetapkan untuk menggunakan nilai yang direkomendasikan.
  • TUNED_MODEL_DISPLAYNAMEOpsional: Nama tampilan untuk model yang disesuaikan. Jika tidak ditetapkan, nama acak akan dibuat.

Metode HTTP dan URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

Isi JSON permintaan:

{
  "baseModel": "BASE_MODEL",
  "supervisedTuningSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI",
      "hyperParameters": {
          "epochCount": EPOCH_COUNT,
          "adapterSize": "ADAPTER_SIZE",
          "learningRateMultiplier": LEARNING_RATE_MULTIPLIER
      },
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME"
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip seperti berikut:

Python


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")

sft_tuning_job = sft.train(
    source_model="gemini-1.5-pro-002",
    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",
    epochs=4,
    adapter_size=4,
    learning_rate_multiplier=1.0,
    tuned_model_display_name="tuned_gemini_1_5_pro",
)

# 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>

Mencantumkan Tugas penyesuaian

Anda dapat melihat daftar tugas penyesuaian dalam project saat ini menggunakan Vertex AI SDK untuk Python atau dengan mengirim permintaan GET.

REST

Untuk membuat tugas penyesuaian model, kirim permintaan POST menggunakan metode tuningJobs.create. Perhatikan bahwa beberapa parameter tidak didukung oleh semua model. Pastikan Anda hanya menyertakan parameter yang berlaku untuk model yang sedang disesuaikan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas penyesuaian berjalan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload.

Metode HTTP dan URL:

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Python

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")

responses = sft.SupervisedTuningJob.list()

for response in responses:
    print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7c85287b2680>
# resource name: projects/12345678/locations/us-central1/tuningJobs/123456789012345

Mendapatkan detail tugas penyesuaian

Anda bisa mendapatkan detail tugas penyesuaian menggunakan Vertex AI SDK untuk Python atau dengan mengirim permintaan GET.

REST

Untuk melihat daftar tugas penyesuaian model, kirim permintaan GET menggunakan metode tuningJobs.get dan tentukan TuningJob_ID.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas penyesuaian berjalan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload.
  • TUNING_JOB_ID: ID tugas penyesuaian.

Metode HTTP dan URL:

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
response = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)

print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7cc4bb20baf0>
# resource name: projects/1234567890/locations/us-central1/tuningJobs/4982013113894174720

Membatalkan tugas penyesuaian

Anda dapat membatalkan tugas penyesuaian menggunakan Vertex AI SDK untuk Python atau dengan mengirim permintaan POST.

REST

Untuk melihat daftar tugas penyesuaian model, kirim permintaan GET menggunakan metode tuningJobs.cancel dan tentukan TuningJob_ID.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas penyesuaian berjalan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload.
  • TUNING_JOB_ID: ID tugas penyesuaian.

Metode HTTP dan URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan berikut ini.

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
job = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)
job.cancel()

Langkah selanjutnya

Untuk dokumentasi mendetail, lihat hal berikut: