Tentang GKE Inference Gateway yang didukung oleh llm-d

Halaman ini menjelaskan konsep dan fitur utama Inference Gateway Google Kubernetes Engine (GKE), ekstensi ke Gateway GKE untuk penayangan aplikasi AI generatif yang dioptimalkan.

Halaman ini mengasumsikan bahwa Anda mengetahui hal-hal berikut:

Halaman ini ditujukan untuk persona berikut:

  • Engineer machine learning (ML), Admin dan operator platform, serta Spesialis Data dan AI yang tertarik untuk menggunakan kemampuan orkestrasi kontainer Kubernetes untuk menyajikan beban kerja AI/ML.
  • Arsitek cloud dan spesialis Jaringan yang berinteraksi dengan jaringan Kubernetes.

Ringkasan

GKE Inference Gateway adalah ekstensi untuk GKE Gateway yang menyediakan perutean dan load balancing yang dioptimalkan untuk menyajikan workload Kecerdasan Buatan (AI) generatif. Layanan ini menyederhanakan deployment, pengelolaan, dan kemampuan pengamatan workload inferensi AI.

Untuk memilih strategi load balancing yang optimal untuk workload AI/ML Anda, lihat Memilih strategi load balancing untuk inferensi AI di GKE.

Fitur dan manfaat

GKE Inference Gateway menyediakan kemampuan utama berikut untuk menyajikan model AI generatif secara efisien untuk aplikasi AI generatif di GKE:

  • Metrik yang didukung:
    • KV cache hits: jumlah pencarian yang berhasil dalam cache key-value (KV).
    • Penggunaan GPU atau TPU: persentase waktu GPU atau TPU memproses secara aktif.
    • Panjang antrean permintaan: jumlah permintaan yang menunggu untuk diproses.
  • Load balancing yang dioptimalkan untuk inferensi: mendistribusikan permintaan untuk mengoptimalkan performa penyajian model AI. Layanan ini menggunakan metrik dari server model, seperti KV cache hits dan queue length of pending requests untuk menggunakan akselerator (seperti GPU dan TPU) secara lebih efisien untuk beban kerja AI generatif. Hal ini memungkinkan Perutean yang Mendukung Cache Awalan, sebuah fitur utama yang mengirimkan permintaan dengan konteks bersama, yang diidentifikasi dengan menganalisis isi permintaan, ke replika model yang sama dengan memaksimalkan hit cache. Pendekatan ini secara signifikan mengurangi komputasi yang berlebihan dan meningkatkan Time-to-First-Token, sehingga sangat efektif untuk AI percakapan, Retrieval-Augmented Generation (RAG), dan beban kerja AI generatif berbasis template lainnya.
  • Penyajian model yang di-fine-tune LoRA dinamis: mendukung penyajian model yang di-fine-tune LoRA dinamis pada akselerator umum. Hal ini mengurangi jumlah GPU dan TPU yang diperlukan untuk menyajikan model dengan memultipleksing beberapa model yang di-fine-tune LoRA pada model dasar dan akselerator yang umum.
  • Penskalaan otomatis yang dioptimalkan untuk inferensi: Penskalaan Otomatis Pod Horizontal (HPA) GKE menggunakan metrik server model untuk melakukan penskalaan otomatis, yang membantu memastikan penggunaan resource komputasi yang efisien dan performa inferensi yang dioptimalkan.
  • Perutean yang mendukung model: merutekan permintaan inferensi berdasarkan nama model yang ditentukan dalam spesifikasi OpenAI API di dalam cluster GKE Anda. Anda dapat menentukan kebijakan perutean Gateway, seperti pemisahan traffic dan pencerminan permintaan, untuk mengelola berbagai versi model dan menyederhanakan peluncuran model. Misalnya, Anda dapat merutekan permintaan untuk nama model tertentu ke objek InferencePool yang berbeda, yang masing-masing melayani versi model yang berbeda. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi hal ini, lihat Mengonfigurasi Perutean Berbasis Isi.
  • Pemfilteran konten dan keamanan AI terintegrasi: GKE Inference Gateway terintegrasi dengan Google Cloud Model Armor untuk menerapkan pemeriksaan keamanan AI dan pemfilteran konten pada perintah dan respons di gateway. Anda juga dapat menggunakan NVIDIA NeMo Guardrails. Model Armor menyediakan log permintaan, respons, dan pemrosesan untuk analisis dan pengoptimalan retrospektif. Antarmuka terbuka GKE Inference Gateway memungkinkan penyedia dan developer pihak ketiga mengintegrasikan layanan kustom ke dalam proses permintaan inferensi.
  • Penyajian spesifik per model Priority: memungkinkan Anda menentukan Priority penyajian model AI. Prioritaskan permintaan yang sensitif terhadap latensi daripada tugas inferensi batch yang toleran terhadap latensi. Misalnya, Anda dapat memprioritaskan permintaan dari aplikasi yang sensitif terhadap latensi dan membatalkan tugas yang kurang sensitif terhadap waktu saat resource terbatas.
  • Perutean berbasis latensi yang diprediksi: merutekan permintaan inferensi menggunakan model XGBoost yang dilatih secara berkelanjutan pada traffic aktif, mengoptimalkan tujuan Waktu-Hingga-Token-Pertama (TTFT) dan Waktu-per-Token-Output (TPOT) per permintaan. Lebih akurat daripada heuristik statis dalam workload dengan varians tinggi. Lihat Menggunakan perutean berbasis latensi yang diprediksi dengan GKE Inference Gateway.
  • Kemampuan observasi inferensi: menyediakan metrik kemampuan observasi untuk permintaan inferensi, seperti rasio permintaan, latensi, error, dan saturasi. Pantau performa dan perilaku layanan inferensi Anda melalui Cloud Monitoring dan Cloud Logging, dengan memanfaatkan dasbor bawaan khusus untuk mendapatkan insight mendetail. Untuk mengetahui informasi selengkapnya, lihat Melihat dasbor GKE Inference Gateway.
  • Pengelolaan API Tingkat Lanjut dengan Apigee: terintegrasi dengan Apigee untuk meningkatkan kualitas gateway inferensi Anda dengan fitur seperti keamanan API, pembatasan kapasitas, dan kuota. Untuk mengetahui petunjuk mendetail, lihat Mengonfigurasi Apigee untuk autentikasi dan pengelolaan API.
  • Ekstensibilitas: dibangun di atas Ekstensi Inferensi Kubernetes Gateway API open source yang dapat diperluas yang mendukung algoritma Pemilih Endpoint (EPP) llm-d yang dikelola pengguna, yang didukung oleh llm-d. Algoritma llm-d Endpoint Picker (EPP), yang didukung oleh llm-d, menyediakan kecerdasan pemilihan rute inti untuk ekstensi ini.
  • Dukungan multi-port: mendukung server model yang mengekspos beberapa port, yang penting untuk skenario penayangan lanjutan seperti atensi Paralel Data.
  • Batas Grup Endpoint Jaringan (NEG): memiliki batas 50 NEG per Google Cloud Layanan Backend. Saat menggunakan InferencePool multi-port, setiap port di setiap zona akan membuat NEG khusus. Misalnya, InferencePool dengan delapan port dalam cluster regional biasa (tiga zona) menghasilkan 24 NEG. Oleh karena itu, Gateway multi-cluster hanya dapat menggabungkan InferencePool tersebut dari maksimum dua cluster (dua cluster × 24 NEG = 48 NEG) sebelum mencapai batas 50 NEG.

Memahami konsep utama

GKE Inference Gateway meningkatkan kualitas GKE Gateway yang ada yang menggunakan objek GatewayClass. GKE Inference Gateway memperkenalkan Definisi Resource Kustom (CRD) Gateway API baru berikut, yang selaras dengan ekstensi OSS Kubernetes Gateway API untuk Inferensi:

  • Objek InferencePool: merepresentasikan grup Pod (penampung) yang berbagi konfigurasi komputasi, jenis akselerator, model bahasa dasar, dan server model yang sama. Hal ini secara logis mengelompokkan dan mengelola penayangan model AI Anda resources. Satu objek InferencePool dapat mencakup beberapa Pod di berbagai node GKE dan memberikan skalabilitas serta ketersediaan tinggi. Anda dapat menentukan hingga delapan targetPorts dalam resource InferencePool untuk mendukung server model yang memerlukan beberapa port.
  • Objek InferenceObjective: menentukan nama model penayangan dari InferencePool sesuai dengan spesifikasi OpenAI API. Objek InferenceObjective juga menentukan properti penayangan model, seperti Priority model AI. GKE Inference Gateway memberikan preferensi pada workload dengan nilai prioritas yang lebih tinggi. Dengan begitu, Anda dapat memultipleks workload AI yang mementingkan latensi dan yang toleran terhadap latensi di cluster GKE. Anda juga dapat mengonfigurasi objek InferenceObjective untuk menayangkan model yang di-fine-tune LoRA.

Diagram berikut mengilustrasikan GKE Inference Gateway dan integrasinya dengan keamanan AI, kemampuan observasi, dan penayangan model dalam cluster GKE.

Hubungan antara objek InferencePool dan InferenceObjective GKE Inference Gateway
Gambar: Model resource GKE Inference Gateway

Diagram berikut mengilustrasikan model resource yang berfokus pada dua persona yang berfokus pada inferensi baru dan resource yang mereka kelola.

Model resource untuk persona yang berfokus pada inferensi dan resource-nya
Gambar: Model resource GKE Inference Gateway dengan persona yang berfokus pada inferensi

Router llm-d

Router llm-d adalah komponen perutean permintaan cerdas yang digunakan Inference Gateway untuk membuat keputusan endpoint per permintaan. Terdiri dari dua sub-komponen:

Subkomponen Deskripsi
`L7 Proxy` Setiap proxy L7 tingkat industri yang sesuai (biasanya Envoy) yang menangani data plane: pengelolaan koneksi, penghentian TLS, dan penerusan permintaan. Di GKE Inference Gateway (Mode Gateway), Proxy adalah GKE Gateway.
`llm-d Endpoint Picker (EPP)` Layanan khusus yang dikueri oleh Proxy untuk setiap permintaan menggunakan protokol ext-proc. EPP berisi kecerdasan perutean. Komponen ini menggunakan sinyal real-time dari server model (pemanfaatan cache KV, panjang antrean, status cache awalan, dan afinitas adaptor LoRA) untuk memilih Pod server model yang optimal untuk setiap permintaan.

Mode Gateway

GKE Inference Gateway adalah llm-d Router yang beroperasi dalam Mode Gateway. Dalam Mode Gateway, Proxy adalah Gateway Kubernetes formal yang disediakan dan dikelola secara terpisah dari layanan EPP. Gateway memanggil EPP melalui ext-proc untuk membuat keputusan pemilihan rute, lalu meneruskan permintaan langsung ke Pod server model yang dipilih.

Pemisahan Gateway (bidang data) dari EPP (kecerdasan perutean) ini memungkinkan:

  • Infrastruktur bersama: satu GKE Gateway melayani beberapa InferencePool bersama dengan Layanan Kubernetes standar.
  • Pengelolaan traffic lanjutan: Kebijakan HTTPRoute mendukung pemisahan berbobot, peluncuran bertahap, dan pencerminan permintaan.
  • Penskalaan independen: layanan EPP melakukan penskalaan secara independen dari Gateway.
  • Integrasi cloud-native: berfungsi dengan Gateway controller terkelola GKE, Cloud Load Balancing, dan alat pengamatan yang ada.

Cara kerja GKE Inference Gateway

GKE Inference Gateway menggunakan ekstensi Gateway API dan logika perutean khusus model untuk menangani permintaan klien ke model AI. Langkah-langkah berikut menjelaskan alur permintaan.

Cara kerja alur permintaan

GKE Inference Gateway merutekan permintaan klien dari permintaan awal ke instance model. Bagian ini menjelaskan cara GKE Inference Gateway menangani permintaan. Alur permintaan ini umum untuk semua klien.

  1. Klien mengirimkan permintaan, yang diformat seperti yang dijelaskan dalam spesifikasi OpenAI API, ke model yang berjalan di GKE.
  2. GKE Inference Gateway memproses permintaan menggunakan ekstensi inferensi berikut:

    1. Ekstensi perutean berbasis isi: mengekstrak ID model dari isi permintaan klien dan mengirimkannya ke GKE Inference Gateway. GKE Inference Gateway kemudian menggunakan ID ini untuk merutekan permintaan berdasarkan aturan yang ditentukan dalam objek HTTPRoute Gateway API. Perutean isi permintaan mirip dengan perutean berdasarkan jalur URL. Perbedaannya adalah perutean isi permintaan menggunakan data dari isi permintaan.
    2. Ekstensi keamanan: menggunakan Model Armor, NVIDIA NeMo Guardrails, atau solusi pihak ketiga yang didukung untuk menerapkan kebijakan keamanan khusus model, yang mencakup pemfilteran konten, deteksi ancaman, pembersihan, dan logging. Ekstensi keamanan menerapkan kebijakan ini ke jalur pemrosesan permintaan dan respons.
    3. Pemilih Endpoint (EPP) llm-d: memantau metrik utama dari server model dalam InferencePool dan merutekan permintaan ke replika model yang paling optimal. Untuk mengetahui informasi selengkapnya, lihat Router llm-d.
  3. GKE Inference Gateway merutekan permintaan ke replika model yang ditampilkan oleh ekstensi pemilih endpoint.

Diagram berikut mengilustrasikan alur permintaan dari klien ke instance model melalui GKE Inference Gateway.

Alur permintaan dari klien ke instance model melalui GKE Inference Gateway
Gambar: Alur permintaan GKE Inference Gateway

Cara kerja distribusi traffic

GKE Inference Gateway mendistribusikan permintaan inferensi secara dinamis ke server model dalam objek InferencePool. Hal ini membantu mengoptimalkan penggunaan resource dan mempertahankan performa dalam berbagai kondisi beban. GKE Inference Gateway menggunakan dua mekanisme berikut untuk mengelola distribusi traffic:

  • Pemilihan endpoint: memilih server model yang paling sesuai secara dinamis untuk menangani permintaan inferensi. Sistem ini memantau beban dan ketersediaan server, lalu membuat keputusan perutean yang optimal dengan menghitung score untuk setiap server dengan menggabungkan sejumlah heuristik pengoptimalan:

    • Perutean yang mendukung cache awalan: GKE Inference Gateway melacak indeks cache awalan yang tersedia di setiap server model, dan memberikan skor yang lebih tinggi ke server dengan kecocokan cache awalan yang lebih panjang.
    • Perutean yang mendukung beban: GKE Inference Gateway memantau beban server (pemanfaatan cache KV dan kedalaman antrean yang tertunda), dan memberikan skor yang lebih tinggi ke server dengan beban yang lebih rendah.
    • Perutean yang kompatibel dengan LoRA: saat penayangan LoRA dinamis diaktifkan, GKE Inference Gateway akan memantau adaptor LoRA aktif per server, dan memberikan skor yang lebih tinggi ke server dengan adaptor LoRA yang diminta aktif, atau ruang tambahan untuk memuat adaptor LoRA yang diminta secara dinamis. Server dengan skor total tertinggi dari semua server sebelumnya akan dipilih.
  • Pengantrean dan pelepasan: mengelola alur permintaan dan mencegah kelebihan beban traffic. GKE Inference Gateway menyimpan permintaan yang masuk dalam antrean dan memprioritaskan permintaan berdasarkan prioritas yang ditentukan.

GKE Inference Gateway menggunakan sistem Priority numerik, yang juga dikenal sebagai Criticality, untuk mengelola alur permintaan dan mencegah kelebihan beban. Priority ini adalah kolom bilangan bulat opsional yang ditentukan oleh pengguna untuk setiap InferenceObjective. Nilai yang lebih tinggi menandakan permintaan yang lebih penting. Saat sistem mengalami tekanan, permintaan dengan Priority kurang dari 0 dianggap berprioritas lebih rendah dan akan dibatalkan terlebih dahulu, sehingga menampilkan error 429 untuk melindungi workload yang lebih kritis. Secara default, Priority adalah 0. Permintaan hanya dibatalkan karena prioritas jika Priority-nya ditetapkan secara eksplisit ke nilai yang lebih kecil daripada 0. Sistem ini memungkinkan Anda memprioritaskan traffic inferensi online yang sensitif terhadap latensi daripada tugas batch yang kurang sensitif terhadap waktu.

GKE Inference Gateway mendukung inferensi streaming untuk aplikasi seperti chatbot dan terjemahan live, yang memerlukan pembaruan berkelanjutan atau hampir real-time. Inferensi streaming memberikan respons dalam potongan atau segmen inkremental, bukan output lengkap tunggal. Jika terjadi error selama respons streaming, streaming akan berakhir, dan klien akan menerima pesan error. GKE Inference Gateway tidak mencoba lagi respons streaming.

Mempelajari contoh aplikasi

Bagian ini memberikan contoh penggunaan GKE Inference Gateway untuk mengatasi berbagai skenario aplikasi AI generatif.

Contoh 1: Menyajikan beberapa model AI generatif di cluster GKE

Perusahaan ingin men-deploy beberapa model bahasa besar (LLM) untuk melayani berbagai beban kerja. Misalnya, mereka mungkin ingin men-deploy model Gemma3 untuk antarmuka chatbot dan model DeepSeek untuk aplikasi rekomendasi. Perusahaan harus memastikan performa penayangan yang optimal untuk LLM ini.

Dengan menggunakan GKE Inference Gateway, Anda dapat men-deploy LLM ini di cluster GKE dengan konfigurasi akselerator yang dipilih di InferencePool. Kemudian, Anda dapat merutekan permintaan berdasarkan nama model (seperti chatbot dan recommender) dan properti Priority.

Diagram berikut menggambarkan cara GKE Inference Gateway merutekan permintaan ke model yang berbeda berdasarkan nama model dan Priority.

Merutekan permintaan ke model yang berbeda berdasarkan nama model dan Prioritas
Gambar: Menyajikan beberapa model AI generatif di cluster GKE menggunakan GKE Inference Gateway

Diagram ini menggambarkan cara permintaan ke layanan GenAI di example.com/completions ditangani oleh GKE Inference Gateway. Permintaan pertama-tama mencapai Gateway di namespace Infra. Gateway ini meneruskan permintaan ke HTTPRoute di namespace GenAI Inference, yang dikonfigurasi untuk menangani permintaan untuk model chatbot dan sentimen. Untuk model chatbot, HTTPRoute membagi traffic: 90% diarahkan ke InferencePool yang menjalankan versi model saat ini (dipilih oleh {pool: gemma}), dan 10% masuk ke pool dengan versi yang lebih baru ({pool: gemma-new}), biasanya untuk pengujian canary. Kedua kumpulan data ditautkan ke InferenceObjective yang menetapkan Priority 10 untuk permintaan model chatbot, sehingga memastikan permintaan ini diperlakukan sebagai prioritas tinggi.

Contoh 2: Menyajikan adaptor LoRA pada akselerator bersama

Sebuah perusahaan ingin menayangkan LLM untuk analisis dokumen dan berfokus pada audiens dalam beberapa bahasa, seperti Inggris dan Spanyol. Mereka telah menyetel model untuk setiap bahasa, tetapi perlu menggunakan kapasitas GPU dan TPU secara efisien. Anda dapat menggunakan GKE Inference Gateway untuk men-deploy adaptor yang di-fine-tune LoRA dinamis untuk setiap bahasa (misalnya, english-bot dan spanish-bot) pada model dasar umum (misalnya, llm-base) dan akselerator. Hal ini memungkinkan Anda mengurangi jumlah akselerator yang diperlukan dengan mengemas beberapa model secara padat pada akselerator umum.

Diagram berikut mengilustrasikan cara GKE Inference Gateway menayangkan beberapa adaptor LoRA pada akselerator bersama.

Menayangkan beberapa adaptor LoRA pada akselerator bersama
Gambar: Menayangkan adaptor LoRA pada akselerator bersama

Langkah berikutnya