Цялата идея в една верига

Ето целия път. Не се притеснявай, ако отначало звучи като гатанка; останалата част от статията разгръща всяко звено.

Разбий едно изречение на парчета и получаваш токени. Превърни токените в списъци от числа и получаваш ембединги. Нека всеки токен зададе въпрос и получаваш заявка (query); нека останалите отговорят и получаваш ключове (keys) и стойности (values). Сравни заявките с ключовете и получаваш оценки на вниманието. Нормализирай ги със softmax и получаваш тегла на вниманието. Използвай теглата, за да смесиш стойностите, и получаваш контекст. Направи това за всеки токен и получаваш self-attention. Добави мрежа с право предаване (feed-forward), остатъчни връзки и нормализация и получаваш трансформър блок. Наслагай блоковете и получаваш трансформър. Обучи го да предсказва следващия токен и получаваш езиков модел. Научи го да следва инструкции и да се учи от човешка обратна връзка и получаваш нещо много близко до ChatGPT.

Стъпка 1: разбий изречение на парчета и получаваш токени

Компютърът не чете думите като теб. Първото, което прави езиковият модел, е да нареже текста на малки парчета, наречени токени. Токенът може да е цяла дума („интервю“), част от дума („инте“ + „рвю“), препинателен знак или дори интервал, прилепен към дума.

Защо не цели думи? Има твърде много, а всеки ден се появяват нови. С части от думи моделът може да обработи всякакъв текст, включително редки имена и правописни грешки, с фиксиран речник от десетки хиляди токени. Всеки токен в този речник получава ID номер. Изречението „Справих се на интервюто“ може да се превърне в нещо като [40, 1734, 279, 7274].

Един токен е приблизително три четвърти от английска дума, така че „контекстен прозорец от 128 000 токена“ означава около 95 000 думи, които моделът може да разгледа наведнъж.

Стъпка 2: превърни токените във вектори и получаваш ембединги

ID на токен като 7274 е просто етикет. То не казва нищо за смисъла. Затова моделът търси всяко ID в голяма таблица и го заменя с дълъг списък от числа, често стотици или хиляди. Този списък се нарича вектор, а векторът, който представя един токен, се нарича ембединг.

Никой не пише тези числа на ръка. Започват случайни и се нагласят по време на обучението, докато уловят какво означава всеки токен и как се използва.

Стъпка 3: нанеси ембедингите в пространството и смисълът става геометрия

Третирай всеки ембединг като координати на точка и всеки токен става място в огромно многомерно пространство. Хиляда измерения не можеш да си представиш, но идеята работи и в две или три.

В това пространство токените с подобен смисъл се оказват близо един до друг. „Заплата“ е близо до „възнаграждение“ и „компенсация“. „Интервю“ е близо до „среща“ и „наемане“. Дори посоките могат да носят смисъл: известният пример е, че стъпката от „мъж“ към „жена“ сочи приблизително в същата посока като стъпката от „крал“ към „кралица“.

Ембедингите сами по себе си не казват къде стои един токен, а редът променя смисъла: „кандидатът интервюира мениджъра“ не е същото като „мениджърът интервюира кандидата“. Затова моделите добавят към всеки вектор и информация за позицията.

Стъпка 4: всеки токен задава и отговаря на въпроси: заявки, ключове и стойности

Думите променят смисъла си според съседите: „лук“ означава различни неща в „лук и стрели“ и „зелен лук“. Така че всеки токен трябва да гледа към останалите. Това е най-важната идея в съвременния ИИ.

От ембединга на всеки токен моделът създава три нови вектора, като го умножава по три научени таблици от числа:

Представи си библиотека: заявката е твоето търсене, ключовете са заглавията по рафтовете, а стойностите са съдържанието на книгите.

Стъпка 5: сравни заявка с ключовете и получаваш оценки на вниманието

Всеки токен сравнява своята заявка с ключа на всеки токен, който вижда, чрез скаларно произведение: двата вектора се умножават число по число и резултатите се събират. Сходни посоки дават голям резултат, несвързаните — малък или отрицателен.

Резултатът е набор от оценки на вниманието, по една за всяка двойка токени. Висока оценка означава „този друг токен изглежда уместен за моя въпрос“. В изречението „Рекрутърката се обади на кандидатката, защото хареса портфолиото ѝ“ токенът „ѝ“ трябва да даде висока оценка с „кандидатката“ и по-ниска с „рекрутърката“.

Стъпка 6: нормализирай оценките със softmax и получаваш тегла на вниманието

Суровите оценки могат да бъдат с произволен размер, положителни или отрицателни. Функция, наречена softmax, ги превръща в положителни стойности, които се събират точно до 1, и дава на най-големите оценки много по-голям дял.

Тези дялове са теглата на вниманието, нещо като проценти на фокус. Опростен пример за „ѝ“:

Друг токенСурова оценкаТегло на вниманието
кандидатката4,00,84
рекрутърката2,00,11
се обади1,00,04
на-1,00,01

Така „ѝ“ ще насочи около 84% от вниманието си към „кандидатката“.

Стъпка 7: използвай теглата, за да обединиш стойностите, и получаваш контекст

Сега всеки токен изгражда нов вектор, като взима претеглена смес от стойностите: 84% от стойността на „кандидатката“, 11% от „рекрутърката“ и така нататък. Резултатът е ново представяне на „ѝ“, което носи информация за това към кого всъщност се отнася „ѝ“.

Това е, което означава контекст вътре в един модел. Думата вече не е просто абстрактното „ѝ“; тя е „ѝ, тоест на кандидатката, в изречение за портфолио“.

Стъпка 8: нека всеки токен прави това и получаваш self-attention

Когато всеки токен изпълнява този процес едновременно, това се нарича self-attention (самовнимание): изречението, което обръща внимание на самото себе си.

Две подобрения го правят мощен:

Стъпка 9: добави feed-forward, остатъчни връзки и нормализация и получаваш трансформър блок

Вниманието споделя информация; моделът трябва и да я обработи. Още три части допълват единицата:

Вниманието плюс feed-forward, обгърнати от остатъчни връзки и нормализация, са един трансформър блок.

Стъпка 10: наслагай блоковете и получаваш трансформър

Един блок дава скромно разбиране. Наслагай десетки от тях, като изходът на единия захранва следващия, и получаваш трансформър — архитектурата, представена от изследователи на Google в статията от 2017 г. „Attention Is All You Need“. Той е „T“ в GPT, което означава „Generative Pre-trained Transformer“.

Всеки слой изяснява картината: ранните слоеве обикновено улавят граматиката, по-късните — по-абстрактни идеи като тон и намерение. Теглата във всички тези таблици, числата, които моделът научава, са онова, което наричаме параметри. Големите модели имат милиарди от тях.

Стъпка 11: обучи го да предсказва следващия токен и получаваш езиков модел

Досега имаме машина, която превръща текста във вектори, съобразени с контекста. Сега ѝ даваме задача. В края на стека моделът превръща вектора на последния токен в оценка за всеки токен от речника си, след което отново прилага softmax, за да получи вероятност за всеки. С други думи: „При всичко досега, какво следва?“

По време на обучението моделът чете огромни количества текст: книги, статии, код, уебсайтове. На всяка позиция той налучква следващия токен, сравнява догадката си с истинския и леко премества всичките си параметри в посоката, която би направила верния отговор по-вероятен. Повтори това трилиони пъти и резултатът е езиков модел.

Тази проста задача учи на много: за да предскаже следващата дума в учебник или договор, моделът трябва да усвои граматика, факти и модели на разсъждение.

Генерирането на текст е просто това предсказване на повторение. Моделът избира следващ токен, обикновено чрез случайна извадка според вероятностите (настройка, наречена температура, контролира колко смел е изборът), добавя го към текста и предсказва отново, токен по токен.

Стъпка 12: научи го да следва инструкции и да се учи от обратна връзка и получаваш ChatGPT

Модел, обучен само да предсказва следващия токен, е блестящо автоматично довършване, а не асистент. Задай му въпрос и може да отговори с още три въпроса. Два допълнителни етапа на обучение поправят това:

  1. Настройка по инструкции (instruction tuning): моделът се обучава върху много примери на молба, последвана от добър, полезен отговор. Той научава модела „някой пита, аз отговарям полезно“.
  2. Учене от човешка обратна връзка: хора сравняват двойки отговори на модела и избират по-добрия. Тези предпочитания се използват, за да се насочи моделът още повече към отговори, които са полезни, точни и безопасни. Това се нарича обучение с подкрепление чрез човешка обратна връзка, или RLHF.

Добави чат интерфейс и получаваш нещо близко до ChatGPT, Claude или Gemini: същият трансформър, оформен да действа като асистент.

Всичко заедно: пътешествието на едно изречение

Представи си, че пишеш: „Най-трудният въпрос на интервю е…“ За части от секундата:

  1. Текстът се разделя на токени и всеки се превръща в ембединг с информация за позицията.
  2. Във всеки трансформър блок всеки токен формира заявка, ключ и стойност, оценява предходните токени, превръща оценките в тегла и смесва техните стойности. „Труден“ се свързва с „въпрос“ и фразата се разбира като тема на интервю.
  3. Слоевете feed-forward обработват всеки обновен вектор; остатъчните връзки и нормализацията поддържат стабилност; десетки блокове го изясняват допълнително.
  4. Крайният вектор се превръща във вероятности върху речника. Токен като „разкажи“ получава висока оценка; моделът го избира, добавя го и започва отначало.

Кратък речник

ТерминС прости думи
ТокенМалко парче текст, често дума или част от нея
ВекторПодреден списък от числа
ЕмбедингВекторът, който представя смисъла на токен
Заявка / Ключ / СтойностКакво токенът пита / какво предлага / какво споделя
Оценка на вниманиетоДоколко един токен изглежда уместен за друг
SoftmaxПревръща оценките в дялове, които се събират до 1
Тегло на вниманиетоДелът фокус, който един токен дава на друг
КонтекстСмисълът на токен, обновен от съседите му
Self-attentionВсеки токен обръща внимание на токените, които вижда
Трансформър блокВнимание + feed-forward + остатъчни връзки + нормализация
ПараметриНаучените числа вътре в модела
Контекстен прозорецКолко токена моделът може да разгледа наведнъж

Защо това е важно за кариерата ти

Ако отиваш на интервю за позиция, свързана с ИИ, умението да обясниш токени или внимание с прости думи е реално предимство. То те прави и по-умел потребител на ИИ инструменти: ще разбереш защо могат уверено да твърдят грешни факти (те предсказват вероятен текст, а не проверена истина) и защо ясният, конкретен промпт дава по-добри отговори. За практическо приложение виж нашите ръководства за използване на ИИ инструменти за упражняване на интервюта за работа и за какво всъщност променят ИИ помощниците за интервюта.

Често задавани въпроси

Каква е разликата между токен и дума?

Токенът е единицата, която езиковият модел чете. Често срещаните думи са често един токен, а по-дългите или редките се разделят на няколко части. В английския един токен е средно около три четвърти от дума.

Разбира ли езиковият модел какво казва?

Той изгражда богати вътрешни представяния на смисъла и контекста, но е обучен да предсказва вероятен текст, а не да проверява факти. Затова отговорите му могат да звучат уверено и все пак да са грешни, а важните твърдения винаги трябва да се проверяват.

ChatGPT просто трансформър ли е?

В основата си да: голям трансформър, обучен да предсказва следващия токен. Полезен асистент го правят допълнителното обучение върху инструкции и човешка обратна връзка, както и продуктът, изграден около него.