FlashAttention
FlashAttention — це ефективний алгоритм пам’яті, який обчислює таку саму увагу, як стандартні трансформатори, але без жодного запису гігантської матриці уваги для сповільнення пам’яті GPU.
Огляд
It made long-context training and inference dramatically faster and cheaper.
Глибоке занурення
Стандартна увага обчислює оцінку для кожної пари токенів, створюючи матрицю N на N. Для послідовності з 4000 маркерів це 16 мільйонів балів, а матрицю потрібно записати та зчитати з пам’яті високої пропускної здатності GPU (HBM). Цей трафік пам’яті, а не математика, є справжнім вузьким місцем. FlashAttention, представлений Tri Dao та його колегами у 2022 році, реструктурує обчислення, щоб матриця ніколи не була повністю матеріалізована. Він обробляє послідовність у фрагментах, які вміщуються в крихітну надшвидку вбудовану SRAM графічного процесора, поступово обчислюючи softmax. Результат математично ідентичний стандартному зверненню уваги, але використовує набагато менше пам’яті та працює в кілька разів швидше, уможливлюючи набагато довші контекстні вікна.
Технічне розуміння
Хитрість полягає в «онлайн-софтмаксі» в поєднанні з тайлінгом. FlashAttention завантажує невеликі блоки запитів, ключів і значень у SRAM, обчислює часткові виходи уваги та перемасштабує поточні суми, коли надходять нові блоки, щоб нормалізація softmax залишалася правильною, не переглядаючи всі оцінки одночасно. Оскільки він ніколи не зберігає повну матрицю N на N у HBM, пам’ять масштабується лінійно, а не квадратично, а ядро об’єднано в одну операцію GPU, щоб мінімізувати повільне читання та запис пам’яті.
Стратегічний вплив
Швидкість і масштаб
Мовні робочі процеси можуть рухатися швидше без шкоди для узгодженості.
Доступ і охоплення
Це розширює доступ до різних мов і стилів спілкування.
Чіткіші рішення
Команди можуть витрачати більше часу на оцінювання, поки автоматизація справляється з повторенням.
Майбутнє FlashAttention
FlashAttention став будівельним блоком за замовчуванням. FlashAttention-2 удосконалив робочі розділи графічного процесора, а FlashAttention-3 використовує нові апаратні функції Hopper, такі як асинхронність і низькоточний FP8. Очікуйте продовження спільного проектування з чіпами, глибшої інтеграції в сервери висновків для довгих документів і варіантів, налаштованих на розріджену або ковзаючу увагу. Оскільки контекстні вікна просуваються до мільйонів токенів, ядра з підтримкою вводу-виводу, подібні до цього, залишаються важливими для підтримки витрат на навчання та обслуговування.
Реалізація в реальному світі
Навчання великих мовних моделей, таких як Llama та систем у стилі GPT, швидше та з меншою вартістю GPU
Обслуговування помічників у довгоконтекстному чаті, які завантажують цілі книги або кодові бази, не вичерпуючи пам’ять
Прискорення конвеєрів узагальнення документів, які обробляють десятки тисяч токенів одночасно
Потужність бачення та мультимодальні трансформатори, де довгі послідовності фрагментів зображень роблять увагу дорогою
Ризики та огорожі
Галюциновані факти можуть непомітно входити у звіти, допоміжні потоки або результати досліджень.
Делікатність підказок може створити суперечливі результати для подібних запитів.
Конфіденційні текстові дані можуть бути розкриті, якщо контроль доступу слабкий.
Дорожня карта впровадження
Визначте вихідний формат, тон і стандарти якості перед розгортанням.
Якщо точність має значення, зв’яжіться з надійними джерелами.
Тримайте контрольну точку перевірки людьми для отримання високих ставок.
Відстежуйте моделі збоїв і регулярно перенавчайте підказки або робочі процеси.
Продовжуйте досліджувати
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the FlashAttention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Наступний посібник
Вбудовування поворотного положення
Часті запитання
What is FlashAttention?
FlashAttention — це ефективний алгоритм пам’яті, який обчислює таку саму увагу, як стандартні трансформатори, але без жодного запису гігантської матриці уваги для сповільнення пам’яті GPU. Це значно пришвидшило та здешевило довгоконтекстне навчання та висновки.
Що є основним вузьким місцем FlashAttention, на яке спрямована стандартна увага?
Стандартна увага прив’язана до пам’яті: переміщення величезної матриці N-на-N до пам’яті з високою пропускною здатністю та з неї домінує над часом, а не над самою арифметикою.
Як результат FlashAttention порівнюється зі стандартною увагою?
FlashAttention обчислює ті самі значення уваги; він просто реорганізовує обчислення, щоб уникнути матеріалізації повної матриці.
Пам’ять якого графічного процесора використовує FlashAttention для обробки даних у плитках?
FlashAttention завантажує невеликі фрагменти в швидку вбудовану SRAM графічного процесора, зберігаючи важку роботу поблизу обчислювальних блоків.
Яка техніка дозволяє FlashAttention обчислювати softmax, не переглядаючи всі бали одночасно?
Онлайновий softmax підтримує поточні максимуми та суми, змінюючи часткові результати, коли надходять нові плитки, щоб остаточна нормалізація була правильною.
Чим конкретно скористався FlashAttention-3?
FlashAttention-3 було розроблено спільно з сучасними графічними процесорами Hopper із використанням асинхронного виконання та низької точності FP8 для подальшого прискорення.