PagedAttention
Tìm hiểu cách PagedAttention tối ưu hóa quản lý bộ nhớ LLM và hiệu suất KV cache. Khám phá tác động của nó đối với thông lượng và cách nó so sánh với hiệu suất của Ultralytics YOLO26.
PagedAttention là một thuật toán quản lý bộ nhớ hiệu quả cao được thiết kế để tối ưu hóa tốc độ suy luận (inference) và thông lượng (throughput) của các Large Language Models (LLMs). Lấy cảm hứng từ các khái niệm bộ nhớ ảo và phân trang (paging) trong các hệ điều hành truyền thống, kỹ thuật này giải quyết tình trạng tiêu thụ bộ nhớ khổng lồ liên quan đến bộ nhớ đệm key-value (thường được gọi là KV cache) trong quá trình tạo văn bản. Bằng cách chia các khối bộ nhớ liên tục cần thiết cho cache thành các "trang" nhỏ hơn, không liên tục, PagedAttention loại bỏ hiệu quả tình trạng phân mảnh bộ nhớ cả bên trong và bên ngoài. Điều này cho phép các máy chủ AI xử lý cùng lúc nhiều yêu cầu hơn đáng kể, tối đa hóa hiệu suất sử dụng GPU.
Link to this sectionPagedAttention so với Flash Attention#
Mặc dù cả hai kỹ thuật đều tối ưu hóa hiệu suất mạng thần kinh, chúng nhắm vào các nút thắt cổ chai khác nhau. Flash Attention là một giải pháp tối ưu hóa ở cấp độ tính toán giúp tăng tốc cơ chế attention bằng cách giảm thiểu việc đọc và ghi bộ nhớ chậm trên hệ thống phân cấp GPU. Ngược lại, PagedAttention là một chiến lược cấp phát bộ nhớ. Nó tập trung hoàn toàn vào cách cấu trúc và lưu trữ bộ nhớ cho cửa sổ ngữ cảnh (context window), cho phép mở rộng linh hoạt mà không cần phải cấp phát trước các khối bộ nhớ lớn gây lãng phí.
Link to this sectionCác ứng dụng trong thực tế#
Hiệu suất bộ nhớ mà PagedAttention mang lại đã thay đổi cách các mô hình tạo sinh quy mô lớn được triển khai trong môi trường sản xuất.
-
High-Throughput API Serving: Các hệ thống sản xuất phục vụ những mô hình tương tự như GPT-4 sử dụng PagedAttention thông qua các framework như vLLM. Bằng cách chia sẻ các khối bộ nhớ giữa các yêu cầu người dùng khác nhau, các nhà cung cấp có thể phục vụ số lượng người dùng gấp bốn lần trên cùng một phần cứng, giúp giảm đáng kể chi phí vận hành các dịch vụ AI dựa trên nền tảng đám mây.
-
Complex Decoding Strategies: Khi một mô hình AI tạo ra nhiều phản hồi tiềm năng cùng lúc (chẳng hạn như trong tìm kiếm beam search hoặc lấy mẫu song song), PagedAttention cho phép các chuỗi song song này chia sẻ các trang bộ nhớ nền tảng một cách an toàn. Điều này ngăn hệ thống sao chép bộ nhớ dư thừa, giúp các tác vụ suy luận phức tạp nhanh hơn đáng kể.
Link to this sectionHiệu suất bộ nhớ trong thị giác máy tính#
Mặc dù PagedAttention chủ yếu được sử dụng trong xử lý ngôn ngữ tự nhiên, nguyên lý cốt lõi về tối ưu hóa bộ nhớ nghiêm ngặt cũng quan trọng không kém trong thị giác máy tính (computer vision - CV). Khi triển khai các mô hình lên thiết bị biên (edge device) hạn chế về phần cứng, việc tránh tình trạng phình to bộ nhớ là rất cần thiết. Ultralytics YOLO26 đạt được hiệu quả suy luận thời gian thực một cách tự nhiên, bỏ qua nhu cầu quản lý cache nặng nề bằng cách sử dụng kiến trúc end-to-end không cần NMS.
Đối với các nhà phát triển đang tìm cách xử lý liền mạch các yêu cầu về bộ nhớ và xuất dữ liệu của các quy trình phát hiện đối tượng (object detection), Ultralytics Platform cung cấp các công cụ triển khai tự động giúp đóng gói mô hình để đạt hiệu suất thực thi tối ưu trên phần cứng.
Link to this sectionVí dụ về mã#
PagedAttention hoạt động ngầm bên trong các framework phục vụ, thay thế các hàm attention tiêu chuẩn bằng các nhân (kernel) Cuda đã được tối ưu hóa. Dưới đây là ví dụ khái niệm minh họa cách định nghĩa attention tiêu chuẩn trong PyTorch, mà các hệ thống như vLLM sẽ tự động can thiệp và tối ưu hóa bằng phương pháp phân trang trong quá trình triển khai mô hình.
import torch
import torch.nn.functional as F
# Simulated Key, Query, and Value tensors for a standard attention block
batch_size, num_heads, sequence_length, head_dim = 1, 8, 1024, 64
query = torch.randn(batch_size, num_heads, sequence_length, head_dim)
key = torch.randn(batch_size, num_heads, sequence_length, head_dim)
value = torch.randn(batch_size, num_heads, sequence_length, head_dim)
# Standard attention computation (often replaced by PagedAttention kernels in production LLM servers)
attention_output = F.scaled_dot_product_attention(query, key, value)
print(f"Computed attention shape: {attention_output.shape}")Bằng cách tận dụng các chiến lược cấp phát bộ nhớ tiên tiến, ngành công nghiệp AI tiếp tục đẩy xa các giới hạn về khả năng thực thi, đảm bảo rằng các mô hình nền tảng khổng lồ có thể được mở rộng và truy cập hiệu quả trên toàn thế giới.






