Flash Attention – Tính Toán Attention Theo Chunk (Memory-Efficient)
Standard attention phải tạo ma trận N × N tốn O(N2) bộ nhớ. Flash Attention tính toán theo chunk nhỏ:
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: self-attention-mechanism.
Nội dung đề bài
Mục tiêu kiến thức
Standard attention phải tạo ma trận N × N tốn O(N2) bộ nhớ. Flash Attention tính toán theo chunk nhỏ:
Online Softmax với 2 chunk: mi = max(mi-1, maxj Sij) (max tracker) li = emi-1 - mi li-1 + ∑j eSij - mi (sum tracker) Oi = emi-1 - mi li-1 Oi-1 + ∑j eSij - mi Vjli
Yêu cầu
def chunked_attention(
Q: torch.Tensor, # [N, d]
K: torch.Tensor, # [N, d]
V: torch.Tensor, # [N, d]
chunk_size: int = 32
) -> torch.Tensor:
# Returns attention output [N, d] WITHOUT materializing full N×N attention matrix
passInput
- Hàm
chunked_attention(Q,K,V,chunk_size): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm
chunked_attention: Trả về kết quả kiểutorch.Tensortheo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 10000ms.
- Giới hạn bộ nhớ: 1024MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
torch.manual_seed(42)
N, d = (16, 8)
Q = torch.randn(N, d)
K = torch.randn(N, d)
V = torch.randn(N, d)
out_chunked = chunked_attention(Q, K, V, chunk_size=4)
out_ref = reference_attention(Q, K, V)Output
Tensor shape: (16, 8), dtype=torch.float32Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
torch.manual_seed(0)
N, d = (8, 4)
Q, K, V = (torch.randn(N, d), torch.randn(N, d), torch.randn(N, d))
chunked_attention(Q, K, V, chunk_size=4)Output
Tensor shape: (8, 4), dtype=torch.float32Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
