Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan cache KV berjenjang
Cache KV berjenjang terkelola menambahkan tingkat cache di seluruh cluster ke penerapan Ray Serve, jadi satu replika membaca awalan token yang sudah dihitung oleh replika lain. Ini mengurangi waktu untuk token pertama untuk dokumen panjang, percakapan multi-putaran, dan permintaan sistem bersama. Tingkat seluruh cluster berjalan pada HyperPod Tiered Storage menggunakan LMCache dengan backend penyimpanan dalam dokumentasi LMCache, yang terintegrasi dengan Ray Serve dan Vllm untuk menyediakan caching KV terdistribusi yang didukung oleh Tiered HyperPod Storage
Cache memiliki dua tingkatan:
-
Tingkat lokal dalam memori node yang melayani permintaan, untuk penggunaan kembali tercepat.
-
Tingkat seluruh cluster di HyperPod Tiered Storage, tingkat memori gabungan yang mencakup node cluster. Replika membaca awalan yang dihitung oleh replika lain alih-alih mengkomputernya ulang.
Saat permintaan membagikan awalan token dengan pekerjaan sebelumnya, penerapan membaca status KV yang di-cache dari tingkat lokal, lalu tingkat seluruh cluster, sebelum menghitung ulang apa pun.
Prasyarat
-
Sebuah HyperPod cluster yang diatur oleh Amazon EKS, dengan operator diinstal. KubeRay
-
HyperPod Penyimpanan Berjenjang diaktifkan di cluster. Untuk petunjuk penyiapan, lihat Menyiapkan pos pemeriksaan berjenjang terkelola.
Konfigurasikan Anda RayCluster
Tambahkan berikut ini ke spesifikasi grup pekerja Anda untuk mengekspos titik akhir Penyimpanan Berjenjang dan memori bersama ke replika Ray Serve.
workerGroupSpecs: - template: spec: volumes: - name: host-shm hostPath: path: /dev/shm containers: - name: ray-worker env: - name: NODE_IP valueFrom: fieldRef: fieldPath: status.hostIP volumeMounts: - name: host-shm mountPath: /dev/shm/ai_toolkit_cache subPath: ai_toolkit_cache
Variabel NODE_IP lingkungan menyediakan alamat IP host sehingga klien LMCache dapat terhubung ke layanan Penyimpanan Berjenjang pada port 9200. Pemasangan volume memori bersama memungkinkan jalur pembongkaran CPU untuk cache KV lokal.
Konfigurasikan aplikasi Ray Serve Anda
Gunakan LLMConfig API dengan konektor LMCache untuk mengaktifkan caching KV dalam penerapan Ray Serve Anda. Contoh berikut menyajikan model dengan caching KV berjenjang diaktifkan:
from ray.serve.llm import LLMConfig, build_openai_app llm_config = LLMConfig( model_loading_config={ "model_id": "my-llm", "model_source": "Qwen/Qwen-7B-Chat", }, engine_kwargs={ "trust_remote_code": True, "kv_transfer_config": { "kv_connector": "LMCacheConnectorV1", "kv_role": "kv_both", }, }, runtime_env={ "env_vars": { "LMCACHE_REMOTE_URL": "sagemaker-hyperpod://$(NODE_IP):9200", "LMCACHE_EXTRA_CONFIG": '{"sagemaker_hyperpod_bucket": "lmcache", "sagemaker_hyperpod_shared_memory_name": "ai_toolkit_cache"}', "LMCACHE_CHUNK_SIZE": "256", }, }, accelerator_type="A10G", ) app = build_openai_app({"llm_configs": [llm_config]})
Nilai konfigurasi kunci adalah:
-
kv_connector: SetelLMCacheConnectorV1untuk mengaktifkan integrasi LMCache dengan VllM. -
kv_role: Setelkv_bothagar setiap replika membaca dari dan menulis ke cache bersama. -
LMCACHE_REMOTE_URL: Titik akhir Penyimpanan Berjenjang pada node lokal. Menggunakan variabelNODE_IPlingkungan yang dikonfigurasi dalam RayCluster manifes. -
LMCACHE_CHUNK_SIZE: Jumlah token per potongan cache. Nilai yang lebih kecil meningkatkan hit rate cache untuk awalan bersama dengan mengorbankan lebih banyak entri cache.
Aktifkan pembongkaran CPU (opsional)
Untuk menambahkan tingkat memori CPU lokal yang menyimpan entri KV sebelum ditulis ke Penyimpanan Berjenjang, tambahkan variabel lingkungan berikut ke: runtime_env
"env_vars": { "LMCACHE_REMOTE_URL": "sagemaker-hyperpod://$(NODE_IP):9200", "LMCACHE_EXTRA_CONFIG": '{"sagemaker_hyperpod_bucket": "lmcache", "sagemaker_hyperpod_shared_memory_name": "ai_toolkit_cache"}', "LMCACHE_CHUNK_SIZE": "256", "LMCACHE_LOCAL_CPU": "True", "LMCACHE_MAX_LOCAL_CPU_SIZE": "100", }
Saat pembongkaran CPU diaktifkan, entri cache KV disimpan dalam memori CPU pada node lokal sebelum ditulis ke Penyimpanan Berjenjang di seluruh cluster. Ini memberikan pembacaan cache yang lebih cepat untuk replika pada node yang sama.