Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Bộ nhớ đệm KV

Khám phá cách KV Cache tối ưu hóa các mô hình Transformer như LLM. Tìm hiểu cách kỹ thuật này giảm độ trễ suy luận và tăng hiệu quả. Ultralytics YOLO26.

Bộ nhớ đệm KV (Key-Value Cache) là một kỹ thuật tối ưu hóa quan trọng được sử dụng chủ yếu trong các Mô hình Ngôn ngữ Lớn (LLM) và các kiến ​​trúc dựa trên Transformer khác để tăng tốc độ trễ suy luận và giảm chi phí tính toán. Về cơ bản, bộ nhớ đệm KV lưu trữ các ma trận Khóa và Giá trị được tạo ra bởi cơ chế chú ý cho các mã thông báo trước đó trong một chuỗi. Bằng cách lưu trữ các phép tính trung gian này, mô hình tránh việc tính toán lại trạng thái chú ý cho toàn bộ lịch sử hội thoại mỗi khi nó tạo ra một mã thông báo mới. Quá trình này chuyển đổi quy trình tạo văn bản từ một phép toán có độ phức tạp bậc hai thành một phép toán tuyến tính, giúp cho việc tương tác thời gian thực với chatbot và các tác nhân AI trở nên khả thi.

Cơ chế và lợi ích

Trong mô hình Transformer tiêu chuẩn, việc tạo ra từ tiếp theo đòi hỏi phải chú ý đến tất cả các từ trước đó để hiểu ngữ cảnh. Nếu không có bộ nhớ đệm, mô hình sẽ cần phải tính toán lại các mối quan hệ toán học cho toàn bộ chuỗi ở mỗi bước. Bộ nhớ đệm KV giải quyết vấn đề này bằng cách hoạt động như một ngân hàng bộ nhớ.

  • Cải thiện tốc độ: Bằng cách truy xuất các khóa và giá trị đã được tính toán trước từ bộ nhớ, hệ thống tăng tốc đáng kể công cụ suy luận . Điều này rất cần thiết cho các ứng dụng yêu cầu độ trễ thấp, chẳng hạn như suy luận thời gian thực trong các bot dịch vụ khách hàng.
  • Hiệu quả sử dụng tài nguyên: Mặc dù làm tăng mức sử dụng bộ nhớ ảo (VRAM), nhưng nó làm giảm đáng kể số phép tính (FLOPs) cần thiết cho mỗi token. Sự đánh đổi này thường được quản lý thông qua các kỹ thuật như lượng tử hóa mô hình hoặc phân trang, tương tự như cách hệ điều hành quản lý RAM.
  • Ngữ cảnh mở rộng: Việc quản lý hiệu quả bộ nhớ đệm KV cho phép các mô hình xử lý cửa sổ ngữ cảnh lớn hơn, giúp chúng xử lý các tài liệu dài hoặc duy trì các cuộc hội thoại mạch lạc trong thời gian dài.

Các Ứng dụng Thực tế

Bộ nhớ đệm KV là một thành phần cơ bản trong việc triển khai trí tuệ nhân tạo tạo sinh hiện đại, nhưng các nguyên tắc của nó cũng được mở rộng sang lĩnh vực thị giác máy tính (CV) .

  1. Chatbot tạo sinh: Các dịch vụ như ChatGPT hoặc Claude dựa rất nhiều vào bộ nhớ đệm KV (Key View Cache). Khi người dùng đặt câu hỏi tiếp theo, mô hình không đọc lại toàn bộ lịch sử trò chuyện từ đầu. Thay vào đó, nó thêm đầu vào mới vào trạng thái được lưu trong bộ nhớ đệm của lượt trước, cho phép phản hồi gần như tức thì.
  2. Hiểu video: Trong các tác vụ hiểu video , mô hình xử lý các khung hình theo trình tự. Tương tự như các mã văn bản, các đặc điểm hình ảnh từ các khung hình trước đó có thể được lưu vào bộ nhớ đệm để hỗ trợ mô hình. track Nhận diện đối tượng hoặc hành động mà không cần xử lý lại toàn bộ lịch sử video. Điều này đặc biệt hữu ích cho việc nhận diện hành động, nơi ngữ cảnh thời gian đóng vai trò rất quan trọng.

Quản lý bộ nhớ hiệu quả

Khi các mô hình trở nên lớn hơn, kích thước của bộ nhớ đệm KV có thể trở thành nút thắt cổ chai, tiêu tốn hàng gigabyte. GPU bộ nhớ. Những tiến bộ gần đây tập trung vào việc tối ưu hóa bộ nhớ này.

  • PagedAttention: Lấy cảm hứng từ bộ nhớ ảo trong hệ điều hành, PagedAttention (được giới thiệu bởi vLLM) cho phép bộ nhớ đệm KV được lưu trữ trong các khối bộ nhớ không liền kề. Điều này giúp giảm phân mảnh và cho phép kích thước lô lớn hơn trong quá trình phục vụ mô hình .
  • Lượng tử hóa bộ nhớ đệm KV: Để tiết kiệm không gian, các nhà phát triển thường áp dụng lượng tử hóa độ chính xác hỗn hợp hoặc int8 cho các giá trị được lưu trong bộ nhớ đệm. Điều này giúp giảm dung lượng bộ nhớ sử dụng, cho phép các thiết bị AI biên với RAM hạn chế chạy được các mô hình mạnh mẽ.
  • Bộ nhớ đệm lời nhắc: Một kỹ thuật liên quan, trong đó trạng thái KV của lời nhắc hệ thống tĩnh (ví dụ: "Bạn là một trợ lý lập trình hữu ích") được tính toán một lần và sử dụng lại trong nhiều phiên người dùng khác nhau. Đây là một tính năng cốt lõi để tối ưu hóa quy trình thiết kế lời nhắc ở quy mô lớn.

Phân biệt các khái niệm liên quan

Việc phân biệt KV Cache với các thuật ngữ tối ưu hóa và bộ nhớ đệm khác là rất hữu ích:

  • So sánh KV Cache và Prompt Caching : KV Cache thường đề cập đến bộ nhớ động, xử lý từng token một, được sử dụng trong một luồng tạo mã duy nhất. Prompt caching đặc biệt đề cập đến việc lưu trữ trạng thái đã xử lý của một lệnh đầu vào cố định để sử dụng lại trong nhiều lệnh suy luận độc lập.
  • So sánh KV Cache và Embeddings : Embeddings là các biểu diễn vector của dữ liệu đầu vào (văn bản hoặc hình ảnh) nắm bắt ý nghĩa ngữ nghĩa. KV cache lưu trữ các giá trị kích hoạt (khóa và giá trị) được tạo ra từ các embeddings này trong các lớp attention, đặc biệt là cho mục đích tạo chuỗi.
  • So sánh giữa KV Cache và Model Weights : Model weights là các tham số tĩnh, đã được học của mạng nơ-ron. KV cache bao gồm dữ liệu động, tạm thời được tạo ra trong quá trình truyền tiến của một chuỗi đầu vào cụ thể.

Ví dụ: Bối cảnh trong các mô hình thị giác

Mặc dù bộ nhớ đệm KV nổi tiếng nhất trong xử lý ngôn ngữ tự nhiên (NLP), khái niệm duy trì trạng thái cũng áp dụng cho các mô hình thị giác nâng cao. Trong ví dụ dưới đây, chúng ta mô phỏng ý tưởng truyền trạng thái (ngữ cảnh) trong kịch bản theo dõi video bằng Ultralytics YOLO26 . Ở đây, trình theo dõi duy trì danh tính của các đối tượng giữa các khung hình, về mặt khái niệm tương tự như cách bộ nhớ đệm duy trì ngữ cảnh giữa các token.

from ultralytics import YOLO

# Load the Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")

# Track objects in a video, maintaining identity state across frames
# The 'track' mode effectively caches object features to link detections
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=False)

# Print the ID of the tracked objects
if results[0].boxes.id is not None:
    print(f"Tracked IDs: {results[0].boxes.id.numpy()}")

Các nhà phát triển muốn quản lý tập dữ liệu và triển khai các mô hình được tối ưu hóa có thể sử dụng Nền tảng Ultralytics , giúp đơn giản hóa quy trình từ chú thích dữ liệu đến triển khai mô hình hiệu quả. Đối với những người quan tâm đến cơ chế hoạt động sâu hơn của cơ chế chú ý, các thư viện như PyTorch cung cấp các khối nền tảng để triển khai các cơ chế bộ nhớ đệm này.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay