Google Cloud menyediakan akses ke akselerator machine learning yang dirancang khusus, yang disebut Tensor Processing Unit (TPU). TPU dioptimalkan untuk mempercepat pelatihan dan inferensi model machine learning, sehingga cocok untuk berbagai aplikasi, termasuk natural language processing, computer vision, dan pengenalan ucapan.
Halaman ini menjelaskan cara men-deploy model ke satu host Cloud TPU v5e untuk prediksi online di Vertex AI.
Hanya Cloud TPU versi v5e yang didukung. Generasi Cloud TPU lainnya tidak didukung.
Mengimpor model
Untuk deployment di Cloud TPU, Anda harus mengimpor model ke Vertex AI dan mengonfigurasinya untuk menggunakan salah satu penampung berikut:
- container runtime TensorFlow yang dioptimalkan dan sudah dibuat sebelumnya, baik versi
nightly
, atau versi2.15
atau yang lebih baru - container PyTorch TPU bawaan versi
2.1
atau yang lebih baru - container kustom Anda sendiri yang mendukung TPU
Container runtime TensorFlow yang dioptimalkan dan sudah dibuat
Untuk mengimpor dan menjalankan
TensorFlow SavedModel
di Cloud TPU, model harus dioptimalkan untuk TPU. Jika SavedModel
TensorFlow Anda belum dioptimalkan
TPU, ada tiga cara untuk mengoptimalkan model:
Pengoptimalan model manual - Anda menggunakan Inference Converter untuk mengoptimalkan model dan menyimpannya. Kemudian, Anda harus meneruskan flag
--saved_model_tags='serve,tpu'
dan--disable_optimizer=true
saatupload
model Anda. Contoh:model = aiplatform.Model.upload( display_name='Manually optimized model', artifact_uri="gs://model-artifact-uri", serving_container_image_uri="us-docker.pkg.dev/vertex-ai-restricted/prediction/tf_opt-tpu.2-15:latest", serving_container_args=[ "--saved_model_tags=serve,tpu", "--disable_optimizer=true", ] )
Pengoptimalan model otomatis dengan partisi otomatis - Saat Anda mengimpor model, Vertex AI akan mencoba mengoptimalkan model yang tidak dioptimalkan menggunakan algoritma partisi otomatis. Pengoptimalan ini tidak berfungsi di semua model. Jika pengoptimalan gagal, Anda harus mengoptimalkan model secara manual atau memilih pengoptimalan model otomatis dengan partisi manual. Contoh:
model = aiplatform.Model.upload( display_name='TPU optimized model with automatic partitioning', artifact_uri="gs://model-artifact-uri", serving_container_image_uri="us-docker.pkg.dev/vertex-ai-restricted/prediction/tf_opt-tpu.2-15:latest", serving_container_args=[ ] )
Pengoptimalan model otomatis dengan partisi manual. Tentukan flag
--converter_options_string
dan sesuaikanConverterOptions.TpuFunction
agar sesuai dengan kebutuhan Anda. Untuk contoh, lihat Gambar Pengonversi. Perhatikan bahwa hanyaConverterOptions.TpuFunction
, yang merupakan satu-satunya yang diperlukan untuk partisi manual, yang didukung. Contoh:model = aiplatform.Model.upload( display_name='TPU optimized model with manual partitioning', artifact_uri="gs://model-artifact-uri", serving_container_image_uri="us-docker.pkg.dev/vertex-ai-restricted/prediction/tf_opt-tpu.2-15:latest", serving_container_args=[ "--converter_options_string='tpu_functions { function_alias: \"partitioning function name\" }'" ] )
Untuk mengetahui informasi selengkapnya tentang cara mengimpor model, lihat mengimpor model ke Vertex AI.
Container PyTorch bawaan
Petunjuk untuk mengimpor dan menjalankan model PyTorch di Cloud TPU sama dengan petunjuk untuk mengimpor dan menjalankan model PyTorch.
Misalnya, TorchServe untuk Inferensi Cloud TPU v5e menunjukkan cara mengemas model Densenet 161 ke dalam artefak model menggunakan Torch Model Archiver.
Kemudian, upload artefak model ke folder Cloud Storage dan upload model seperti yang ditunjukkan:
model = aiplatform.Model.upload(
display_name='DenseNet TPU model from SDK PyTorch 2.1',
artifact_uri="gs://model-artifact-uri",
serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/pytorch-tpu.2-1:latest",
serving_container_args=[],
serving_container_predict_route="/predictions/model",
serving_container_health_route="/ping",
serving_container_ports=[8080]
)
Untuk informasi selengkapnya, lihat mengekspor artefak model untuk PyTorch dan Notebook Jupyter untuk Menayangkan model PyTorch menggunakan container bawaan.
Container kustom
Untuk penampung kustom, model Anda tidak harus berupa model TensorFlow, tetapi harus dioptimalkan untuk TPU. Untuk informasi tentang cara membuat model yang dioptimalkan untuk TPU, lihat panduan berikut untuk framework ML umum:
Untuk informasi tentang cara menayangkan model yang dilatih dengan JAX, TensorFlow, atau PyTorch di Cloud TPU v5e, lihat Inferensi Cloud TPU v5e.
Pastikan penampung kustom Anda memenuhi persyaratan penampung kustom.
Anda harus menaikkan batas memori terkunci sehingga driver dapat berkomunikasi dengan chip TPU melalui akses memori langsung (DMA). Contoh:
Command line
ulimit -l 68719476736
Python
import resource
resource.setrlimit(
resource.RLIMIT_MEMLOCK,
(
68_719_476_736_000, # soft limit
68_719_476_736_000, # hard limit
),
)
Kemudian, lihat Menggunakan container kustom untuk prediksi untuk mengetahui informasi tentang cara mengimpor model dengan container kustom. Jika Anda ingin menerapkan logika prapemrosesan atau pascapemrosesan, pertimbangkan untuk menggunakan Rutinitas prediksi kustom.
Membuat endpoint
Petunjuk untuk membuat endpoint untuk Cloud TPU sama dengan petunjuk untuk membuat endpoint apa pun.
Misalnya, perintah berikut membuat resource endpoint
:
endpoint = aiplatform.Endpoint.create(display_name='My endpoint')
Respons berisi ID endpoint baru, yang akan Anda gunakan di langkah-langkah berikutnya.
Untuk mengetahui informasi selengkapnya tentang cara membuat endpoint, lihat men-deploy model ke endpoint.
Men-deploy model
Petunjuk untuk men-deploy model ke Cloud TPU sama dengan petunjuk untuk men-deploy model apa pun, kecuali Anda menentukan salah satu jenis mesin Cloud TPU berikut yang didukung:
Jenis Mesin | Jumlah TPU chip |
---|---|
ct5lp-hightpu-1t |
1 |
ct5lp-hightpu-4t |
4 |
ct5lp-hightpu-8t |
8 |
Akselerator TPU sudah terintegrasi dengan jenis mesin. Anda tidak perlu menentukan jenis akselerator atau jumlah akselerator.
Misalnya, perintah berikut men-deploy model dengan memanggil
deployModel
:
machine_type = 'ct5lp-hightpu-1t'
deployed_model = model.deploy(
endpoint=endpoint,
deployed_model_display_name='My deployed model',
machine_type=machine_type,
traffic_percentage=100,
min_replica_count=1
sync=True,
)
Untuk mengetahui informasi selengkapnya, lihat men-deploy model ke endpoint.
Mendapatkan prediksi online
Petunjuk untuk mendapatkan prediksi online dari Cloud TPU sama dengan petunjuk untuk mendapatkan prediksi online.
Misalnya, perintah berikut mengirim permintaan prediksi online dengan memanggil
predict
:
deployed_model.predict(...)
Untuk container kustom, lihat persyaratan permintaan dan respons prediksi untuk container kustom.
Mengamankan kapasitas
Secara default, kuota untuk Custom model serving TPU v5e cores per region
adalah 0.
Untuk meminta penambahan, lihat Meminta batas kuota yang lebih tinggi.
Harga
Jenis mesin TPU ditagih per jam, seperti semua jenis mesin lainnya di Vertex Prediction. Untuk mengetahui informasi selengkapnya, lihat Harga prediksi.
Langkah selanjutnya
- Pelajari cara mendapatkan prediksi online