Урок 2 із 7
Кодуємо увагу
9 хв читання
Зміни одне слово в кінці речення — і «воно» раптом означає інше. Як код змушує токен читати сусідів?
Єдиний механізм, що має значення
Увага — це серце всієї моделі, і вона простіша, ніж звучить. Для кожного токена ти обчислюєш із його ембединга три вектори — запит (що я шукаю?), ключ (що я пропоную?) і значення (що я передам далі). Токен порівнює свій запит із кожним ранішим ключем, і що ближчий збіг, то більше того значення він вбирає.
Значення токена не зафіксоване — воно змішується з ранішими токенами, на які він звертає увагу. Це змішування і є увага.
Самоувага, а потім багато голів
Оскільки кожен токен звертає увагу на інші в тій самій послідовності, це самоувага. Ти запускаєш кілька паралельно — голови уваги — щоб одна голова стежила за граматикою, а інша за тим, хто що зробив. І ти маскуєш майбутнє: токен може дивитися лише назад, ніколи на слова, які має передбачити.
Кілька голів читають різні зв'язки водночас; маска тримає модель чесною, ховаючи те, що йде далі.
У коді Рашки це маленький клас: три лінійні шари для запиту, ключа й значення, масштабований скалярний добуток, причинна маска, а тоді складаєш голови. Цей клас, повторений, — це майже весь GPT.
Що збудовано
- —Вектори запиту, ключа й значення для кожного токена.
- —Зважене змішування, де ближчі збіги ключ–запит важать більше.
- —Кілька голів паралельно та маску, що ховає майбутні токени.
Що робить причинна маска у самоувазі?
Продовжити в застосунку
Пройди весь курс «Побудуй LLM з нуля» — з відстеженням
Отримай персональний план, прогрес і стріки в застосунку — цей урок і кожен наступний, по порядку.