Khám phá Flash Attention — một phương pháp nhanh, tiết kiệm bộ nhớ dành cho Transformer Attention giúp tăng tốc quá trình đào tạo GPU và suy luận thời gian thực cho NLP và CV.
Flash Attention là một thuật toán hiệu quả cao được thiết kế để triển khai cơ chế chú ý tiêu chuẩn được sử dụng trong các mạng Transformer . Đây không phải là một loại chú ý mới mà là một phương pháp đột phá để tính toán nó nhanh hơn nhiều và sử dụng ít bộ nhớ hơn đáng kể. Việc tối ưu hóa này rất quan trọng cho việc đào tạo và chạy các mô hình quy mô lớn, đặc biệt là trong Xử lý Ngôn ngữ Tự nhiên (NLP) và Thị giác Máy tính (CV) . Đổi mới này lần đầu tiên được trình bày chi tiết trong bài báo "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness" của các nhà nghiên cứu tại Đại học Stanford .
Điểm nghẽn chính trong các cơ chế chú ý truyền thống không phải là số lượng phép tính mà là tốc độ truy cập bộ nhớ trên GPU . Chú ý tiêu chuẩn đòi hỏi nhiều thao tác đọc và ghi vào bộ nhớ băng thông cao (HBM) của GPU, vốn tương đối chậm so với SRAM trên chip của GPU. Flash Attention khéo léo tái cấu trúc phép tính để giảm thiểu việc truyền tải bộ nhớ này. Nó đạt được điều này bằng cách:
Cách tiếp cận này tránh được việc tạo và lưu trữ ma trận chú ý trung gian khổng lồ trong HBM, vốn là nguyên nhân chính gây ra tình trạng kém hiệu quả của bộ nhớ và làm chậm sự chú ý tiêu chuẩn, đặc biệt là khi xử lý chuỗi dữ liệu dài.
Mặc dù Flash Attention và standard attention tạo ra kết quả toán học tương đương nhau, hiệu quả hoạt động của chúng lại rất khác nhau. Sự khác biệt chính nằm ở khả năng nhận thức phần cứng. Cơ chế tự chú ý tiêu chuẩn bị ràng buộc bởi bộ nhớ, nghĩa là tốc độ của nó bị giới hạn bởi tốc độ truy cập bộ nhớ. Flash Attention bị ràng buộc bởi tính toán, tận dụng tốt hơn các lõi xử lý mạnh mẽ của GPU. Điều này khiến nó trở thành một thuật toán nhận thức I/O, giúp tăng tốc đáng kể việc huấn luyện mô hình và suy luận thời gian thực .
Một số mô hình, như YOLO12 , giới thiệu kiến trúc tập trung vào sự chú ý, trong đó Flash Attention có thể được sử dụng để tối ưu hóa hiệu suất. Tuy nhiên, đối với hầu hết các ứng dụng, thiết kế tinh gọn và hiệu quả của các mô hình như Ultralytics YOLO11 mang lại sự cân bằng mạnh mẽ hơn giữa tốc độ và độ chính xác .
Hiệu quả của Flash Attention đã mang lại những tiến bộ đáng kể trong học sâu .
Điều quan trọng cần lưu ý là việc sử dụng Flash Attention yêu cầu phần cứng chuyên biệt. Nó được thiết kế để tận dụng kiến trúc bộ nhớ của các GPU NVIDIA hiện đại, bao gồm dòng Turing, Ampere, Ada Lovelace và Hopper. Các nền tảng học máy hiện đại như PyTorch và các công cụ có sẵn trên Hugging Face đã tích hợp hỗ trợ Flash Attention, giúp các nhà phát triển dễ tiếp cận hơn.