Mengelola cluster

Jika Anda tertarik dengan cluster pelatihan Gemini Enterprise Agent Platform, hubungi sales representative Anda untuk mendapatkan akses.

Setelah cluster di-deploy, Anda dapat mengubah atau menghapusnya menggunakan endpoint API Agent Platform berikut:

  • Update: Mengubah konfigurasi cluster yang ada.
  • Delete: Menghapus cluster dan resource-nya secara permanen.

Memperbarui cluster hanya tersedia melalui Agent Platform API. Anda dapat menghapus cluster dari Agent Platform API atau konsol Google Cloud .

Untuk mengetahui petunjuk tentang cara mencantumkan semua cluster atau melihat masing-masing cluster, lihat Melihat cluster.

Autentikasi

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Mengupdate cluster

UPDATE_PAYLOAD menentukan jalur lokal ke file JSON yang menentukan ModelDevelopmentCluster lengkap yang ingin Anda perbarui.

Misalnya, untuk mengupdate jumlah node dari pool cluster khusus CPU, gunakan payload JSON berikut:

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "cpu",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": UPDATED_MIN_NODE_COUNT,
        "max_node_count": UPDATED_MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": 1,
        "max_node_count": 1
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
        {
          "id": "cpu",
          "node_pool_ids": [
            "cpu"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

gcurl -X PATCH -d @UPDATE_PAYLOAD https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
Parameter Kueri
  • updateMask (string, opsional): FieldMask yang menentukan kolom resource cluster Model Development yang akan diperbarui. Hanya kolom yang tercantum dalam updateMask yang diubah.

    Kolom berikut dalam resource ModelDevelopmentCluster dapat ditentukan dalam updateMask:

    • labels
    • node_pools
    • orchestrator_spec.slurm_spec.partitions
    • orchestrator_spec.slurm_spec.default_partition_id
    • orchestrator_spec.slurm_spec.login_node_pool_id
    • orchestrator_spec.slurm_spec.prolog_bash_scripts
    • orchestrator_spec.slurm_spec.epilog_bash_scripts
    • orchestrator_spec.slurm_spec.config
    • orchestrator_spec.slurm_spec.scheduling dan orchestrator_spec.slurm_spec.accounting: kolom lama yang digantikan oleh config. Cluster menggunakan salah satu dari keduanya. Lihat Memperbarui setelan konfigurasi Slurm.
    • orchestrator_spec.slurm_spec.node_sets
  • updateMode (enum, opsional): Menentukan mode update. Nilainya dapat berupa:

    • UPDATE_MODE_UNSPECIFIED: Nilai default, diperlakukan sebagai USER_AND_SERVICE.
    • USER_ONLY: Hanya menerapkan perubahan kolom yang ditentukan pengguna dari permintaan. Layanan ini tidak akan memperbarui kolom yang dikelola layanan, seperti skrip startup, prolog, atau epilog. Setiap node pool juga tetap menggunakan image yang sedang berjalan, kecuali jika Anda menetapkan node_image sendiri, sehingga update USER_ONLY yang menghilangkan node_image tidak akan membuat ulang node Anda.
    • USER_AND_SERVICE: Menerapkan perubahan kolom yang ditentukan pengguna dan mengizinkan layanan memperbarui kolom yang dikelola layanan.
    Sebaiknya gunakan USER_AND_SERVICE untuk memastikan cluster Anda sudah yang terbaru.

Perintah di bawah ini mengupdate konfigurasi node pool dan partisi Slurm.

gcurl -X PATCH -d @update-payload.json \
'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.partitions,node_pools&updateMode=USER_AND_SERVICE'
Catatan penting tentang kolom berulang

Untuk kolom berulang, seperti node_pools, prolog_bash_scripts, dan epilog_bash_scripts, API hanya mendukung operasi penggantian penuh. Pengguna harus memberikan seluruh daftar item yang diharapkan dalam payload permintaan untuk mengganti daftar yang ada sepenuhnya.

Mengubah partisi default

Untuk mengubah partisi default tanpa mengirim ulang partitions, tetapkan default_partition_id dan tentukan hanya orchestrator_spec.slurm_spec.default_partition_id di updateMask. Pembaruan yang menghapus atau mengganti nama partisi yang ditentukan default_partition_id akan ditolak.

Memperbarui setelan konfigurasi Slurm

Anda dapat mengubah konfigurasi Slurm pada cluster yang sedang berjalan. Menerapkan setelan ini tidak akan memulai ulang atau mengosongkan node apa pun: layanan akan membuat ulang slurm.conf dan memuat ulang pengontrol Slurm, sehingga tugas yang diantrekan dan berjalan tidak akan terpengaruh.

Selalu ada risiko bahwa node dapat dimulai ulang setelah tugas yang berjalan selesai karena perubahan dependensi yang mendasarinya. Namun, risiko tersebut diminimalkan dengan mode update USER_ONLY.

Setelan baru mungkin memerlukan waktu beberapa saat untuk muncul di scontrol show config setelah operasi selesai.

Setelan cakupan cluster diberi nama oleh orchestrator_spec.slurm_spec.config, setelan node pool oleh orchestrator_spec.slurm_spec.node_sets, dan setelan partisi oleh orchestrator_spec.slurm_spec.partitions, yang membawa config setiap partisi beserta keanggotaannya. Setiap peta diganti secara penuh, dengan cara yang sama seperti kolom berulang yang dijelaskan sebelumnya. Kirim kumpulan parameter lengkap yang Anda inginkan; parameter yang Anda hapus akan dihapus. Untuk menghapus peta, beri nama jalurnya di updateMask dan kirimkan dalam keadaan kosong.

Perintah di bawah mengaktifkan preemption prioritas partisi untuk cluster yang ada.

gcurl -X PATCH -d @update-payload.json \
'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.config&updateMode=USER_ONLY'

Dengan update-payload.json berisi, sebagian:

{
  ...,
  "orchestrator_spec": {
    "slurm_spec": {
      ...,
      "config": {
        "PriorityType": "priority/multifactor",
        "PriorityWeightAge": "1000",
        "PreemptType": "preempt/partition_prio",
        "PreemptMode": "REQUEUE",
        "PreemptExemptTime": "1:01",
        "SchedulerParameters": "bf_continue,bf_window=1440"
      }
    }
  }
}

Tetapkan parameter seluruh cluster di config, bukan di scheduling dan accounting, yang digantikannya. Cluster menggunakan salah satunya; permintaan yang menetapkan keduanya akan ditolak.

Jika Anda memanggil PATCH tanpa updateMask, layanan akan membedakan seluruh payload Anda dengan cluster saat ini, sehingga payload yang menghilangkan setelan ini akan menghapus apa pun yang sudah dimiliki cluster. Teruskan updateMask untuk mencakup update ke kolom yang ingin Anda ubah. Kolom yang Anda beri nama, tetapi tidak disertakan dalam payload, akan dihapus.

Untuk memindahkan cluster yang ada dari scheduling dan accounting ke config, kirim setiap setelan di config menggunakan nama slurm.conf-nya, misalnya AccountingStorageEnforce atau PriorityWeightQOS, hapus scheduling dan accounting dari payload, dan beri nama ketiganya di updateMask sehingga kolom yang lebih lama dihapus. Setelah itu, updateMask sebesar orchestrator_spec.slurm_spec.config saja sudah cukup.

Pemilihan image node

Karena node_pools diganti sepenuhnya, node pool dalam payload update Anda yang menghilangkan node_image akan di-resolve ke image default saat ini untuk jenis mesinnya. Default tersebut akan berubah seiring waktu, sehingga menghilangkan node_image akan memindahkan node pool ke image terbaru yang tersedia, yang sering kali sesuai dengan keinginan Anda: image tersebut akan mengambil driver, keamanan, dan perbaikan bug.

Agar node pool tetap berada di image tertentu di seluruh update, tetapkan node_image ke image tersebut (misalnya, projects/IMAGE_PROJECT/global/images/IMAGE). Jika Anda membaca nilai saat ini dari Get untuk mengirimkannya kembali, perhatikan bahwa cluster yang belum pernah diupdate akan melaporkan node_image kosong, kecuali jika node_image ditetapkan saat cluster dibuat.

Perilaku pasca-update dan status cluster

Permintaan yang berhasil akan menampilkan Operasi yang Berjalan Lama (LRO). Anda kemudian dapat memantau status operasi ini menggunakan perintah berikut:

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Setelah operasi update berhasil diselesaikan, sebagian besar modifikasi akan langsung diterapkan (atau dalam waktu sinkronisasi Slurm 15 detik) dan tidak memerlukan tindakan lebih lanjut. Hanya perubahan pada infrastruktur komputasi cluster yang mendasarinya—termasuk modifikasi pada sumber penyimpanan dan skrip startup—yang memerlukan pembuatan ulang resource.

Menghapus cluster

  gcurl -X DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
  

Perintah ini menampilkan Operasi yang Berjalan Lama jika berhasil, yang kemudian dapat Anda pantau menggunakan perintah operations describe.

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID

Langkah berikutnya

Dengan mengelola cluster pelatihan Gemini Enterprise Agent Platform, Anda dapat mengoptimalkan penggunaannya, mengintegrasikannya ke dalam alur kerja otomatis, dan menyiapkan model terlatih untuk deployment.

  • Atur pelatihan Anda dengan Gemini Enterprise Agent Platform Pipelines: Otomatiskan seluruh siklus proses tugas pelatihan Anda, mulai dari persiapan data hingga pendaftaran model, menggunakan pipeline yang menargetkan cluster terkelola Anda.
  • Memantau dan men-debug tugas pelatihan Anda: Lacak progres dan penggunaan resource, serta identifikasi masalah pada tugas pelatihan terdistribusi yang berjalan di cluster.
  • Deploy model Anda untuk inferensi: Setelah model dilatih dan didaftarkan, deploy model tersebut ke endpoint Gemini Enterprise Agent Platform untuk menyajikan permintaan inferensi online dalam skala besar.
  • Mengoptimalkan biaya: Tinjau pemanfaatan cluster Anda secara rutin dan hapus cluster saat tidak digunakan secara aktif untuk meminimalkan penagihan untuk hardware yang direservasi.