Vì sao context dài lại đắt, và hai hướng làm nó rẻ hơn

Vì sao context dài lại đắt, và hai hướng làm nó rẻ hơn A data-flow diagram generated by Archify. 01 / Độ dài 02 / Tương tác 03 / Cái giá 04 / Hai hướng tối ưu Sequence length n · 1k · 4k · 16k · 32k · 01 / Độ dài Sequence length n 1k · 4k · 16k · 32k Mọi cặp token · ma trận score n × n · 02 / Tương tác · mỗi head, mỗi layer Mọi cặp token ma trận score n × n mỗi head, mỗi layer Compute bậc hai theo n · 32k token là hơn một tỷ ô · 03 / Cái giá Compute bậc hai theo n 32k token là hơn một tỷ ô Đọc ghi bộ nhớ · materialize A rất tốn HBM · 03 / Cái giá Đọc ghi bộ nhớ materialize A rất tốn HBM Đổi pattern attention · sparse · local · xấp xỉ · 04 / Hai hướng tối ưu · kết quả đổi theo Đổi pattern attention sparse · local · xấp xỉ kết quả đổi theo FlashAttention · vẫn exact, tính IO-aware · 04 / Hai hướng tối ưu · kết quả không đổi FlashAttention vẫn exact, tính IO-aware kết quả không đổi mọi cặp đều phải xét chi phí tính toán chi phí bộ nhớ hướng 1: đổi thuật toán hướng 2: tính thông minh hơn Legend primary data data store data flow

Nói cost bậc hai là nói về phần nào

  • • Bậc n bình phương nhân d là chi phí của phần attention theo độ dài
  • • Một layer đầy đủ còn có Q K V projection, W_O và FFN
  • • Những phần đó thường có term bậc n nhân d bình phương

Số ô trong một attention matrix

  • • 1.024 token là hơn một triệu ô
  • • 4.096 token là gần 17 triệu ô
  • • 32.768 token là hơn một tỷ ô, cho mỗi head và mỗi layer

FlashAttention không phải attention gần đúng

  • • Bản exact tính đúng cùng một kết quả attention
  • • Nó chia Q, K, V thành block và cập nhật softmax theo tile
  • • Cái thay đổi là lịch tính toán và truy cập bộ nhớ, không phải công thức