View a markdown version of this page

Caching KV dan perutean cerdas - Amazon SageMaker AI

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

  1. Aktifkan caching KV dengan mengatur enableL1Cache dan enableL2Cache ke. true Kemudian, konfigurasikan l2CacheSpec dengan mengatur l2CacheBackend ke salah satu redis atautieredstorage. Jika Anda memilihredis, perbarui l2CacheLocalUrl dengan 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 l2CacheLocalUrl jika tieredstorage dipilih.

  2. Aktifkan perutean cerdas dengan menyetel enabled ke true bawahintelligentRoutingSpec. Anda dapat menentukan strategi perutean mana yang akan digunakan di bawahroutingStrategy. Jika tidak ada strategi routing yang ditentukan, defaultnya adalah. prefixaware

    intelligentRoutingSpec: enabled: true routingStrategy: <routing strategy to use>
  3. Aktifkan metrik router dan metrik caching dengan menyetel enabled ke bawah. true metrics portNilai harus sama dengan containerPort nilai 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)