Что такое трансформер (без формул)
Трансформер — это устройство нейросети, которое читает не по одному слову, а сразу всю фразу целиком, и для каждого слова решает, на какие соседние слова смотреть внимательнее.
Главная мысль урока: старые языковые модели ползли по тексту слово за словом и быстро забывали начало. Трансформер берёт все слова фразы разом и для каждого спрашивает: «кто из остальных слов сейчас для меня важен?». Именно эта простая идея — смотреть на всё сразу — и делает ChatGPT таким способным.
Зачем это вообще нужно
Представь, что ты читаешь сообщение от друга через дырочку в листе бумаги: видно ровно одно слово, а чтобы увидеть следующее — лист надо сдвинуть, и предыдущее слово исчезает. Прочитать так короткую фразу ещё можно, а вот понять длинный абзац — почти нет: к концу ты уже не помнишь, о чём было начало.
Именно так работали языковые модели до трансформера. В уроке про предсказание следующего слова мы разбирали наш сквозной пример — фразу «Кошка пьёт ...». Чтобы угадать продолжение («молоко» или «воду»), модель прочитывала слова по очереди: сначала «Кошка», потом «пьёт», и только тогда делала ставку. Пока фраза короткая — всё хорошо. Но представь предложение подлиннее:
«Кошка, которую утром покормила соседка, теперь спокойно пьёт ...»
Чтобы понять, кто тут пьёт, нужно дотянуться через половину предложения от слова «пьёт» обратно к слову «Кошка». Старая модель к этому моменту уже наполовину забыла начало — слишком много слов прошло «через дырочку». А трансформер видит всю фразу разом и спокойно связывает «пьёт» с «Кошка», даже если между ними десяток других слов.
К концу урока ты будешь понимать, что такое трансформер, чем он лучше чтения слово за словом, почему именно он лежит в основе ChatGPT — и будешь готов к следующему уроку про механизм внимания.
Трансформер — это архитектура нейросети, лежащая в основе ChatGPT, которая умеет учитывать связи между всеми словами сразу.
Метафора: класс, который решает задачу вместе
Чтобы прочувствовать разницу, сравним два способа разобрать сложную фразу — как два разных класса в школе.
Старый способ: испорченный телефон
Представь, что ученики сидят в ряд, и каждому разрешено шептать только соседу справа. Учитель шепнул первому слово, тот добавил своё понимание и передал дальше, тот — следующему, и так до конца ряда. Это игра в «испорченный телефон». Пока ряд короткий, сообщение доходит целым. Но чем длиннее цепочка, тем сильнее всё искажается: к последнему ученику от исходного смысла почти ничего не остаётся.
Так работали старые модели: информация ползла по тексту от слова к слову по цепочке. Чем дальше два слова друг от друга, тем труднее им «дотянуться» — и тем больше шанс, что связь потеряется. И есть вторая беда: пока первый ученик не шепнёт второму, второй ничего делать не может — все ждут своей очереди. Такой класс работает медленно, как длинная очередь в столовой, где каждый берёт еду строго по одному.
Новый способ: все смотрят на доску одновременно
Теперь представь другой класс. Все слова фразы выписаны на доску, и каждый ученик-слово видит сразу всю доску целиком. Когда ученик «пьёт» соображает, что он значит в этой фразе, он не ждёт шёпота от соседа — он сам обводит взглядом всю доску и решает: «мне сейчас важнее всего слово „Кошка“, на него и буду смотреть, а на „утром“ и „соседка“ почти не обращаю внимания».
Вот это и есть трансформер. Никакой цепочки и никакого испорченного телефона: каждое слово напрямую дотягивается до любого другого слова фразы, как бы далеко оно ни стояло. И для каждого слова трансформер заново решает, на какие слова смотреть внимательнее, — это и называется вниманием (attention), про которое будет отдельный урок.
Внимание (attention) — это механизм, позволяющий модели решать, на какие слова в тексте смотреть внимательнее при ответе.
Чем трансформер лучше: сравним по пунктам
Сведём оба подхода в таблицу — так разница видна сразу.
| Чтение слово за словом (старый способ) | Трансформер (новый способ) |
| Читает по одному слову, по очереди | Берёт все слова фразы сразу |
| Связь далёких слов слабеет, как в испорченном телефоне | Любое слово дотягивается до любого напрямую |
| Слова обрабатываются строго друг за другом — медленно | Слова считаются разом, параллельно — быстро на современных видеокартах |
| К концу длинного текста забывает начало | Держит в поле зрения всю фразу одновременно |
Обрати внимание на третью строку — про скорость. Это не мелочь. Раз трансформеру не нужно ждать, пока обработается предыдущее слово, он может считать все слова одновременно. Современные видеокарты как раз заточены делать тысячи одинаковых вычислений разом. Поэтому трансформеры удалось обучить на гигантских объёмах текста — и без этой скорости никакого ChatGPT просто не существовало бы.
Как это связано с тем, что мы уже знаем
Трансформер — не магия с нуля, а сборка из деталей, которые ты уже проходил. Давай соберём цепочку от начала курса.
Шаг 1. Слова превращаются в токены и эмбеддинги
Трансформер не работает с буквами. Сначала фразу «Кошка пьёт молоко» режут на токены — кусочки текста, — а каждый токен превращают в эмбеддинг, то есть в точку-координаты в пространстве смыслов. Мы подробно разбирали это раньше: похожие по смыслу слова получают близкие координаты.
Эмбеддинг — это представление слова или объекта в виде точки в многомерном пространстве, где похожие смыслы лежат рядом.
Шаг 2. Внутри — всё те же нейроны и веса
Трансформер целиком состоит из нейросети: тех самых нейронов, связанных слоями, про которые был урок про нейрон и нейросеть. И обучается он так же — подкручивая веса, числа, которые показывают, насколько один нейрон влияет на другой. Когда трансформер ошибается в предсказании слова, он чуть-чуть меняет веса, чтобы в следующий раз ошибиться меньше. Идея ровно та же, что и у простой нейросети, просто деталей больше.
Нейросеть — это модель из множества простых связанных элементов-нейронов, организованных в слои.
Шаг 3. Главное новшество — внимание
Что трансформер добавил поверх обычной нейросети — это механизм внимания. Между слоями нейронов он вставил блок, который для каждого слова решает, на какие другие слова фразы смотреть. Именно это превращает «класс с испорченным телефоном» в «класс, где все видят доску». Деталей внимания мы пока не открываем — это тема следующего урока, и она важная.
Итого трансформер — это: эмбеддинги слов → блок внимания (смотрим на всю фразу) → обычные слои нейронов → предсказание следующего токена. Знакомые детали в новой сборке.
Вернёмся к двум сквозным примерам
Через весь курс мы тащим два примера. Посмотрим, как они выглядят внутри трансформера.
Пример с текстом: «Кошка пьёт ...»
Трансформер получает фразу целиком, превращает каждое слово в эмбеддинг и для слова, которое надо предсказать, спрашивает у всех слов сразу: «кто из вас сейчас важен?». Слово «Кошка» отзывается сильнее всего (раз пьёт кошка — скорее «молоко»), слово «пьёт» подсказывает, что дальше идёт жидкость. Сложив эти подсказки, трансформер выдаёт самое вероятное продолжение — «молоко». В длинной версии фразы, где «Кошка» стоит далеко в начале, старая модель бы споткнулась, а трансформер дотянется до неё без труда.
Пример с картинками: кошка против собаки
А что с нашей задачей «отличить кошку от собаки»? Трансформеры придумали для текста, но идея «смотреть на все части сразу и решать, какие важнее» оказалась полезной и для картинок. Современные модели режут картинку на кусочки-квадратики (это её «токены») и тем же вниманием решают, на какие кусочки смотреть внимательнее: на острые уши и усы — да, на фон с диваном — почти нет. То есть тот же приём, что связывал слова во фразе, теперь связывает части изображения. Один механизм — две разные задачи. Вспомни, как в самом начале курса мы отличали кошку от собаки по набору признаков: форма ушей, длина хвоста, громкость лая. Тогда признаки задавал человек, и смотрели на них по очереди. Трансформер же сам решает, какие кусочки картинки сейчас важны, и смотрит на них все разом. Это тот же путь, что мы прошли со словами: от наивного «человек придумал признаки» к «модель сама находит, на что смотреть».
Частые ошибки и подводные камни
Вокруг слова «трансформер» накопилось много путаницы. Разберём, чтобы ты не попался.
1. Думать, что трансформер — это робот из мультика
Самая первая ловушка — само название. «Трансформер» здесь не имеет никакого отношения к роботам-автоботам. Это просто название устройства нейросети, придуманное инженерами. Запоминай его как технический термин, а не как что-то механическое и человекоподобное.
2. Считать, что трансформер «понимает» текст как человек
То, что модель ловко связывает «пьёт» с «Кошка», не значит, что она понимает, что такое кошка или жажда. Под капотом — подбор чисел и расстояний между эмбеддингами, статистика встреч слов в миллионах текстов. Это очень мощный приём, но это не понимание в человеческом смысле. Будь честен с собой: трансформер вычисляет, а не осознаёт.
3. Путать трансформер и внимание
Внимание — это одна деталь внутри трансформера, а не сам трансформер. Трансформер — это вся сборка целиком: эмбеддинги, несколько блоков внимания, слои нейронов. Внимание — важнейшая, но всё-таки часть, как двигатель — часть машины, а не вся машина.
4. Думать, что трансформер видит будущее
Когда модель генерирует текст, она смотрит на всю фразу сразу — но только на те слова, что уже есть. Дописывая ответ слово за словом, она каждый раз видит написанное до этого момента, а не то, что ещё не родилось. «Смотреть на всё сразу» означает «на весь уже имеющийся текст», а не «заглянуть вперёд».
5. Считать, что у трансформера бесконечная память
Трансформер видит всю фразу разом, но у этого «разом» есть предел — сколько токенов он способен держать в поле зрения. Это окно ограничено. Если текст очень длинный, самое старое начало в окно уже не влезает, и до него модель не дотянется. Поэтому в очень длинных диалогах ChatGPT может «забывать» то, что было в самом начале. Это не каприз и не лень модели — просто старые слова физически выпали из окна, и дотянуться до них трансформеру уже нечем. Если важная деталь обсуждалась в начале долгого разговора, бывает полезно напомнить её ещё раз — тогда она снова попадёт в окно.
Мини-практика: нарисуй внимание сам
Кода сегодня нет — урок про идею. Зато есть задание с карандашом и бумагой, которое закрепит главное лучше любого кода.
- Выпиши в строчку слова длинной фразы:
Кошкакоторуюутромпокормиласоседкатеперьпьёт. - Обведи слово
пьёт— это слово, для которого трансформер ищет продолжение. - Проведи от
пьётстрелки к тем словам, на которые, по-твоему, модель должна смотреть внимательнее всего, чтобы угадать следующее слово. Стрелку потолще — к самому важному. - Спроси себя: дотянулась ли твоя стрелка до слова
Кошкав начале? У трансформера дотянется. А у старой модели «слово за словом» эта связь была бы слабой — отметь, как далеко стоятКошкаипьёт. - Бонус: проделай то же с фразой
Собака которую утром покормила соседка теперь грызёт .... Изменились ли твои стрелки? Какое слово теперь тянет ответ в другую сторону?
Эти стрелки — почти буквально то, что считает механизм внимания внутри трансформера. Ты только что нарисовал его руками.
Итоги
Сегодня ты разобрал, что за зверь сидит в самой сердцевине ChatGPT.
- Трансформер — это устройство нейросети, которое читает всю фразу сразу, а не ползёт по ней слово за словом.
- Старые модели работали как испорченный телефон: связь далёких слов терялась. Трансформер позволяет любому слову дотянуться до любого напрямую.
- Раз слова считаются разом (параллельно), трансформер быстро обучается на огромных текстах — без этого ChatGPT бы не было.
- Внутри — знакомые детали: токены, эмбеддинги, нейроны и веса. Новизна — блок внимания, который для каждого слова решает, на какие соседние слова смотреть.
- Будь честен: трансформер вычисляет статистику слов, а не понимает текст по-человечески. И память его не бесконечна — окно ограничено.
Мы несколько раз упирались в слово «внимание» и каждый раз откладывали разбор. Пора снять завесу. В следующем уроке мы заглянем прямо в механизм внимания и на нашей фразе «Кошка пьёт ...» по шагам увидим, как модель решает, на какие слова смотреть, — то самое, что ты сейчас рисовал стрелками.