Dokumen ini menjelaskan cara menyesuaikan model LLM Terjemahan menggunakan penyesuaian yang diawasi.
Sebelum memulai
Sebelum memulai, Anda harus menyiapkan set data penyesuaian yang diawasi. Bergantung pada kasus penggunaan Anda, ada persyaratan yang berbeda.
- Menyiapkan set data teks untuk penyesuaian: Penyesuaian teks
Model yang Didukung
translation-llm-002
(Dalam pratinjau, hanya mendukung penyesuaian teks)
Membuat tugas penyesuaian
Anda dapat membuat tugas penyesuaian yang diawasi menggunakan REST API atau Vertex AI SDK untuk Python.
REST
Untuk membuat tugas penyesuaian model, kirim permintaan POST menggunakan metode tuningJobs.create
. 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. Region yang didukung:
us-central1
. - BASE_MODEL: Nama
model terjemahan yang akan disesuaikan. Nilai yang didukung:
translation-llm-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 mengetahui informasi selengkapnya, lihat Tentang set data penyesuaian terpantau .
- VALIDATION_DATASET_URIOpsional: Cloud Storage URI dari file set data validasi Anda.
- 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", }, "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:
Contoh perintah curl
PROJECT_ID=myproject
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
"baseModel": "translation-llm-002",
"supervisedTuningSpec" : {
"training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
"validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl"
},
"tunedModelDisplayName": "tuned_translation_llm"
}'
Python
from vertexai.generative_models import GenerativeModel
sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>")
tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name)
print(tuned_model.generate_content(content))
import time
import vertexai
from vertexai.tuning import sft
# TODO(developer): Update and un-comment below line.
# PROJECT_ID = os.environ["GOOGLE_CLOUD_PROJECT"]
vertexai.init(project=PROJECT_ID, location="us-central1")
sft_tuning_job = sft.train(
source_model="translation-llm-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",
tuned_model_display_name="tuned_translation_llm_002",
)
# 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>
Melihat daftar tugas penyesuaian
Anda dapat melihat daftar tugas penyesuaian dalam project saat ini menggunakan konsol Google Cloud,
Vertex AI SDK untuk Python, atau dengan mengirim permintaan GET menggunakan metode tuningJobs
.
REST
Untuk melihat daftar tugas penyesuaian model, kirim permintaan GET menggunakan metode tuningJobs.list
.
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
Konsol
Untuk melihat tugas penyesuaian di konsol Google Cloud, buka halaman Vertex AI Studio.
Tugas penyesuaian LLM Terjemahan Anda tercantum dalam tabel di bagian Model yang disesuaikan LLM Terjemahan.
Mendapatkan detail tugas penyesuaian
Anda bisa mendapatkan detail tugas penyesuaian dalam project saat ini
menggunakan konsol Google Cloud, Vertex AI SDK untuk Python, atau dengan mengirim permintaan
GET menggunakan metode tuningJobs
.
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
Konsol
Untuk melihat detail model yang disesuaikan di konsol Google Cloud, buka halaman Vertex AI Studio.
Di tabel Translation LLM tuned models, temukan model Anda, lalu klik Details.
Detail model Anda akan ditampilkan.
Membatalkan tugas penyesuaian
Anda dapat membatalkan tugas penyesuaian dalam project saat ini menggunakan konsol Google Cloud,
Vertex AI SDK untuk Python, atau dengan mengirim permintaan POST menggunakan metode tuningJobs
.
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
Konsol
Untuk membatalkan tugas penyesuaian di konsol Google Cloud, buka halaman Vertex AI Studio.
Di tabel Model yang disesuaikan terjemahan, klik
Kelola operasi.Klik Cancel.
Menguji model yang dioptimalkan dengan perintah
Anda dapat menguji tugas penyesuaian dalam project saat ini menggunakan
Vertex AI SDK untuk Python atau dengan mengirim permintaan POST menggunakan metode
tuningJobs
.
Contoh berikut meminta model dengan pertanyaan "Mengapa langit berwarna biru?".
REST
Untuk menguji model yang telah disesuaikan dengan perintah, kirim permintaan POST dan
tentukan TUNED_ENDPOINT_ID
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- TUNING_JOB_REGION: Region tempat tugas penyesuaian dijalankan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload.
- ENDPOINT_ID: ID endpoint model yang disesuaikan dari GET API.
Metode HTTP dan URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent
Isi JSON permintaan:
{ "contents": [ { "role": "USER", "parts": { "text" : "English: Hello. Spanish:" } } ], }
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/endpoints/ENDPOINT_ID:generateContent"
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/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Python
from vertexai.generative_models import GenerativeModel
sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>")
tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name)
print(tuned_model.generate_content(content))
Metrik penyesuaian dan validasi
Anda dapat mengonfigurasi tugas penyesuaian model untuk mengumpulkan dan melaporkan metrik penyesuaian model dan evaluasi model, yang kemudian dapat divisualisasikan di Vertex AI Studio.
Untuk melihat detail model yang disesuaikan di konsol Google Cloud, buka halaman Vertex AI Studio.
Di tabel Tune and Distill, klik nama model yang dioptimalkan yang ingin Anda lihat metriknya.
Metrik penyesuaian muncul di tab Monitor.
Metrik penyesuaian model
Tugas penyesuaian model secara otomatis mengumpulkan metrik penyesuaian berikut
untuk translation-llm-002
.
/train_total_loss
: Kerugian untuk set data penyesuaian pada langkah pelatihan./train_fraction_of_correct_next_step_preds
: Akurasi token pada langkah pelatihan. Satu prediksi terdiri dari serangkaian token. Metrik ini mengukur akurasi token yang diprediksi jika dibandingkan dengan kebenaran dasar dalam set data penyesuaian./train_num_predictions:
Jumlah token yang diprediksi pada langkah pelatihan.
Metrik validasi model:
Anda dapat mengonfigurasi tugas penyesuaian model untuk mengumpulkan metrik validasi berikut
untuk translation-llm-002
.
/eval_total_loss
: Kerugian untuk set data validasi pada langkah validasi./eval_fraction_of_correct_next_step_preds
: Akurasi token pada langkah validasi. Satu prediksi terdiri dari serangkaian token. Metrik ini mengukur akurasi token yang diprediksi jika dibandingkan dengan kebenaran dasar dalam set data validasi./eval_num_predictions
: Jumlah token yang diprediksi pada langkah validasi.
Visualisasi metrik tersedia setelah tugas penyesuaian mulai berjalan. Nilai ini akan diperbarui secara real time seiring dengan progres penyesuaian. Jika Anda tidak menentukan set data validasi saat membuat tugas penyesuaian, hanya visualisasi untuk metrik penyesuaian yang tersedia.
Langkah selanjutnya
- Untuk mempelajari cara penyesuaian tersupervisi dapat digunakan dalam solusi yang membuat pusat informasi AI generatif, lihat Solusi Praktis: Pusat informasi AI generatif.