Bộ đệm KV
Bộ đệm KV lưu trữ các vectơ khóa và giá trị mà máy biến áp đã tính toán cho các mã thông báo trước đó, do đó, nó không phải tính toán lại chúng cho mỗi từ mới mà nó tạo ra.
Tổng quan
It is the single biggest reason text generation is fast — and the main thing eating your GPU memory during long conversations.
Lặn sâu
Transformers tạo văn bản mỗi lần một mã thông báo và lớp chú ý của mỗi mã thông báo mới cần so sánh với mọi mã thông báo trước đó. Cơ chế chú ý biến mỗi mã thông báo thành một vectơ truy vấn, khóa và giá trị. Nếu không có bộ nhớ đệm, việc tạo mã thông báo số 1.000 có nghĩa là phải tính toán lại các khóa và giá trị cho tất cả 999 mã thông báo trước đó ở mỗi bước — công việc bậc hai, lãng phí. Bộ nhớ đệm KV lưu các vectơ khóa và giá trị đó sau khi chúng được tính toán lần đầu tiên và sử dụng lại chúng, vì vậy, mỗi bước mới chỉ tính toán các vectơ cho mã thông báo mới nhất và lưu trữ trên bộ nhớ đệm đã lưu trữ. Điều này làm giảm chi phí trên mỗi mã thông báo từ việc chia tỷ lệ theo độ dài chuỗi xuống gần như không đổi. Sự đánh đổi là bộ nhớ: bộ nhớ đệm phát triển tuyến tính theo độ dài ngữ cảnh, số lớp và đầu chú ý, thường trở thành bộ nhớ chiếm ưu thế trong phân phối ngữ cảnh dài.
Hiểu biết kỹ thuật
Trong giai đoạn 'điền trước', mô hình xử lý toàn bộ lời nhắc và lấp đầy bộ đệm; trong quá trình 'giải mã', nó sẽ thêm K/V của một mã thông báo vào mỗi bước và tham gia lại. Kích thước bộ đệm chia tỷ lệ thành 2 (K và V) × lớp × đầu × head_dim × Sequence_length × lô, với độ chính xác đã chọn. Để khắc phục điều này, các mô hình hiện đại sử dụng truy vấn nhóm hoặc chú ý nhiều truy vấn để chia sẻ khóa/giá trị giữa các đầu và các hệ thống phục vụ như vLLM sử dụng PagedAttention để phân bổ bộ đệm trong các khối không liền kề, cắt giảm sự phân mảnh và lãng phí.
Tác động chiến lược
Tốc độ và tỷ lệ
Quy trình công việc ngôn ngữ có thể di chuyển nhanh hơn mà không làm mất tính nhất quán.
Truy cập và tiếp cận
Nó mở rộng quyền truy cập vào các ngôn ngữ và phong cách giao tiếp.
Quyết định rõ ràng hơn
Các nhóm có thể dành nhiều thời gian hơn để đánh giá trong khi quá trình tự động hóa xử lý sự lặp lại.
Tương lai của KV Cache
Khi các cửa sổ ngữ cảnh mở rộng tới hàng trăm nghìn mã thông báo, bộ đệm KV trở thành nút thắt cổ chai trung tâm, do đó quá trình đổi mới diễn ra rất khốc liệt: lượng tử hóa bộ đệm thành 8 hoặc 4 bit, chính sách trục xuất loại bỏ các mã thông báo có tầm quan trọng thấp, chia sẻ tiền tố yêu cầu chéo và giảm tải cho CPU hoặc đĩa. Những thay đổi về kiến trúc như sự chú ý tiềm ẩn của nhiều đầu sẽ tự nén bộ nhớ đệm. Mong đợi sự đồng thiết kế liên tục của các biến thể chú ý và hệ thống bộ nhớ nhằm phục vụ các bối cảnh rất dài với chi phí thấp và thông lượng cao.
Triển khai trong thế giới thực
Tăng tốc độ trả lời của chatbot bằng cách sử dụng lại các khóa/giá trị được lưu trong bộ nhớ đệm từ lịch sử cuộc trò chuyện thay vì xử lý lại mỗi lượt.
Bộ nhớ đệm tiền tố chia sẻ bộ đệm để có lời nhắc hệ thống dài cho nhiều người dùng, cắt giảm chi phí và độ trễ.
PagedAttention của vLLM quản lý bộ đệm KV theo khối để phục vụ nhiều yêu cầu đồng thời trên một GPU một cách hiệu quả.
Định lượng bộ đệm KV để có độ chính xác thấp hơn nhằm phù hợp với bối cảnh dài hơn trong bộ nhớ GPU hạn chế.
Rủi ro & lan can
Sự thật ảo giác có thể lặng lẽ đi vào báo cáo, luồng hỗ trợ hoặc kết quả nghiên cứu.
Sự nhạy cảm kịp thời có thể tạo ra kết quả không nhất quán đối với các yêu cầu tương tự.
Dữ liệu văn bản nhạy cảm có thể bị lộ nếu khả năng kiểm soát quyền truy cập yếu.
Lộ trình thực hiện
Xác định định dạng đầu ra, âm thanh và tiêu chuẩn chất lượng trước khi triển khai.
Phản hồi mặt đất với các nguồn đáng tin cậy bất cứ khi nào độ chính xác quan trọng.
Duy trì điểm kiểm tra đánh giá của con người đối với các kết quả đầu ra có mức độ rủi ro cao.
Theo dõi các kiểu lỗi và đào tạo lại các lời nhắc hoặc quy trình làm việc thường xuyên.
Tiếp tục khám phá
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the KV Cache quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Hướng dẫn tiếp theo
Tối ưu hóa bộ đệm KV
Câu hỏi thường gặp
What is KV Cache?
Bộ đệm KV lưu trữ các vectơ khóa và giá trị mà máy biến áp đã tính toán cho các mã thông báo trước đó, do đó, nó không phải tính toán lại chúng cho mỗi từ mới mà nó tạo ra. Đó là lý do lớn nhất khiến việc tạo văn bản diễn ra nhanh — và nguyên nhân chính làm tiêu tốn bộ nhớ GPU của bạn trong các cuộc trò chuyện dài.
Bộ đệm KV lưu trữ những gì?
Bộ đệm KV giữ các vectơ khóa và giá trị từ các mã thông báo trước đó để sự chú ý có thể sử dụng lại chúng thay vì tính toán lại.
Bộ đệm KV chủ yếu giải quyết vấn đề gì?
Nếu không có bộ nhớ đệm, mỗi mã thông báo mới sẽ yêu cầu tính toán lại K/V cho mọi mã thông báo trước đó, điều này thật lãng phí; bộ nhớ đệm làm cho giá mỗi mã thông báo gần như không đổi.
Nhược điểm chính của bộ đệm KV là gì?
Bộ đệm phát triển theo độ dài chuỗi, lớp và đầu, thường trở thành bộ nhớ GPU chiếm ưu thế trong phân phối ngữ cảnh dài.
Kỹ thuật nào làm giảm kích thước bộ đệm KV bằng cách chia sẻ khóa và giá trị giữa các đầu chú ý?
Sự chú ý đến truy vấn được nhóm và nhiều truy vấn cho phép nhiều đầu truy vấn chia sẻ ít bộ khóa/giá trị hơn, thu hẹp đáng kể bộ nhớ đệm.
Hai giai đoạn suy luận của máy biến áp liên quan đến bộ đệm KV là gì?
Điền trước sẽ lấp đầy bộ đệm bằng K/V của lời nhắc; giải mã sẽ thêm K/V của một mã thông báo mới vào mỗi bước và giám sát lại bộ nhớ đệm.