Menyesuaikan model kode

Model kode dapat disesuaikan menggunakan supervised tuning. Penyesuaian yang diawasi menggunakan contoh berlabel yang menunjukkan jenis output yang Anda inginkan dari pembuatan kode atau model chat kode selama inferensi. Model kode tidak mendukung penyesuaian menggunakan Penyesuaian Reinforcement Learning from Human Feedback (RLHF).

Skenario untuk menggunakan penyesuaian model kode

Penyesuaian diperlukan saat Anda ingin supaya model mempelajari sesuatu yang khusus atau spesifik yang menyimpang dari pola kode dan bahasa umum. Berikut adalah contoh hal yang dapat Anda ajarkan untuk model code-bison dan codechat-bison:

  • Cara membuat kode untuk library kustom. Dengan melatih model kode menggunakan contoh berlabel dari library kustom, Anda dapat membuat atau melakukan chat tentang kode yang khusus untuk library kustom tersebut.
  • Cara menggunakan code base. Dengan melatih model menggunakan contoh code base berlabel, Anda dapat membuat kode atau melakukan chat tentang kode yang menggunakan kualitas unik dalam code base.
  • Cara membuat kode menggunakan varian bahasa pemrograman. Dengan melatih model kode dengan contoh berlabel varian bahasa, Anda dapat membuat atau melakukan chat tentang kode yang menggunakan konvensi dan standar khusus varian bahasa tersebut.

Skenario ini mencakup persyaratan kode yang sulit direkam hanya dengan petunjuk perintah. Berikut ini beberapa contohnya:

Pembuatan kode

  • Contoh perintah dan respons ini membantu menyesuaikan code-bison agar berfungsi dengan set data tertentu.

  • Contoh perintah dan respons ini membantu melatih code-bison membuat produk menggunakan Python.

Chat kode

  • Contoh perintah dan respons ini membantu menyesuaikan codechat-bison untuk membantu pengguna mempelajari cara menggunakan set data tertentu.

  • Contoh perintah dan respons ini membantu menyesuaikan codechat-bison untuk membantu pengguna mempelajari cara membuat produk menggunakan Python selama sesi chat.

Menyiapkan set data penyesuaian model kode

Set data yang digunakan untuk menyesuaikan model kode menyertakan contoh yang selaras dengan tugas yang Anda inginkan untuk dilakukan oleh model. Set data Anda harus menyertakan minimal 10 contoh, tetapi kami merekomendasikan minimal 500 contoh untuk mendapatkan hasil yang baik. Semakin banyak contoh yang Anda berikan, semakin baik hasilnya.

Format set data untuk menyesuaikan model kode

Set data penyesuaian untuk model pembuatan kode dan model chat kode harus dalam format JSON Lines (JSONL). Berikut ini detail tentang format set data dan contoh set data untuk setiap model:

Pembuatan kode

Set data penyesuaian model pembuatan kode Anda harus dalam format JSON Lines (JSONL), dengan setiap baris berisi satu contoh penyesuaian. 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.

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

Contoh set data penyesuaian model pembuatan kode

Topik ini menampilkan dua contoh set data penyesuaian model pembuatan kode. Berikut adalah contoh pertama dari set data penyesuaian pembuatan kode:

{"input_text": "How to create a product in Python with the Cloud Vision API?", "output_text": "Use this
Python code sample to learn how to create a
product with the Cloud Vision API:\n\n```python\n\r\n\r\n\r\n\r\n\r\nfrom google.cloud import
vision\r\nfrom google.protobuf import field_mask_pb2 as field_mask\r\n\r\ndef
create_product(\r\n project_id, location, product_id, product_display_name,\r\n
product_category):\r\n \"\"\"Create one product.\r\n Args:\r\n project_id: Id of
the project.\r\n location: A compute region name.\r\n product_id: Id of the
product.\r\n product_display_name: Display name of the product.\r\n
product_category: Category of the product.\r\n \"\"\"\r\n client =
vision.ProductSearchClient()\r\n\r\n # A resource that represents Google Cloud
Platform location.\r\n location_path =
f\"projects/{project_id}/locations/{location}\"\r\n\r\n # Create a product with
the product specification in the region.\r\n # Set product display name and
product category.\r\n product = vision.Product(\r\n
display_name=product_display_name,\r\n
product_category=product_category)\r\n\r\n # The response is the product with
the `name` field populated.\r\n response = client.create_product(\r\n
parent=location_path,\r\n product=product,\r\n product_id=product_id)\r\n\r\n #
Display the product information.\r\n print('Product name:
{}'.format(response.name))\r\n```"}

Berikut adalah contoh kedua dari set data penyesuaian pembuatan kode:

{"input_text": "python to retrieve the labels of a dataset for a given dataset
ID in BigQuery", "output_text": "Here is a Python code sample to retrieve the labels of a
dataset for a given dataset ID in BigQuery.\n\n```python\n\n from google.cloud import
bigquery\n\n # Construct a BigQuery client object.\n client =
bigquery.Client()\n\n # TODO(developer): Set dataset_id to the ID of the dataset
to fetch.\n # dataset_id = \"your-project.your_dataset\"\n\n dataset =
client.get_dataset(dataset_id) # Make an API request.\n\n # View dataset
labels.\n print(\"Dataset ID: {}\".format(dataset_id))\n print(\"Labels:\")\n if
dataset.labels:\n for label, value in dataset.labels.items():\n print(\"\\t{}:
{}\".format(label, value))\n else:\n print(\"\\tDataset has no labels
defined.\")\n```"}

Chat kode

Set data penyesuaian model chat kode Anda harus dalam format JSON Lines (JSONL), dengan setiap baris berisi satu contoh penyesuaian. Setiap contoh terdiri dari satu kolom messages yang berisi contoh perintah dan respons chat yang diharapkan untuk dihasilkan oleh model yang telah disesuaikan.

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

Contoh set data penyesuaian model chat kode

Topik ini menampilkan dua contoh set data penyesuaian model chat kode. Berikut adalah contoh pertama set data penyesuaian chat kode:

{"messages": [{"author":"user", "content": "How to create a product in
Python with Cloud Vision?"}, {"author": "assistant", "content": "Use this Python code sample to
learn how to create a product with Cloud Vision:\n\n```python\n\r\n\r\n\r\n\r\n\r\nfrom
google.cloud import vision\r\nfrom google.protobuf import field_mask_pb2 as
field_mask\r\n\r\ndef create_product(\r\n project_id, location, product_id,
product_display_name,\r\n product_category):\r\n \"\"\"Create one product.\r\n
Args:\r\n project_id: Id of the project.\r\n location: A compute region
name.\r\n product_id: Id of the product.\r\n product_display_name: Display name
of the product.\r\n product_category: Category of the product.\r\n \"\"\"\r\n
client = vision.ProductSearchClient()\r\n\r\n # A resource that represents
Google Cloud Platform location.\r\n location_path =
f\"projects/{project_id}/locations/{location}\"\r\n\r\n # Create a product with
the product specification in the region.\r\n # Set product display name and
product category.\r\n product = vision.Product(\r\n
display_name=product_display_name,\r\n
product_category=product_category)\r\n\r\n # The response is the product with
the `name` field populated.\r\n response = client.create_product(\r\n
parent=location_path,\r\n product=product,\r\n product_id=product_id)\r\n\r\n #
Display the product information.\r\n print('Product name:
{}'.format(response.name))\r\n```"}]}

Berikut adalah contoh kedua dari set data penyesuaian chat kode:

{"messages": [{"author":"user", "content": "Python to retrieve the labels of a
dataset for a given dataset ID in BigQuery"}, {"author": "assistant", "content": "Here is a
Python code sample to retrieve the labels of a dataset for a given dataset
ID in BigQuery.\n\n```python\n\n from google.cloud import bigquery\n\n # Construct a
BigQuery client object.\n client = bigquery.Client()\n\n # TODO(developer): Set
dataset_id to the ID of the dataset to fetch.\n # dataset_id =
\"your-project.your_dataset\"\n\n dataset = client.get_dataset(dataset_id) #
Make an API request.\n\n # View dataset labels.\n print(\"Dataset ID:
{}\".format(dataset_id))\n print(\"Labels:\")\n if dataset.labels:\n for label,
value in dataset.labels.items():\n print(\"\\t{}: {}\".format(label, value))\n
else:\n print(\"\\tDataset has no labels defined.\")\n```"}]}

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.

Sertakan petunjuk dalam contoh

Untuk tugas seperti pembuatan kode, 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": "Calculate the sum of a list of integers.",
  "output_text": "```python\nnums = [1, 2, 3]\ntotal_sum = sum(nums)\n```"
}

Dilengkapi petunjuk:

{
  "input_text": "Write the code in Python: calculate the sum of a list of integers",
  "output_text": "```python\nnums = [1, 2, 3]\ntotal_sum = sum(nums)\n```"
}

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 kode

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

Membuat tugas penyesuaian model pembuatan kode

Berikut ini adalah cara membuat tugas penyesuaian model pembuatan kode menggunakan Konsol Google Cloud atau perintah REST API.

REST

Untuk membuat tugas penyesuaian model pembuatan kode, kirim permintaan POST menggunakan metode pipelineJobs.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNINGPIPELINE_DISPLAYNAME: Nama tampilan untuk pipelineJob.
  • OUTPUT_DIR: URI bucket tempat menampung output artefak pipeline.
  • MODEL_DISPLAYNAME: Nama tampilan untuk model yang diupload (dibuat) oleh pipelineJob.
  • DATASET_URI: URI file set data Anda.
  • EVAL_DATASET_URI: (opsional) URI file JSONL yang berisi set data evaluasi untuk prediksi dan evaluasi batch. Evaluasi tidak didukung untuk codechat-bison. Untuk mengetahui informasi selengkapnya, lihat Format set data untuk menyesuaikan model kode. Set data evaluasi membutuhkan antara sepuluh hingga 250 contoh.
  • EVAL_INTERVAL: (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.
  • 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 informasi selengkapnya, lihat Region tugas pipeline.
  • 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 dijalankan. 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.
  • ENABLE_EARLY_STOPPING: (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 akan 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.
  • ENABLE_CHECKPOINT_SELECTION: Nilai string yang dapat berupa true, false, atau default. Jika ditetapkan ke `true`, Vertex AI akan memilih dan menampilkan checkpoint dengan performa evaluasi model terbaik dari semua checkpoint yang dibuat selama tugas penyesuaian. Jika ditetapkan ke `false`, checkpoint akhir yang dibuat selama tugas penyesuaian akan ditampilkan. Setiap titik pemeriksaan mengacu pada snapshot model selama tugas penyesuaian.
  • 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.
  • STEPS: Jumlah langkah yang akan dijalankan untuk penyesuaian model. Nilai defaultnya adalah 300. Ukuran kumpulan bervariasi menurut 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 : Ukuran langkah pada setiap iterasi. Nilai default adalah 1.

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",
      "evaluation_data_uri": "EVAL_DATASET_URI",
      "evaluation_interval": "EVAL_INTERVAL",
      "enable_early_stopping": "ENABLE_EARLY_STOPPING",
      "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION",
      "tensorboard_resource_id": "TENSORBOARD_RESOURCE_ID",
      "location": "MODEL_UPLOAD_REGION",
      "accelerator_type": "ACCELERATOR_TYPE",
      "large_model_reference": "code-bison@002",
      "train_steps": STEPS,
      "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER
    }
  }
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v3.0.0"
}

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 berikut ini. Perhatikan bahwa pipelineSpec telah dipotong untuk menghemat ruang penyimpanan.

Konsol

Untuk menyesuaikan pembuatan kode atau model chat kode 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 menurut 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 codechat-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.
    • ID 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.

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

import vertexai
from vertexai.language_models import CodeGenerationModel

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def tune_code_generation_model() -> CodeGenerationModel:
    # Initialize Vertex AI
    vertexai.init(project=PROJECT_ID, location="us-central1")

    model = CodeGenerationModel.from_pretrained("code-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...
    # PipelineState.PIPELINE_STATE_PENDING
    return model

Contoh perintah curl untuk menyesuaikan model pembuatan kode

PROJECT_ID=myproject
DATASET_URI=gs://my-gcs-bucket-uri/dataset
EVAL_DATASET_URI=gs://cloud-samples-data/vertex-ai/model-evaluation/eval_sample.jsonl
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://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs?pipelineJobId=tune-large-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
  "displayName": "'${PIPELINE_NAME}'",
  "runtimeConfig": {
    "gcsOutputDirectory": "'${OUTPUT_DIR}'",
    "parameterValues": {
      "project": "'${PROJECT_ID}'",
      "model_display_name": "The display name for your model in the UI",
      "dataset_uri": "'${DATASET_URI}'",
      "evaluation_data_uri:": "'${EVAL_DATASET_URI}'",
      "location": "'${LOCATION}'",
      "accelerator_type": "'${ACCELERATOR_TYPE}'",
      "large_model_reference": "code-bison@002",
      "learning_rate_multiplier": 1,
      "train_steps": 300
    }
  },
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-model/v3.0.0"
}'

Membuat tugas penyesuaian model chat kode

Bagian ini menunjukkan cara membuat tugas penyesuaian model chat kode menggunakan Konsol Google Cloud atau perintah REST API.

REST

Untuk membuat tugas penyesuaian model chat kode, kirim permintaan POST dengan menggunakan metode pipelineJobs.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • TUNINGPIPELINE_DISPLAYNAME: Nama tampilan untuk pipelineJob.
  • OUTPUT_DIR: URI bucket untuk menampung output artefak pipeline.
  • 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 informasi selengkapnya, lihat Region tugas pipeline.
  • 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 dijalankan. 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.
  • MODEL_DISPLAYNAME: Nama tampilan untuk model yang diupload (dibuat) oleh pipelineJob.
  • DATASET_URI: URI file set data Anda.
  • 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.
  • DEFAULT_CONTEXT: 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 menurut 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: Ukuran langkah pada setiap iterasi. Nilai default adalah 1.

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",
      "tensorboard_resource_id": "TENSORBOARD_RESOURCE_ID",
      "location": "MODEL_UPLOAD_REGION",
      "accelerator_type": "ACCELERATOR_TYPE",
      "large_model_reference": "codechat-bison@002",
      "default_context": "DEFAULT_CONTEXT",
      "train_steps": STEPS,
      "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER
    }
  },
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/large-language-model-pipelines/tune-large-chat-model/v3.0.0"
}

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 berikut ini.
Perhatikan bahwa pipelineSpec telah dipotong untuk menghemat ruang penyimpanan.

Konsol

Untuk menyesuaikan pembuatan kode atau model chat kode 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 menurut 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 codechat-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.
    • ID 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 untuk menyesuaikan model chat kode

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://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs?pipelineJobId=tune-large-chat-model-$(date +%Y%m%d%H%M%S)" -d \
$'{
  "displayName": "'${PIPELINE_NAME}'",
  "runtimeConfig": {
    "gcsOutputDirectory": "'${OUTPUT_DIR}'",
    "parameterValues": {
      "project": "'${PROJECT_ID}'",
      "model_display_name": "your-model-display-name",
      "dataset_uri": "'${DATASET_URI}'",
      "location": "'${LOCATION}'",
      "large_model_reference": "codechat-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-chat-model/v3.0.0"
}'

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

Tugas Jumlah contoh dalam set data Langkah-langkah pelatihan
Pembuatan kode 500+ 200-1000
Chat kode 500+ 200-1000

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 menggunakan Konsol Google Cloud atau Vertex AI SDK untuk Python untuk melihat daftar model kode yang telah disesuaikan dalam project Anda saat ini.

Melihat daftar model kode yang disesuaikan (konsol)

Untuk melihat model pembuatan kode dan chat kode yang telah disesuaikan di Konsol Google Cloud, buka halaman Vertex AI Model Registry.

Buka Vertex AI Model Registry

Melihat daftar model pembuatan kode (SDK) yang disesuaikan

Kode contoh berikut menggunakan Vertex AI SDK untuk Python guna mencantumkan model pembuatan kode yang telah disesuaikan dalam project Anda saat ini:

import vertexai
from vertexai.preview.language_models import CodeGenerationModel

model = CodeGenerationModel.from_pretrained("code-bison@002").list_tuned_model_names()

Melihat daftar model chat kode (SDK) yang disesuaikan

Kode contoh berikut menggunakan Vertex AI SDK untuk Python guna mencantumkan model chat kode yang telah disesuaikan dalam project Anda saat ini:

import vertexai
from vertexai.preview.language_models import CodeChatModel

model = CodeChatModel.from_pretrained("codechat-bison@002").list_tuned_model_names()

Memuat model yang disesuaikan

Anda dapat menggunakan Vertex AI SDK untuk Python untuk memuat model kode yang telah disesuaikan.

Memuat model pembuatan kode yang telah disesuaikan

Kode contoh berikut menggunakan Vertex AI SDK untuk Python untuk memuat model pembuatan kode yang telah disesuaikan. Dalam kode contoh, 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.

import vertexai
from vertexai.preview.language_models import CodeGenerationModel

model = CodeGenerationModel.get_tuned_model(TUNED_MODEL_NAME)

Memuat model chat kode yang telah disesuaikan

Kode contoh berikut menggunakan Vertex AI SDK untuk Python untuk memuat model chat kode yang telah disesuaikan:

import vertexai
from vertexai.preview.language_models import CodeChatModel

model = CodeChatModel.get_tuned_model(TUNED_MODEL_NAME)

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.

Kuota

Tugas penyesuaian di us-central1 menggunakan delapan GPU A100 80 GB.

Tugas penyesuaian di europe-west4 menggunakan 64 core dari resource pelatihan model kustom TPU v3 pod.

Jika tidak memiliki cukup kuota atau ingin menjalankan beberapa tugas penyesuaian konkurensi di project Google Cloud, Anda harus meminta kuota tambahan:

  • Untuk us-central1, kirimkan permintaan untuk Restricted image training Nvidia A100 80 GB GPUs per region di wilayah us-central1 dalam kelipatan delapan.

  • Untuk europe-west4, kirimkan permintaan untuk Restricted image training TPU V3 pod cores per region di wilayah europe-west4 dalam kelipatan 64.

Langkah selanjutnya

  • Untuk mengetahui model lainnya, fitur lanjutan, dan kemampuan untuk mentranskripsikan file hingga delapan jam, lihat Speech-to-Text.