Prediksi AI Platform mengalokasikan node untuk menangani permintaan prediksi online yang dikirim ke versi model. Saat men-deploy versi model, Anda dapat menyesuaikan jenis mesin virtual yang digunakan AI Platform Prediction untuk node tersebut.
Jenis mesin berbeda dalam beberapa hal:
- Jumlah CPU virtual (vCPU) per node
- Jumlah memori per node
- Dukungan untuk GPU, yang dapat Anda tambahkan ke beberapa jenis mesin
- Dukungan untuk fitur Prediksi AI Platform tertentu
- Harga
- Cakupan perjanjian tingkat layanan (SLA)
Dengan memilih jenis mesin dengan resource komputasi lebih banyak, Anda dapat menyajikan prediksi dengan latensi lebih rendah atau menangani lebih banyak permintaan prediksi secara bersamaan.
Jenis mesin yang tersedia
Jenis mesin Compute Engine (N1) dan jenis mesin mls1-c1-m2
umumnya tersedia untuk prediksi online. Jenis mesin mls1-c4-m2
tersedia dalam versi beta.
Tabel berikut membandingkan jenis mesin yang tersedia:
Nama | Ketersediaan | vCPUs | Memori (GB) | Mendukung GPU? | Dukungan framework ML | Ukuran model maksimum |
---|---|---|---|---|---|---|
mls1-c1-m2 (default pada endpoint global) |
Tersedia secara umum | 1 | 2 | Tidak | TensorFlow, XGBoost, scikit-learn (termasuk pipeline dengan kode kustom), rutinitas prediksi kustom | 500 MB |
mls1-c4-m2 |
Beta | 4 | 2 | Tidak | TensorFlow, XGBoost, scikit-learn (termasuk pipeline dengan kode kustom), rutinitas prediksi kustom | 500 MB |
n1-standard-2 (default di endpoint regional) |
Tersedia secara umum | 2 | 7.5 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-standard-4 |
Tersedia secara umum | 4 | 15 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-standard-8 |
Tersedia secara umum | 8 | 30 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-standard-16 |
Tersedia secara umum | 16 | 60 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-standard-32 |
Tersedia secara umum | 32 | 120 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highmem-2 |
Tersedia secara umum | 2 | 13 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highmem-4 |
Tersedia secara umum | 4 | 26 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highmem-8 |
Tersedia secara umum | 8 | 52 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highmem-16 |
Tersedia secara umum | 16 | 104 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highmem-32 |
Tersedia secara umum | 32 | 208 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highcpu-2 |
Tersedia secara umum | 2 | 1.8 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highcpu-4 |
Tersedia secara umum | 4 | 3.6 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highcpu-8 |
Tersedia secara umum | 8 | 7.2 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highcpu-16 |
Tersedia secara umum | 16 | 14.4 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
n1-highcpu-32 |
Tersedia secara umum | 32 | 28.8 | Ya | TensorFlow, XGBoost, dan scikit-learn | 10 GB |
Pelajari harga untuk setiap jenis mesin. Baca lebih lanjut spesifikasi mendetail jenis mesin Compute Engine (N1) di dokumentasi Compute Engine.
Menentukan jenis mesin
Anda dapat menentukan pilihan jenis mesin saat membuat versi model. Jika Anda tidak menentukan jenis mesin, versi model Anda akan ditetapkan secara default untuk menggunakan n1-standard-2
jika Anda menggunakan endpoint regional dan mls1-c1-m2
jika Anda menggunakan endpoint global.
Petunjuk berikut menyoroti cara menentukan jenis mesin saat Anda membuat versi model. Mereka menggunakan jenis mesin n1-standard-4
sebagai contoh.
Untuk mempelajari proses lengkap pembuatan versi model, baca panduan men-deploy model.
Konsol Google Cloud
Pada halaman Create version, buka menu drop-down Machine type, lalu pilih Standard > n1-standard-4.
gcloud
Setelah mengupload artefak model ke Cloud Storage dan membuat resource model, Anda dapat membuat versi model yang menggunakan jenis mesin n1-standard-4
:
gcloud ai-platform versions create VERSION_NAME \
--model MODEL_NAME \
--origin gs://model-directory-uri \
--runtime-version 2.11 \
--python-version 3.7 \
--framework ML_FRAMEWORK_NAME \
--region us-central1 \
--machine-type n1-standard-4
Python
Contoh ini menggunakan Library Klien Google API untuk Python. Sebelum menjalankan contoh kode berikut, Anda harus menyiapkan autentikasi.
Setelah Anda mengupload artefak model ke Cloud Storage dan membuat resource model, kirim permintaan ke metode projects.models.versions.create
model Anda dan tentukan kolom machineType
dalam isi permintaan:
from google.api_core.client_options import ClientOptions
from googleapiclient import discovery
endpoint = 'https://us-central1-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)
request_dict = {
'name': 'VERSION_NAME',
'deploymentUri': 'gs://model-directory-uri',
'runtimeVersion': '2.11',
'pythonVersion': '3.7',
'framework': 'ML_FRAMEWORK_NAME',
'machineType': 'n1-standard-4'
}
request = ml.projects().models().versions().create(
parent='projects/PROJECT_NAME/models/MODEL_NAME',
body=request_dict
)
response = request.execute()
Menggunakan GPU untuk prediksi online
Untuk beberapa konfigurasi, Anda dapat secara opsional menambahkan GPU untuk mempercepat setiap node prediksi. Untuk menggunakan GPU, Anda harus memperhitungkan beberapa persyaratan:
- Anda hanya dapat menggunakan GPU dengan jenis mesin Compute Engine (N1). Jenis mesin lama (MLS1) tidak mendukung GPU.
- Anda hanya dapat menggunakan GPU saat men-deploy TensorFlow SavedModel. Anda tidak dapat menggunakan GPU untuk model scikit-learn atau XGBoost.
- Ketersediaan setiap jenis GPU bervariasi, bergantung pada region yang Anda gunakan untuk model. Pelajari jenis GPU apa yang tersedia di region mana.
- Anda hanya dapat menggunakan satu jenis GPU untuk versi model Anda, dan ada batasan jumlah GPU yang dapat ditambahkan, bergantung pada jenis mesin yang Anda gunakan. Tabel berikut menjelaskan batasan ini.
Tabel berikut menunjukkan GPU yang tersedia untuk prediksi online dan jumlah dari setiap jenis GPU yang dapat Anda gunakan dengan setiap jenis mesin Compute Engine:
Jumlah GPU yang valid untuk setiap jenis mesin | |||||
---|---|---|---|---|---|
Machine type | NVIDIA Tesla K80 | NVIDIA Tesla P4 | NVIDIA Tesla P100 | NVIDIA Tesla T4 | NVIDIA Tesla V100 |
n1-standard-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-standard-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-standard-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-standard-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 |
n1-standard-32 |
4, 8 | 2, 4 | 2, 4 | 2, 4 | 4, 8 |
n1-highmem-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highmem-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highmem-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highmem-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 |
n1-highmem-32 |
4, 8 | 2, 4 | 2, 4 | 2, 4 | 4, 8 |
n1-highcpu-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highcpu-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highcpu-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 |
n1-highcpu-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 |
n1-highcpu-32 |
4, 8 | 2, 4 | 2, 4 | 2, 4 | 4, 8 |
GPU bersifat opsional dan dikenai biaya tambahan.
Menentukan GPU
Tentukan GPU saat Anda membuat versi model. AI Platform Prediction mengalokasikan jumlah dan jenis GPU yang Anda tentukan untuk setiap node prediksi. Anda dapat menskalakan secara otomatis (pratinjau) atau menskalakan node prediksi secara manual (GA), tetapi jumlah GPU yang digunakan setiap node tetap ketika Anda membuat versi model. Kecuali jika Anda memiliki kasus penggunaan lanjutan, sebaiknya konfigurasi satu GPU pada setiap node prediksi; dengan kata lain, tetapkan jumlah akselerator ke 1.
Petunjuk berikut menunjukkan cara menentukan GPU untuk prediksi online dengan membuat versi model yang berjalan di setidaknya dua node prediksi secara sekaligus.
Setiap node menggunakan jenis mesin n1-standard-4
dan satu GPU NVIDIA Tesla T4.
Contoh ini mengasumsikan bahwa Anda telah mengupload TensorFlowSavedModel ke Cloud Storage dan membuat resource model di region yang mendukung GPU.
Konsol Google Cloud
Ikuti panduan untuk membuat versi model. Di halaman Create version, tentukan opsi berikut:
- Pada menu drop-down Scaling, pilih Autoscaling.
- Di kolom Minimum number of node, masukkan
2
. - Pada menu drop-down Machine type, pilih Standard > n1-standard-4.
- Pada menu drop-down Accelerator type, pilih NVIDIA_TESLA_T4.
- Di menu drop-down Jumlah akselerator, pilih 1.
gcloud
Gunakan gcloud CLI untuk membuat versi model. Dalam contoh ini, versi tersebut berjalan pada node prediksi n1-standard-4 yang masing-masing menggunakan satu GPU NVIDIA Tesla T4. AI Platform Prediction secara otomatis menskalakan jumlah node prediksi menjadi angka antara 2 hingga 4, bergantung pada penggunaan GPU pada waktu tertentu. Contoh ini menggunakan endpoint regional us-central1
:
gcloud beta ai-platform versions create VERSION_NAME \
--model MODEL_NAME \
--origin gs://model-directory-uri \
--runtime-version 2.11 \
--python-version 3.7 \
--framework tensorflow \
--region us-central1 \
--machine-type n1-standard-4 \
--accelerator count=1,type=nvidia-tesla-t4 \
--min-nodes 2 \
--max-nodes 4 \
--metric-targets gpu-duty-cycle=60
Perhatikan bahwa nama akselerator ditentukan dalam huruf kecil dengan tanda hubung di antara kata.
Python
Contoh ini menggunakan Library Klien Google API untuk Python. Sebelum menjalankan contoh kode berikut, Anda harus menyiapkan autentikasi.
Contoh ini menggunakan endpoint regionalus-central1
.
Kirim permintaan ke metode projects.models.versions.create
model Anda dan tentukan kolom machineType
, acceleratorConfig
, dan manualScaling
dalam isi permintaan Anda:
from google.api_core.client_options import ClientOptions
from googleapiclient import discovery
endpoint = 'https://us-central1-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)
request_dict = {
'name': 'VERSION_NAME',
'deploymentUri': 'gs://model-directory-uri',
'runtimeVersion': '2.11',
'pythonVersion': '3.7',
'framework': 'TENSORFLOW',
'machineType': 'n1-standard-4',
'acceleratorConfig': {
'count': 1,
'type': 'NVIDIA_TESLA_T4'
},
'autoScaling': {
'minNodes': 2,
'maxNodes': 4,
'metrics': [
{
'name': 'GPU_DUTY_CYCLE',
'target': 60
}
]
}
}
request = ml.projects().models().versions().create(
parent='projects/PROJECT_NAME/models/MODEL_NAME',
body=request_dict
)
response = request.execute()
Perhatikan bahwa nama akselerator ditentukan dalam huruf besar dengan garis bawah di antara kata.
Perbedaan berbagai jenis mesin
Selain menyediakan berbagai jumlah resource komputasi, jenis mesin juga bervariasi dalam dukungannya untuk fitur AI Platform Prediction tertentu. Tabel berikut memberikan ringkasan perbedaan antara jenis mesin Compute Engine (N1) dan jenis mesin lama (MLS1):
Jenis mesin Compute Engine (N1) | Jenis mesin (MLS1) lama | |
---|---|---|
Region | Semua region endpoint regional | Semua region endpoint global |
Jenis artefak ML |
|
|
Versi runtime | 1.11 atau yang lebih baru | Semua versi runtime AI Platform yang tersedia |
Dukungan container kustom | Ya | Tidak |
Ukuran model maksimum | 10 GB | 500 MB |
Penskalaan otomatis | Node minimum = 1 | Node minimum = 0 |
Penskalaan manual | Dapat memperbarui jumlah node | Tidak dapat memperbarui jumlah node setelah membuat versi model |
Dukungan GPU | Ya (khusus TensorFlow) | Tidak |
Dukungan AI Explanations | Ya (khusus TensorFlow) | Tidak |
Dukungan Kontrol Layanan VPC | Ya | Tidak |
Cakupan SLA untuk jenis mesin yang tersedia secara umum | Ya, dalam beberapa kasus | Ya |
Bagian berikut memberikan penjelasan mendetail tentang perbedaan antara berbagai jenis mesin.
Ketersediaan regional
Jenis mesin Compute Engine (N1) tersedia saat Anda men-deploy model di endpoint regional. Jika menggunakan jenis mesin Compute Engine (N1), Anda tidak dapat men-deploy model ke endpoint global.
Saat Anda menskalakan versi model yang menggunakan jenis mesin Compute Engine (N1) ke dua node prediksi atau lebih, node tersebut berjalan di beberapa zona dalam region yang sama. Hal ini memastikan ketersediaan berkelanjutan jika terjadi pemadaman layanan di salah satu zona. Pelajari lebih lanjut di bagian penskalaan pada dokumen ini.
Perlu diperhatikan bahwa ketersediaan GPU untuk jenis mesin Compute Engine (N1) juga bervariasi menurut region.
Jenis mesin (MLS1) lama tersedia di endpoint global di banyak region. Jenis mesin lama (MLS1) tidak tersedia di endpoint regional.
Dukungan prediksi batch
Versi model yang menggunakan jenis mesin mls1-c1-m2
mendukung prediksi batch. Versi model yang menggunakan jenis mesin lainnya tidak mendukung prediksi batch.
Dukungan framework ML
Jika menggunakan salah satu jenis mesin Compute Engine (N1), Anda dapat membuat versi model dengan semua artefak model yang dijelaskan dalam Mengekspor panduan model prediksi, kecuali untuk dua:
- Anda tidak dapat menggunakan pipeline scikit-learn dengan kode kustom.
- Anda tidak dapat menggunakan rutinitas prediksi kustom.
Untuk jenis mesin lama (MLS1), Anda dapat menggunakan semua jenis artefak model yang didukung Prediction AI Platform, termasuk pipeline scikit-learn dengan kode kustom atau rutinitas prediksi kustom.
Dukungan versi runtime
Jika menggunakan jenis mesin Compute Engine (N1), Anda harus menggunakan runtime versi 1.11 atau yang lebih baru untuk versi model Anda.
Jika menggunakan jenis mesin (MLS1) lama, Anda dapat menggunakan versi runtime AI Platform yang tersedia.
Dukungan container kustom
Untuk menggunakan container kustom guna menyajikan prediksi online, Anda harus menggunakan jenis mesin Compute Engine (N1).
Ukuran model maksimum
Artefak model yang Anda berikan saat membuat versi model harus memiliki total ukuran file kurang dari 500 MB jika Anda menggunakan jenis mesin (MLS1) lama. Total ukuran file dapat mencapai 10 GB jika Anda menggunakan jenis mesin Compute Engine (N1).
Prediksi logging
Untuk jenis mesin Compute Engine (N1), logging konsol sedang dalam tahap pratinjau. Untuk jenis mesin (MLS1) lama, logging konsol tersedia secara umum.
Menskalakan node prediksi
Penskalaan otomatis dan penskalaan manual node prediksi memiliki batasan yang berbeda, bergantung pada apakah Anda menggunakan jenis mesin Compute Engine (N1) atau jenis mesin lama (MLS1).
Penskalaan otomatis
Jika Anda menggunakan jenis mesin Compute Engine (N1) dengan penskalaan otomatis, versi model Anda harus selalu memiliki setidaknya satu node yang berjalan. Dengan kata lain,
kolom
autoScaling.minNodes
versi
ditetapkan secara default ke 1 dan tidak boleh kurang dari 1. Jika Anda menetapkan autoScaling.minNodes
ke 2 atau lebih besar, node prediksi akan berjalan di beberapa zona dalam region yang sama.
Hal ini memastikan ketersediaan terus-menerus jika terjadi pemadaman layanan di salah satu zona.
Perlu diperhatikan bahwa jika Anda mengalokasikan lebih banyak vCPU atau RAM dari yang dibutuhkan oleh model machine learning, penskalaan otomatis mungkin tidak akan berfungsi dengan baik. Hal ini dapat menyebabkan masalah pada performa model. Lakukan eksperimen dengan menggunakan berbagai jenis mesin untuk model guna memastikan Anda tidak menyediakan terlalu banyak resource komputasi.
Jika Anda menggunakan jenis mesin (MLS1) lama, versi model Anda dapat diskalakan ke nol node saat tidak menerima traffic: autoScaling.minNodes
dapat ditetapkan ke 0, dan ditetapkan ke 0 secara default. Penskalaan ke nol dapat mengurangi biaya saat versi model Anda tidak menerima permintaan prediksi. Namun, hal ini juga dapat menyebabkan latensi atau error selama periode apa pun saat AI Platform Prediction mengalokasikan node baru untuk menangani permintaan setelah periode dengan node nol. Pelajari lebih lanjut cara melakukan penskalaan hingga nol.
Penskalaan manual
Jika menggunakan jenis mesin Compute Engine (N1) dengan penskalaan manual, Anda dapat memperbarui jumlah node prediksi yang berjalan kapan saja menggunakan metode API projects.models.versions.patch
. Jika Anda menetapkan kolom manualScaling.nodes
ke 2 atau lebih, node prediksi akan dijalankan di beberapa zona dalam region yang sama.
Hal ini memastikan ketersediaan terus-menerus jika terjadi pemadaman layanan di salah satu zona.
Jika menggunakan jenis mesin (MLS1) lama dengan penskalaan manual, Anda tidak dapat memperbarui jumlah node prediksi setelah membuat versi model. Jika ingin mengubah jumlah node, Anda harus menghapus versi dan membuat yang baru.
Dukungan Kontrol Layanan VPC
Jika Anda menggunakan Kontrol Layanan VPC untuk melindungi AI Platform Prediction, Anda tidak dapat membuat versi yang menggunakan jenis mesin (MLS1) lama. Anda harus menggunakan jenis mesin Compute Engine (N1).