Khám phá cách Flash Attention tối ưu hóa bộ nhớ và tăng tốc các mô hình Transformer. Tìm hiểu cách nó nâng cao khả năng nhận diện hình ảnh máy tính và lý do tại sao. Ultralytics YOLO26 là sự lựa chọn hàng đầu.
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 kỹ thuật 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ụ, một số mô hình thử nghiệm như 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 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.
Mặc dù Flash Attention thường là một tối ưu hóa nội bộ trong các thư viện như PyTorch , bạn vẫn có thể dễ dàng tận dụng các mô hình dựa trên cơ chế chú ý bằng cách sử dụng... Ultralytics Đoạn mã sau đây minh họa cách tải mô hình RT-DETR , sử dụng cơ chế chú ý, để thực hiện suy luận trên hình ảnh.
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model which utilizes transformer attention
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")
Sử dụng các công cụ như Nền tảng Ultralytics , các nhà phát triển có thể huấn luyện và triển khai các mô hình phức tạp này mà không cần phải tự tay thực hiện các thao tác phức tạp. GPU Nền tảng này xử lý cơ sở hạ tầng, cho phép các nhóm tập trung vào việc tuyển chọn các bộ dữ liệu chất lượng cao và diễn giải kết quả.