Menyesuaikan model teks PaLM menggunakan penyesuaian yang diawasi

Penyesuaian yang diawasi menggunakan contoh berlabel untuk menyesuaikan model. Setiap contoh menunjukkan output yang Anda inginkan dari model teks selama inferensi. Penyesuaian yang diawasi adalah opsi yang bagus jika output model Anda tidak terlalu kompleks dan mudah ditentukan.

Panduan langkah demi langkah penyesuaian model teks yang diawasi

Tutorial terpandu berikut ini membantu Anda mempelajari cara menggunakan penyesuaian yang diawasi untuk menyesuaikan model dasar teks di konsol Google Cloud.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di konsol Google Cloud, klik Pandu saya:

Pandu saya


Alur kerja untuk penyesuaian model yang diawasi

Alur kerja penyesuaian model yang diawasi di Vertex AI mencakup langkah-langkah berikut:

  1. Siapkan set data penyesuaian model Anda.
  2. Upload set data penyesuaian model ke bucket Cloud Storage.
  3. Buat tugas penyesuaian model yang diawasi.

Setelah penyesuaian model selesai, model yang telah disesuaikan akan di-deploy ke endpoint Vertex AI. Nama endpoint sama dengan nama model yang disesuaikan. Model yang disesuaikan tersedia untuk dipilih di Vertex AI Studio saat Anda ingin membuat perintah baru.

Model yang didukung

Model dasar teks berikut mendukung penyesuaian yang diawasi:

  • Pembuatan teks - text-bison@002 dan text-bison-32k@002
  • Chat teks - chat-bison@002 dan chat-bison-32k@002
  • Pembuatan kode - code-bison@002 dan text-bison-32k@002
  • Chat kode - codechat-bison@002 dan codechat-bison-32k@002
  • Embedding teks - textembedding-gecko@001 (Pratinjau)

Kasus penggunaan untuk menggunakan penyesuaian yang diawasi pada model teks

Model teks dasar berfungsi dengan baik jika output atau tugas yang diharapkan dapat ditentukan dengan jelas dan ringkas dalam perintah, dan perintah secara konsisten menghasilkan output yang diharapkan. Jika Anda ingin model mempelajari sesuatu yang khusus atau spesifik yang menyimpang dari pola bahasa umum, sebaiknya pertimbangkan untuk menyesuaikan model tersebut. Misalnya, Anda dapat menggunakan penyesuaian model untuk mengajarkan model hal berikut ini:

  • Struktur atau format spesifik untuk menghasilkan output.
  • Perilaku spesifik seperti kapan harus memberikan output yang singkat atau panjang.
  • Output yang disesuaikan dan spesifik untuk jenis input tertentu.

Contoh berikut adalah kasus penggunaan yang sulit direkam hanya dengan petunjuk perintah:

  • Klasifikasi: Respons yang diharapkan adalah kata atau frasa tertentu.

    Menyesuaikan model dapat membantu mencegah model menghasilkan respons panjang.

  • Ringkasan: Ringkasan mengikuti format tertentu. Misalnya, Anda mungkin perlu menghapus informasi identitas pribadi (PII) dalam ringkasan chat.

    Pemformatan berupa penggantian nama pembicara dengan #Person1 dan #Person2 sulit dijelaskan dan model dasar mungkin tidak secara alami menghasilkan respons tersebut.

  • Question answering ekstraksi: Pertanyaannya tentang konteks dan jawabannya adalah substring konteks tersebut

    Respons "Glasial Maksimum Terakhir" adalah frasa spesifik dari konteks.

  • Chat: Anda perlu menyesuaikan respons model untuk mengikuti persona, peran, atau karakter.

Anda juga dapat menyesuaikan model dalam situasi berikut:

  • Perintah tidak memberikan hasil yang diharapkan secara konsisten.
  • Tugas terlalu rumit untuk ditentukan dalam perintah. Misalnya, Anda ingin model melakukan clone perilaku untuk perilaku yang sulit diuraikan dalam perintah.
  • Anda memiliki intuisi kompleks tentang tugas yang mudah diajukan, tetapi sulit diformalkan dalam sebuah perintah.
  • Anda ingin mengurangi panjang konteks dengan menghapus contoh few-shot.

Menyiapkan set data penyesuaian yang diawasi

Set data yang digunakan untuk menyesuaikan model dasar harus menyertakan contoh yang selaras dengan tugas yang Anda inginkan untuk dilakukan oleh model. Susun set data pelatihan Anda dalam format teks ke teks. Setiap catatan, atau baris, dalam set data berisi teks input (juga disebut sebagai perintah) yang dipasangkan dengan output yang diharapkan dari model. Penyesuaian yang diawasi menggunakan set data untuk mengajarkan model agar meniru perilaku, atau tugas, yang Anda perlukan dengan memberinya ratusan contoh yang menggambarkan perilaku tersebut.

Set data Anda harus menyertakan minimal 10 contoh, tetapi kami merekomendasikan minimal 100 hingga 500 contoh untuk mendapatkan hasil yang baik. Semakin banyak contoh yang diberikan di set data Anda, semakin baik hasilnya.

Untuk set data sampel, lihat Set data sampel di halaman ini.

Format set data

Set data penyesuaian model Anda harus dalam format JSON Lines (JSONL), dengan setiap baris berisi satu contoh penyesuaian. Format set data yang digunakan untuk menyesuaikan model pembuatan teks berbeda dengan format set data untuk menyesuaikan model chat teks. Sebelum menyesuaikan model, Anda harus mengupload set data ke bucket Cloud Storage.

Teks

Setiap contoh terdiri dari kolom input_text yang berisi perintah untuk model dan kolom output_text yang berisi contoh respons yang diharapkan untuk dihasilkan oleh model yang telah disesuaikan. Kolom tambahan dari perintah terstruktur, seperti context, akan diabaikan.

Panjang token maksimum untuk input_text adalah 8.192 dan panjang token maksimum untuk output_text adalah 1.024. Jika salah satu kolom melebihi panjang token maksimum, token berlebih akan terpotong.

Jumlah maksimum contoh yang dapat dimuat oleh set data untuk model pembuatan teks adalah 10.000.

Contoh set data

{"input_text": "question: How many people live in Beijing? context:
With over 21 million residents, Beijing is the world's most populous national
capital city and is China's second largest city after Shanghai. It is
located in Northern China, and is governed as a municipality under the direct
administration of the State Council with 16 urban, suburban, and rural
districts.[14] Beijing is mostly surrounded by Hebei Province with the exception
of neighboring Tianjin to the southeast; together, the three divisions form the
Jingjinji megalopolis and the national capital region of China.",
"output_text": "over 21 million people"}

{"input_text": "question: How many parishes are there in Louisiana? context: The U.S. state of Louisiana is divided into 64 parishes (French: paroisses) in the same manner that 48 other states of the United States are divided into counties, and Alaska is divided into boroughs.", "output_text": "64"}

Sertakan petunjuk dalam contoh

Untuk tugas seperti klasifikasi, Anda dapat membuat set data contoh yang tidak berisi instruksi. Namun, mengecualikan petunjuk dari contoh di set data akan menyebabkan performa yang lebih buruk setelah penyesuaian dibandingkan apabila Anda menyertakan petunjuk, terutama untuk set data yang lebih kecil.

Mengecualikan petunjuk:

{"input_text": "5 stocks to buy now",
"output_text": "business"}

Dilengkapi petunjuk:

{"input_text": "Classify the following text into one of the following classes:
[business, entertainment] Text: 5 stocks to buy now",
"output_text": "business"}

Chat

Setiap contoh percakapan dalam set data penyesuaian chat terdiri dari kolom messages (wajib) dan kolom context (opsional).

Kolom messages terdiri dari array pasangan konten penulis. Kolom author mengacu pada penulis pesan dan ditetapkan ke user atau assistant secara bergantian. Kolom content adalah konten pesan. Setiap contoh percakapan harus memiliki dua hingga tiga pasangan pesan pengguna-asisten, yang mewakili pesan dari pengguna dan respons dari model.

Kolom context memungkinkan Anda menentukan konteks untuk chat. Jika Anda menentukan konteks untuk contoh, konteks ini akan menggantikan nilai yang diberikan di default_context.

Untuk setiap contoh percakapan, panjang token maksimum untuk gabungan context dan messages adalah 8.192 token. Selain itu, setiap kolom content untuk assistant tidak boleh melebihi 1.024 token.

Jumlah maksimum kolom author yang dapat dimuat oleh contoh dalam set data untuk model chat teks adalah 10.000. Nilai maksimum ini adalah untuk jumlah semua kolom author di semua messages pada semua contoh.

Contoh

{
  "context": "You are a pirate dog named Captain Barktholomew.",
  "messages": [
    {
      "author": "user",
      "content": "Hi"
    },
    {
      "author": "assistant",
      "content": "Argh! What brings ye to my ship?"
    },
    {
      "author": "user",
      "content": "What's your name?"
    },
    {
      "author": "assistant",
      "content": "I be Captain Barktholomew, the most feared pirate dog of the seven seas."
    }
  ]
}

Contoh set data

Anda dapat menggunakan set data sampel untuk mulai menyesuaikan model text-bison@002. Berikut adalah set data tugas klasifikasi yang berisi sampel transkripsi medis untuk berbagai spesialisasi medis. Data ini berasal dari mtsamples.com seperti yang tersedia di Kaggle.

  • Sampel URI set data penyesuaian:

    gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl

  • Sampel URI set data evaluasi:

    gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl

Untuk menggunakan set data ini, tentukan URI dalam parameter yang berlaku saat membuat tugas penyesuaian yang diawasi model teks.

Contoh:

...
"dataset_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl",
...
"evaluation_data_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl",
...

Menjaga konsistensi dengan data produksi

Contoh dalam set data harus sesuai dengan traffic produksi yang Anda harapkan. Jika set data Anda berisi pemformatan, kata kunci, petunjuk, atau informasi tertentu, data produksi harus diformat dengan cara yang sama dan berisi petunjuk yang sama.

Misalnya, jika contoh di set data Anda menyertakan "question:" dan "context:", traffic produksi juga harus diformat untuk menyertakan "question:" dan "context:" dalam urutan yang sama seperti yang tampak pada contoh set data. Jika Anda mengecualikan konteks, model tidak akan mengenali pola, meskipun pertanyaan yang sama ada dalam contoh dalam set data.

Mengupload set data penyesuaian ke Cloud Storage

Untuk menjalankan tugas penyesuaian, Anda perlu mengupload satu atau beberapa set data ke bucket Cloud Storage. Anda dapat membuat bucket Cloud Storage baru atau menggunakan bucket yang sudah ada untuk menyimpan file set data. Region bucket tidak penting, tetapi sebaiknya Anda menggunakan bucket yang berada di project Google Cloud yang sama tempat Anda berencana untuk menyesuaikan model.

Setelah bucket siap, upload file set data Anda ke bucket.

Setelan wilayah penyesuaian yang diawasi

Anda dapat menentukan tiga setelan region Google Cloud saat mengonfigurasi tugas penyesuaian yang diawasi. Satu region adalah tempat pipeline yang menyesuaikan model Anda berjalan. Region lainnya adalah tempat tugas penyesuaian model berjalan dan model yang disesuaikan diupload.

Region tugas pipeline

Region tugas pipeline adalah region tempat tugas pipeline dijalankan. Jika region upload model opsional tidak ditentukan, model akan diupload dan di-deploy ke region tugas pipeline. Data perantara, seperti set data yang ditransformasi, disimpan di region tugas pipeline. Untuk mempelajari region yang dapat Anda gunakan untuk region tugas pipeline, lihat Region upload model dan tugas pipeline yang didukung. Anda harus menentukan region tugas pipeline menggunakan salah satu metode berikut:

  • Jika menggunakan Vertex AI SDK, Anda dapat menentukan region tempat tugas pipeline berjalan menggunakan parameter tuning_job_location pada metode tune_model objek yang mewakili model yang Anda sesuaikan (misalnya, metode TextGenerationModel.tune_model).

  • Jika Anda membuat tugas penyesuaian yang diawasi dengan mengirim permintaan POST menggunakan metode pipelineJobs.create, Anda akan menggunakan URL untuk menentukan region tempat tugas pipeline berjalan. Di URL berikut, ganti kedua instance PIPELINE_JOB_REGION dengan region tempat pipeline berjalan:

     https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
    
  • Jika menggunakan konsol Google Cloud untuk membuat tugas penyesuaian model yang diawasi, Anda harus menentukan region tugas pipeline di kontrol Region saat membuat tugas penyesuaian. Di konsol Google Cloud, kontrol Region menentukan region tugas pipeline dan region upload model. Saat Anda menggunakan konsol Google Cloud untuk membuat tugas penyesuaian model yang diawasi, kedua region tersebut selalu sama.

Region upload model

Anda menggunakan parameter tuned_model_location opsional untuk menentukan tempat upload model yang disesuaikan. Jika region upload model tidak ditentukan, model yang disesuaikan akan diupload ke region tugas pipeline.Anda dapat menggunakan salah satu Region upload model dan tugas pipeline yang didukung untuk region upload model Anda. Anda dapat menentukan region upload model menggunakan salah satu metode berikut:

  • Jika Anda menggunakan Vertex AI SDK, parameter tuned_model_location ditentukan pada metode tune_model objek yang mewakili model yang Anda sesuaikan (misalnya, metode TextGenerationModel.tune_model).

  • Jika membuat tugas penyesuaian model terkontrol dengan mengirim permintaan POST menggunakan metode pipelineJobs, Anda dapat menggunakan parameter location untuk menentukan region upload model.

  • Jika menggunakan konsol Google Cloud untuk membuat tugas penyesuaian model yang diawasi, Anda harus menentukan region upload model di kontrol Region saat membuat tugas penyesuaian. Di konsol Google Cloud, kontrol Region menentukan region upload model dan region tugas pipeline. Saat Anda menggunakan konsol Google Cloud untuk membuat tugas penyesuaian model yang diawasi, kedua region tersebut selalu sama.

Region penyesuaian model

Region penyesuaian model adalah tempat komputasi penyesuaian model terjadi. Region ini ditentukan oleh jenis akselerator yang Anda pilih. Jika Anda menentukan TPU untuk jenis akselerator, komputasi penyesuaian model akan terjadi di europe-west4. Jika Anda menentukan GPU untuk jenis akselerator, penyesuaian model akan terjadi di us-central1.

Wilayah upload model dan tugas pipeline yang didukung

Anda dapat menggunakan salah satu region berikut untuk menentukan region upload model dan untuk menentukan region tugas pipeline:

  • us-central1
  • europe-west4
  • asia-southeast1
  • us-west1
  • europe-west3
  • europe-west2
  • asia-northeast1
  • us-east4
  • us-west4
  • northamerica-northeast1
  • europe-west9
  • europe-west1
  • asia-northeast3

Membuat tugas penyesuaian model teks yang diawasi

Anda dapat membuat tugas penyesuaian model teks yang diawasi menggunakan konsol Google Cloud, API, atau Vertex AI SDK untuk Python. Untuk panduan konfigurasi penyesuaian model, lihat Konfigurasi yang direkomendasikan.

REST

Untuk membuat tugas penyesuaian model, kirim permintaan POST menggunakan metode pipelineJobs. 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, buat pengganti berikut:

  • PIPELINEJOB_DISPLAYNAME: Nama tampilan untuk pipelineJob.
  • OUTPUT_DIR: URI bucket tempat menampung output artefak pipeline.
  • PROJECT_ID: Project ID Anda.
  • MODEL_DISPLAYNAME: Nama tampilan untuk model yang diupload (dibuat) oleh pipelineJob.
  • DATASET_URI: URI file set data Anda.
  • PIPELINE_JOB_REGION: Region tempat tugas penyesuaian pipeline berjalan. Ini juga merupakan region default tempat model yang telah disesuaikan diupload. Jika Anda ingin mengupload model ke region yang berbeda, gunakan parameter location untuk menentukan region upload model yang dioptimalkan. Untuk mengetahui informasi selengkapnya, lihat Region upload model.
  • MODEL_UPLOAD_REGION: (opsional) Region tempat model yang disesuaikan diupload. Jika Anda tidak menentukan region upload model, model yang telah disesuaikan akan diupload ke region yang sama dengan tempat pipeline job berjalan. Untuk mengetahui informasi selengkapnya, lihat Region upload model.
  • ACCELERATOR_TYPE: (opsional, GPU default) Jenis akselerator yang akan digunakan untuk penyesuaian model. Opsi yang valid adalah:
    • GPU: Menggunakan delapan GPU A100 80 GB untuk penyesuaian. Pastikan Anda memiliki kuota yang cukup. Jika Anda memilih GPU, VPC‑SC akan didukung. CMEK didukung jika lokasi penyesuaian dan lokasi upload model adalah us-centra1. Untuk mengetahui informasi selengkapnya, lihat Setelan region penyesuaian yang diawasi. Jika Anda memilih GPU, komputasi penyesuaian model akan terjadi di region us-central1.
    • TPU: Menggunakan 64 core pod TPU v3 untuk penyesuaian. Pastikan Anda memiliki kuota yang cukup. CMEK tidak didukung, tetapi VPC‑SC didukung. Jika Anda memilih TPU, komputasi penyesuaian model akan terjadi di region europe-west4.
  • LARGE_MODEL_REFERENCE: Nama model dasar yang akan disesuaikan. Opsinya adalah:
    • text-bison@002
    • chat-bison@002
  • DEFAULT_CONTEXT (chat only): Konteks yang berlaku pada semua contoh penyesuaian dalam set data penyesuaian. Menetapkan kolom context dalam contoh akan mengganti konteks default.
  • STEPS: Jumlah langkah yang akan dijalankan untuk penyesuaian model. Nilai defaultnya adalah 300. Ukuran kumpulan bervariasi berdasarkan lokasi penyesuaian dan ukuran model. Untuk model 8k, seperti text-bison@002, chat-bison@002, code-bison@002, dan codechat-bison@002:
    • us-central1 memiliki ukuran tumpukan 8.
    • europe-west4 memiliki ukuran tumpukan 24.
    Untuk model 32k, seperti text-bison-32k, chat-bison-32k, code-bison-32k, dan codechat-bison-32k:
    • us-central1 memiliki ukuran tumpukan 8.
    • europe-west4 memiliki ukuran tumpukan 8.

    Misalnya, jika Anda melatih text-bison@002 di europe-west4, ada 240 contoh dalam set data pelatihan, dan Anda menetapkan steps ke 20, maka jumlah contoh pelatihan adalah hasil dari 20 langkah dan ukuran batch 24, atau 480 langkah pelatihan. Dalam hal ini, ada dua epoch dalam proses pelatihan karena proses ini melalui contoh dua kali. Di us-central1, jika ada 240 contoh dalam set data pelatihan dan Anda menetapkan steps ke 15, jumlah contoh pelatihan adalah hasil dari 15 langkah dan ukuran batch 8, atau 120 langkah pelatihan. Dalam hal ini, ada 0,5 epoch karena jumlah langkah pelatihan setengah dari jumlah contoh.

  • LEARNING_RATE_MULTIPLIER: Pengganda untuk diterapkan ke kecepatan pembelajaran yang direkomendasikan. Untuk menggunakan kecepatan pembelajaran yang direkomendasikan, gunakan 1.0.
  • EVAL_DATASET_URI (text only): (opsional) URI file JSONL yang berisi set data evaluasi untuk prediksi dan evaluasi batch. Evaluasi tidak didukung untuk chat-bison. Untuk mengetahui informasi selengkapnya, lihat Format set data untuk menyesuaikan model kode. Set data evaluasi membutuhkan antara sepuluh hingga 250 contoh.
  • EVAL_INTERVAL (text only): (opsional, 20 default) Jumlah langkah penyesuaian di antara setiap evaluasi. Interval evaluasi tidak didukung untuk model chat. Karena evaluasi berjalan pada seluruh set data evaluasi, interval evaluasi yang lebih kecil akan menghasilkan waktu penyesuaian yang lebih lama. Misalnya, jika steps adalah 200 dan EVAL_INTERVAL adalah 100, Anda hanya akan mendapatkan dua titik data untuk metrik evaluasi. Parameter ini mengharuskan evaluation_data_uri ditetapkan.
  • ENABLE_EARLY_STOPPING (text only): (opsional, true default) boolean yang, jika ditetapkan ke true, akan menghentikan penyesuaian sebelum menyelesaikan semua langkah penyesuaian jika performa model, yang diukur dengan akurasi token yang diprediksi, tidak cukup meningkat di antara evaluasi yang dijalankan. Jika false, penyesuaian akan berlanjut hingga semua langkah penyesuaian selesai. Parameter ini mengharuskan evaluation_data_uri ditetapkan. Mengaktifkan penghentian awal tidak didukung untuk model chat.
  • TENSORBOARD_RESOURCE_ID: (opsional) ID instance Vertex AI TensorBoard. Instance Vertex AI TensorBoard digunakan untuk membuat eksperimen setelah tugas penyesuaian selesai. Instance Vertex AI TensorBoard harus berada di region yang sama dengan pipeline penyesuaian.
  • ENCRYPTION_KEY_NAME: (opsional) Nama kunci enkripsi yang dikelola pelanggan (CMEK) yang sepenuhnya memenuhi syarat yang ingin Anda gunakan untuk enkripsi data. CMEK hanya tersedia di us-central1. Jika Anda menggunakan us-central1 dan tidak menentukan CMEK, kunci yang dimiliki dan dikelola Google akan digunakan. Kunci yang dimiliki dan dikelola Google digunakan secara default di semua wilayah yang tersedia lainnya. Untuk informasi selengkapnya, lihat ringkasan CMEK.
  • TEMPLATE_URI: Template penyesuaian yang akan digunakan bergantung pada model yang Anda sesuaikan:
    • Model teks: https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v2.0.0
    • Model chat: https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-chat-model/v3.0.0
  • SERVICE_ACCOUNT: (opsional) Akun layanan yang digunakan Vertex AI untuk menjalankan tugas pipeline Anda. Secara default, akun layanan default Compute Engine project Anda (PROJECT_NUMBER‑compute@developer.gserviceaccount.com) akan digunakan. Pelajari lebih lanjut cara menambahkan akun layanan kustom.

Metode HTTP dan URL:

POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs

Isi JSON permintaan:

{
  "displayName": "PIPELINEJOB_DISPLAYNAME",
  "runtimeConfig": {
    "gcsOutputDirectory": "gs://OUTPUT_DIR",
    "parameterValues": {
      "project": "PROJECT_ID",
      "model_display_name": "MODEL_DISPLAYNAME",
      "dataset_uri": "gs://DATASET_URI",
      "location": "MODEL_UPLOAD_REGION",
      "accelerator_type": "ACCELERATOR_TYPE",
      "large_model_reference": "LARGE_MODEL_REFERENCE",
      "default_context": "DEFAULT_CONTEXT (chat only)",
      "train_steps": STEPS,
      "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER,
      "evaluation_data_uri": "gs://EVAL_DATASET_URI (text only)",
      "evaluation_interval": EVAL_INTERVAL (text only),
      "enable_early_stopping": ENABLE_EARLY_STOPPING (text only),
      "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION (text only)",
      "tensorboard_resource_id": "TENSORBOARD_ID",
      "encryption_spec_key_name": "ENCRYPTION_KEY_NAME"
    }
  },
  "encryptionSpec": {
    "kmsKeyName": "ENCRYPTION_KEY_NAME"
  },
  "serviceAccount": "SERVICE_ACCOUNT",
  "templateUri": "TEMPLATE_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://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"

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://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan yang berikut ini: Perhatikan bahwa pipelineSpec telah dipotong untuk menghemat ruang penyimpanan.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

from __future__ import annotations

import os

from vertexai.language_models import TextGenerationModel

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def tuning() -> TextGenerationModel:
    import vertexai
    from vertexai.language_models import TextGenerationModel

    # Initialize Vertex AI
    vertexai.init(project=PROJECT_ID, location="us-central1")

    model = TextGenerationModel.from_pretrained("text-bison@002")

    # TODO(developer): Update the training data path
    tuning_job = model.tune_model(
        training_data="gs://cloud-samples-data/ai-platform/generative_ai/headline_classification.jsonl",
        tuning_job_location="europe-west4",
        tuned_model_location="us-central1",
    )

    print(tuning_job._status)
    # Example response:
    # pipeline_job = aiplatform.PipelineJob.get('projects/1234567890/locations/europe-west4/pipelineJobs/tune...
    # View Pipeline Job:
    # ...
    # PipelineState.PIPELINE_STATE_PENDING

    return model

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
 * (Not necessary if passing values as arguments)
 */
// const project = 'YOUR_PROJECT_ID';
// const location = 'YOUR_PROJECT_LOCATION';
const aiplatform = require('@google-cloud/aiplatform');
const {PipelineServiceClient} = aiplatform.v1;

// Import the helper module for converting arbitrary protobuf.Value objects.
const {helpers} = aiplatform;

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: 'europe-west4-aiplatform.googleapis.com',
};
const model = 'text-bison@001';

const pipelineClient = new PipelineServiceClient(clientOptions);

async function tuneLLM() {
  // Configure the parent resource
  const parent = `projects/${project}/locations/${location}`;

  const parameters = {
    train_steps: helpers.toValue(trainSteps),
    project: helpers.toValue(project),
    location: helpers.toValue('us-central1'),
    dataset_uri: helpers.toValue(datasetUri),
    large_model_reference: helpers.toValue(model),
    model_display_name: helpers.toValue(modelDisplayName),
    accelerator_type: helpers.toValue('GPU'), // Optional: GPU or TPU
  };

  const runtimeConfig = {
    gcsOutputDirectory,
    parameterValues: parameters,
  };

  const pipelineJob = {
    templateUri:
      'https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v2.0.0',
    displayName: 'my-tuning-job',
    runtimeConfig,
  };

  const createPipelineRequest = {
    parent,
    pipelineJob,
    pipelineJobId,
  };
  await new Promise((resolve, reject) => {
    pipelineClient.createPipelineJob(createPipelineRequest).then(
      response => resolve(response),
      e => reject(e)
    );
  }).then(response => {
    const [result] = response;
    console.log('Tuning pipeline job:');
    console.log(`\tName: ${result.name}`);
    console.log(
      `\tCreate time: ${new Date(1970, 0, 1)
        .setSeconds(result.createTime.seconds)
        .toLocaleString()}`
    );
    console.log(`\tStatus: ${result.status}`);
  });
}

await tuneLLM();

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.aiplatform.v1.CreatePipelineJobRequest;
import com.google.cloud.aiplatform.v1.LocationName;
import com.google.cloud.aiplatform.v1.PipelineJob;
import com.google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig;
import com.google.cloud.aiplatform.v1.PipelineServiceClient;
import com.google.cloud.aiplatform.v1.PipelineServiceSettings;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class CreatePipelineJobModelTuningSample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "PROJECT";
    String location = "europe-west4"; // europe-west4 and us-central1 are the supported regions
    String pipelineJobDisplayName = "PIPELINE_JOB_DISPLAY_NAME";
    String modelDisplayName = "MODEL_DISPLAY_NAME";
    String outputDir = "OUTPUT_DIR";
    String datasetUri = "DATASET_URI";
    int trainingSteps = 300;

    createPipelineJobModelTuningSample(
        project,
        location,
        pipelineJobDisplayName,
        modelDisplayName,
        outputDir,
        datasetUri,
        trainingSteps);
  }

  // Create a model tuning job
  public static void createPipelineJobModelTuningSample(
      String project,
      String location,
      String pipelineJobDisplayName,
      String modelDisplayName,
      String outputDir,
      String datasetUri,
      int trainingSteps)
      throws IOException {
    final String endpoint = String.format("%s-aiplatform.googleapis.com:443", location);
    PipelineServiceSettings pipelineServiceSettings =
        PipelineServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (PipelineServiceClient client = PipelineServiceClient.create(pipelineServiceSettings)) {
      Map<String, Value> parameterValues = new HashMap<>();
      parameterValues.put("project", stringToValue(project));
      parameterValues.put("model_display_name", stringToValue(modelDisplayName));
      parameterValues.put("dataset_uri", stringToValue(datasetUri));
      parameterValues.put(
          "location",
          stringToValue(
              "us-central1")); // Deployment is only supported in us-central1 for Public Preview
      parameterValues.put("large_model_reference", stringToValue("text-bison@001"));
      parameterValues.put("train_steps", numberToValue(trainingSteps));
      parameterValues.put("accelerator_type", stringToValue("GPU")); // Optional: GPU or TPU

      RuntimeConfig runtimeConfig =
          RuntimeConfig.newBuilder()
              .setGcsOutputDirectory(outputDir)
              .putAllParameterValues(parameterValues)
              .build();

      PipelineJob pipelineJob =
          PipelineJob.newBuilder()
              .setTemplateUri(
                  "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v2.0.0")
              .setDisplayName(pipelineJobDisplayName)
              .setRuntimeConfig(runtimeConfig)
              .build();

      LocationName parent = LocationName.of(project, location);
      CreatePipelineJobRequest request =
          CreatePipelineJobRequest.newBuilder()
              .setParent(parent.toString())
              .setPipelineJob(pipelineJob)
              .build();

      PipelineJob response = client.createPipelineJob(request);
      System.out.format("response: %s\n", response);
      System.out.format("Name: %s\n", response.getName());
    }
  }

  static Value stringToValue(String str) {
    return Value.newBuilder().setStringValue(str).build();
  }

  static Value numberToValue(int n) {
    return Value.newBuilder().setNumberValue(n).build();
  }
}

Konsol

Untuk menyesuaikan model teks dengan penyesuaian yang diawasi menggunakan konsol Google Cloud, lakukan langkah-langkah berikut:

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik tab Sesuaikan dan pertajam.
  3. Klik Buat model yang disesuaikan.
  4. Klik Penyesuaian yang diawasi.
  5. Konfigurasikan detail model:
    • Nama model yang disesuaikan: Masukkan nama untuk model yang disesuaikan.
    • Model dasar: Pilih model yang ingin Anda sesuaikan.
    • Region: Pilih region tempat tugas penyesuaian pipeline berjalan dan tempat model yang disesuaikan di-deploy.
    • Output directory: Masukkan lokasi Cloud Storage tempat artefak disimpan saat model Anda disesuaikan.
  6. Luaskan Opsi Lanjutan untuk mengonfigurasi setelan lanjutan.
    • Langkah pelatihan: Masukkan jumlah langkah yang akan dijalankan untuk penyesuaian model. Nilai defaultnya adalah 300. Ukuran kumpulan bervariasi berdasarkan lokasi penyesuaian dan ukuran model. Untuk model 8k, seperti text-bison@002, chat-bison@002, code-bison@002, dan codechat-bison@002:
      • us-central1 memiliki ukuran tumpukan 8.
      • europe-west4 memiliki ukuran tumpukan 24.
      Untuk model 32k, seperti text-bison-32k, chat-bison-32k, code-bison-32k, dan codechat-bison-32k:
      • us-central1 memiliki ukuran tumpukan 8.
      • europe-west4 memiliki ukuran tumpukan 8.

      Misalnya, jika Anda melatih text-bison@002 di europe-west4, ada 240 contoh dalam set data pelatihan, dan Anda menetapkan steps ke 20, maka jumlah contoh pelatihan adalah hasil dari 20 langkah dan ukuran batch 24, atau 480 langkah pelatihan. Dalam hal ini, ada dua epoch dalam proses pelatihan karena proses ini melalui contoh dua kali. Di us-central1, jika ada 240 contoh dalam set data pelatihan dan Anda menetapkan steps ke 15, jumlah contoh pelatihan adalah hasil dari 15 langkah dan ukuran batch 8, atau 120 langkah pelatihan. Dalam hal ini, ada 0,5 epoch karena jumlah langkah pelatihan setengah dari jumlah contoh.

    • Pengganda kecepatan pembelajaran: Masukkan ukuran langkah di setiap iterasi. Nilai default adalah 1.
    • Accelerator type: (opsional) Masukkan jenis akselerator yang akan digunakan untuk penyesuaian model. Opsi yang valid adalah:
      • GPU: Menggunakan delapan GPU A100 80 GB untuk penyesuaian. Pastikan Anda memiliki kuota yang cukup. Jika Anda memilih GPU, VPC‑SC akan didukung. CMEK didukung jika lokasi penyesuaian dan lokasi upload model adalah us-centra1. Untuk mengetahui informasi selengkapnya, lihat Setelan region penyesuaian yang diawasi. Jika Anda memilih GPU, komputasi penyesuaian model akan terjadi di region us-central1.
      • TPU: Menggunakan 64 core pod TPU v3 untuk penyesuaian. Pastikan Anda memiliki kuota yang cukup. CMEK tidak didukung, tetapi VPC‑SC didukung. Jika Anda memilih TPU, komputasi penyesuaian model akan terjadi di region europe-west4.
    • Tambahkan instance TensorBoard: (opsional) ID instance Vertex AI TensorBoard. Instance Vertex AI TensorBoard digunakan untuk membuat eksperimen setelah tugas penyesuaian selesai. Instance Vertex AI TensorBoard harus berada di region yang sama dengan pipeline penyesuaian.
    • Encryption (opsional) Pilih untuk menggunakan kunci milik dan dikelola Google atau kunci enkripsi yang dikelola pelanggan (CMEK). CMEK hanya tersedia untuk enkripsi di region us-central1. Di semua wilayah lain yang tersedia, kunci yang dimiliki dan dikelola Google akan digunakan. Untuk informasi selengkapnya, lihat ringkasan CMEK.
    • Service account (opsional) Pilih akun layanan yang dikelola pengguna. Akun layanan menentukan resource Google Cloud mana yang dapat diakses kode layanan Anda. Jika Anda tidak memilih akun layanan, agen layanan akan digunakan yang menyertakan izin yang sesuai untuk sebagian besar model.
  7. Klik Lanjutkan
  8. Jika ingin mengupload file set data, pilih  Upload file JSONL ke Cloud Storage. Jika file set data Anda sudah ada di bucket Cloud Storage, pilih  File JSONL yang ada di Cloud Storage.

    Mengupload file JSONL

    • Di bagian Pilih file JSONL, klik Telusuri, lalu pilih file set data Anda.
    • Di bagian Lokasi set data, klik Telusuri, lalu pilih bucket Cloud Storage tempat Anda ingin menyimpan file set data.

    Menggunakan file JSONL yang ada

    Di bagian Jalur file Cloud Storage, klik Telusuri, lalu pilih bucket Cloud Storage tempat file set data berada.

  9. (Opsional) Untuk mengevaluasi model yang disesuaikan, pilih Enable model evaluation dan konfigurasikan evaluasi model Anda:
    • Set data evaluasi: (opsional) URI file JSONL yang berisi set data evaluasi untuk prediksi dan evaluasi batch. Evaluasi tidak didukung untuk chat-bison. Untuk mengetahui informasi selengkapnya, lihat Format set data untuk menyesuaikan model kode. Set data evaluasi membutuhkan antara sepuluh hingga 250 contoh.
    • Interval evaluasi: (opsional, 20 default) Jumlah langkah penyesuaian di antara setiap evaluasi. Interval evaluasi tidak didukung untuk model chat. Karena evaluasi berjalan pada seluruh set data evaluasi, interval evaluasi yang lebih kecil akan menghasilkan waktu penyesuaian yang lebih lama. Misalnya, jika steps adalah 200 dan EVAL_INTERVAL adalah 100, Anda hanya akan mendapatkan dua titik data untuk metrik evaluasi. Parameter ini mengharuskan evaluation_data_uri ditetapkan.
    • Aktifkan penghentian awal: (opsional, true default) boolean yang, jika ditetapkan ke true, akan menghentikan penyesuaian sebelum menyelesaikan semua langkah penyesuaian jika performa model, seperti yang diukur dengan akurasi token yang diprediksi, tidak cukup meningkat di antara evaluasi yang dijalankan. Jika false, penyesuaian akan berlanjut hingga semua langkah penyesuaian selesai. Parameter ini mengharuskan evaluation_data_uri ditetapkan. Mengaktifkan penghentian awal tidak didukung untuk model chat.
    • Aktifkan pemilihan checkpoint: Jika diaktifkan, Vertex AI akan memilih dan menampilkan checkpoint dengan performa evaluasi model terbaik dari semua checkpoint yang dibuat selama tugas penyesuaian. Jika dinonaktifkan, checkpoint akhir yang dibuat selama tugas penyesuaian akan ditampilkan. Setiap titik pemeriksaan mengacu pada snapshot model selama tugas penyesuaian.
    • Instance TensorBoard: (opsional) ID instance Vertex AI TensorBoard. Instance Vertex AI TensorBoard digunakan untuk membuat eksperimen setelah tugas penyesuaian selesai. Instance Vertex AI TensorBoard harus berada di region yang sama dengan pipeline penyesuaian.
  10. Klik Mulai penyesuaian.

Contoh perintah curl

PROJECT_ID=myproject
DATASET_URI=gs://my-gcs-bucket-uri/dataset
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
ACCELERATOR_TYPE=GPU
LOCATION=us-central1

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://europe-west4-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/europe-west4/pipelineJobs?pipelineJobId=tune-large-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
  "displayName": "tune-llm",
  "runtimeConfig": {
    "gcsOutputDirectory": "'${OUTPUT_DIR}'",
    "parameterValues": {
      "project": "'${PROJECT_ID}'",
      "model_display_name": "The display name for your model in the UI",
      "dataset_uri": "'${DATASET_URI}'",
      "location": "'${LOCATION}'",
      "accelerator_type:": "'${ACCELERATOR_TYPE}'",
      "large_model_reference": "text-bison@002",
      "train_steps": 300,
      "learning_rate_multiplier": 1,
      "encryption_spec_key_name": "projects/myproject/locations/us-central1/keyRings/sample-key/cryptoKeys/sample-key"
    }
  },
  "encryptionSpec": {
    "kmsKeyName": "projects/myproject/locations/us-central1/keyRings/sample-key/cryptoKeys/sample-key"
  },
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v2.0.0"
}'

Tabel berikut menunjukkan konfigurasi yang direkomendasikan untuk menyesuaikan model dasar berdasarkan tugas:

Tugas Jumlah contoh dalam set data Langkah-langkah pelatihan
Klasifikasi 100+ 100-500
Perangkuman 100-500+ 200-1000
UM (Uji Mutu) Ekstraktif 100+ 100-500
Chat 200+ 1.000

Untuk langkah-langkah pelatihan, Anda dapat mencoba lebih dari satu nilai untuk mendapatkan performa terbaik pada set data tertentu, misalnya, 100, 200, 500.

Lihat daftar model yang disesuaikan

Anda dapat melihat daftar model dalam project saat ini, termasuk model yang disesuaikan, menggunakan konsol Google Cloud atau Vertex AI SDK untuk Python.

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import vertexai

from vertexai.language_models import TextGenerationModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"

vertexai.init(project=PROJECT_ID, location="us-central1")

model = TextGenerationModel.from_pretrained("text-bison@002")
tuned_model_names = model.list_tuned_model_names()
print(tuned_model_names)
# Example response:
# ['projects/1234567890/locations/us-central1/models/1234567889012345',
# ...]

Konsol

Untuk melihat model yang telah disesuaikan di konsol Google Cloud, buka halaman Vertex AI Model Registry.

Buka Vertex AI Model Registry

Memuat model teks yang disesuaikan

Kode contoh berikut menggunakan Vertex AI SDK untuk Python guna memuat model pembuatan teks yang telah disesuaikan menggunakan penyesuaian yang diawasi:

import vertexai
from vertexai.preview.language_models import TextGenerationModel

model = TextGenerationModel.get_tuned_model(TUNED_MODEL_NAME)

Ganti TUNED_MODEL_NAME dengan nama resource yang memenuhi syarat dari model yang disesuaikan. Nama ini akan menggunakan format projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID. Anda dapat menemukan ID model dari model yang telah disesuaikan di Vertex AI Model Registry.

Metrik penyesuaian dan evaluasi

Anda dapat mengonfigurasi tugas penyesuaian model untuk mengumpulkan dan melaporkan metrik penyesuaian model dan evaluasi model, yang kemudian dapat divisualisasikan menggunakan Vertex AI TensorBoard.

Metrik penyesuaian model

Anda dapat mengonfigurasi tugas penyesuaian model untuk mengumpulkan metrik penyesuaian berikut untuk chat-bison, code-bison, codechat-bison, dan text-bison:
  • /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 evaluasi model

Anda dapat mengonfigurasi tugas penyesuaian model untuk mengumpulkan metrik evaluasi berikut untuk code-bison dan text-bison:

  • /eval_total_loss: Kerugian untuk set data evaluasi pada langkah evaluasi.
  • /eval_fraction_of_correct_next_step_preds: Akurasi token pada langkah evaluasi. Satu prediksi terdiri dari serangkaian token. Metrik ini mengukur akurasi token yang diprediksi jika dibandingkan dengan kebenaran dasar dalam set data evaluasi.
  • /eval_num_predictions: Jumlah token yang diprediksi pada langkah evaluasi.

Visualisasi metrik tersedia setelah tugas penyesuaian model selesai. Jika Anda hanya menentukan ID instance Vertex AI TensorBoard dan bukan set data evaluasi saat membuat tugas penyesuaian, hanya visualisasi untuk metrik penyesuaian yang tersedia.

Pemecahan masalah

Topik berikut dapat membantu Anda mengatasi masalah terkait penyesuaian model teks dasar menggunakan penyesuaian yang diawasi.

Mencoba menyesuaikan model akan menampilkan error 500 atau Internal error encountered

Jika Anda mengalami error 500 ini saat mencoba menyesuaikan model, coba solusi berikut:

Jalankan perintah cURL berikut untuk membuat set data Vertex AI yang kosong. Pastikan Anda mengonfigurasi project ID dalam perintah tersebut.

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://europe-west4-aiplatform.googleapis.com/ui/projects/$PROJECT_ID/locations/europe-west4/datasets \
-d '{
    "display_name": "test-name1",
    "metadata_schema_uri": "gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml",
    "saved_queries": [{"display_name": "saved_query_name", "problem_type": "IMAGE_CLASSIFICATION_MULTI_LABEL"}]
}'

Setelah perintah selesai, tunggu lima menit dan coba lakukan penyesuaian model lagi.

Error: Permission 'aiplatform.metadataStores.get' denied on resource '...europe-west4/metadataStores/default'.

Pastikan Compute Engine API diaktifkan dan akun layanan Compute Engine default (PROJECT_NUM‑compute@developer.gserviceaccount.com) diberi peran aiplatform.admin dan storage.objectAdmin.

Untuk memberikan peran aiplatform.admin dan storage.objectAdmin ke akun layanan Compute Engine, lakukan tindakan berikut:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    Jika Anda lebih suka menggunakan terminal di komputer, instal dan konfigurasikan Google Cloud CLI.

  2. Lampirkan peran aiplatform.admin ke akun layanan Compute Engine Anda menggunakan perintah gcloud projects add-iam-policy-binding:

    Ganti kode berikut:

    • PROJECT_ID dengan ID project Google Cloud Anda.
    • PROJECT_NUM dengan nomor project Google Cloud Anda.
    gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:PROJECT_NUM-compute@developer.gserviceaccount.com --role roles/aiplatform.admin
    
  3. Lampirkan peran storage.objectAdmin ke akun layanan Compute Engine Anda menggunakan perintah gcloud projects add-iam-policy-binding:

    • PROJECT_ID dengan ID project Google Cloud Anda.
    • PROJECT_NUM dengan nomor project Google Cloud Anda.
    gcloud projects add-iam-policy-binding PROJECT_ID --member serviceAccount:PROJECT_NUM-compute@developer.gserviceaccount.com  --role roles/storage.objectAdmin
    

Error: Vertex AI Service Agent service-{project-number}@gcp-sa-aiplatform.iam.gserviceaccount.com does not have permission to access Artifact Registry repository projects/vertex-ai-restricted/locations/us/repositories/llm.

Error izin ini terjadi karena keterlambatan penerapan. Percobaan ulang berikutnya akan menyelesaikan error ini.

Langkah berikutnya