Khám phá Flash Attention — một phương pháp nhanh chóng, tiết kiệm bộ nhớ để tăng tốc sự chú ý của Transformer GPU đào tạo và suy luận thời gian thực cho NLP và CV.
Flash Attention là một thuật toán được tối ưu hóa cao, được thiết kế để tăng tốc quá trình huấn luyện và suy luận của các mô hình Transformer bằng cách quản lý việc truy cập bộ nhớ hiệu quả hơn. Trong học sâu (DL) hiện đại, đặc biệt là với các mô hình lớn, nút thắt cổ chai chính thường không phải là tốc độ tính toán của bộ xử lý, mà là thời gian cần thiết để di chuyển dữ liệu giữa bộ nhớ lưu trữ và các đơn vị tính toán. Flash Attention giải quyết "rào cản bộ nhớ" này bằng cách tổ chức lại cách các cơ chế chú ý xử lý dữ liệu, dẫn đến hiệu suất nhanh hơn và sử dụng bộ nhớ thấp hơn mà không làm giảm độ chính xác .
Để hiểu về Flash Attention, việc xem xét kiến trúc của GPU (Bộ xử lý đồ họa) sẽ rất hữu ích. GPU Nó có bộ nhớ băng thông cao (HBM) dung lượng lớn nhưng tốc độ chậm hơn và bộ nhớ SRAM tích hợp trên chip dung lượng thấp nhưng tốc độ cực nhanh. Các triển khai cơ chế chú ý tiêu chuẩn liên tục đọc và ghi các ma trận lớn vào HBM chậm, điều này tạo ra tình trạng tồn đọng.
Flash Attention sử dụng kỹ thuật "phân mảnh" (tiling) để chia ma trận chú ý lớn thành các khối nhỏ hơn, nằm gọn hoàn toàn trong bộ nhớ SRAM tốc độ cao. Bằng cách lưu trữ các khối này trong bộ nhớ tốc độ cao và thực hiện nhiều phép tính hơn ở đó trước khi ghi kết quả trở lại, thuật toán giảm đáng kể số lượng thao tác đọc/ghi vào HBM. Sự đổi mới này, được các nhà nghiên cứu tại Đại học Stanford giới thiệu, làm cho quy trình "nhận biết I/O" (IO-aware), nghĩa là nó tính toán rõ ràng chi phí di chuyển dữ liệu. Bạn có thể tìm hiểu chi tiết toán học trong bài báo nghiên cứu gốc .
Điều quan trọng là phải phân biệt Flash Attention với các khái niệm tương tự trong thuật ngữ trí tuệ nhân tạo (AI) :
Mặc dù ban đầu được phát triển cho Xử lý Ngôn ngữ Tự nhiên (NLP) để xử lý các chuỗi văn bản dài, Flash Attention đã trở nên quan trọng trong thị giác máy tính (CV) . Hình ảnh độ phân giải cao tạo ra các chuỗi dữ liệu khổng lồ khi được xử lý bởi Vision Transformers (ViT) .
Công nghệ này ảnh hưởng đến sự phát triển của các bộ phát hiện đối tượng. Ví dụ, YOLO12 do cộng đồng phát triển đã giới thiệu các lớp chú ý tận dụng các nguyên tắc này. Tuy nhiên, các kiến trúc chỉ dựa trên cơ chế chú ý có thể gặp phải vấn đề về tính không ổn định trong quá trình huấn luyện và tốc độ chậm. CPU về tốc độ. Đối với hầu hết các ứng dụng chuyên nghiệp, Ultralytics YOLO26 là tiêu chuẩn được khuyến nghị. YOLO26 sử dụng kiến trúc được tối ưu hóa cao, cân bằng giữa tốc độ và độ chính xác cho việc phát hiện đối tượng và phân đoạn hình ảnh từ đầu đến cuối, tránh được chi phí phát sinh thường liên quan đến các lớp chú ý phức tạp trên các thiết bị biên.
Những cải tiến về hiệu suất nhờ Flash Attention cho phép các ứng dụng trước đây quá tốn kém hoặc chạy chậm mới có thể hoạt động được.
Các khuôn khổ hiện đại như PyTorch (phiên bản 2.0 trở lên) đã tích hợp Flash Attention trực tiếp vào API chức năng của chúng dưới dạng "Scaled Dot Product Attention" (SDPA). Khi bạn huấn luyện một mô hình bằng cách sử dụng ultralytics gói phần mềm được hỗ trợ GPU (giống NVIDIA (kiến trúc Ampere hoặc Hopper), các tối ưu hóa này được áp dụng tự động.
Ví dụ sau đây minh họa cách bắt đầu quá trình huấn luyện trên một hệ thống nào đó. GPU Nếu môi trường cho phép, khung nền tảng sẽ sử dụng các nhân Flash Attention để tăng tốc quá trình huấn luyện .
import torch
from ultralytics import YOLO
# Verify CUDA device availability for Flash Attention support
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Training on: {device}")
# Load the latest YOLO26 model (recommended for stability and speed)
model = YOLO("yolo26n.pt")
# Train the model; PyTorch 2.0+ automatically uses optimized attention kernels
if device == "cuda":
model.train(data="coco8.yaml", epochs=5, imgsz=640, device=0)
Khi phần cứng tiếp tục phát triển, các công cụ như Nền tảng Ultralytics sẽ tận dụng những tối ưu hóa cấp thấp này để đảm bảo các quá trình huấn luyện diễn ra hiệu quả về chi phí và nhanh nhất có thể cho các nhà phát triển.