Технічний КЕРІВНИЦТВО

Спалах уваги

Flash Attention — це розумний спосіб обчислити крок уваги в Transformers без написання гігантської матриці уваги для сповільнення пам’яті.

2 хвилини читанняОстаннє оновлення

Огляд

It makes long-context models far faster and more memory-efficient without changing their math.

Глибоке занурення

Стандартна увага порівнює кожен маркер з кожним іншим маркером, створюючи матрицю балів N на N, яка зростає квадратично з довжиною послідовності. Наївно, що матриця записується та зчитується з пам’яті високої пропускної здатності графічного процесора (HBM), і це переміщення, а не множення, є справжнім вузьким місцем. Flash Attention, представлений Tri Dao та його колегами у 2022 році, реорганізує обчислення, щоб матриця ніколи не зберігалася повністю. Він обробляє запити, ключі та значення в невеликих плитках, які вміщуються у швидку вбудовану пам’ять SRAM, обчислює часткові результати та з’єднує їх разом за допомогою онлайн-трюку запуску softmax. Вихідні дані математично ідентичні звичайній увазі, але використовують лінійну пам’ять і працюють у кілька разів швидше, особливо на довгих послідовностях.

Технічне розуміння

Ключовий трюк — це тайлінг плюс онлайн-софтмакс. Softmax зазвичай потребує цілого рядка оцінок, щоб обчислити його знаменник, але Flash Attention зберігає поточний максимум і поточну суму під час потокової передачі кожної плитки, масштабуючи попередні часткові виходи, щоб остаточний результат був точним. Оскільки проміжні оцінки зберігаються в SRAM (на порядки швидше, ніж HBM), алгоритм підтримує введення-виведення: він мінімізує читання та запис пам’яті, а не необроблені арифметичні операції.

Стратегічний вплив

Вартість і бюджет

Архітектурні рішення збільшують продуктивність і експлуатаційні витрати протягом багатьох років.

Чіткіші рішення

Технічна освіта допомагає командам вибрати правильний стек, а не лише найновіший.

Контроль якості

Кращий інженерний вибір зменшує проблеми з надійністю у виробництві.

Майбутнє швидкої уваги

FlashAttention-2 і FlashAttention-3 стали стандартним будівельним блоком, завдяки чому FlashAttention-2 і FlashAttention-3 підвищують пропускну здатність у новіших графічних процесорів, таких як H100, покращуючи робочі розділи та використовуючи шляхи FP8 із низькою точністю. Очікуйте подальшого спільного проектування з апаратним забезпеченням, тіснішої інтеграції в рамки навчання та висновків, а також варіантів, налаштованих на розріджене, ковзаюче вікно та дуже довгий контекст. Оскільки контекстні вікна розтягуються на мільйони токенів, такі ядра з підтримкою вводу-виводу залишаються важливими для збереження оперативної пам’яті та швидкості.

Реалізація в реальному світі

Навчання великих мовних моделей, таких як системи класу Llama та GPT, із довшими контекстними вікнами за меншої вартості пам’яті.

Обслуговування помічників у чаті відбувається швидше за рахунок прискорення етапу попереднього заповнення, на якому спочатку читається довга підказка.

Увімкнення інструментів аналізу документів, які поглинають цілі книги або кодові бази, роблячи довготривалу увагу можливим на одному GPU.

Потужність бачення та аудіотрансформери, де вхідні дані з високою роздільною здатністю створюють дуже довгі послідовності маркерів.

Ризики та огорожі

Оптимізація одного тесту може приховати ширші слабкі сторони системи.

Витрати на інфраструктуру та обслуговування часто недооцінюються.

Прогалини в безпеці та спостережуваності можуть зростати в міру ускладнення систем.

Дорожня карта впровадження

1

Визначте цільові показники затримки, якості та вартості перед впровадженням.

2

Тест за реалістичних умов навантаження та даних.

3

Моніторинг інструментів на наявність помилок, дрейфу та впливу користувача.

4

Перед масштабуванням підготуйте шляхи відкату та реагування на інциденти.

Продовжуйте досліджувати

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 Flash Attention 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 Flash Attention?

Flash Attention — це розумний спосіб обчислити крок уваги в Transformers без написання гігантської матриці уваги для сповільнення пам’яті. Це робить довгоконтекстні моделі набагато швидшими та ефективнішими за використання пам’яті, не змінюючи їх математику.

Яке основне вузьке місце спрямоване на Flash Attention?

Flash Attention підтримує введення-виведення: він зменшує обсяг даних, що переміщуються між швидкою SRAM на кристалі та повільною пам’яттю з високою пропускною здатністю, що є справжнім вузьким місцем, а не самою арифметикою.

Як Flash Attention уникає зберігання повної матриці уваги N на N?

Він розміщує обчислення так, що кожен блок поміщається у швидку SRAM, обчислюючи та накопичуючи часткові виходи, ніколи не матеріалізуючи всю матрицю в HBM.

Яка техніка дозволяє Flash Attention правильно обчислювати softmax, не переглядаючи весь рядок одразу?

Он-лайн softmax зберігає поточний максимум і поточний знаменник під час потокової передачі плиток, масштабуючи попередні часткові виходи, щоб остаточна нормалізація була точною.

Чому Flash Attention найбільше допомагає з довгими послідовностями?

Наївна матриця уваги масштабується як N-квадрат у пам’яті, тому уникнення її повного зберігання дає найбільшу економію саме тоді, коли послідовності довгі.

Який пріоритет мінімізації надає «IO-aware» дизайн Flash Attention?

IO-aware означає, що алгоритм розроблений навколо вартості переміщення даних в ієрархії пам’яті, мінімізуючи трафік HBM, а не арифметичні операції.