Вся идея в одной цепочке

Вот весь путь. Не волнуйтесь, если сначала это звучит как загадка; остальная часть статьи раскрывает каждое звено.

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

Шаг 1: разбейте предложение на кусочки — получите токены

Компьютер не читает слова так, как вы. Первое, что делает языковая модель, — нарезает текст на небольшие фрагменты, называемые токенами. Токеном может быть целое слово («собеседование»), часть слова («собесед» + «ование»), знак препинания или даже пробел, приклеенный к слову.

Почему не целые слова? Их слишком много, и каждый день появляются новые. С частями слов модель справляется с любым текстом, включая редкие имена и опечатки, имея фиксированный словарь из нескольких десятков тысяч токенов. Каждому токену в этом словаре присваивается числовой идентификатор. Фраза «Я прошёл собеседование» может превратиться во что-то вроде [40, 1734, 279, 7274].

Один токен — это примерно три четверти английского слова, поэтому «контекстное окно в 128 000 токенов» означает около 95 000 слов, которые модель может учитывать одновременно.

Шаг 2: превратите токены в векторы — получите эмбеддинги

Идентификатор токена вроде 7274 — всего лишь метка. Он ничего не говорит о смысле. Поэтому модель находит каждый идентификатор в большой таблице и заменяет его длинным списком чисел, часто из сотен или тысяч значений. Этот список называется вектором, а вектор, представляющий токен, называется эмбеддингом.

Эти числа никто не пишет вручную. Они начинаются как случайные и подстраиваются в ходе обучения, пока не отразят, что означает каждый токен и как он используется.

Шаг 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: добавьте сеть прямого распространения, остаточные связи и нормализацию — получите блок трансформера

Внимание делится информацией; модели нужно ещё и обработать её. Три дополнительные части завершают блок:

Внимание плюс сеть прямого распространения, обёрнутые остаточными связями и нормализацией, — это один блок трансформера.

Шаг 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. Слои прямого распространения обрабатывают каждый обновлённый вектор; остаточные связи и нормализация сохраняют устойчивость; десятки блоков уточняют его дальше.
  4. Итоговый вектор превращается в вероятности по словарю. Токен вроде «расскажите» получает высокую оценку; модель выбирает его, добавляет и начинает заново.

Краткий глоссарий

ТерминПростыми словами
ТокенНебольшой фрагмент текста, часто слово или его часть
ВекторУпорядоченный список чисел
ЭмбеддингВектор, представляющий смысл токена
Запрос / Ключ / ЗначениеЧто токен спрашивает / что предлагает / чем делится
Оценка вниманияНасколько один токен кажется важным для другого
SoftmaxПревращает оценки в доли, дающие в сумме 1
Вес вниманияДоля сосредоточенности, которую один токен отдаёт другому
КонтекстСмысл токена, уточнённый его соседями
Self-attentionКаждый токен обращает внимание на токены, которые видит
Блок трансформераВнимание + сеть прямого распространения + остаточные связи + нормализация
ПараметрыВыученные числа внутри модели
Контекстное окноСколько токенов модель может учитывать одновременно

Почему это важно для вашей карьеры

Если вы идёте на собеседование на должность, связанную с ИИ, умение объяснить токены или внимание простыми словами — реальное преимущество. Это также делает вас более грамотным пользователем ИИ-инструментов: вы поймёте, почему они могут уверенно выдавать неверные факты (они предсказывают вероятный текст, а не проверенную истину) и почему чёткий, конкретный промпт даёт лучшие ответы. О практическом применении читайте в наших руководствах как использовать ИИ-инструменты для подготовки к собеседованиям и что на самом деле меняют ИИ-помощники на собеседованиях.

Часто задаваемые вопросы

Чем токен отличается от слова?

Токен — это единица, которую читает языковая модель. Распространённые слова часто бывают одним токеном, а более длинные или редкие делятся на несколько частей. В английском один токен в среднем составляет около трёх четвертей слова.

Понимает ли языковая модель то, что говорит?

Она строит богатые внутренние представления смысла и контекста, но обучена предсказывать вероятный текст, а не проверять факты. Поэтому её ответы могут звучать уверенно и всё равно быть неверными, а важные утверждения всегда нужно проверять.

ChatGPT — это просто трансформер?

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