AI Platform Prediction mengalokasikan node untuk menangani permintaan prediksi online yang dikirim ke versi model. Saat men-deploy versi model, Anda dapat menyesuaikan jenis virtual machine yang digunakan AI Platform Prediction untuk node ini.
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 AI Platform Prediction 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 | vCPU | Memori (GB) | Mendukung GPU? | Dukungan framework ML | Ukuran model maksimum |
---|---|---|---|---|---|---|
mls1-c1-m2 (default di 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 selengkapnya tentang spesifikasi mendetail dari 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 secara default 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. Contoh ini menggunakan jenis mesin n1-standard-4
.
Untuk mempelajari proses lengkap pembuatan versi model, baca panduan untuk
men-deploy model.
Konsol Google Cloud
Di halaman Create version, buka menu drop-down Machine type dan 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 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 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': '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 menambahkan GPU secara opsional 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, 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 setiap jenis GPU yang dapat Anda gunakan dengan setiap jenis mesin Compute Engine:
Jumlah GPU yang valid untuk setiap jenis mesin | |||||
---|---|---|---|---|---|
Jenis mesin | 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 secara manual (GA) node prediksi, tetapi jumlah GPU yang digunakan setiap node bersifat tetap saat Anda membuat versi model. Kecuali jika Anda memiliki kasus penggunaan lanjutan, sebaiknya konfigurasikan satu GPU di 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 kapan saja.
Setiap node menggunakan jenis mesin n1-standard-4
dan satu GPU NVIDIA Tesla T4.
Contoh ini mengasumsikan bahwa Anda telah mengupload TensorFlow SavedModel 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:
- Di menu drop-down Scaling, pilih Auto scaling.
- Di kolom Jumlah node minimum, masukkan
2
. - Di menu drop-down Machine type, pilih Standard > n1-standard-4.
- Di menu drop-down Accelerator type, pilih NVIDIA_TESLA_T4.
- Di menu drop-down Accelerator count, pilih 1.
gcloud
Gunakan gcloud CLI untuk membuat versi model. Dalam contoh ini, versi tersebut berjalan di node prediksi n1-standard-4 yang masing-masing menggunakan satu GPU NVIDIA Tesla T4. AI Platform Prediction otomatis menskalakan jumlah node prediksi menjadi antara 2 dan 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 pengakselerasi 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-kata.
Perbedaan antara jenis mesin
Selain menyediakan jumlah resource komputasi yang berbeda, jenis mesin juga berbeda-beda 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 lama (MLS1) | |
---|---|---|
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 jenis mesin.
Ketersediaan regional
Jenis mesin Compute Engine (N1) tersedia saat Anda men-deploy model di endpoint regional. Saat 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 akan 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 dalam dokumen ini.
Perhatikan bahwa ketersediaan GPU untuk jenis mesin Compute Engine (N1) juga bervariasi menurut region.
Jenis mesin lama (MLS1) 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
lain 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 Panduan mengekspor model prediksi, kecuali 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 jenis artefak model apa pun yang didukung AI Platform Prediction, 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.
Jika menggunakan jenis mesin lama (MLS1), Anda dapat menggunakan versi runtime AI Platform yang tersedia.
Dukungan container kustom
Untuk menggunakan penampung kustom guna menayangkan 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 lama (MLS1). Total ukuran file dapat mencapai 10 GB jika Anda menggunakan jenis mesin Compute Engine (N1).
Mencatat prediksi
Untuk jenis mesin Compute Engine (N1), logging konsol masih dalam pratinjau. Untuk jenis mesin lama (MLS1), logging konsol umumnya tersedia.
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, node prediksi akan berjalan di beberapa zona dalam region yang sama.
Hal ini memastikan ketersediaan berkelanjutan jika terjadi pemadaman layanan di salah satu zona.
Perhatikan bahwa jika Anda mengalokasikan lebih banyak vCPU atau RAM daripada yang diperlukan model machine learning, penskalaan otomatis mungkin tidak berfungsi dengan benar. Hal ini dapat menyebabkan masalah pada performa model. Lakukan eksperimen dengan menggunakan berbagai jenis mesin untuk model Anda guna memastikan Anda tidak menyediakan terlalu banyak resource komputasi.
Jika Anda menggunakan jenis mesin lama (MLS1), versi model Anda dapat diskalakan ke nol node saat tidak menerima traffic: autoScaling.minNodes
dapat disetel ke 0, dan disetel 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 tanpa node. Pelajari lebih lanjut cara
menskalakan ke 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 berjalan di beberapa zona dalam region yang sama.
Hal ini memastikan ketersediaan berkelanjutan jika terjadi pemadaman layanan di salah satu zona.
Jika menggunakan jenis mesin lama (MLS1) 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 versi baru.
Dukungan Kontrol Layanan VPC
Jika menggunakan Kontrol Layanan VPC untuk melindungi AI Platform Prediction, Anda tidak dapat membuat versi yang menggunakan jenis mesin lama (MLS1). Anda harus menggunakan jenis mesin Compute Engine (N1).