Светкавично внимание
Flash Attention е умен начин да се изчисли стъпката на вниманието в Transformers, без изобщо да се пише гигантската матрица на вниманието, за да се забави паметта.
Преглед
It makes long-context models far faster and more memory-efficient without changing their math.
Дълбоко гмуркане
Стандартното внимание сравнява всеки токен с всеки друг токен, създавайки N-по-N матрица с резултати, която нараства квадратично с дължината на последователността. Наивно, тази матрица се записва и чете обратно от GPU памет с висока честотна лента (HBM) и това преместване - не умноженията - е истинското тясно място. Flash Attention, въведен от Tri Dao и колеги през 2022 г., реорганизира изчислението, така че матрицата никога да не се съхранява напълно. Той обработва заявки, ключове и стойности в малки плочки, които се побират в бързата SRAM памет в чипа, изчислява частични резултати и ги свързва заедно с помощта на онлайн трик за softmax. Резултатът е математически идентичен с обикновеното внимание, но използва линейна памет и работи няколко пъти по-бързо, особено при дълги последователности.
Техническа информация
Ключовият трик е подреждане плюс онлайн софтмакс. Softmax обикновено се нуждае от целия ред от резултати, за да изчисли своя знаменател, но Flash Attention поддържа текущ максимум и текуща сума, докато предава всяка плочка, премащабирайки по-ранни частични изходи, така че крайният резултат да е точен. Тъй като междинните резултати остават в SRAM (на порядък по-бързо от HBM), алгоритъмът е съобразен с IO: той минимизира четенията и записите в паметта, а не необработените аритметични операции.
Стратегическо въздействие
Cost and budget
Архитектурните решения стимулират производителността и оперативните разходи в продължение на години.
Clearer decisions
Техническото образование помага на екипите да изберат правилния стек, а не само най-новия.
Quality control
По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството.
Бъдещето на светкавичното внимание
Flash Attention се превърна в градивен елемент по подразбиране, като FlashAttention-2 и FlashAttention-3 изстискват повече пропускателна способност от по-новите графични процесори като H100 чрез подобряване на разделянето на работата и използване на FP8 пътища с ниска точност. Очаквайте продължително съвместно проектиране с хардуер, по-тясна интеграция в рамки за обучение и изводи и варианти, настроени за оскъдно внимание, плъзгащ се прозорец и много дълъг контекст. Тъй като контекстните прозорци се простират към милиони токени, IO-съзнаващи ядра като това остават от съществено значение за запазване на практичността на паметта и скоростта.
Внедряване в реалния свят
Обучение на големи езикови модели като 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 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
Next guide
Внимание Разгръщане и подрязване на главата
Frequently asked questions
What is Flash Attention?
Flash Attention е умен начин да се изчисли стъпката на вниманието в Transformers, без изобщо да се пише гигантската матрица на вниманието, за да се забави паметта. Това прави моделите с дълъг контекст далеч по-бързи и по-ефективни по отношение на паметта, без да променя тяхната математика.
Кое е основното пречка, към което е насочен Flash Attention?
Flash Attention е съобразен с IO: той намалява данните, прехвърляни между бързата SRAM в чипа и бавната памет с висока честотна лента, което е истинското тясно място, а не самата аритметика.
Как Flash Attention избягва съхраняването на пълната N-по-N матрица за внимание?
Той подрежда изчислението, така че всеки блок да се побира в бърза SRAM, като изчислява и натрупва частични изходи, без изобщо да материализира цялата матрица в HBM.
Каква техника позволява на Flash Attention да изчислява правилно softmax, без да вижда целия ред наведнъж?
Онлайн softmax поддържа текущ максимум и текущ знаменател при поточно предаване на плочки, премащабирайки по-ранни частични изходи, така че крайната нормализация да е точна.
Защо Flash Attention помага най-много при дълги поредици?
Наивната матрица на вниманието се мащабира като N-квадрат в паметта, така че избягването на нейното пълно съхранение води до най-големи спестявания точно когато последователностите са дълги.
Какво означава „IO-aware“ дизайнът на Flash Attention приоритизира минимизирането?
IO-aware означава, че алгоритъмът е проектиран около разходите за преместване на данни в йерархията на паметта, минимизирайки HBM трафика, а не аритметичните операции.