Mục đích của LMCache
LMCache có mục đích chính là quản lý, lưu trữ, tái sử dụng và truyền KV cache hiệu quả giữa requests, processes và inference nodes.
LMCache có khả năng quản lý KVCache theo phân tầng lưu trữ - L1 (GPU Memory): Tốc độ cao nhất, dung lượng hạn chế. - L2 (CPU RAM): Nơi đầu tiên KV Cache được offload để giải phóng VRAM mà không làm mất dữ liệu hoàn toàn. - L3 (Remote Storage/Disk): Sử dụng các giải pháp như Redis hoặc Distributed File System để chia sẻ cache giữa các node khác nhau trong cụm (cluster). Mục đích: - giảm pressure VRAM - giữ được long-context KV - reuse KV ở request sau - tránh recompute prefill Offloading hoàn toàn có thể dùng standalone trên single node và đã có giá trị lớn.
LMCache có khả năng chia sẻ KVCache giữa các inference node bằng P2P sharing. Qua đó, KVCache có thể được tái sử dụng ở các node để giảm prefill time hoặc hỗ trợ cho prefill/decode disaggregation LMCache cũng có thể tích hợp với nhiều backend/transport mechanism để đạt được hiệu năng sharing tốt nhất như NIXL, NIC, …
Tái sử dụng KVCache hiệu quả LMCache hỗ trợ 2 cơ chế tái sử dụng KVCache - prefix caching (tương tự prefix caching của vLLM) - sematic caching: CacheBlend, non-prefix KV reuse LMCache cố gắng tái sử dụng KVCache của từng segment thay vì chỉ match phần prefix, đây là một điểm cộng lớn so với prefix caching vốn có của vLLM.
Use cases
Những trường hợp nên sử dụng LMCache - RAG và QA trên tài liệu dài với phần ngữ cảnh lặp lại - hội thoại nhiều lượt - triển khai nhiều instance cần chia sẻ KV - mục tiêu hệ thống là tách prefill và decode trên cụm phân tán
Những trường hợp không nên sử dụng LMCache: - workload có độ đa dạng prompt cao và tỷ lệ trùng token thấp - KV cache gắn chặt với kiến trúc và trọng số mô hình, nên thay đổi phiên bản có thể làm mất hiệu lực cache hoặc gây không nhất quán nếu không quản lý versioning - chi phí truyền tải cao, không bù đắp được cho chi phí tính toán
Liên kết
- Kiến trúc NVIDIA Dynamo trên Kubernetes - LMCache tích hợp làm lớp KV cache phân tán cho Dynamo
- Kết nối vLLM và LMCache server trên Dynamo Kubernetes - failure mode multiprocess trên K8s
- Quá trình inference của Large Language Model - KV cache trong inference pipeline
- Retrieval-Augmented Generation - reuse KV cho context lặp lại