Amazon SageMaker HyperPod ve Curvine ile Büyük Dilli Modellerde Katmanlı KV Önbelleği
Amazon Web Services
Meta
DeepSeek
vLLM
Bu yazı, Amazon SageMaker HyperPod üzerinde katmanlı bir KV önbellek mimarisini açıklamakta; Curvine adlı dağıtık bir önbellek dosya sistemi kullanarak önbellek hiyerarşisini GPU'dan CPU'ya ve paylaşılan bir NVMe havuzuna genişletmektedir. Bu, çapraz kopya KV önbellek yeniden kullanımını sağlamakta, %100'e varan çapraz Pod önbellek isabet oranı ve 2,7 kata kadar TTFT iyileştirmesi elde etmektedir. Çözüm, iş yüklerinin P5 yerine daha düşük maliyetli G6e örneklerinde çalışmasına izin vererek altyapı maliyetlerini azaltmaktadır.
Büyük dil modeli (LLM) çıkarımını ölçekte çalıştırmak genellikle bir KV önbellek takasına zorlar: ya büyüyen KV önbelleğini barındırmak için fazla büyük GPU örnekleri için ödeme yapmak ya da aynı istemler her istekte yeniden hesaplandığından yavaş ilk belirtece kadar geçen süreyi (TTFT) kabul etmek. Qwen, Llama, DeepSeek ve diğerleri gibi her iş hattı için uç noktalara, Retrieval Augmented Generation (RAG) boru hatlarına veya çok turlu diyalog uygulamalarına dağıtılan geniş bir genel kullanıma açık temel model (FM) kataloğu kullanan ekipler için bu takas doğrudan daha yüksek altyapı maliyetine ve bozulmuş kullanıcı deneyimine dönüşür. Temel neden, üretim sırasında vLLM'nin her belirteç için dikkat anahtarlarını ve değerlerini bir KV önbelleğinde saklaması ve önek önbelleğe almanın, ortak başlangıç belirteçleri olan istekler arasında bu önbelleği yeniden kullanmasıdır. ml.g6e.4xlarge (GPU başına 48 GB) gibi uygun maliyetli örneklerde, önek önbelleğe alma için ayrılan bellek sınırlıdır ve uzun istemlerde önbellek isabet oranları düşer, aynı sistem istemleri her istekte yeniden ön doldurulur ve yatay olarak ölçeklenen vLLM kopyalarının her biri izole önbellekler tutar. Çözüm, üç katmanlı bir önbellek hiyerarşisi oluşturur: L0 (GPU önek önbelleği), L1 (CPU belleği boşaltma) ve L2 (Curvine aracılığıyla paylaşılan dağıtılmış NVMe havuzu). L0, vLLM'nin yerel sayfalı dikkat katmanıdır; L1, çıkarılan GPU bloklarını ana bilgisayar DRAM'ına boşaltmak için LMCache kullanır ve L2, yerel NVMe sürücülerini Curvine aracılığıyla paylaşılan bir ad alanında toplar ve her çıkarım Pod'una ReadWriteMany PVC olarak bağlanır. HyperPod'un Akıllı Yönlendirmesi, istekleri ilgili KV bloklarına sahip olma olasılığı en yüksek kopyalara yönlendirir; önek duyarlı, kv duyarlı ve round-robin gibi stratejiler içerir. Net etki: yalnızca tam bir ıskalama durumunda sistem sıfırdan yeniden ön doldurur; bu da orta ila yüksek istem örtüşmesi olan iş yükleri için TTFT'yi önemli ölçüde azaltır. Bir test dağıtımında bu, %100'e varan Podlar arası önbellek isabet oranı, 2.7 kata kadar TTFT iyileştirmesi ve yaklaşık 1.900 belirteçlik bir istem için düğümler arası L2 okuma gecikmesi (yaklaşık 56 ms) elde etti. Bu mimariyle, daha önce P5 örnekleri gerektiren iş yükleri, uç nokta başına maliyeti azaltarak daha düşük maliyetli G6e örneklerinde çalışabilir. Uygulama, Katmanlı Depolama etkinleştirilmiş SageMaker HyperPod, bir EKS kümesi ve Inference Operator ile Curvine'in kurulumunu gerektirir. Yazı, beş aşamada ilerler: Katmanlı Depolamayı etkinleştirme, Inference Operator ve bağımlılıkları kurma, Curvine'i kurma, dosya sistemi destekli L2 için Inference Operator'ı yamalama ve kıyaslama.
Kaynak: AWS ML blog —
orijinal
