Базовая модель

Пре-обучение нейросети.

12 мин
По колено
12.11.2025

Цель данного этапа, дать максимальное количество знаний, насытить модель, чтобы у неё появилась широкая эрудиция.
Но откуда взять информацию, чтобы модель много-много знала и была супер эрудированная? 💁
Может дать ей почитать все энциклопедии мира?

В целом верно, но есть способ лучше. Максимально широкие, правда, не всегда глубокие знания, доступны бесплатно в интернете. Есть известный инструмент из веб-разработки — скрейпинг. Он-то нам и пригодится!

Формирование датасета.

Скрейпим весь интернет за рядом вручную прописанных исключений.

— Игнорируем 18+, темы по изготовлению взрывчатки, ядов, упоминанию кто ответственный за 11 сентября и т.д.

Таким образом, весь текст с попавшихся сайтов заносится в один .txt файл, игнорируя картинки и видео. Токенизируем результат и получаем наш датасет, фундамент знаний, эрудицию нашей нейросети!

И вот теперь можем начинать само пре-обучение.
Мы буквально настраиваем веса (значения нейронов) модели так, чтобы повышалась вероятность прогнозирования нужного токена.

Как это? 🤔

Представь, у нас есть не законченное предложение, в котором 2 токена уже известны. Надо понять какой третий.

Незаконченное предложение из трёх слов.
Незаконченное предложение из трёх слов.

До завершения пре-обучения, модель будет давать равную вероятность появления для всех возможных следующих токенов. Она ведь ещё не видела много-много взаимосвязей, не поняла закономерости появление следующего токена после вот таких двух.
Выглядит как-то так:

Вероятности возможных токенов для продолжения предложения.
Вероятности возможных токенов для продолжения предложения.

В процессе анализа текстов из интернета, она, ну например, поняла что токен означающий «Ура» 🫡 появляется чаще всего. Она зафиксировала эту закономерность и по итогу пре-обучения, обновила вероятности.

Обновлённые вероятности токенов после пре-обучения.
Обновлённые вероятности токенов после пре-обучения.

Держу тебя за руку.

Где магия?

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

То есть, модель настроила веса в матрицах эмбедингов так, чтоб повторяющиеся (применяющиеся, используемые, соотносящиеся) по смыслу слова имели большую вероятность прогноза рядом друг с другом.

— Предложения со звёздочкой, нормально если пока не понятно.

Фух 😳

Теперь если человек напишет «День Победы», токен «Ура» будет иметь наибольшую вероятность прогноза, потому что модель видела такое сочетание слов в датасете (скорее всего не раз) и веса модели в процессе пре-обучения уже настроены.
Такое улавливание смысла и изменение весов для повышения вероятности прогноза нужного по смыслу токену происходит для всего текстового массива вообще.

Данный этап занимает больше всего времени по сравнению с остальными и является самым дорогим. ‼️
Сам подумай, надо чтоб смысловая связь между токенами (словами) сформировалась вообще почти по всем используемым текстовым сочетаниям!

Ещё недавно, для выполнения этапа пре-обучения требовались месяцы беспрерывной работы кластеров GPU стоимостью сотни миллионов долларов.
А ведь ещё и за электричество платить ₽₽₽.

Вопрос о недавнем.

Из-за дороговизны, пре-обучение проводили раз в полгода или пару месяцев. Именно поэтому если 2 года назад мы бы спросили ChatGPT:

“Какая завтра погода в Москве?”

он бы не ответил на вопрос, а выдал несуразицу (галлюцинировал). Потому что на этапе пре-обучения не было информации для ответа на этот вопрос.

— Хмм, а что будет если задать такой вопрос современной модели?

Фундаментально ничего. Модель также не может получить знания будущего на этапе пре-обучении. Но модель научили понимать, что ей не хватает знаний и автоматически делать поиск в интернете 😊

Замечали, как появляется вращающейся кружок и надпись “Поиск” ? 🔍

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

Итого.

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

Значит ли это, что модель готова общаться и выдавать человеко-понятные ответы?

— Нет.

Она ведёт себя как 2 летний ребенок, которому закачали в голову весь интернет.
Много знает, но мысли не формулирует, изъясняться не умеет. Как это выглядит?

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

А для того чтобы большая языковая модель начала общаться по человечески, нужен следующий этап: настройка под присмотром (Supervised Fine Tuning).
Об этом поговорим далее.