Tăng cường hiệu quả AI với bộ nhớ đệm prompt! Tìm hiểu cách giảm độ trễ, cắt giảm chi phí và mở rộng quy mô ứng dụng AI bằng kỹ thuật mạnh mẽ này.
Bộ nhớ đệm nhắc nhở là một kỹ thuật tối ưu hóa chuyên biệt được sử dụng trong việc triển khai các Mô hình ngôn ngữ lớn (LLM) để giảm đáng kể độ trễ suy luận và chi phí tính toán. Trong bối cảnh AI tạo sinh , việc xử lý lời nhắc bao gồm việc chuyển đổi văn bản thành các biểu diễn số và tính toán mối quan hệ giữa mọi mã thông báo bằng cơ chế chú ý . Khi một phần đáng kể của lời nhắc—chẳng hạn như một lệnh hệ thống dài hoặc một tập hợp các ví dụ—vẫn tĩnh trong nhiều yêu cầu, bộ nhớ đệm nhắc nhở cho phép hệ thống lưu trữ các trạng thái toán học trung gian (cụ thể là các cặp Khóa-Giá trị) của văn bản tĩnh đó. Thay vì tính toán lại các trạng thái này cho mỗi truy vấn mới, công cụ suy luận sẽ truy xuất chúng từ bộ nhớ, cho phép mô hình tập trung sức mạnh xử lý của mình hoàn toàn vào các phần đầu vào động mới.
Cơ chế cốt lõi đằng sau việc lưu trữ tạm thời dựa trên việc quản lý cửa sổ ngữ cảnh một cách hiệu quả. Khi một LLM xử lý dữ liệu đầu vào, nó sẽ tạo ra một "KV Cache" (Khóa-Giá trị Cache) thể hiện mức độ hiểu biết của mô hình về văn bản cho đến thời điểm đó. Lưu trữ tạm thời xử lý phần đầu tiên segment của lời nhắc (tiền tố) như một tài sản có thể tái sử dụng.
Bộ nhớ đệm nhanh đang chuyển đổi cách các nhà phát triển xây dựng và mở rộng quy mô các ứng dụng học máy (ML) , đặc biệt là những ứng dụng liên quan đến xử lý văn bản nặng.
Mặc dù bộ nhớ đệm nhanh là tính năng nội bộ của máy chủ suy luận LLM, việc hiểu cấu trúc dữ liệu sẽ giúp làm rõ khái niệm này. "Bộ nhớ đệm" về cơ bản lưu trữ các tenxơ (mảng đa chiều) biểu diễn các trạng thái chú ý.
Sau đây là Python đoạn trích sử dụng torch trình bày hình dạng và khái niệm của bộ đệm Khóa-Giá trị tensor , đó là những gì được lưu trữ và sử dụng lại trong quá trình lưu trữ đệm nhanh chóng:
import torch
# Simulate a KV Cache tensor for a transformer model
# Shape: (Batch_Size, Num_Heads, Sequence_Length, Head_Dim)
batch_size, num_heads, seq_len, head_dim = 1, 32, 1024, 128
# Create a random tensor representing the pre-computed state of a long prompt
kv_cache_state = torch.randn(batch_size, num_heads, seq_len, head_dim)
print(f"Cached state shape: {kv_cache_state.shape}")
print(f"Number of cached parameters: {kv_cache_state.numel()}")
# In practice, this tensor is passed to the model's forward() method
# to skip processing the first 1024 tokens.
Điều quan trọng là phải phân biệt bộ nhớ đệm nhanh với các thuật ngữ khác trong thuật ngữ Ultralytics để áp dụng chiến lược tối ưu hóa chính xác.
Mặc dù bộ nhớ đệm nhanh là đặc trưng của Xử lý Ngôn ngữ Tự nhiên (NLP) , các nguyên tắc hiệu quả lại mang tính phổ quát. Trong thị giác máy tính (CV) , các mô hình như YOLO11 được tối ưu hóa về mặt kiến trúc để tăng tốc độ, đảm bảo các tác vụ phát hiện đối tượng đạt được tốc độ khung hình cao mà không cần cùng loại bộ nhớ đệm trạng thái như trong các mô hình ngôn ngữ tự hồi quy. Tuy nhiên, khi các mô hình đa phương thức phát triển để xử lý video và văn bản cùng lúc, việc lưu trữ các mã thông báo hình ảnh đang trở thành một lĩnh vực nghiên cứu mới nổi được mô tả trong các bài báo trên arXiv .