Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pelajari cara mengoptimalkan titik akhir Model Serving untuk beban kerja produksi yang memerlukan throughput tinggi, latensi rendah, dan performa yang andal.
Strategi pengoptimalan termasuk dalam tiga kategori:
- Pengoptimalan titik akhir: Mengonfigurasi infrastruktur titik akhir untuk meningkatkan performa
- Pengoptimalan model: Meningkatkan efisiensi model dan laju pemrosesan
- Pengoptimalan klien: Optimalkan bagaimana klien berinteraksi dengan titik akhir penyajian
Kapan harus mengoptimalkan titik akhir Anda
Pertimbangkan untuk mengoptimalkan titik akhir Model Serving Saat Anda menemukan salah satu skenario berikut:
- Volume kueri tinggi: Aplikasi Anda mengirimkan lebih dari 50k kueri per detik (QPS) ke satu titik akhir
- Persyaratan latensi: Aplikasi Anda memerlukan waktu respons sub-100ms
- Kendala penskalaan: Endpoint mengalami antrean atau mengembalikan kesalahan HTTP 429 selama lonjakan lalu lintas
- Pengoptimalan biaya: Anda ingin mengurangi biaya penyajian sambil mempertahankan target performa
- Persiapan produksi: Anda bersiap untuk beralih dari pengembangan ke beban kerja produksi
Pengoptimalan infrastruktur
Pengoptimalan infrastruktur meningkatkan perutean jaringan, perilaku penskalaan, dan kapasitas komputasi.
Pengoptimalan rute
Pengoptimalan rute memberikan peningkatan infrastruktur paling signifikan untuk beban kerja throughput tinggi. Saat Anda mengaktifkan pengoptimalan rute pada titik akhir, Databricks Model Serving meningkatkan jalur jaringan untuk permintaan inferensi, menghasilkan komunikasi yang lebih cepat dan lebih langsung antara klien dan model.
Manfaat performa:
| Fitur | Batas titik akhir standar | Batas titik akhir yang dioptimalkan rute |
|---|---|---|
| Kueri per detik (QPS) per ruang kerja | 200 | 50.000+ (hubungi Databricks untuk batas yang lebih tinggi) |
| Konkurensi klien per ruang kerja | 192-1024 (bervariasi menurut wilayah) | Tidak ada batas eksplisit (dibatasi oleh konkurensi yang disediakan) |
| Konkruensi yang dialokasikan pada titik akhir untuk setiap entitas yang dilayani | 1,024 | 1.024 (hubungi Databricks untuk batas yang lebih tinggi) |
Kapan menggunakan pengoptimalan rute:
- Beban kerja yang membutuhkan lebih dari 200 QPS
- Aplikasi dengan persyaratan latensi yang ketat (overhead sub-50ms)
- Penerapan produksi yang melayani banyak pengguna secara bersamaan
Penting
Pengoptimalan rute hanya tersedia untuk model kustom yang melayani titik akhir. API Model Fondasi dan model eksternal tidak mendukung pengoptimalan rute. Token OAuth diperlukan untuk autentikasi; token akses pribadi tidak didukung.
Lihat Pengoptimalan rute pada titik akhir penyajian untuk instruksi penyiapan dan Kueri titik akhir penyajian yang dioptimalkan rute untuk detail kueri.
Konkurensi yang Ditetapkan
Konkurensi yang disediakan mengontrol berapa banyak permintaan simultan yang dapat diproses titik akhir Anda. Konfigurasikan konkurensi yang disediakan berdasarkan persyaratan QPS dan latensi yang diharapkan.
Panduan konfigurasi:
- Konkurensi Minimum: Tetapkan cukup tinggi untuk menangani lalu lintas dasar tanpa antrean
- Konkurensi maksimum: Atur cukup tinggi untuk mengakomodasi lonjakan lalu lintas saat mengontrol biaya
- Autoscaling: Mengaktifkan penskalakan otomatis untuk menyesuaikan kapasitas secara dinamis berdasarkan permintaan
Hitung konkurensi yang diperlukan:
Required Concurrency = Target QPS × Average Latency (seconds)
Misalnya, jika target Anda adalah 100 QPS dengan latensi rata-rata 200ms:
Required Concurrency = 100 × 0.2 = 20
Gunakan pengujian beban untuk mengukur latensi aktual dan menentukan pengaturan konkurensi yang optimal.
Jenis instans
Pilih jenis instans berdasarkan persyaratan komputasi model Anda:
| Jenis instans | Paling cocok untuk | Trade-offs |
|---|---|---|
| CPU (Kecil, Sedang, Besar) | Model ringan, logika inferensi sederhana | Biaya lebih rendah, lebih lambat untuk model intensif komputasi |
| GPU (Kecil, Sedang, Besar) | Model besar, komputasi kompleks, pemrosesan gambar/video | Biaya yang lebih tinggi, performa optimal untuk pembelajaran mendalam |
Petunjuk / Saran
Mulailah dengan instans CPU untuk pengembangan dan pengujian. Beralih ke instans GPU hanya jika Anda mengamati latensi inferensi tinggi atau model Anda memerlukan komputasi khusus (seperti operasi pembelajaran mendalam).
Pengoptimalan model
Pengoptimalan model meningkatkan kecepatan inferensi dan efisiensi sumber daya.
Ukuran dan kompleksitas model
Ukuran dan Kompleksitas Model: Model yang lebih kecil dan kurang kompleks umumnya menyebabkan waktu inferensi yang lebih cepat dan QPS yang lebih tinggi. Pertimbangkan teknik seperti kuantisasi model atau pemangkasan jika model Anda besar.
Pengelompokan
Jika aplikasi Anda dapat mengirim beberapa permintaan dalam satu panggilan, aktifkan batching di sisi klien. Ini dapat secara signifikan mengurangi overhead (biaya tambahan) per prediksi.
Pengoptimalan pra-pemrosesan dan pasca-pemrosesan
Offload pra-pemrosesan dan pasca-pemrosesan yang kompleks dari titik akhir layanan agar beban pada infrastruktur inferensi berkurang.
Pengoptimalan sisi klien
Pengoptimalan sisi klien meningkatkan cara aplikasi berinteraksi dengan melayani titik akhir.
Pengumpulan koneksi
Pengumpulan koneksi menggunakan kembali koneksi yang ada alih-alih membuat koneksi baru untuk setiap permintaan, secara signifikan mengurangi overhead.
- Gunakan Databricks SDK, yang secara otomatis menerapkan praktik terbaik pengumpulan koneksi
- Jika menggunakan klien kustom, terapkan pengumpulan koneksi sendiri.
Penanganan kesalahan dan strategi coba lagi
Terapkan penanganan kesalahan yang kuat untuk menangani kegagalan sementara secara anggun, terutama selama peristiwa penskalan otomatis atau gangguan jaringan.
Pengoptimalan ukuran payload
Minimalkan ukuran payload permintaan dan respons untuk mengurangi waktu transfer jaringan dan meningkatkan throughput.
Mengukur dan meningkatkan performa
Pemantauan performa
Pantau performa titik akhir menggunakan alat yang disediakan oleh Mosaic AI Model Serving:
| Ukuran | Apa yang diukurnya | Target | Tindakan jika terlampaui |
|---|---|---|---|
| Latensi (P50, P90, P99) | Waktu respons untuk permintaan | Tergantung aplikasi (biasanya <100-500ms) | Periksa antrean, optimalkan model atau klien |
| Laju Pemrosesan (QPS) | Permintaan selesai per detik | Bergantung pada beban kerja | Aktifkan pengoptimalan rute, tingkatkan konkurensi yang disediakan |
| Tingkat kesalahan | Persentase permintaan yang gagal | <1% | Tinjau log layanan, periksa masalah kapasitas |
| Kedalaman antrean | Permintaan menunggu pemrosesan | 0 (tidak ada antrean) | Meningkatkan konkurensi yang disediakan atau mengaktifkan penskalaan otomatis |
| Penggunaan CPU/Memori | Pemanfaatan sumber daya | <80% | Memperbesar skala jenis instance atau meningkatkan konkurensi |
Lihat Memantau kualitas model dan kesehatan titik akhir untuk panduan pemantauan terperinci dan Melacak dan mengekspor metrik kesehatan titik akhir penyajian ke Prometheus dan Datadog untuk mengekspor metrik ke alat pengamatan.
Pengujian beban
Pengujian beban mengukur performa titik akhir di bawah kondisi lalu lintas yang realistis dan membantu Anda:
- Menentukan pengaturan konkurensi yang disediakan secara optimal
- Mengidentifikasi hambatan performa
- Memvalidasi persyaratan latensi dan throughput
- Memahami hubungan antara konkurensi klien dan konkurensi server
Lihat Uji beban untuk melayani titik akhir.
Memecahkan masalah performa umum
Queuing
Model Serving mendukung autoscaling untuk menyesuaikan kapasitas berdasarkan pola lalu lintas. Namun, lonjakan lalu lintas yang tiba-tiba dapat menyebabkan antrean karena penskalakan otomatis membutuhkan waktu untuk mendeteksi peningkatan beban dan menyediakan kapasitas tambahan. Selama periode ini, permintaan masuk dapat untuk sementara melebihi kapasitas yang tersedia, menyebabkan permintaan mengantre.
Antrean terjadi ketika tingkat permintaan atau konkurensi melampaui kapasitas pemrosesan titik akhir saat ini. Ini biasanya terjadi selama lonjakan lalu lintas yang tajam, ledakan beban kerja, atau ketika titik akhir memiliki konkurensi yang disediakan tidak mencukupi. Penyajian model memungkinkan antrean sementara untuk menangani lonjakan permintaan, tetapi di luar ambang batas yang ditentukan, endpoint mengembalikan kode status HTTP 429 (Terlalu Banyak Permintaan) untuk melindungi stabilitas sistem.
Antrean meningkatkan latensi karena permintaan antrean menunggu sebelum diproses. Untuk meminimalkan antrean:
- Atur konkurensi minimum yang disediakan cukup tinggi untuk menangani lalu lintas dasar ditambah ledakan umum
- Mengaktifkan pengoptimalan rute untuk batas kapasitas yang lebih tinggi
- Menerapkan logika ulang dengan backoff eksponensial pada aplikasi klien Anda
Penyempitan API eksternal
Model sering memanggil API eksternal untuk pengayaan data, pengambilan fitur, atau tugas lain selama inferensi. Dependensi eksternal ini dapat menjadi hambatan performa:
- Latensi: Mengukur waktu respons setiap panggilan API eksternal. Latensi tinggi dalam panggilan ini secara langsung meningkatkan latensi penyajian keseluruhan dan mengurangi throughput.
- Batas throughput: API Eksternal dapat memberlakukan batas laju atau batasan kapasitas. Melebihi batas ini dapat menyebabkan penghambatan, kesalahan, dan penurunan performa.
- Tingkat kesalahan: Kesalahan yang sering terjadi dari API eksternal dapat memicu percobaan ulang dan meningkatkan beban pada titik akhir penyajian Anda.
- Cache: Terapkan cache untuk data yang sering kali diakses dari API eksternal untuk mengurangi jumlah panggilan dan meningkatkan kecepatan respons.
Pantau faktor-faktor ini untuk mengidentifikasi hambatan dan menerapkan pengoptimalan yang ditargetkan untuk beban kerja throughput tinggi.