HƯỚNG DẪN KỸ THUẬT

Tối ưu hóa bộ đệm KV

Bộ đệm KV lưu trữ các khóa và giá trị mà máy biến áp đã tính toán để nó không thực hiện lại công việc đối với mỗi mã thông báo mới — nhưng nó có thể tăng vọt lên hàng gigabyte.

Nghe hướng dẫn nàyAI thuật lại · ~2 min

Trên trang nàyĐọc trong 2 phút
  1. Tổng quan
  2. Lặn sâu
  3. Triển khai trong thế giới thực
  4. Tương lai của việc tối ưu hóa bộ đệm KV
  5. Đưa nó vào thực tế
  6. Tiếp tục khám phá
  7. Câu hỏi thường gặp

Tổng quan

Tối ưu hóa bộ nhớ đệm KV thu nhỏ và quản lý bộ nhớ đó để các mô hình phục vụ ngữ cảnh dài hơn cho nhiều người dùng hơn cùng một lúc.

Lặn sâu

Trong máy biến áp, mỗi mã thông báo mới sẽ tham dự tất cả các mã thông báo trước đó thông qua các khóa chú ý (K) và giá trị (V). Việc tính toán lại K và V cho toàn bộ chuỗi ở mỗi bước sẽ là phương pháp bậc hai và lãng phí, vì vậy các mô hình sẽ lưu chúng vào bộ đệm: bộ đệm KV. Nhược điểm là kích thước. Bộ nhớ đệm phát triển tuyến tính theo độ dài chuỗi, kích thước lô, lớp và đầu, do đó, một yêu cầu ngữ cảnh dài có thể tiêu tốn nhiều bộ nhớ GPU hơn trọng lượng của chính mô hình. Tính năng tối ưu hóa giải quyết vấn đề này từ nhiều góc độ: bộ nhớ phân trang (PagedAttention của vLLM) lưu trữ bộ đệm trong các khối không liền kề để giảm phân mảnh và cho phép chia sẻ; lượng tử hóa lưu trữ K và V ở dạng 8 bit hoặc 4 bit; và các thay đổi về kiến ​​trúc như Chú ý truy vấn theo nhóm (GQA) và Chú ý nhiều truy vấn (MQA) cho phép nhiều đầu truy vấn chia sẻ ít đầu khóa/giá trị hơn, giảm kích thước bộ nhớ đệm ở nguồn.

Triển khai trong thế giới thực

PagedAttention của vLLM phục vụ nhiều phiên trò chuyện đồng thời bằng cách đóng gói các khối KV đồng thời giảm phân mảnh bộ nhớ

Chú ý truy vấn theo nhóm trong các mô hình Llama giúp giảm kích thước bộ đệm KV để ngữ cảnh dài hơn phù hợp với bộ nhớ GPU

Định lượng bộ nhớ đệm KV thành 8 bit (KV8) để giảm gần một nửa bộ nhớ đệm trong quá trình tóm tắt tài liệu dài

Bộ nhớ đệm tiền tố tái sử dụng các khối KV của lời nhắc hệ thống dùng chung qua hàng nghìn yêu cầu API

Tương lai của việc tối ưu hóa bộ đệm KV

Khi cửa sổ ngữ cảnh mở rộng tới hàng trăm nghìn hoặc hàng triệu mã thông báo, bộ nhớ đệm KV sẽ trở thành chi phí phân phát chính. Yêu cầu tính năng nén và loại bỏ bộ nhớ đệm mạnh mẽ (loại bỏ các mã thông báo có mức độ chú ý thấp), chia sẻ tiền tố yêu cầu chéo làm mặc định, giảm tải bộ nhớ đệm nguội cho CPU hoặc NVMe và các kiến ​​trúc như MLA và GQA trở thành tiêu chuẩn. Việc quản lý bộ đệm sẽ ngày càng giống với hệ thống phân cấp bộ nhớ đầy đủ với các tầng và tìm nạp trước thông minh.

Đưa nó vào thực tế

Tại sao nó quan trọng

  • Chi phí và ngân sách. Các quyết định về kiến ​​trúc sẽ thúc đẩy hiệu suất và chi phí vận hành trong nhiều năm.
  • Quyết định rõ ràng hơn. Giáo dục kỹ thuật giúp các nhóm chọn nhóm phù hợp chứ không chỉ nhóm mới nhất.
  • Kiểm soát chất lượng. Lựa chọn kỹ thuật tốt hơn làm giảm sự cố về độ tin cậy trong sản xuất.

coi chừng

  • Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu của hệ thống rộng hơn.
  • Chi phí cơ sở hạ tầng và bảo trì thường được đánh giá thấp.
  • Khoảng cách về bảo mật và khả năng quan sát có thể tăng lên khi hệ thống trở nên phức tạp hơn.

Các bước tiếp theo

  1. Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.
  2. Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.
  3. Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.
  4. Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô.

Tiếp tục khám phá

Bản tin miễn phí

Nhận bản tóm tắt AI hàng ngày

Ba câu chuyện AI đã được xác minh vào mỗi buổi sáng các ngày trong tuần, được viết bằng tiếng Anh đơn giản. Miễn phí mãi mãi, không có quảng cáo.

Một email mỗi ngày trong tuần. Hủy đăng ký trong một cú nhấp chuột. Chúng tôi không bao giờ bán hoặc chia sẻ địa chỉ của bạn.

Tự kiểm tra

Take the KV Cache Optimization quiz

Phản hồi tức thì về mọi câu trả lời và chứng chỉ có thể chia sẻ với ID có thể xác minh sau khi bạn vượt qua khóa học.

Bắt đầu bài kiểm tra

Hỗ trợ giáo dục AI miễn phí. AI Understanding là tổ chức phi lợi nhuận 501(c)(3) — không bao giờ có quảng cáo, không có tường phí. Hãy quyên góp

Câu hỏi thường gặp

Tối ưu hóa bộ đệm KV là gì?

Bộ đệm KV lưu trữ các khóa và giá trị mà máy biến áp đã tính toán để nó không thực hiện lại công việc đối với mỗi mã thông báo mới — nhưng nó có thể tăng vọt lên hàng gigabyte. Tối ưu hóa bộ đệm KV thu nhỏ và quản lý bộ nhớ đó để các mô hình phục vụ ngữ cảnh dài hơn cho nhiều người dùng hơn cùng một lúc.

Bộ đệm KV lưu trữ những gì và tại sao?

Khóa và giá trị lưu vào bộ nhớ đệm từ các mã thông báo trước sẽ tránh thực hiện lại việc tính toán chú ý trên mỗi mã thông báo mới, tiết kiệm thời gian.

Tại sao bộ đệm KV có thể trở thành vấn đề về bộ nhớ?

Kích thước bộ đệm thay đổi theo độ dài ngữ cảnh và tính đồng thời, vì vậy các yêu cầu dài có thể sử dụng lượng bộ nhớ GPU rất lớn.

PagedAttention mượn khái niệm hệ điều hành nào?

PagedAttention lưu trữ bộ đệm trong các khối có kích thước cố định không liền kề được ánh xạ qua một bảng, giống như phân trang của hệ điều hành.

Làm cách nào để Truy vấn theo nhóm và Chú ý nhiều truy vấn giảm kích thước bộ nhớ đệm KV?

Chia sẻ các đầu khóa/giá trị trên nhiều đầu truy vấn có nghĩa là lưu trữ ít vectơ K và V hơn.

Lợi ích của việc chia sẻ tiền tố trong bộ đệm KV là gì?

Lời nhắc hệ thống dùng chung tạo ra các mục KV giống hệt nhau, do đó, nhiều yêu cầu có thể trỏ đến cùng một khối thay vì sao chép chúng.