API Tuning

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

Gunakan Gemini tuning API untuk kasus penggunaan berikut:

Model yang Didukung:

Anda dapat menggunakan fine-tuning yang diawasi pada model Gemini berikut:

Model Versi
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 di-tuning. Nilai yang didukung adalah: gemini-1.0-pro-002.

tunedModelDisplayName

string

Nama tampilan TunedModel. Panjang nama maksimal 128 karakter dan dapat berisi karakter UTF-8 apa saja.

supervisedTuningSpec

Parameter

training_dataset

string

URI Cloud Storage set data pelatihan Anda. Set data harus diformat sebagai file JSONL. Untuk hasil terbaik, berikan setidaknya 100 hingga 500 contoh. Untuk informasi selengkapnya, lihat Tentang set data tuning yang diawasi.

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 membuat metrik validasi secara berkala selama fine-tuning. Untuk informasi selengkapnya, lihat Tentang set data tuning yang diawasi .

epoch_count

Opsional: int

Jumlah penerusan lengkap yang dibuat model di seluruh set data pelatihan selama pelatihan.

learning_rate_multiplier

Opsional: float

Pengganda untuk menyesuaikan kecepatan pembelajaran default.

adapter_size

Opsional: AdapterSize

Ukuran adaptor untuk tuning.

tuned_model_display_name

Opsional: string

Nama tampilan TunedModel. Panjang nama maksimal 128 karakter dan dapat berisi karakter UTF-8 apa saja.

AdapterSize

Ukuran adaptor untuk tugas tuning.

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.

AdapterSize default jika tidak ditentukan:

Model Versi AdapterSize Default
Gemini 1.0 Pro gemini-1.0-pro-002 ADAPTER_SIZE_ONE

Contoh

Membuat Tugas yang supervised tuning

Anda dapat membuat tugas tuning model teks yang diawasi dengan menggunakan Vertex AI SDK untuk Python atau dengan mengirim 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 tuning model, kirim permintaan POST dengan 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 tuning dijalankan. Ini juga merupakan region default tempat model yang di-tuning diupload.
  • BASE_MODEL: Nama model dasar yang akan disesuaikan. Nilai yang didukung: gemini-1.0-pro-002.
  • TRAINING_DATASET_URI: URI Cloud Storage dari set data pelatihan Anda. Set data harus diformat sebagai file JSONL. Untuk hasil terbaik, berikan setidaknya 100 hingga 500 contoh. Untuk mengetahui informasi selengkapnya, lihat Tentang set data tuning yang diawasi .

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.preview.tuning import sft

# TODO(developer): Update project_id and location
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/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)

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 tuning model, kirim permintaan POST dengan 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 tuning dijalankan. Ini juga merupakan region default tempat model yang di-tuning diupload.
  • BASE_MODEL: Nama model dasar yang akan disesuaikan. Nilai yang didukung: gemini-1.0-pro-002.
  • TRAINING_DATASET_URI: URI Cloud Storage dari set data pelatihan Anda. Set data harus diformat sebagai file JSONL. Untuk hasil terbaik, berikan setidaknya 100 hingga 500 contoh. Untuk mengetahui informasi selengkapnya, lihat Tentang set data tuning yang diawasi .
  • VALIDATION_DATASET_URIOpsional: URI Cloud Storage file set data validasi Anda.
  • EPOCH_COUNTOpsional: Jumlah penerusan lengkap yang dibuat model di seluruh set data pelatihan selama pelatihan. Biarkan kebijakan ini tidak disetel untuk menggunakan nilai yang direkomendasikan.
  • ADAPTER_SIZEOpsional: Ukuran adaptor yang akan digunakan untuk tugas tuning. Ukuran adaptor memengaruhi jumlah parameter yang dapat dilatih untuk tugas tuning. Ukuran adaptor yang lebih besar menyiratkan bahwa model bisa mempelajari tugas-tugas yang lebih kompleks, tetapi membutuhkan set data pelatihan yang lebih besar dan waktu pelatihan yang lebih lama.
  • LEARNING_RATE_MULTIPLIER: Opsional: A pengganda untuk diterapkan pada kecepatan pembelajaran yang direkomendasikan. Biarkan kebijakan ini tidak disetel untuk menggunakan nilai yang direkomendasikan.
  • TUNED_MODEL_DISPLAYNAMEOpsional: Layar untuk model yang di-tuning. 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.preview.tuning import sft

# TODO(developer): Update project_id and location
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
    # The following parameters are optional
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
    epochs=4,
    adapter_size=4,
    learning_rate_multiplier=1.0,
    tuned_model_display_name="tuned_gemini_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)

Mencantumkan Tugas penyesuaian

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

REST

Untuk membuat tugas tuning model, kirim permintaan POST dengan 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 tuning dijalankan. Ini juga merupakan region default tempat model yang di-tuning 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.preview.tuning import sft

# TODO(developer): Update project_id and location
vertexai.init(project=PROJECT_ID, location="us-central1")

responses = sft.SupervisedTuningJob.list()

for response in responses:
    print(response)

Mendapatkan detail tugas tuning

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

REST

Untuk melihat daftar tugas tuning model, kirim permintaan GET menggunakan tuningJobs.get dan menetapkan TuningJob_ID.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas tuning dijalankan. Ini juga merupakan region default tempat model yang di-tuning diupload.
  • TUNING_JOB_ID: ID tugas tuning.

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.preview.tuning import sft

# TODO(developer): Update project_id and location
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)

Membatalkan tugas tuning

Anda bisa membatalkan tugas tuning Vertex AI SDK untuk Python atau dengan mengirim permintaan POST.

REST

Untuk melihat daftar tugas tuning model, kirim permintaan GET menggunakan tuningJobs.cancel dan menetapkan TuningJob_ID.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNING_JOB_REGION: Region tempat tugas tuning dijalankan. Ini juga merupakan region default tempat model yang di-tuning diupload.
  • TUNING_JOB_ID: ID tugas tuning.

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.preview.tuning import sft

# TODO(developer): Update project, location
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 yang berikut: