Men-deploy model ke VM Cloud TPU

Google Cloud memberikan 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 Anda ke Cloud TPU v5e host tunggal untuk prediksi online di Vertex AI.

Hanya Cloud TPU versi v5e yang didukung. Pembuatan Cloud TPU lainnya tidak didukung.

Mengimpor model

Untuk deployment pada Cloud TPU, Anda harus mengimpor model ke Vertex AI dan mengonfigurasinya untuk menggunakan salah satu container berikut:

Penampung runtime TensorFlow yang dioptimalkan bawaan

Untuk mengimpor dan menjalankan SavedModel di Cloud TPU, model harus dioptimalkan untuk TPU. Jika SavedModel TensorFlow Anda belum dioptimalkan untuk TPU, ada tiga cara untuk mengoptimalkan model Anda:

  • Pengoptimalan model manual - Anda menggunakan Pengonversi Inferensi untuk mengoptimalkan dan menyimpannya model. Kemudian, Anda harus meneruskan flag --saved_model_tags='serve,tpu' dan --disable_optimizer=true saat upload 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 pada 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 sesuaikan ConverterOptions.TpuFunction agar sesuai dengan kebutuhan Anda. Untuk contohnya, lihat Gambar Pengonversi. Perlu diketahui bahwa hanya ConverterOptions.TpuFunction, 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 Cloud TPU v5e Inference menunjukkan cara memaketkan model Densenet 161 ke dalam artefak model menggunakan Torch Model Archiver.

Kemudian, upload artefak model ke folder Cloud Storage dan upload model Anda 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 mengetahui informasi selengkapnya, lihat mengekspor artefak model untuk PyTorch dan Notebook Jupyter untuk Menayangkan model PyTorch menggunakan container bawaan.

Container kustom

Untuk container kustom, model Anda tidak harus berupa model TensorFlow, tetapi harus dioptimalkan untuk TPU. Untuk informasi tentang cara memproduksi model yang dioptimalkan untuk TPU, lihat panduan berikut untuk framework ML umum:

Untuk mengetahui informasi tentang model inferensi 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 penampung kustom untuk prediksi untuk mengetahui informasi tentang cara mengimpor model dengan penampung kustom. Jika Anda ingin mengimplementasikan logika sebelum atau sesudah pemrosesan, 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 akan membuat resource endpoint:

endpoint = aiplatform.Endpoint.create(display_name='My endpoint')

Respons berisi ID endpoint baru, yang Anda gunakan pada 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 yang didukung berikut ini:

Machine Type Jumlah TPU chip
ct5lp-hightpu-1t 1
ct5lp-hightpu-4t 4
ct5lp-hightpu-8t 8

Akselerator TPU adalah fitur bawaan untuk 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 mengirimkan permintaan prediksi online dengan memanggil predict:

deployed_model.predict(...)

Untuk penampung kustom, lihat persyaratan permintaan prediksi dan respons untuk penampung kustom.

Mengamankan kapasitas

Secara default, kuota untuk Custom model serving TPU v5e cores per region adalah 0.

Untuk meminta peningkatan, lihat Meminta batas kuota yang lebih tinggi.

Harga

Jenis mesin TPU dikenai biaya per jam, sama seperti semua jenis mesin lainnya di Vertex Prediction. Untuk mengetahui informasi selengkapnya, lihat Harga prediksi.

Langkah selanjutnya