Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Caching KV dan perutean cerdas
Amazon SageMaker HyperPod Inference menyediakan caching nilai kunci (KV) berjenjang terkelola dan perutean cerdas untuk mengoptimalkan kinerja inferensi untuk beban kerja model bahasa besar (LLM). Caching KV menyimpan vektor nilai kunci yang telah dihitung sebelumnya setelah memproses token sebelumnya, menghilangkan perhitungan ulang yang berlebihan. Melalui arsitektur caching dua tingkat, Anda dapat mengonfigurasi cache L1 yang menggunakan memori CPU untuk penggunaan kembali lokal latensi rendah, dan cache L2 yang memanfaatkan Redis atau penyimpanan berjenjang terkelola untuk mengaktifkan berbagi cache tingkat node yang dapat diskalakan.
Perutean cerdas menganalisis permintaan yang masuk dan mengarahkannya ke instance inferensi yang kemungkinan besar memiliki pasangan nilai kunci cache yang relevan. Sistem memeriksa permintaan dan meruteknya berdasarkan salah satu strategi perutean berikut:
-
prefixaware— Permintaan berikutnya dengan awalan prompt yang sama dirutekan ke instance yang sama. -
kvaware— Permintaan masuk dirutekan ke instance dengan tingkat hit cache KV tertinggi. -
session— Permintaan dari sesi pengguna yang sama dirutekan ke instance yang sama. -
roundrobin— Mendistribusikan permintaan secara merata tanpa mempertimbangkan status cache KV.
Perutean cerdas berfungsi dengan semua metode penerapan SageMaker HyperPod Inference Amazon, termasuk penerapan Amazon (baik konsol maupun kubectl), SageMaker JumpStart penerapan penyimpanan lokal NVMe, dan penerapan dari Amazon S3, Amazon FSx, atau Hugging Face Hub. Anda dapat mengaktifkan caching dan routing terlepas dari metode penyebaran yang Anda gunakan untuk melayani model Anda.
catatan
Caching KV dan perutean cerdas saat ini hanya mendukung kontainer inferensi vLLM-based .
Konfigurasikan caching KV dan perutean cerdas
-
Aktifkan caching KV dengan mengatur
enableL1CachedanenableL2Cacheke.trueKemudian, konfigurasikanl2CacheSpecdengan mengaturl2CacheBackendke salah saturedisatautieredstorage. Jika Anda memilihredis, perbaruil2CacheLocalUrldengan URL cluster Redis.kvCacheSpec: enableL1Cache: true enableL2Cache: true l2CacheSpec: l2CacheBackend: <redis | tieredstorage> l2CacheLocalUrl: <Redis cluster URL if l2CacheBackend is redis >catatan
Jika cluster Redis tidak berada dalam VPC Amazon yang sama dengan cluster, enkripsi untuk data dalam perjalanan tidak dijamin. HyperPod
catatan
Anda tidak perlu
l2CacheLocalUrljikatieredstoragedipilih. -
Aktifkan perutean cerdas dengan menyetel
enabledketruebawahintelligentRoutingSpec. Anda dapat menentukan strategi perutean mana yang akan digunakan di bawahroutingStrategy. Jika tidak ada strategi routing yang ditentukan, defaultnya adalah.prefixawareintelligentRoutingSpec: enabled: true routingStrategy: <routing strategy to use> -
Aktifkan metrik router dan metrik caching dengan menyetel
enabledke bawah.truemetricsportNilai harus sama dengancontainerPortnilai di bawahmodelInvocationPort.metrics: enabled: true modelMetrics: port: <port value> ... modelInvocationPort: containerPort: <port value>
KV-aware kompatibilitas perutean
Matriks kompatibilitas dan batasan versi di bagian ini hanya berlaku untuk strategi perutean. kvaware kvawareStrategi mengarahkan permintaan masuk ke instance inferensi dengan hit rate cache KV tertinggi dan saat ini hanya mendukung LLM-based gambar v dengan /completions API sebagai titik akhir pemanggilan.
catatan
Jika Anda menggunakan kvaware perutean, Anda harus mengatur invocationEndpoint ke /completions dalam manifes penerapan Anda. /v1/chat/completionsTitik akhir tidak didukung dengan kvaware perutean. Strategi perutean lainnya (prefixaware,session,roundrobin) bekerja dengan titik akhir pemanggilan apa pun.
Gambar yang didukung:
| Versi Operator Inferensi | Add-on Versi Amazon EKS | Versi Gambar LMCache | Versi Gambar Vllm |
|---|---|---|---|
| >= v3.1.3 | >= v1.2.1-eksbuild.1 | >= v0.4.3 | >= v0.19.1 |
| < v3.1.3 | < v1.2.1-eksbuild.1 | v0.3.9post2 | v0.11.1 |
catatan
Sebaiknya gunakan operator inferensi versi v3.1.3 atau lebih tinggi dengan versi LMCache dan Vllm yang sesuai yang ditunjukkan dalam matriks dukungan. Versi LMCache yang lebih baru mendukung paralelisme tensor, penanganan kegagalan yang ditingkatkan, dan pendaftaran pekerja cache, yang memberikan ketahanan yang lebih baik untuk perutean. KV-aware
Memvalidasi perutean sadar cache KV
Setelah menerapkan model dengan KV-aware routing diaktifkan, gunakan langkah-langkah berikut untuk memverifikasi bahwa routing berfungsi dengan benar.
Periksa pendaftaran pekerja
Verifikasi bahwa pekerja telah terdaftar dengan router dengan memeriksa log router:
kubectl logs -n hyperpod-inference-system <router-pod> | grep -i "register"
Registrasi yang sehat menunjukkan:
INFO: Worker registered: lmcacheengineconfig_<hash>
Periksa cache hits di log router
Verifikasi bahwa router menggunakan KV-aware routing untuk mengarahkan permintaan:
kubectl logs -n hyperpod-inference-system <router-pod> | grep -i "kvaware\|Matched instance\|Lookup"
Saat KV-aware perutean berfungsi dengan benar:
INFO: Routing request to lmcacheengineconfig_<hash> found by kvaware router
Saat KV-aware perutean tidak berfungsi (kembali ke round-robin):
DEBUG: Matched instance url None
Periksa inisialisasi LMCache di log pekerja
Verifikasi bahwa LMCache berhasil diinisialisasi pada pod pekerja:
kubectl logs -n <namespace> <worker-pod> | grep -i "LMCache"
Inisialisasi yang sehat menunjukkan:
LMCache INFO: LMCacheManager initialized successfully
Jika LMCache gagal menginisialisasi, Anda akan melihat:
LMCache ERROR: Failed to initialize LMCacheManager components: . System will operate in degraded mode (recompute).
Verifikasi dengan metrik Grafana
Dengan metrik diaktifkan (metrics.enabled: true), metrik berikut dari titik /metrics akhir pekerja VllM mengonfirmasi klik cache. Metrik ini harus menunjukkan nilai tinggi saat KV-aware perutean berfungsi dengan benar:
| Metrik | Deskripsi |
|---|---|
vllm:prefix_cache_hits_total / vllm:prefix_cache_queries_total |
Tingkat hit cache awalan GPU (dihitung sebagai rasio) |
lmcache:num_vllm_hit_tokens_total |
Jumlah token yang dilayani dari LMCache |
lmcache:num_lookup_hits_total / lmcache:num_lookup_tokens_total |
LmCache lookup hit rate (dihitung sebagai rasio) |
lmcache:request_cache_hit_rate |
Per-request tingkat hit cache (histogram) |