Предобучение на интернете

Прежде чем ChatGPT хоть раз ответил человеку, он успел «прочитать» горы текстов из интернета и потренироваться на одной-единственной игре — угадай следующее слово. Это и есть предобучение.

Главная мысль урока: ChatGPT не учили отвечать на вопросы по списку. Сначала он месяцами тренировался угадывать следующее слово в обычных текстах из интернета. Из этой простой игры, повторённой триллионы раз, сами собой выросли и знание языка, и факты, и стиль — а заодно и его ошибки.

Откуда модель вообще что-то знает

Представь: ты впервые открыл ChatGPT, спросил его про столицу Франции, про правила игры в шахматы, про то, как сварить макароны, — и он на всё отвечает. Откуда он это взял? Его же никто не сажал за парту и не диктовал ему учебник географии. И что важнее — ему ни разу не показывали именно твой вопрос с готовым ответом. Так как же он знает?

Короткий ответ: он прочитал почти весь интернет и научился предсказывать, какое слово идёт следующим. Звучит как будто этого мало для «знания столицы Франции». Но к концу урока ты увидишь, почему этого хватает — и почему из той же самой тренировки берутся не только знания, но и уверенные ошибки модели.

В прошлом уроке про языковые модели мы выяснили главное: языковая модель — это модель, которая предсказывает следующее слово в тексте и так умеет генерировать осмысленные ответы. Мы даже разобрали наш сквозной пример «Кошка пьёт ...» и увидели, как после такой фразы модель тянется поставить «молоко». Сегодня мы зайдём с другой стороны и спросим: а как модель вообще научилась так угадывать? Ответ — через предобучение.

Предобучение — это первый этап обучения большой модели на огромном объёме текстов из интернета.

Метафора: ребёнок, который дочитывает фразы

Вспомни, как маленький ребёнок учит язык. Никто не выдаёт ему словарь и грамматику. Он просто слышит вокруг тысячи фраз: «помой руки перед...», «на улице идёт...», «кошка пьёт...». И в какой-то момент сам начинает дочитывать концовку: «...едой», «...дождь», «...молоко». Он не зубрил правила — он впитал их из моря услышанной речи.

Предобучение — это ровно та же история, только в гигантском масштабе и на скорости машины. Модели показывают кусок текста, обрезают его на каком-то слове и заставляют угадать, что было дальше. Потом сравнивают её догадку с настоящим продолжением и чуть-чуть подкручивают веса — числа внутри нейросети, которые мы разбирали в модуле про обучение, — чтобы в следующий раз она ошиблась чуть меньше.

А теперь представь, что таких «обрезанных фраз» не сотни, как у ребёнка за день, а триллионы. И ребёнок «слушает» их без перерыва на сон, неделями подряд, на тысячах компьютеров сразу. Вот что такое предобучение.

Почему именно «угадай следующее слово»

Тут кроется красивый трюк. Чтобы учить модель с учителем, обычно нужны примеры с правильными ответами — метки. Помнишь, в задаче «кошка против собаки» к каждой фотке вручную приписывали ярлык «кошка» или «собака»? Размечать так весь интернет — невозможно, на это не хватит людей.

Но с текстом метку расставлять не нужно — она уже внутри! Возьми любую фразу из интернета:

Что показываем моделиЧто она должна угадать (метка)
Кошка пьётмолоко
Кошка пьёт молокоиз
Кошка пьёт молоко измиски

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

На каких данных это всё происходит

«Тексты из интернета» звучит расплывчато. Давай конкретнее. В котёл предобучения обычно идёт примерно такое:

  • Веб-страницы — статьи, блоги, форумы, новости, отзывы. Самая большая часть.
  • Книги — художественные и научные, оцифрованные тексты.
  • Справочники и энциклопедии — например, Википедия. Отсюда модель и «знает» столицу Франции.
  • Код — программы с открытых площадок. Поэтому ChatGPT умеет писать и объяснять код.
  • Диалоги и переписки — публичные обсуждения, комментарии. Отсюда — манера вести беседу.

Масштаб трудно уложить в голове. Если бы один человек решил прочитать весь этот текст вслух без остановки, ему не хватило бы и тысячи жизней. А модель «проходит» его не один раз. Именно из-за такого объёма факты вроде «Париж — столица Франции» встречаются модели не один раз, а тысячи раз в разных текстах — и она запоминает их как устойчивую закономерность.

Важно: модель не хранит интернет целиком, как папку с файлами. Она не может «открыть» прочитанную страницу заново. Всё, что осталось от чтения, — это подкрученные веса. Знания растворены в числах, а не лежат текстом.

Как из угадывания слов вырастает знание

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

  • «Столица Франции — это город ...» → чтобы поставить «Париж», надо знать факт.
  • «Дважды два равно ...» → чтобы поставить «четыре», надо чуть-чуть уметь считать.
  • «Он открыл дверь и увидел, что в комнате ...» → чтобы продолжить осмысленно, надо понимать сюжет и логику.
  • «Кошка пьёт ...» → чтобы поставить «молоко», а не «бетон», надо знать, что делают кошки.

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

Связь со сквозными примерами

Давай вернёмся к нашим двум старым знакомым и посмотрим на них уже глазами предобучения.

«Кошка пьёт ...»

Откуда модель знает, что после «кошка пьёт» удобнее поставить «молоко», а не «трактор»? Из предобучения. В прочитанных текстах фраза «кошка пьёт молоко» (и похожие) встречалась много раз, а «кошка пьёт трактор» — ни разу. Подкручивая веса после каждой такой фразы, модель постепенно стала ставить «молоко» с высокой уверенностью. Никто не объяснял ей правило «кошки пьют жидкости» — она вывела его сама из частоты встреч.

«Кошка против собаки»

А что с нашей картиночной задачей? Прямой связи нет: предобучение языковой модели идёт на тексте, а не на фотках. Но идея — родная. Помнишь, в задаче с кошкой и собакой мы говорили про переобучение — когда модель зазубрила примеры вместо того, чтобы уловить закономерность? В предобучении подстерегает та же ловушка, только в гигантском масштабе. Если какой-то текст попался модели слишком часто, она может его буквально заучить наизусть и потом выдавать дословно — это и есть переобучение на уровне целых текстов. Та же болезнь, тот же принцип — просто масштаб другой.

Откуда берутся ошибки модели

Это самая честная часть урока. Раз модель — это слепок интернета, то и все болячки интернета протекают в неё. Разберём прямо.

  • В интернете полно неправды. Мифы, устаревшие факты, ошибки, чьи-то фантазии. Модель не отличает правду от лжи — она впитывает всё подряд как «обычные тексты». Если глупость повторяли часто, модель повторит её уверенно.
  • Модель учится звучать правдоподобно, а не быть правой. Её цель в предобучении — угадать складное продолжение, а не сказать истину. Поэтому она может выдать галлюцинацию — уверенно звучащий, но выдуманный ответ. Это не «вранье со зла», а прямое следствие того, чему её учили.
  • У знаний есть дата. Модель прочитала интернет до какого-то момента и про события после ничего не знает. Спросишь её про вчерашний матч — она либо честно скажет, что не знает, либо что-нибудь сочинит.
  • Перекосы данных передаются модели. Если в текстах какая-то тема освещена однобоко или с предвзятостью, модель унаследует этот перекос — она ведь просто отражает то, что прочитала.

Запомни главное и не пугайся: модель не «разумна» и не «врёт нарочно». Она статистически продолжает текст на основе прочитанного. Понимая это, ты будешь относиться к её ответам спокойно и с проверкой — как к мнению начитанного, но не всегда точного собеседника.

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

Чего предобучение НЕ делает

Тут многие спотыкаются, поэтому проговорим отдельно. После одного только предобучения модель — это ещё не вежливый помощник из ChatGPT. Она умеет лишь одно: складно продолжать текст. Спросишь её «Как сварить макароны?» — а она вместо ответа может выдать ещё десяток похожих вопросов, потому что в интернете вопросы часто идут списком. Она не «понимает», что от неё хотят полезный ответ.

Чтобы превратить такую «продолжалку текста» в собеседника, который отвечает по делу, вежливо и безопасно, нужен второй этап — дообучение на оценках людей (его называют RLHF). Но это тема следующих уроков. Сейчас держи в голове простую картинку: предобучение даёт сырые знания и язык, а вежливость и полезность прикручивают потом.

Частые ошибки и подводные камни

Вот грабли, на которые чаще всего наступают, когда впервые слышат про предобучение.

1. Думать, что модель «помнит» прочитанные страницы

Модель не библиотека и не поисковик. Она не хранит тексты и не может открыть конкретную статью, которую «читала». От всего чтения остались только подкрученные веса. Поэтому она не даст тебе ссылку на источник и легко перепутает детали — она их не помнит дословно, а реконструирует по закономерностям.

2. Считать, что модель учили отвечать на вопросы

В предобучении нет ни одного урока «вот вопрос — вот правильный ответ». Есть только «вот кусок текста — угадай следующее слово». Способность отвечать на вопросы — побочный эффект и плод второго этапа. Если помнить это, перестаёшь удивляться, почему модель иногда отвечает невпопад: её базовый навык — продолжать текст, а не давать ответы.

3. Верить, что раз модель уверенно говорит — значит, это правда

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

4. Думать, что больше данных — всегда лучше

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

5. Путать предобучение с обучением «под тебя» во время разговора

Когда ты переписываешься с ChatGPT, он не учится на твоих сообщениях прямо в этот момент и не меняет свои веса. Предобучение уже давно закончилось — это был отдельный долгий этап до того, как модель попала к пользователям. В разговоре она лишь применяет то, что выучила раньше. То, что она «помнит» сказанное выше в чате, — это не дообучение, а просто текст, который ей показывают целиком.

Мини-практика: стань предобучением сам

Кода сегодня не пишем — урок про идею. Но идею стоит пощупать руками. Сделай так:

  1. Возьми любимую песню или мем, который знаешь наизусть. Попроси друга прочитать строчку и оборвать её на середине — а ты доскажи. Получилось? Поздравляю, ты только что сыграл в ту же игру «угадай следующее слово», что и модель. Заметь: ты не «вспоминал правило», ты просто впитал текст от частого повторения.
  2. Теперь придумай фразу, у которой много правдоподобных продолжений: например «Сегодня на перемене я ...». Запиши пять разных концовок. Это и есть та самая неопределённость, с которой модель имеет дело каждое слово, — правильных вариантов часто несколько.
  3. Найди в интернете факт, в котором не уверен, и спроси про него ChatGPT. Затем перепроверь ответ в надёжном источнике. Сходится? Если нет — ты только что поймал галлюцинацию и увидел, почему она появляется.
  4. Подумай и запиши своими словами: почему задача «угадай следующее слово» заставляет модель невольно выучить факты? Если сможешь объяснить это младшему брату или сестре — значит, урок усвоен по-настоящему.

Итоги

Сегодня ты разобрал самый первый и самый долгий этап в жизни ChatGPT — предобучение.

  • Предобучение — это первый этап обучения большой модели на огромном объёме текстов из интернета.
  • Вся тренировка сводится к одной игре: угадай следующее слово. Правильный ответ — это просто следующее слово в тексте, поэтому метки не нужно расставлять руками, и в дело идёт почти весь интернет.
  • Чтобы хорошо угадывать слова, модели приходится исподволь впитать язык, факты, счёт и здравый смысл — знания получаются побочным продуктом игры в угадайку.
  • В наш сквозной пример это ложится точно: «молоко» после «кошка пьёт» модель ставит потому, что много раз встречала эту фразу, а не потому, что её научили правилу.
  • Из тех же данных растут и ошибки: галлюцинации, устаревшие факты и перекосы — модель честно отражает интернет, а он не всегда прав.
  • После одного предобучения модель умеет лишь продолжать текст. Вежливым и полезным помощником её делает уже следующий этап.

Теперь у нас есть модель, которая впитала язык и факты, но пока ведёт себя как дикая «продолжалка текста». В следующем уроке мы посмотрим, как её приручают: разберём дообучение на оценках людей — RLHF, — благодаря которому ChatGPT начинает отвечать по делу, вежливо и без откровенно опасных советов.

Проверьте себя
1. Что такое предобучение?
AДообучение модели на оценках людей, чтобы ответы стали вежливее
BПервый этап обучения большой модели на огромном объёме текстов из интернета
CРучная разметка картинок метками «кошка» и «собака»
DНастройка модели под конкретного пользователя во время разговора
2. Какую задачу решает модель во время предобучения?
AОтвечает на заранее заготовленные вопросы с правильными ответами
BДелит картинки на кошек и собак
CУгадывает следующее слово в тексте
DПереводит тексты с одного языка на другой
3. Почему для предобучения не нужно вручную размечать данные метками?
AПотому что метки модели вообще не нужны
BПотому что метку — следующее слово — уже содержит сам текст
CПотому что данные размечают другие нейросети
DПотому что предобучение идёт без правильных ответов вслепую
4. Почему ChatGPT может выдать галлюцинацию — уверенный, но выдуманный ответ?
AПотому что его специально учили обманывать пользователей
BПотому что его цель — звучать складно и правдоподобно, а не обязательно быть правым
CПотому что у него заканчивается память
DПотому что он забывает прочитанные тексты
5. Почему после фразы «Кошка пьёт ...» модель ставит «молоко», а не «трактор»?
AПотому что ей объяснили правило, что кошки пьют жидкости
BПотому что слово «молоко» короче слова «трактор»
CПотому что в прочитанных текстах «кошка пьёт молоко» встречалось много раз, а «кошка пьёт трактор» — никогда
DПотому что человек вручную указал ей правильный ответ для этой фразы
6. Что НЕ умеет модель сразу после одного только предобучения?
AПродолжать оборванный текст
BСкладно генерировать слова
CВежливо и по делу отвечать на вопросы как готовый помощник
DИспользовать впитанные из текстов факты