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

Sự chú ý chớp nhoáng

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 .

Cách thức hoạt động của Flash Attention

Để 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 .

Phân biệt với các thuật ngữ liên quan

Đ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) :

  • Cơ chế Attention tiêu chuẩn: Đây là cách triển khai truyền thống tính toán ma trận attention đầy đủ. Về mặt toán học, nó cho kết quả giống hệt Flash Attention nhưng thường chậm hơn và tốn nhiều bộ nhớ hơn vì không tối ưu hóa thao tác đọc/ghi bộ nhớ.
  • Flash Attention: Một sự tối ưu hóa chính xác của cơ chế attention tiêu chuẩn. Nó không chỉ là phép xấp xỉ; nó cung cấp kết quả tính toán chính xác như nhau, nhưng nhanh hơn đáng kể.
  • Sparse Attention: Một kỹ thuật xấp xỉ bỏ qua một số kết nối nhất định để tiết kiệm sức mạnh tính toán. Không giống như Flash Attention, sparse attention đánh đổi một phần độ chính xác để đổi lấy tốc độ.

Tính ứng dụng trong Thị giác máy tính và YOLO

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ượngphâ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.

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

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.

  1. Trí tuệ nhân tạo tạo sinh ngữ cảnh dài: Trong thế giới của các mô hình ngôn ngữ lớn (LLM) như GPT-4 , Flash Attention cho phép mô hình "ghi nhớ" một lượng lớn thông tin. Điều này tạo ra một cửa sổ ngữ cảnh khổng lồ, cho phép người dùng tải lên toàn bộ sách hoặc bộ luật để tóm tắt văn bản mà không lo mô hình bị sập do giới hạn bộ nhớ.
  2. Chẩn đoán y tế độ phân giải cao: Trong phân tích hình ảnh y tế , chi tiết rất quan trọng. Các nhà bệnh lý học phân tích các bản quét gigapixel của mẫu mô. Flash Attention cho phép các mô hình xử lý những hình ảnh khổng lồ này ở độ phân giải gốc, xác định các bất thường nhỏ như khối u não giai đoạn đầu mà không cần giảm độ phân giải hình ảnh và làm mất dữ liệu quan trọng.

Triển khai với PyTorch Và Ultralytics

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.

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