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 sumber dayanya 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 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 update.

Misalnya, untuk mengupdate jumlah node pool di 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 Pengembangan Model yang akan diperbarui. Hanya kolom yang tercantum dalam updateMask yang diubah.

    Kolom berikut dalam resource ModelDevelopmentCluster dapat ditentukan di 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 satunya. 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: Terapkan hanya perubahan kolom yang ditentukan pengguna dari permintaan. Layanan tidak akan memuat ulang kolom yang dikelola layanan, seperti skrip startup, prolog, atau epilog. Setiap node pool juga tetap menggunakan image yang saat ini dijalankannya, kecuali jika Anda menetapkan node_image sendiri, sehingga update USER_ONLY yang tidak menyertakan node_image tidak akan membuat ulang node Anda.
    • USER_AND_SERVICE: Menerapkan perubahan kolom yang ditentukan pengguna dan memungkinkan layanan memuat ulang kolom yang dikelola layanan.
    Sebaiknya gunakan USER_AND_SERVICE untuk memastikan cluster Anda sudah yang terbaru.

Perintah di bawah ini memperbarui 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 oleh 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 di-reboot setelah tugas yang sedang 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 sepenuhnya, dengan cara yang sama seperti kolom berulang yang dijelaskan sebelumnya. Kirim kumpulan lengkap parameter yang Anda inginkan; parameter yang tidak Anda sertakan akan dihapus. Untuk menghapus peta, beri nama jalur di updateMask dan kirimkan dalam keadaan kosong.

Perintah di bawah mengaktifkan penghentian dengan 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 pembaruan 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, jangan sertakan scheduling dan accounting dalam 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 gambar 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. Nilai default tersebut akan berubah seiring waktu, sehingga jika node_image tidak disertakan, node pool akan dipindahkan ke image terbaru yang tersedia, yang sering kali merupakan hal yang Anda inginkan: image tersebut akan mendapatkan perbaikan driver, keamanan, dan bug.

Untuk mempertahankan node pool pada image tertentu di seluruh update, tetapkan node_image ke image tersebut. Jika Anda membaca nilai saat ini dari Get untuk mengirimkannya kembali, perhatikan bahwa cluster yang belum pernah diupdate akan melaporkan node_image kosong.

Perilaku setelah update dan status cluster

Permintaan yang berhasil akan menampilkan Operasi yang Berjalan Lama (LRO). Kemudian, Anda 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

Mengelola cluster pelatihan Gemini Enterprise Agent Platform memungkinkan Anda 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.
  • Men-deploy model untuk inferensi: Setelah model dilatih dan didaftarkan, deploy model 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 hardware yang dicadangkan.