Menggunakan reservasi dengan pelatihan

Dokumen ini menjelaskan cara menggunakan pemesanan Compute Engine untuk mendapatkan tingkat jaminan yang tinggi bahwa tugas pelatihan serverless Anda memiliki resource virtual machine (VM) yang diperlukan untuk dijalankan.

Pemesanan adalah fitur Compute Engine. Fitur ini membantu memastikan bahwa Anda memiliki resource yang tersedia untuk membuat VM dengan hardware yang sama (memori dan vCPU) dan resource opsional (CPU, GPU, TPU, dan disk SSD Lokal) kapan pun Anda membutuhkannya.

Saat Anda membuat pemesanan, Compute Engine akan memverifikasi bahwa kapasitas yang diminta tersedia di zona yang ditentukan. Jika demikian, Compute Engine akan mencadangkan resource, membuat pemesanan, dan hal berikut akan terjadi:

  • Anda dapat langsung menggunakan resource yang dicadangkan, dan resource tersebut akan tetap tersedia hingga Anda menghapus pemesanan.
  • Anda akan dikenai biaya untuk resource yang dicadangkan dengan tarif on-demand yang sama seperti VM yang berjalan, termasuk diskon yang berlaku, hingga pemesanan dihapus. VM yang menggunakan pemesanan tidak dikenai biaya terpisah. Anda hanya dikenai biaya untuk resource di luar pemesanan, seperti disk atau alamat IP. Untuk mempelajari lebih lanjut, lihat harga untuk pemesanan.

Batasan dan persyaratan

Saat menggunakan pemesanan Compute Engine dengan Agent Platform, pertimbangkan batasan dan persyaratan berikut:

  • Agent Platform hanya dapat menggunakan pemesanan untuk CPU, VM GPU, atau TPU (Pratinjau).
  • Agent Platform tidak dapat menggunakan pemesanan VM yang memiliki disk SSD Lokal yang terpasang secara manual.
  • Penggunaan pemesanan Compute Engine dengan Agent Platform hanya didukung untuk pelatihan serverless, inferensi, dan Gemini Enterprise Agent Platform Workbench (Pratinjau) Gemini Enterprise Agent Platform.
  • Properti VM pemesanan harus sama persis dengan workload Agent Platform Anda untuk menggunakan pemesanan. Misalnya, jika pemesanan menentukan jenis mesin a2-ultragpu-8g, workload Agent Platform hanya dapat menggunakan pemesanan jika juga menggunakan jenis mesin a2-ultragpu-8g. Lihat Persyaratan.
  • Untuk menggunakan pemesanan bersama VM GPU atau TPU, Anda harus menggunakannya menggunakan project pemilik atau project konsumen yang juga memakai pemesanan bersama tersebut. Lihat Cara kerja pemesanan bersama.
  • Untuk mendukung update rutin deployment Agent Platform, sebaiknya tingkatkan jumlah VM Anda dengan setidaknya 1 VM tambahan untuk setiap deployment serentak.
  • Flex Start untuk Dynamic Workload Scheduler dan menjalankan tugas pelatihan pada resource persisten didukung, kecuali saat menggunakan pemesanan Compute Engine dengan pelatihan Agent Platform.

Penagihan

Saat menggunakan pemesanan Compute Engine, Anda akan ditagih untuk hal-hal berikut:

  • Harga Compute Engine untuk resource Compute Engine, termasuk diskon abonemen (CUD) yang berlaku. Lihat Harga Compute Engine.
  • Biaya pengelolaan pelatihan serverless Agent Platform selain penggunaan infrastruktur Anda. Lihat Harga model terlatih kustom.

Sebelum memulai

Mengizinkan pemesanan untuk digunakan

Sebelum menggunakan pemesanan CPU, VM GPU, atau TPU, Anda harus menetapkan kebijakan berbagi untuk mengizinkan Agent Platform menggunakan pemesanan. Untuk melakukannya, gunakan salah satu metode berikut:

Mengizinkan penggunaan saat membuat pemesanan

Saat membuat pemesanan VM GPU untuk satu project atau bersama, Anda dapat mengizinkan Agent Platform menggunakan pemesanan sebagai berikut:

  • Jika Anda menggunakankonsol, di bagian Google Cloud services , pilih Share reservation. Google Cloud
  • Jika Anda menggunakan Google Cloud CLI, sertakan flag --reservation-sharing-policy yang ditetapkan ke ALLOW_ALL.
  • Jika Anda menggunakan REST API, di isi permintaan, sertakan kolom serviceShareType yang ditetapkan ke ALLOW_ALL.

Mengizinkan penggunaan pemesanan yang ada

Anda hanya dapat mengubah pemesanan VM GPU atau TPU yang dibuat secara otomatis untuk pemesanan untuk masa mendatang hanya setelah waktu mulai pemesanan.

Untuk mengizinkan Agent Platform menggunakan pemesanan yang ada, gunakan salah satu metode berikut ini:

Memverifikasi bahwa pemesanan digunakan

Untuk memverifikasi bahwa pemesanan sedang digunakan, lihat Memverifikasi pemakaian pemesanan dalam dokumentasi Compute Engine.

Membuat tugas pelatihan serverless dengan pemesanan

Gunakan REST API untuk membuat tugas pelatihan serverless Gemini Enterprise Agent Platform yang menggunakan pemesanan Compute Engine VM GPU.

REST

Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:

  • LOCATION: Region tempat container atau paket Python akan dijalankan.
  • PROJECT_ID: project tempat pemesanan dibuat. Untuk menggunakan pemesanan bersama dari project lain, Anda harus membagikan pemesanan ke project tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengubah project konsumen dalam pemesanan bersama.
  • JOB_NAME: Wajib diisi. Nama tampilan untuk CustomJob.
  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk tugas. Setelan defaultnya adalah n1-standard-2. Untuk mengetahui informasi selengkapnya tentang jenis mesin yang didukung, lihat Mengonfigurasi resource komputasi untuk pelatihan kustom.
  • ACCELERATOR_TYPE: jenis akselerator yang akan dipasang ke mesin. Untuk mengetahui informasi selengkapnya tentang jenis GPU yang didukung setiap jenis mesin, lihat GPU untuk workload komputasi.
  • ACCELERATOR_COUNT: jumlah akselerator yang akan dipasang ke mesin.
  • Tentukan tugas pelatihan kustom:
    • RESERVATION_AFFINITY_TYPE: Harus berupa ANY_RESERVATION, SPECIFIC_RESERVATION, atau NO_RESERVATION.

      • ANY_RESERVATION berarti VM customJob Anda dapat otomatis menggunakan pemesanan apa pun dengan properti yang cocok.
      • SPECIFIC_RESERVATION berarti VM customJob Anda hanya dapat menggunakan pemesanan yang secara khusus ditargetkan oleh VM berdasarkan nama.
      • NO_RESERVATION berarti VM customJob Anda tidak dapat menggunakan pemesanan apa pun. Menentukan NO_RESERVATION memiliki efek yang sama dengan menghapus spesifikasi afinitas pemesanan.
    • ZONE: zona tempat pemesanan dibuat.
    • RESERVATION_NAME: nama pemesanan Anda.
    • DISK_TYPE: Opsional. Jenis boot disk yang akan digunakan untuk tugas, baik pd-standard (default) atau pd-ssd. Pelajari jenis disk lebih lanjut
    • DISK_SIZE: Opsional. Ukuran boot disk yang digunakan untuk tugas dalam satuan GB. Nilai defaultnya adalah 100.
    • REPLICA_COUNT: jumlah replika worker yang akan digunakan. Pada umumnya, tetapkan ini ke 1 untuk kumpulan worker pertama Anda.
    • Jika aplikasi pelatihan Anda berjalan dalam container kustom, tentukan hal berikut:
      • CUSTOM_CONTAINER_IMAGE_URI: URI image container di Artifact Registry atau Docker Hub yang akan dijalankan di setiap replika worker.
      • CUSTOM_CONTAINER_COMMAND: Opsional. Perintah yang akan dipanggil saat container dimulai. Perintah ini mengganti titik entri default container.
      • CUSTOM_CONTAINER_ARGS: Opsional. Argumen yang akan diteruskan saat memulai container.
    • Jika aplikasi pelatihan Anda adalah paket Python yang berjalan dalam container bawaan, tentukan hal berikut:
      • EXECUTOR_IMAGE_URI: URI image container yang menjalankan kode yang disediakan. Lihat container bawaan yang tersedia untuk pelatihan.
      • PYTHON_PACKAGE_URIS: Daftar URI Cloud Storage yang dipisahkan koma yang menentukan file paket Python yang merupakan program pelatihan dan paket dependensinya. Jumlah maksimum URI paket adalah 100.
      • PYTHON_MODULE: Nama modul Python yang akan dijalankan setelah menginstal paket.
      • PYTHON_PACKAGE_ARGS: Opsional. Argumen command line yang akan diteruskan ke modul Python.
    • TIMEOUT: Opsional. Waktu berjalan maksimum untuk tugas.
  • Tentukan LABEL_NAME dan LABEL_VALUE untuk setiap label yang ingin Anda terapkan ke tugas kustom ini.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs

Meminta isi JSON:

{
  "displayName": "JOB_NAME",
  "jobSpec": {
    "workerPoolSpecs": [
      {
        "machineSpec": {
          "machineType": "MACHINE_TYPE",
          "acceleratorType": "ACCELERATOR_TYPE",
          "acceleratorCount": ACCELERATOR_COUNT,
          "reservationAffinity": {
            "reservationAffinityType": "RESERVATION_AFFINITY_TYPE",
            // Use the following key and values only if
            // the reservationAffinityType is SPECIFIC_RESERVATION.
            "key": "compute.googleapis.com/reservation-name",
            "values": [
              "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"
            ]
          },
        },
        "replicaCount": REPLICA_COUNT,
        "diskSpec": {
          "bootDiskType": DISK_TYPE,
          "bootDiskSizeGb": DISK_SIZE
        },

        // Union field task can be only one of the following:
        "containerSpec": {
          "imageUri": CUSTOM_CONTAINER_IMAGE_URI,
          "command": [
            CUSTOM_CONTAINER_COMMAND
          ],
          "args": [
            CUSTOM_CONTAINER_ARGS
          ]
        },
        "pythonPackageSpec": {
          "executorImageUri": EXECUTOR_IMAGE_URI,
          "packageUris": [
            PYTHON_PACKAGE_URIS
          ],
          "pythonModule": PYTHON_MODULE,
          "args": [
            PYTHON_PACKAGE_ARGS
          ]
        }
        // End of list of possible types for union field task.
      }
      // Specify one workerPoolSpec for single replica training, or multiple workerPoolSpecs
      // for distributed training.
    ],
    "scheduling": {
      "timeout": TIMEOUT
    }
  },
  "labels": {
    LABEL_NAME_1": LABEL_VALUE_1,
    LABEL_NAME_2": LABEL_VALUE_2
  }
}

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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"

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

Respons ini berisi informasi tentang spesifikasi serta TRAININGPIPELINE_ID.

Langkah berikutnya