Menjalankan inferensi praktik terbaik dengan resep Panduan Memulai GKE Inference


Halaman ini menjelaskan cara menggunakan Panduan Mulai Cepat GKE Inference untuk menyederhanakan deployment workload inferensi AI/ML di Google Kubernetes Engine (GKE). Panduan Memulai Inferensia adalah utilitas yang memungkinkan Anda menentukan persyaratan bisnis inferensi dan mendapatkan konfigurasi Kubernetes yang dioptimalkan berdasarkan praktik terbaik dan benchmark Google untuk model, server model, akselerator (GPU, TPU), dan penskalaan. Hal ini membantu Anda menghindari proses yang memakan waktu untuk menyesuaikan dan menguji konfigurasi secara manual.

Halaman ini ditujukan untuk engineer Machine Learning (ML), admin dan operator Platform, serta untuk spesialis Data dan AI yang ingin memahami cara mengelola dan mengoptimalkan GKE secara efisien untuk inferensi AI/ML. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE Enterprise umum.

Untuk mempelajari lebih lanjut konsep dan terminologi penayangan model, serta cara kemampuan GKE Gen AI dapat meningkatkan dan mendukung performa penayangan model Anda, lihat Tentang inferensi model di GKE.

Sebelum membaca halaman ini, pastikan Anda sudah memahami Kubernetes, GKE, dan penayangan model.

Menggunakan Panduan Memulai Inferensia

Langkah-langkah tingkat tinggi untuk menggunakan Inference Quickstart adalah sebagai berikut. Klik link untuk mengetahui petunjuk mendetail.

  1. Melihat praktik terbaik yang disesuaikan: menggunakan Google Cloud CLI di terminal, mulailah dengan memberikan input seperti model terbuka pilihan Anda (misalnya, Llama, Gemma, atau Mistral).
    • Anda dapat menentukan target latensi aplikasi, yang menunjukkan apakah aplikasi tersebut sensitif terhadap latensi (seperti chatbot) atau sensitif terhadap throughput (seperti analisis batch).
    • Berdasarkan persyaratan Anda, Inference Quickstart menyediakan pilihan akselerator, metrik performa, dan manifes Kubernetes, yang memberi Anda kontrol penuh untuk deployment atau modifikasi lebih lanjut. Manifes yang dihasilkan mereferensikan image server model publik, sehingga Anda tidak perlu membuat image ini sendiri.
  2. Men-deploy manifes: menggunakan perintah kubectl apply, deploy manifes yang direkomendasikan dari command line. Sebelum men-deploy, Anda harus memastikan bahwa Anda memiliki kuota akselerator yang memadai untuk GPU atau TPU yang dipilih dalam project Google Cloud .
  3. Memantau performa: gunakan Cloud Monitoring untuk memantau metrik yang digunakan GKE untuk memantau performa beban kerja. Anda dapat melihat dasbor khusus server model, dan menyesuaikan deployment sesuai kebutuhan.

Manfaat

Panduan Memulai Inferen membantu Anda menghemat waktu dan resource dengan menyediakan konfigurasi yang dioptimalkan. Pengoptimalan ini meningkatkan performa dan mengurangi biaya infrastruktur, dengan cara berikut:

  • Anda akan menerima praktik terbaik yang disesuaikan secara mendetail untuk menetapkan akselerator (GPU dan TPU), server model, dan konfigurasi penskalaan. GKE secara rutin mengupdate alat ini dengan perbaikan, image, dan benchmark performa terbaru.
  • Anda dapat menentukan persyaratan latensi dan throughput beban kerja dari antarmuka command line, dan mendapatkan praktik terbaik yang disesuaikan secara mendetail sebagai manifes deployment Kubernetes.

Kasus penggunaan

Panduan Memulai Inferensia cocok untuk skenario seperti berikut:

  • Menemukan arsitektur inferensi GKE yang optimal: jika Anda bertransisi dari lingkungan lain, seperti di lokasi atau penyedia cloud lain, dan ingin arsitektur inferensi yang direkomendasikan terbaru di GKE untuk kebutuhan performa spesifik Anda.
  • Mempercepat deployment inferensi AI/ML: jika Anda adalah pengguna Kubernetes berpengalaman dan ingin mulai men-deploy beban kerja inferensi AI dengan cepat, Panduan Memulai Inferensi membantu Anda menemukan dan menerapkan deployment praktik terbaik di GKE, dengan konfigurasi YAML mendetail berdasarkan praktik terbaik.
  • Menjelajahi TPU untuk performa yang lebih baik: jika sudah menggunakan Kubernetes di GKE dengan GPU, Anda dapat menggunakan Inference Quickstart untuk mempelajari manfaat penggunaan TPU yang berpotensi menghasilkan performa yang lebih baik.

Cara kerjanya

Inference Quickstart memberikan praktik terbaik yang disesuaikan berdasarkan benchmark internal Google yang komprehensif performa satu replika untuk kombinasi model, server model, dan topologi akselerator. Benchmark ini membuat grafik latensi versus throughput, termasuk ukuran antrean dan metrik cache KV, yang memetakan kurva performa untuk setiap kombinasi.

Cara praktik terbaik yang disesuaikan dibuat

Kami mengukur latensi dalam Waktu Normal per Token Output (NTPOT) dalam milidetik dan throughput dalam token output per detik, dengan memaksimalkan akselerator. Untuk mempelajari metrik performa ini lebih lanjut, lihat Tentang inferensi model di GKE.

Contoh profil latensi berikut mengilustrasikan titik infleksi saat throughput mencapai dataran tinggi (hijau), titik pasca-infleksi saat latensi memburuk (merah), dan zona ideal (biru) untuk throughput optimal pada target latensi. Panduan Mulai Cepat Inferensia menyediakan data performa dan konfigurasi untuk zona ideal ini.

Profil latensi dengan penanda hijau kurang dari 2.000 token output per detik dan penanda merah lebih tinggi dari 2.000 token output per detik

Berdasarkan persyaratan latensi aplikasi inferensi, Inference Quickstart mengidentifikasi kombinasi yang sesuai dan menentukan titik operasi yang optimal pada kurva throughput latensi. Titik ini menetapkan nilai minimum Horizontal Pod Autoscaler (HPA), dengan buffer untuk memperhitungkan latensi penskalaan. Batas keseluruhan juga menginformasikan jumlah replika awal yang diperlukan, meskipun HPA secara dinamis menyesuaikan jumlah ini berdasarkan beban kerja.

Tolok ukur

Konfigurasi dan data performa yang diberikan didasarkan pada benchmark yang menggunakan set data ShareGPT untuk mengirim traffic dengan distribusi input dan output berikut.

Token Input Token Output
Mnt Median Rata-rata P90 P99 Maks Mnt Median Rata-rata P90 P99 Maks
4 108 226 635 887 1024 1 132 195 488 778 1024

Untuk menjalankan benchmark sendiri, ikuti petunjuk di AI-Hypercomputer/inference-benchmark. Kami menyediakan berbagai opsi yang dapat Anda gunakan selama benchmark untuk menyimulasikan pola beban yang mewakili beban kerja Anda.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.
  • Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud .

  • Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  • Pastikan Anda memiliki kapasitas akselerator yang memadai untuk project Anda:

  • Buat token akses Hugging Face dan Secret Kubernetes yang sesuai, jika Anda belum memilikinya. Untuk membuat Secret Kubernetes yang berisi token Hugging Face, jalankan perintah berikut:

    kubectl create secret generic hf-secret \
        --from-literal=hf_api_token=HUGGING_FACE_TOKEN \
        --namespace=NAMESPACE
    

    Ganti nilai berikut:

    • HUGGING_FACE_TOKEN: token Hugging Face yang Anda buat sebelumnya.
    • NAMESPACE: namespace Kubernetes tempat Anda ingin men-deploy server model.
  • Beberapa model mungkin juga mengharuskan Anda menyetujui dan menandatangani perjanjian lisensi izin mereka.

Jika menggunakan gcloud CLI untuk menjalankan Panduan Memulai Inferensia, Anda juga perlu menjalankan perintah tambahan berikut:

  1. Aktifkan API gkerecommender.googleapis.com:

    gcloud services enable gkerecommender.googleapis.com
    
  2. Aktifkan autentikasi perintah (langkah ini diperlukan untuk menetapkan project penagihan dan kuota yang digunakan untuk panggilan API):

    gcloud auth application-default login
    

Batasan

Perhatikan batasan berikut sebelum Anda mulai menggunakan Panduan Memulai Inferensi:

  • Panduan Memulai Inferensia tidak menyediakan profil untuk semua model yang didukung oleh server model tertentu.

Mendapatkan konfigurasi yang dioptimalkan untuk inferensi model

Gunakan perintah gcloud alpha container ai recommender untuk menjelajahi dan melihat kombinasi model, server model, versi server model, dan accelerator yang dioptimalkan:

Model

Untuk menjelajahi dan memilih model, gunakan opsi models.

  gcloud alpha container ai recommender models list

Outputnya terlihat mirip dengan yang berikut ini:

  Supported models:
  -  deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
  -  google/gemma-2-27b-it
  -  google/gemma-2-2b-it
  -  meta-llama/Llama-3.2-1B-Instruct
  -  meta-llama/Llama-3.3-70B-Instruct
  -  meta-llama/Meta-Llama-3-8B
  -  mistralai/Mixtral-8x22B-Instruct-v0.1
  -  mistralai/Mixtral-8x7B-Instruct-v0.1

Server model

Untuk menjelajahi server model yang direkomendasikan untuk model yang Anda minati, gunakan opsi model-servers. Contoh:

  gcloud alpha container ai recommender model-servers list \
      --model=meta-llama/Meta-Llama-3-8B

Outputnya terlihat mirip dengan yang berikut ini:

  Supported model servers:
  -  vllm

Versi server

Secara opsional, untuk menjelajahi versi server model yang didukung yang Anda minati, gunakan opsi model-server-versions. Jika Anda melewati langkah ini, Panduan Memulai Inferen akan ditetapkan secara default ke versi terbaru. Contoh:

  gcloud alpha container ai recommender model-server-versions list \
      --model=meta-llama/Meta-Llama-3-8B \
      --model-server=vllm

Outputnya terlihat mirip dengan yang berikut ini:

  Supported model server versions:
  -  e92694b6fe264a85371317295bca6643508034ef
  -  v0.7.2

Akselerator

Untuk menjelajahi akselerator yang direkomendasikan untuk kombinasi model dan server model yang Anda minati, gunakan opsi accelerators. Contoh:

  gcloud alpha container ai recommender accelerators list \
      --model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
      --model-server-version=v0.7.2

Outputnya terlihat mirip dengan yang berikut ini:

  Supported accelerators:
  accelerator          | model                                   | model server | model server version                     | accelerator count | output tokens per second | ntpot ms
  ---------------------|-----------------------------------------|--------------|------------------------------------------|-------------------|--------------------------|---------
  nvidia-tesla-a100    | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm         | v0.7.2                                   | 1                 | 3357                     | 72
  nvidia-h100-80gb     | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm         | v0.7.2                                   | 1                 | 6934                     | 30

  For more details on each accelerator, use --format=yaml

Output akan menampilkan daftar jenis akselerator, dan metrik berikut:

  • Throughput, dalam token output per detik
  • Waktu normalisasi per token output (NTPOT), dalam milidetik

Nilai ini mewakili performa yang diamati pada titik saat throughput berhenti meningkat dan latensi mulai meningkat secara drastis (yaitu, titik infleksi atau saturasi) untuk profil tertentu dengan jenis akselerator ini. Untuk mempelajari metrik performa ini lebih lanjut, lihat Tentang inferensi model di GKE.

Untuk opsi tambahan, lihat dokumentasi Google Cloud CLI.

Setelah memilih model, server model, versi server model, dan akselerator, Anda dapat melanjutkan untuk membuat manifes deployment.

Membuat dan men-deploy konfigurasi yang direkomendasikan

Bagian ini menjelaskan cara membuat dan men-deploy rekomendasi konfigurasi menggunakan gcloud CLI.

  1. Buat manifes: Di terminal, gunakan opsi manifests untuk membuat manifes Deployment, Service, dan PodMonitoring:

    gcloud alpha container ai recommender manifests create
    

    Gunakan parameter --model, --model-server, --model-server-version, dan --accelerator untuk menyesuaikan manifes Anda.

    Secara opsional, Anda dapat menetapkan parameter berikut:

    • --target-ntpot-milliseconds: Tetapkan parameter ini untuk menentukan nilai minimum HPA Anda. Parameter ini memungkinkan Anda menentukan nilai minimum penskalaan untuk mempertahankan latensi P50 NTPOT (Normalized Time Per Output Token), yang diukur pada kuartil ke-50, di bawah nilai yang ditentukan. Pilih nilai di atas latensi minimum akselerator Anda. HPA akan dikonfigurasi untuk throughput maksimum jika Anda menentukan NTPOT di atas latensi maksimum akselerator. Berikut contohnya:

      gcloud alpha container ai recommender manifests create \
          --model=google/gemma-2-27b-it \
          --model-server=vllm \
          --model-server-version=v0.7.2 \
          --accelerator-type=nvidia-l4 \
          --target-ntpot-milliseconds=200
      
    • --output: Nilai yang valid mencakup manifest, comments, dan all. Secara default, nilai ini ditetapkan ke all. Anda dapat memilih untuk hanya menampilkan manifes untuk men-deploy beban kerja, atau Anda dapat memilih untuk hanya menampilkan komentar jika ingin melihat petunjuk untuk mengaktifkan fitur.

    • --output-path: Jika ditentukan, output akan disimpan ke jalur yang disediakan, bukan dicetak ke terminal sehingga Anda dapat mengedit output sebelum men-deploy-nya. Misalnya, Anda dapat menggunakannya dengan opsi --output=manifest jika ingin menyimpan manifes dalam file YAML. Berikut contohnya:

      gcloud alpha container ai recommender manifests create \
          --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
          --model-server vllm \
          --accelerator-type=nvidia-tesla-a100 \
          --output=manifest \
          --output-path  /tmp/manifests.yaml
      

    Untuk opsi tambahan, lihat dokumentasi Google Cloud CLI.

  2. Siapkan infrastruktur Anda: pastikan infrastruktur Anda disiapkan dengan benar untuk deployment, pemantauan, dan penskalaan model dengan mengikuti langkah-langkah ini.

  3. Deploy manifes: jalankan perintah kubectl apply dan teruskan file YAML untuk manifes Anda. Contoh:

    kubectl apply -f ./manifests.yaml
    

Menyediakan infrastruktur

Ikuti langkah-langkah berikut untuk memastikan infrastruktur Anda disiapkan dengan benar untuk deployment, pemantauan, dan penskalaan model:

  1. Buat cluster: Anda dapat menayangkan model di cluster GKE Autopilot atau Standard. Sebaiknya gunakan cluster Autopilot untuk pengalaman Kubernetes yang dikelola sepenuhnya. Untuk memilih mode operasi GKE yang paling sesuai untuk workload Anda, lihat Memilih mode operasi GKE.

    Jika Anda tidak memiliki cluster, ikuti langkah-langkah berikut:

    Autopilot

    Ikuti petunjuk ini untuk membuat cluster Autopilot. GKE menangani penyediaan node dengan kapasitas GPU atau TPU berdasarkan manifes deployment, jika Anda memiliki kuota yang diperlukan dalam project.

    Standar

    1. Buat cluster zona atau regional.
    2. Buat node pool dengan akselerator yang sesuai. Ikuti langkah-langkah berikut berdasarkan jenis akselerator yang Anda pilih:

  2. (Opsional, tetapi direkomendasikan) Mengaktifkan fitur observabilitas: Di bagian komentar manifes yang dihasilkan, perintah tambahan disediakan untuk mengaktifkan fitur observabilitas yang disarankan. Mengaktifkan fitur ini akan memberikan lebih banyak insight untuk membantu Anda memantau performa dan status beban kerja serta infrastruktur yang mendasarinya.

    Berikut adalah contoh perintah untuk mengaktifkan fitur visibilitas:

    gcloud beta container clusters update $CLUSTER_NAME
        --project=$PROJECT_ID
        --location=$LOCATION \
        --enable-managed-prometheus \
        --logging=SYSTEM,WORKLOAD \
        --monitoring=SYSTEM,DEPLOYMENT,HPA,POD,DCGM \
        --auto-monitoring-scope=ALL
    

    Untuk mengetahui informasi selengkapnya, lihat Memantau workload inferensi

  3. (Khusus HPA) Men-deploy adaptor metrik: Adaptor metrik, seperti Adaptor Stackdriver Metrik Kustom, diperlukan jika resource HPA dibuat dalam manifes deployment. Adaptor metrik memungkinkan HPA mengakses metrik server model yang menggunakan kube external metrics API. Untuk men-deploy adaptor, lihat dokumentasi adaptor di GitHub.

Menguji endpoint deployment

Layanan yang di-deploy ditampilkan di endpoint berikut:

http://model-model_server-service:port/

Uji layanan Anda. Di terminal terpisah, siapkan penerusan port dengan menjalankan perintah berikut:

kubectl port-forward service/model-model_server-service 8000:8000

Untuk contoh cara mem-build dan mengirim permintaan ke endpoint, lihat dokumentasi vLLM.

Memantau workload inferensi

Untuk memantau workload inferensi yang di-deploy, buka Metrics Explorer di konsol Google Cloud.

Mengaktifkan pemantauan otomatis

GKE menyertakan fitur pemantauan otomatis yang merupakan bagian dari fitur observabilitas yang lebih luas. Fitur ini memindai cluster untuk menemukan workload yang berjalan di server model yang didukung dan men-deploy resource PodMonitoring yang memungkinkan metrik workload ini terlihat di Cloud Monitoring. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan dan mengonfigurasi pemantauan otomatis, lihat Mengonfigurasi pemantauan aplikasi otomatis untuk workload.

Setelah mengaktifkan fitur ini, GKE akan menginstal dasbor bawaan untuk memantau aplikasi untuk beban kerja yang didukung.

Pemecahan masalah

  • Jika Anda menetapkan latensi terlalu rendah, Panduan Memulai Inferen mungkin tidak menghasilkan rekomendasi. Untuk memperbaiki masalah ini, pilih target latensi antara latensi minimum dan maksimum yang diamati untuk akselerator yang Anda pilih.
  • Panduan Memulai Inferensia ada secara terpisah dari komponen GKE, sehingga versi cluster Anda tidak relevan secara langsung untuk menggunakan layanan. Namun, sebaiknya gunakan cluster baru atau yang terbaru untuk menghindari perbedaan performa.
  • Jika Anda mendapatkan error PERMISSION_DENIED untuk perintah gkerecommender.googleapis.com yang menyatakan bahwa project kuota tidak ada dengan ADC, Anda harus menetapkannya secara manual. Jalankan gcloud config set billing/quota_project PROJECT_ID untuk memperbaikinya.

Langkah berikutnya