Attention механизми: как AI решава какво е важно
Развитието, което никой не очакваше
През 2017 г. статия, озаглавена "Attention Is All You Need", промени значително AI. Не чрез някаква екзотична нова математика. А чрез проста идея: оставете модела да реши кое е важно.
Механизми на вниманието. Звучат абстрактно. Всъщност са ясни. И те направиха възможни ChatGPT, генераторите на изображения и целия модерен AI, който използвате.
Разбирането на вниманието ви помага да разберете модерния AI. Нека го разгледаме по-подробно.
Проблемът, който вниманието решава
Старият AI (рекурентни мрежи) обработваше входните данни последователно. Дума по дума. Поддържайки скрито състояние. Информацията течеше линейно.
Проблем: дългите последователности се влошаваха. Информацията от началото избледняваше към края. Моделът "забравяше" ранния контекст. Това ограничаваше какво може да прави AI.
Вниманието реши този проблем. Проста концепция: погледнете всички входни данни едновременно. Определете кои части са важни за кои изходи. Претеглете ги съответно.
Без последователна обработка. Без влошаване на информацията. Пълният контекст винаги е наличен. Революционно.
Какво всъщност прави вниманието
Вниманието е претеглено осредняване. Това е всичко.
Имате входни данни. Искате да обработите един от тях. Но правилният начин да го обработите зависи от всички останали входни данни. Вниманието определя колко важен е всеки вход за обработката на текущия.
Пример: Превод
Превеждаме "The cat sat on the mat" на френски. Когато превеждаме "sat", кои английски думи са най-важни?
"The" има малко значение (род). "Cat" има голямо значение (подлог). "Sat" има най-голямо значение (самата дума). "On" има известно значение (контекст). Останалите по-малко.
Вниманието изчислява тези тежести. След това комбинира входните данни според тези тежести. Претеглената средна стойност ви дава най-доброто представяне за превода на "sat".
Правете това за всяка дума. За всеки слой. Това е вниманието.
Как всъщност работи вниманието
Три стъпки: Query, Key, Value. Звучи сложно. Не е.
Стъпка 1: Създаване на Query, Key, Value
За всеки вход създайте три вектора:
- Query: "Какво търся?"
- Key: "Какво предлагам?"
- Value: "Ето моята реална информация"
Това са просто линейни трансформации на входа. Матрични умножения. Нищо сложно.
Стъпка 2: Изчисляване на тежестите на вниманието
За всеки query го сравнете с всички ключове. Скаларното произведение измерва приликата. Подобни query и key = висока оценка. Различни = ниска оценка.
Приложете softmax. Превръща оценките във вероятности. Сега имате тежести на вниманието. Те се сумират до 1.
Стъпка 3: Претеглена средна стойност на стойностите
Използвайте тежестите на вниманието, за да осредните стойностите. Висока тежест = повече влияние. Ниска тежест = по-малко влияние.
Резултат: ново представяне за всеки вход, информирано от всички останали входове, претеглено по значимост.
Това е вниманието. Приликата между заявка и ключ определя теглата. Теглата комбинират стойностите. Готово.
Самовнимание срещу кръстосано внимание
Два вида внимание служат за различни цели:
Самовнимание:
Входовете обръщат внимание на себе си. Всяка дума гледа всички останали думи в същото изречение. Определя кои думи имат значение за разбирането на всяка дума.
Пример: „Животното не пресече улицата, защото беше твърде уморено.“ За какво се отнася „то“? Самовниманието разбира това, като обръща силно внимание на „животното“.
Кръстосано внимание:
Една последователност обръща внимание на друга. Превод: френските думи обръщат внимание на английските думи. Надписи към изображения: думите от надписа обръщат внимание на областите от изображението.
Различни последователности. Заявките от едната, ключовете и стойностите от другата. Свързва различни модалности или езици.
Многоглаво внимание (множество гледни точки)
Една глава на вниманието = една гледна точка. Многоглаво = множество гледни точки едновременно.
Вместо един набор от заявки, ключове и стойности, се създават множество набори. Всяка глава научава различни модели.
Глава 1 може да научи синтактични връзки (подлог-сказуемо). Глава 2 може да научи семантични връзки (значения на думите). Глава 3 може да научи позиционни модели.
Комбинирайте всички глави. Сега имате множество гледни точки върху едни и същи входове. По-богато представяне. По-добро разбиране.
Трансформаторите обикновено използват 8-16 глави. Всяка глава е 1/8 или 1/16 от размера на пълното измерение на модела. Изчислителната цена остава управляема.
Изчислителната цена
Вниманието е мощно. Също така е скъпо.
Сложност: O(n²)
Всеки вход обръща внимание на всеки друг вход. За n входа това са n² сравнения. Квадратична сложност.
Удвоите ли дължината на последователността, изчисленията нарастват четворно. Ето защо контекстните прозорци са ограничени. Не само паметта. Изчисленията експлодират.
Пример:
1000 токена: 1 милион операции
10 000 токена: 100 милиона операции
100 000 токена: 10 милиарда операции
Вниманието е тясното място за дълги контексти. Различни техники (разредено внимание, линейно внимание) се опитват да решат това. В най-добрия случай частични решения.
Защо вниманието промени всичко
Преди вниманието: последователна обработка, ограничен контекст, влошаване на информацията.
След вниманието: паралелна обработка, пълен контекст, без влошаване.
Това направи възможно:
- Подобрени езикови модели: Могат да разбират дълги документи. Без ограничение на контекста от последователната обработка. BERT, GPT, всички използват внимание.
- Подобрен превод: Могат да обръщат внимание на съответните думи в изходния език. Без значение колко далеч са. Качеството се подобри значително.
- Трансформатори за зрение: Вниманието работи върху фрагменти от изображения. Конкурират се с CNN за много задачи. Единна архитектура за зрение и език.
- Мултимодални модели: Текстът обръща внимание на изображения. Изображенията обръщат внимание на текст. Разбиране между модалностите. CLIP, DALL-E, всички използват внимание.
Вниманието е основата на съвременния изкуствен интелект. Всичко се гради върху него.
Вниманието в архитектурата на Dweve
Традиционното внимание е с плаваща запетая. Скъпо. Но концепцията важи и за системи, базирани на ограничения.
PAP (Permuted Agreement Popcount):
Нашата версия на вниманието за двоични модели. Вместо скаларни произведения използваме XNOR и popcount. Вместо softmax използваме статистически граници.
Същата концепция: определяне кои модели имат значение. Различна реализация: двоични операции вместо плаваща запетая.
Резултат: селекция, подобна на вниманието, при част от изчислителните разходи. Кои експерти са от значение? PAP определя това. Ефективно.
Какво Трябва да Запомните
- 1. Вниманието е претеглено осредняване. Определете значимостта, претеглете входовете съответно, комбинирайте. Проста концепция, мощни резултати.
- 2. Механизъм Query-Key-Value. Query пита, Keys отговарят, Values предоставят информация. Приликата определя теглата.
- 3. Self-attention срещу cross-attention. Self: входовете обръщат внимание на себе си. Cross: една последователност обръща внимание на друга.
- 4. Multi-head улавя множество перспективи. Различните глави научават различни модели. Комбинирани, те предоставят богато разбиране.
- 5. Изчислителната цена е O(n²). Квадратичната сложност ограничава дължината на контекста. Тясното място за дълги последователности.
- 6. Вниманието направи възможен съвременния ИИ. Transformers, GPT, BERT, vision transformers. Всичко е изградено върху вниманието.
- 7. Съществуват двоични алтернативи. PAP предоставя селекция, подобна на вниманието, с двоични операции. Същата концепция, различна реализация.
Долната Линия
Вниманието е най-важната иновация в ИИ през последното десетилетие. Проста идея: оставете модела да реши какво има значение. Дълбоко въздействие: направи възможна всяка съвременна ИИ система, която използвате.
Не е магия. Това е претеглено осредняване въз основа на научена прилика. Съвпадението query-key определя теглата. Теглата комбинират стойностите. Повтаря се за всеки вход, за всеки слой.
Изчислителната цена е реална. O(n²) ограничава колко дълги могат да бъдат последователностите. Но в тези граници вниманието предоставя безпрецедентна способност за разбиране на контекста.
Да разберете вниманието означава да разберете съвременната ИИ архитектура. Всичко останало се гради върху тази основа. Овладейте това и останалото придобива смисъл.
Искате ефективна селекция, подобна на вниманието? Разгледайте PAP механизма на Dweve. Двоично съпоставяне на модели със статистически граници. Селекция на експерти при част от разходите на традиционното внимание. Видът определяне на значимост, който работи в мащаб.