Membuat dan mengelola model

Dokumen ini menjelaskan cara menyesuaikan dan menggunakan model LLM Terjemahan kustom.

Sebelum memulai

Sebelum memulai, Anda harus menyiapkan set data penyesuaian terawasi. Bergantung pada kasus penggunaan Anda, ada persyaratan yang berbeda.

Mengaktifkan Vertex AI API

Untuk menyetel model TLLM kustom, Anda harus melakukan hal berikut:

Aktifkan Vertex AI API.

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

Mengaktifkan API

Model yang didukung

Membuat tugas penyesuaian

Anda dapat membuat tugas penyesuaian terawasi 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.
  • TUNING_JOB_REGION: Region tempat tugas penyetelan berjalan. Ini juga merupakan region default tempat model yang disesuaikan diupload. Wilayah 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 yang diawasi.
  • VALIDATION_DATASET_URIOpsional: Cloud Storage URI file set data validasi Anda.
  • TUNED_MODEL_DISPLAYNAMEOpsional: Nama tampilan untuk model yang disesuaikan. Jika tidak disetel, 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

Meminta isi JSON:

{
  "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:

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-2_0/text/sft_train_data.jsonl",
    # The following parameters are optional
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-2_0/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 Google Cloud konsol, 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.
  • TUNING_JOB_REGION: Region tempat tugas penyetelan berjalan. Ini juga merupakan region default tempat model yang 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

Konsol

  1. Untuk melihat tugas penyesuaian di konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Lihat tugas penyesuaian Translation LLM Anda yang tercantum dalam tabel di bagian Model yang disesuaikan Translation LLM.

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.
  • TUNING_JOB_REGION: Region tempat tugas penyetelan berjalan. Ini juga merupakan region default tempat model yang 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

Konsol

  1. Untuk melihat detail model yang disesuaikan di konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. 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 Google Cloud konsol, 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.
  • TUNING_JOB_REGION: Region tempat tugas penyetelan berjalan. Ini juga merupakan region default tempat model yang 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()

Konsol

  1. Untuk membatalkan tugas penyesuaian di konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di tabel Model yang dioptimalkan untuk terjemahan, klik Kelola eksekusi.

  3. Klik Cancel.

Mendapatkan informasi tentang model

Setelah pelatihan selesai, Anda bisa mendapatkan informasi tentang model tersebut seperti ID model.

Untuk melihat daftar model yang tersedia, buka halaman Vertex AI Endpoints.

Buka halaman Vertex AI Endpoints

Menggunakan model yang disesuaikan

Contoh berikut menerjemahkan teks menggunakan model kustom dengan ID model 1395675701985363739. Untuk menggunakan LLM Terjemahan kustom, tentukan models/translation-llm-custom/{model-id} sebagai ID model.

Anda dapat menentukan model yang akan digunakan untuk terjemahan menggunakan parameter kueri model.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Google Cloud Anda.
  • LOCATION: Region tempat model kustom berada, seperti us-central1.

Metode HTTP dan URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:translateText

Meminta isi JSON:

{
  "model": "projects/PROJECT_ID/locations/LOCATION/model/translation-llm-custom/1395675701985363739",
  "sourceLanguageCode": "en",
  "targetLanguageCode": "ru",
  "contents": ["Dr. Watson, please discard your trash. You've shared unsolicited email with me.
  Let's talk about spam and importance ranking in a confidential mode."]
}

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 "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/LOCATION:translateText"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

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

Anda akan melihat respons JSON seperti berikut:

{
  "translation": {
    "translatedText": "Доктор Ватсон, пожалуйста, откажитесь от своего мусора.
    Вы поделились нежелательной электронной почтой со мной. Давайте поговорим о
    спаме и важности рейтинга в конфиденциальном режиме.",
    "model": "projects/PROJECT_NUMBER/locations/LOCATION/model/translation-llm-custom/1395675701985363739"
  }
}

Python

from google.cloud import translate
def translate_text_with_model(
    text: str = "YOUR_TEXT_TO_TRANSLATE",
    project_id: str = "YOUR_PROJECT_ID",
    model_id: str = "YOUR_MODEL_ID",
) -> translate.TranslationServiceClient:
    """Translates a given text using Translation custom model."""

    client = translate.TranslationServiceClient()

    location = "us-central1"
    parent = f"projects/{project_id}/locations/{location}"
    model_path = f"{parent}/models/translation-llm-custom/{model_id}"

    # Supported language codes: https://cloud.google.com/translate/docs/languages
    response = client.translate_text(
        request={
            "contents": [text],
            "target_language_code": "ja",
            "model": model_path,
            "source_language_code": "en",
            "parent": parent,
            "mime_type": "text/plain",  # mime types: text/plain, text/html
        }
    )
    # Display the translation for each input text provided
    for translation in response.translations:
        print(f"Translated text: {translation.translated_text}")

    return response

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.

  1. Untuk melihat detail model yang disesuaikan di konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Di tabel Tune and Distill, klik nama model yang di-tune yang metriknya ingin Anda lihat.

    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 inferensi terdiri dari serangkaian token yang diprediksi. 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 inferensi terdiri dari serangkaian token yang diprediksi. 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 selama penyesuaian berlangsung. Jika Anda tidak menentukan set data validasi saat membuat tugas penyesuaian, hanya visualisasi untuk metrik penyesuaian yang tersedia.

Langkah berikutnya