Данные и предварительное обучение (Pre-training)

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

1. Источники данных: из чего состоит информационный рацион нейросетей

Источники данных: из чего состоит информационный рацион нейросетей

В прошлой статье мы заглянули под капот больших языковых моделей (LLM) и разобрали архитектуру Трансформеров. Мы узнали, как механизм внимания помогает нейросети понимать связи между словами. Но Трансформер — это лишь мощный двигатель. Чтобы он заработал, ему нужно топливо. Этим топливом являются данные.

На этом этапе мы разберем предварительное обучение (pre-training) — самый долгий, дорогой и масштабный этап создания любой LLM. Именно здесь модель превращается из «чистого листа» в эрудита, знающего квантовую физику, рецепты борща и правила написания кода на Python.

Масштабы: сколько читает нейросеть?

Человек за всю свою жизнь физически способен прочитать около 5–10 тысяч книг. Это примерно 10–20 гигабайт чистого текста. Современные языковые модели на этапе предварительного обучения «проглатывают» корпус данных (data corpus) объемом в десятки терабайт.

Один терабайт текста — это около 300 миллионов страниц. Если распечатать этот объем на бумаге формата А4 и сложить в стопку, ее высота превысит 30 километров. Модели уровня GPT-4 или Llama 3 обучаются на датасетах размером от 10 до 15 терабайт.

Откуда берется такое колоссальное количество информации? Разработчики собирают ее по всему интернету. Разные источники формируют разные навыки у нейросети.

| Источник данных | Доля в датасете (примерно) | Чему учится нейросеть | |---|---|---| | Веб-страницы (Common Crawl) | 60–80% | Пониманию структуры языка, сленгу, многообразию мнений и стилей. | | Исходный код (GitHub) | 5–10% | Строгой логике, алгоритмическому мышлению, программированию. | | Книги и литература | 5–10% | Длинным связным рассуждениям, сторителлингу, сложной грамматике. | | Википедия (на всех языках) | 3–5% | Энциклопедическим фактам, истории, научным концепциям. | | Форумы (Reddit, StackOverflow) | 2–5% | Формату диалога, ответам на вопросы, решению практических проблем. |

> Современная LLM — это слепок всего интернета. Она знает то, что знает человечество, потому что прочитала всё, что человечество успело оцифровать и выложить в сеть.

Очистка данных: почему нельзя просто скачать интернет

Интернет полон мусора. Если мы просто загрузим в нейросеть все подряд, она научится генерировать спам, ругательства и бессвязный текст. В машинном обучении есть золотое правило: Garbage in, garbage out (Мусор на входе — мусор на выходе).

Поэтому перед обучением данные проходят строгую фильтрацию. Этот процесс включает несколько этапов:

  • Дедупликация (Deduplication). Удаление повторяющихся текстов. Представьте, что вы учите английский язык, и вам 10 000 раз подряд показывают фразу «Купите биткоин прямо сейчас». Вы решите, что это самая важная фраза в языке. Чтобы модель не заучивала спам и шаблонные тексты сайтов (например, пользовательские соглашения), все дубликаты удаляются.
  • Эвристическая фильтрация (Heuristic filtering). Удаление страниц, где слишком много программного кода (если это не GitHub), слишком мало текста (одни картинки) или неестественное распределение слов (SEO-оптимизированные статьи, состоящие из ключевых запросов).
  • Удаление токсичности. Исключение текстов, содержащих язык вражды, незаконный контент или экстремизм.
  • !Воронка очистки данных для обучения нейросети

    После очистки от изначальных 100 терабайт сырых данных может остаться всего 10 терабайт качественного текста. Именно этот «золотой запас» отправляется в Трансформер.

    Главный механизм: предсказание следующего слова

    Как именно происходит обучение? Никто не сидит рядом с нейросетью и не объясняет ей правила русского языка. Используется метод самообучения (self-supervised learning).

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

    Процесс выглядит так:

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

    !Интерактивная визуализация предсказания следующего слова

    Математически цель языковой модели — вычислить условную вероятность следующего слова. Это описывается базовой формулой языкового моделирования:

    Где:

  • — вероятность (от английского Probability).
  • — целевое (следующее) слово, которое мы хотим предсказать.
  • — математический знак условной вероятности (читается как «при условии»).
  • — контекст, то есть все предыдущие слова в предложении.
  • Простыми словами: формула вычисляет шанс появления конкретного слова , опираясь на весь предшествующий текст. Если контекст «Красная Шапочка несла бабушке», то вероятность слова «пирожки» будет стремиться к 99%, а вероятность слова «синхрофазотрон» — к 0%.

    Эмерджентность: как из угадывания рождается понимание

    Здесь возникает главный философский и технический вопрос: если модель просто играет в продвинутое Т9 (автодополнение), откуда у нее берутся знания о мире? Как она решает логические задачи?

    Ответ кроется в понятии эмерджентности (emergence) — возникновении сложных свойств у системы, которые не были заложены в нее изначально.

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

    Чтобы правильно продолжить детективный рассказ, модели нужно «понять» мотивы персонажей, хронологию событий и логику расследования.

    > Нейросеть не копирует тексты в свою память (она не является базой данных). Она сжимает закономерности мира в математические формулы.

    Пример из жизни: представьте, что вас заперли в библиотеке с книгами на неизвестном вам языке. У вас нет словаря. Но вы читаете миллионы книг. Со временем вы заметите, что после символа «А» часто идет символ «Б». Потом вы поймете структуру предложений. А прочитав тысячу книг по биологии, вы начнете понимать, как устроена клетка, просто анализируя паттерны символов. Именно это делает LLM.

    Итог предварительного обучения: Базовая модель

    Обучение на тысячах видеокарт (GPU) длится месяцами и стоит десятки миллионов долларов. В результате получается базовая модель (base model).

    Базовая модель обладает колоссальными знаниями, но у нее есть одна проблема: она не умеет быть помощником. Она умеет только продолжать текст.

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

    Чтобы превратить этого эрудированного, но неконтролируемого генератора текста в полезного ChatGPT, который отвечает на вопросы и выполняет команды, требуется следующий шаг. О нем мы поговорим в следующей статье — «Тонкая настройка (Fine-tuning) и адаптация».

    2. Очистка и дедупликация: подготовка качественного обучающего корпуса

    Очистка и дедупликация: подготовка качественного обучающего корпуса

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

    Но здесь возникает критическая проблема. Интернет — это не только Википедия и классическая литература. Это миллиарды страниц со спамом, SEO-статьями, бесконечными меню навигации, токсичными комментариями и скопированными друг у друга новостями. Если заставить Трансформер предсказывать следующее слово на таких данных, он станет идеальным генератором информационного мусора.

    В машинном обучении существует непреложный закон: Garbage in, garbage out (Мусор на входе — мусор на выходе). Поэтому между скачиванием интернета и началом обучения модели стоит самый сложный и недооцененный этап — создание чистого обучающего корпуса (training corpus).

    Анатомия цифрового мусора

    Сырые данные, собранные веб-краулерами (программами, автоматически скачивающими веб-страницы), непригодны для обучения. Представьте, что вы учите русский язык, читая каждую страницу в интернете подряд. Вы бы быстро выучили фразы вроде «Принять все файлы cookie», «Купить недорого с доставкой» и «Ошибка 404».

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

    !Воронка очистки данных: от сырого интернета к качественному обучающему корпусу

    Шаг 1: Эвристическая фильтрация

    Первый этап очистки — эвристическая фильтрация (heuristic filtering). Эвристики — это простые, жестко заданные правила, которые позволяют быстро отсеять очевидный брак без использования сложных алгоритмов.

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

    | Правило (Эвристика) | Что удаляется | Зачем это нужно | Пример из жизни | |---|---|---|---| | Доля букв в тексте | Страницы, где слишком много цифр, спецсимволов или пунктуации. | Исключение логов серверов, таблиц с сырыми данными, фрагментов кода (если это не датасет для программирования). | Страница, состоящая из 0x4F 0x2A 0x11... | | Длина слов | Тексты, где средняя длина слова превышает 15-20 символов. | Удаление случайного набора букв или длинных химических/биологических последовательностей. | Текст: «авпвапвапвапвапвапвап» | | Количество слов | Страницы, содержащие менее 50-100 слов. | Исключение пустых страниц, заглушек или сайтов, состоящих только из картинок. | Страница с одной надписью «Сайт в разработке» | | Символы списков | Тексты, где маркеры списков (•, -, *) составляют более 10% контента. | Удаление бесконечных меню навигации, каталогов товаров и оглавлений. | Меню интернет-магазина из 500 категорий |

    Благодаря эвристикам объем сырых данных сокращается примерно на 30–40%. Но оставшийся текст все еще таит в себе серьезную угрозу для интеллекта модели — повторения.

    Шаг 2: Дедупликация и борьба с зубрежкой

    В интернете популярная информация копируется миллионы раз. Новостные заметки перепечатываются сотнями изданий, цитаты великих людей дублируются в соцсетях, а лицензионные соглашения (EULA) идентичны на тысячах сайтов.

    Если не провести дедупликацию (deduplication) — удаление повторяющихся фрагментов, — произойдет катастрофа. Языковая модель начнет страдать от эффекта запоминания (memorization).

    Вместо того чтобы выучить общие правила языка и логики (эмерджентность, о которой мы говорили ранее), модель просто вызубрит часто встречающиеся куски текста наизусть. Если фраза «Подписывайтесь на наш канал и ставьте лайки» встретится в датасете 100 000 раз, вероятность предсказания этих слов станет настолько высокой, что модель будет вставлять эту фразу в ответ на вопрос о квантовой физике.

    Как найти дубликаты: от точного к нечеткому

    Удалить полные копии страниц легко — достаточно сравнить их посимвольно. Но что делать, если новостной сайт скопировал статью, но изменил заголовок и пару слов в первом абзаце? Для этого используется нечеткая дедупликация (fuzzy deduplication).

    Алгоритм разбивает текст на N-граммы (N-grams) — цепочки из нескольких идущих подряд слов. Например, фраза «Кот спит на диване» разбивается на 3-граммы: «Кот спит на» и «спит на диване».

    Затем система сравнивает множества N-грамм двух текстов с помощью математической метрики, которая называется индекс Жаккара (Jaccard index).

    Формула индекса Жаккара выглядит так:

    Где:

  • — коэффициент сходства двух текстов (от 0 до 1).
  • и — множества N-грамм первого и второго текста.
  • — количество общих элементов (пересечение множеств).
  • — общее количество уникальных элементов в обоих текстах (объединение множеств).
  • > Простыми словами: Индекс Жаккара — это доля общих слов между двумя текстами по отношению ко всем уникальным словам в этих текстах.

    Пример с числами: Представим два коротких предложения (для простоты возьмем слова вместо N-грамм):

  • Текст А: «Кот спит на теплом диване» (5 слов)
  • Текст Б: «Кот спит на старом диване» (5 слов)
  • Общие слова (пересечение): «Кот», «спит», «на», «диване» (4 слова). Все уникальные слова (объединение): «Кот», «спит», «на», «теплом», «старом», «диване» (6 слов).

    Считаем индекс Жаккара: (или 66%).

    Разработчики задают порог (например, 80%). Если индекс Жаккара между двумя документами превышает порог, один из них безжалостно удаляется. Дедупликация — самый вычислительно сложный этап, так как требует сравнения миллионов документов друг с другом, но она критически важна для способности модели к обобщению.

    Шаг 3: Деидентификация и безопасность

    Модели обучаются на публичных данных, но в интернете полно информации, которую нейросеть не должна знать и тем более выдавать пользователям. Это персональные данные (Personally Identifiable Information, PII): номера телефонов, адреса электронной почты, паспортные данные и номера кредитных карт.

    Для их удаления используются регулярные выражения (Regular Expressions, RegEx) — специальные шаблоны поиска. Например, шаблон \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b автоматически находит в терабайтах текста любые email-адреса и заменяет их на безопасную заглушку [EMAIL].

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

    Шаг 4: Оценка качества (Quality Scoring)

    Даже после удаления спама, дубликатов и токсичности, оставшийся текст может быть просто скучным или бессмысленным. Как оставить только самое полезное?

    Создатели LLM используют метод оценки качества с помощью эталонных данных. Они берут небольшой, но безупречный набор текстов (например, статьи из Википедии, изданные книги, научные публикации) и обучают на нем небольшую модель-классификатор.

    Затем эта модель-оценщик «читает» весь отфильтрованный интернет и ставит каждой странице оценку от 0 до 1: насколько этот текст похож на качественную литературу или энциклопедию?

  • Статья с подробным разбором ремонта двигателя получит оценку 0.95.
  • Форумная ветка, где пользователи обмениваются короткими репликами «+1» и «согласен», получит 0.12.
  • Тексты с низкими оценками отбрасываются.

    > «Качество данных важнее их количества. Модель, обученная на 1 терабайте идеально чистого текста, будет умнее и точнее модели, обученной на 10 терабайтах интернет-мусора». > > Исследование качества данных в LLM

    Итог: рождение золотого стандарта

    Процесс подготовки данных — это жесточайший естественный отбор. Из изначальных 100 терабайт сырого текста, собранного веб-краулерами, после эвристики, дедупликации, удаления персональных данных и фильтрации по качеству может остаться всего 10–15 терабайт.

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

    Теперь, когда у нас есть идеальный обучающий корпус и базовая модель предсказала на нем триллионы слов, она стала невероятно эрудированной. Но она всё ещё не умеет вести диалог и выполнять команды. О том, как превратить эрудита в полезного ассистента, мы поговорим на следующем шаге — в статье, посвященной тонкой настройке (Fine-tuning).

    3. Токенизация: алгоритмы разбиения и преобразования текста в числа

    В предыдущей статье мы проделали колоссальную работу: собрали данные со всего интернета, отфильтровали спам, удалили дубликаты и токсичный контент. Теперь у нас есть идеальный, кристально чистый обучающий корпус объемом в терабайты текста.

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

    Этот важнейший мост между человеческим языком и нейросетью называется токенизацией (tokenization).

    Что такое токен?

    Токен (token) — это базовая единица информации, которую обрабатывает языковая модель.

    Многие думают, что токен — это одно слово. Это логичное предположение, но оно неверно. Если бы мы использовали целые слова в качестве токенов, мы бы столкнулись с неразрешимыми проблемами.

    Проблема целых слов

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

  • «Кот» = 1
  • «спит» = 2
  • «на» = 3
  • «диване» = 4
  • Звучит просто. Но русский язык невероятно богат на формы. Нам придется добавить в словарь слова «кота», «коту», «котом», «котики», «котище». А еще есть опечатки: «ккот», «коот».

    Словарь разрастется до десятков миллионов записей. Нейросети придется хранить в памяти гигантскую таблицу, что сделает ее медленной и неповоротливой. Более того, если модель встретит новое слово (например, неологизм «зумер»), которого нет в словаре, она просто не сможет его прочитать. Это называется проблемой Out-of-Vocabulary (OOV) — слово вне словаря.

    Проблема отдельных букв

    Если слова слишком велики, почему бы не разбить текст на отдельные буквы?

  • «К» = 1
  • «о» = 2
  • «т» = 3
  • Словарь получится крошечным — всего пара сотен символов (алфавит, цифры, знаки препинания). Проблема OOV исчезнет: из букв можно составить любое слово.

    Но здесь возникает другая беда. Мы помним, что у Трансформера есть окно контекста — ограниченное количество токенов, которые он может «держать в голове» одновременно. Если слово «электрификация» — это один токен, модель легко уловит смысл предложения. Но если это 14 отдельных токенов-букв, нейросеть потратит кучу вычислительных ресурсов просто на то, чтобы собрать слово воедино, и быстро забудет, о чем шла речь в начале абзаца.

    Золотая середина: Сабворды

    Современные LLM используют компромиссный подход — токенизацию на основе подслов (subword tokenization).

    Токен — это кусочек слова. Часто встречающиеся слова (например, «мама», «дом», «the», «and») становятся одним токеном. А редкие или длинные слова разбиваются на несколько логичных частей.

    > Токенизацию можно сравнить с конструктором Lego. Популярные детали (целые слова) мы берем готовыми из коробки. А сложные и необычные конструкции (редкие слова) мы собираем из маленьких базовых кубиков (слогов и букв).

    Например, слово «невероятный» может быть разбито на три токена: «не» + «вероят» + «ный».

    Как алгоритм учится разбивать слова: Byte-Pair Encoding (BPE)

    Как именно компьютер решает, где резать слово? Он не знает правил грамматики, приставок или суффиксов. Он использует чистую статистику.

    Самый популярный алгоритм токенизации, который используется в моделях семейства GPT, называется Byte-Pair Encoding (BPE) (кодирование пар байтов).

    Алгоритм BPE работает по принципу поиска самых частых совпадений. Процесс обучения токенизатора (создания словаря) происходит до обучения самой нейросети и выглядит так:

  • Старт с базовых символов: Сначала словарь состоит только из отдельных символов (букв, цифр, знаков препинания). Текст разбивается на эти символы.
  • Поиск пар: Алгоритм сканирует весь обучающий корпус и ищет пару символов, которые чаще всего стоят рядом.
  • Слияние: Найденная пара объединяется в один новый токен и добавляется в словарь.
  • Повторение: Процесс повторяется тысячи раз, пока словарь не достигнет заданного размера (обычно от до токенов).
  • !Схема алгоритма Byte-Pair Encoding (BPE)

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

    Таким образом, BPE автоматически выучивает корни слов, популярные приставки и окончания, просто анализируя частоту их совместного появления в текстах.

    Словарь: от текста к матрицам

    Результатом работы алгоритма BPE является Словарь (Vocabulary). Это статичная таблица, где каждому токену присвоен уникальный целочисленный идентификатор (ID).

    Когда вы пишете промпт в ChatGPT, происходит следующее:

  • Текст поступает в токенизатор.
  • Токенизатор нарезает текст на кусочки (токены) согласно своему словарю.
  • Каждый кусочек заменяется на его ID.
  • Например, фраза «Hello world!» может превратиться в такую последовательность чисел:

  • «Hello» 15496
  • « world» (с пробелом в начале) 3158
  • «!» 0
  • Итоговый массив [15496, 3158, 0] — это и есть то, что физически поступает на вход нейросети.

    !Интерактивный токенизатор текста

    Налог на язык (Token Tax)

    Понимание токенизации открывает глаза на одну из главных проблем современных LLM — языковое неравенство.

    Большинство популярных моделей (например, ранние версии GPT) обучались преимущественно на английских текстах. Это значит, что алгоритм BPE при создании словаря видел английские буквы и слова гораздо чаще.

    В результате английские слова почти всегда становятся одним токеном. А вот слова на русском, арабском или хинди алгоритм видел редко, поэтому он не успел «склеить» их в целые слова. Ему приходится разбивать их на мелкие кусочки — иногда по 3-4 токена на одно короткое слово.

    Сравним две фразы с одинаковым смыслом:

  • Английский: «I love machine learning» 4 токена.
  • Русский: «Я люблю машинное обучение» может занимать 10-12 токенов (в зависимости от модели).
  • Почему это важно для пользователя и разработчика?

  • Стоимость: API языковых моделей тарифицируется за количество токенов. Если русский текст разбивается на большее количество токенов, использование модели на русском языке становится физически дороже, чем на английском.
  • Окно контекста: Если модель может запомнить токенов, то на английском это будет около слов (целая статья), а на русском — всего слов.
  • Скорость генерации: Модель генерирует текст по одному токену за раз. Чем больше токенов нужно для слова, тем медленнее модель «печатает» ответ на экране.
  • Этот феномен получил название Token Tax («налог на токенизацию»). К счастью, в новых моделях (например, GPT-4o или Llama-3) разработчики специально балансируют словари, добавляя больше многоязычных токенов, чтобы сделать работу с неанглийскими языками дешевле и быстрее.

    Теперь мы знаем, как сырой текст превращается в числа, понятные машине. У нас есть архитектура (Трансформер), чистые данные и способ их прочитать (токенизация). На следующем шаге мы перейдем к самому захватывающему этапу — тонкой настройке (Fine-tuning), где базовая модель-эрудит превращается в полезного и послушного ИИ-ассистента.

    4. Самообучение: базовая механика предсказания следующего токена

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

    Но как именно Трансформер учится? Как набор матриц и весов превращается в эрудированного собеседника, который знает столицы всех стран, умеет писать код на Python и сочинять стихи? Секрет кроется в удивительно простом, но невероятно мощном механизме, который называется предсказанием следующего токена (next-token prediction).

    Самообучение: когда данные становятся учителем

    В классическом машинном обучении долгое время доминировал подход с учителем (supervised learning). Чтобы научить нейросеть отличать кошек от собак, людям приходилось вручную размечать десятки тысяч фотографий: «это кот», «это собака».

    Но язык слишком сложен и многогранен. Невозможно вручную разметить весь интернет, чтобы объяснить модели правила грамматики, сарказм или законы квантовой физики. Поэтому создатели Больших Языковых Моделей (LLM) используют самообучение (self-supervised learning).

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

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

    Механика скользящего окна

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

    Представьте, что в нашем обучающем корпусе есть фраза: «Земля вращается вокруг Солнца».

    Токенизатор разбивает ее на токены (для простоты представим, что один токен = одно слово): [Земля] [вращается] [вокруг] [Солнца]

    Процесс обучения выглядит как игра в прятки:

  • Шаг 1: Модель видит токен [Земля]. Ее задача — предсказать следующий. Она выдает свои догадки. Правильный ответ: [вращается].
  • Шаг 2: Окно сдвигается. Модель видит [Земля] [вращается]. Она должна предсказать следующий токен. Правильный ответ: [вокруг].
  • Шаг 3: Модель видит [Земля] [вращается] [вокруг]. Правильный ответ: [Солнца].
  • На каждом шаге нейросеть анализирует весь доступный ей предыдущий контекст, чтобы сделать максимально точный прогноз.

    Математика угадывания: условная вероятность

    Под капотом Трансформер не мыслит словами. Он оперирует вероятностями. На каждом шаге модель вычисляет условную вероятность для каждого токена из своего словаря.

    В математике это записывается так:

    Где:

  • — вероятность (от 0 до 1, или от 0% до 100%).
  • — токен, который мы пытаемся предсказать.
  • — символ условности (читается как «при условии, что»).
  • — предыдущие токены (наш контекст).
  • Если словарь модели состоит из токенов, то на выходе нейросеть генерирует список из чисел. Сумма всех этих чисел всегда равна (или ).

    Например, для контекста «Кошка спит на мягком» распределение вероятностей может выглядеть так:

  • «диване» ()
  • «ковре» ()
  • «кресле» ()
  • «потолке» ()
  • !Интерактивная визуализация предсказания следующего токена

    Как модель учится на своих ошибках

    В самом начале обучения, когда веса (параметры) нейросети инициализированы случайными числами, модель выдает абсолютно случайные предсказания. После фразы «Земля вращается вокруг» она с равной вероятностью может предложить слова «Солнца», «кирпича» или «глагола».

    Чтобы модель поумнела, запускается цикл оптимизации, состоящий из трех этапов:

  • Прямой проход (Forward Pass): Модель делает предсказание на основе текущих знаний.
  • Вычисление ошибки (Loss Calculation): Мы сравниваем предсказание модели с реальностью. Для этого используется математическая функция потерь — Кросс-энтропия (Cross-Entropy Loss). Если правильный токен «Солнца» получил от модели вероятность всего , функция потерь выдаст огромное значение (штраф). Если вероятность была , штраф будет минимальным.
  • Обратное распространение ошибки (Backpropagation): Это магия машинного обучения. Алгоритм вычисляет, как нужно изменить каждый из миллиардов параметров (весов) внутри Трансформера, чтобы в следующий раз вероятность правильного слова стала чуть-чуть выше.
  • Этот цикл повторяется триллионы раз на тысячах мощных видеокарт (GPU) на протяжении нескольких месяцев. Постепенно ошибка падает, а предсказания становятся всё более точными.

    Эмерджентность: как из статистики рождается понимание

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

    Ответ кроется в концепции эмерджентности — возникновении сложных свойств системы, которые не были заложены в нее изначально.

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

    Рассмотрим три примера:

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

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

    3. Логика и программирование Контекст: «Если , а , то будет больше...» Чтобы предсказать число «15», модель должна научиться выполнять базовые арифметические операции и понимать логические операторы.

    !Пирамида эмерджентных способностей языковой модели

    Главный научный руководитель OpenAI Илья Суцкевер описывал этот феномен через идею сжатия данных. Когда нейросеть пытается сжать весь интернет в свои веса (предсказывая текст с минимальной ошибкой), она вынуждена выучить внутреннюю логику, законы и процессы того мира, который этот текст породил.

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

    Проблема Базовой Модели (Base Model)

    Результатом этапа предварительного обучения (Pre-training) становится так называемая Базовая модель (Base Model или Foundation Model).

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

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

    Если вы напишете базовой модели промпт: «Напиши рецепт яблочного пирога»

    Она может ответить: «Напиши рецепт шоколадного торта. Напиши рецепт блинчиков.»

    Почему? Потому что в интернете часто встречаются списки запросов или заголовков подряд. Модель просто продолжила паттерн, который видела миллионы раз. Она не понимает, что вы задали ей команду, которую нужно выполнить.

    Чтобы превратить этого эрудированного, но неконтролируемого генератора текста в полезного ИИ-ассистента (вроде ChatGPT, Claude или GigaChat), требуется следующий, не менее важный этап — Тонкая настройка (Fine-tuning). Именно о том, как научить модель слушаться человека и следовать инструкциям, мы поговорим на следующем шаге нашего курса.

    5. Масштабирование: вычислительные мощности и формирование знаний о мире

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

    Но если модель просто играет в статистическую угадайку, откуда у нее берутся энциклопедические знания? Как алгоритм, обученный предсказывать, что после слова «доброе» чаще всего идет слово «утро», внезапно обретает способность писать код на Python, переводить стихи с японского и объяснять квантовую физику?

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

    Три кита масштабирования

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

  • Объем данных (Data): Количество текстовых токенов, которые модель «прочитает» за время обучения.
  • Размер модели (Parameters): Количество внутренних связей (весов) в архитектуре Трансформера.
  • Вычислительная мощность (Compute): Количество математических операций, необходимых для обработки данных через параметры модели.
  • Давайте посмотрим, как изменились эти показатели за несколько лет эволюции языковых моделей:

    | Поколение модели | Год выпуска | Количество параметров | Объем обучающих данных | Способности | | :--- | :--- | :--- | :--- | :--- | | GPT-1 | 2018 | 117 миллионов | ~5 гигабайт | Связные предложения, базовая грамматика | | GPT-2 | 2019 | 1.5 миллиарда | 40 гигабайт | Написание коротких эссе, удержание контекста | | GPT-3 | 2020 | 175 миллиардов | ~500 гигабайт | Базовое программирование, перевод, факты | | Современные LLM | 2023+ | От 70 до 1000+ млрд | 10+ терабайт (триллионы токенов) | Сложная логика, анализ данных, рассуждения |

    Параметры: где хранятся знания о мире

    Когда мы говорим, что модель имеет «100 миллиардов параметров», что это значит на практике?

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

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

    Знания в LLM распределены. Факт о столице Франции не хранится в одном конкретном параметре. Он «размазан» по тысячам весов в виде сложных математических паттернов. Чем больше параметров у модели, тем более тонкие, сложные и неочевидные закономерности она способна запомнить и воспроизвести.

    Законы масштабирования (Scaling Laws)

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

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

    Где:

  • — вычислительная мощность (Compute), измеряемая в FLOPs (количество операций с плавающей запятой).
  • — количество параметров модели (Number of parameters).
  • — количество токенов в обучающем наборе данных (Data).
  • — константа. На каждый токен и каждый параметр требуется примерно 2 операции для прямого прохода (чтение) и 4 операции для обратного прохода (корректировка ошибки).
  • > Пример из жизни: Если вы хотите обучить модель размером 100 миллиардов параметров () на корпусе из 1 триллиона токенов (), вам потребуется выполнить математических операций. Это число с 23 нулями.

    Эта формула (известная как закон масштабирования Chinchilla) доказала важнейший принцип: нельзя просто увеличивать размер модели (), не увеличивая объем данных (). Если создать модель на триллион параметров, но показать ей мало текста, она будет «недоученной» — как студент с огромным мозгом, который прочитал всего одну книгу.

    !Интерактивный калькулятор законов масштабирования

    Железо: почему ИИ требует электростанций

    Выполнение операций — задача, непосильная для обычных компьютеров. Центральный процессор (CPU) вашего ноутбука отлично справляется со сложными последовательными задачами, но обучение Трансформера требует выполнения миллионов простых умножений одновременно.

    Для этого используются Графические процессоры (GPU). Изначально созданные для отрисовки пикселей в видеоиграх (где нужно одновременно рассчитывать цвет миллионов точек на экране), GPU оказались идеальной архитектурой для матричных вычислений нейросетей.

    Процесс предварительного обучения (Pre-training) современной LLM выглядит так:

  • В огромном дата-центре объединяются от 10 000 до 30 000 мощнейших GPU (например, NVIDIA H100).
  • Они соединяются между собой специальными высокоскоростными кабелями, чтобы обмениваться данными за микросекунды.
  • Обучающий корпус (терабайты текста) разбивается на порции.
  • Кластер работает на пределе мощности 24/7 на протяжении 3–6 месяцев.
  • Такой суперкомпьютер потребляет десятки мегаватт электричества — столько же, сколько небольшой город. Именно поэтому создание базовых моделей (Base Models) стоит десятки и сотни миллионов долларов, и позволить себе это могут лишь крупнейшие технологические корпорации.

    Фазовые переходы: как количество рождает качество

    Самое удивительное открытие в масштабировании LLM — это феномен фазовых переходов (или эмерджентных способностей).

    В физике фазовый переход — это момент, когда вода при нагревании до 100 градусов внезапно превращается из жидкости в газ. Свойства системы меняются скачкообразно. То же самое происходит с нейросетями.

    Когда инженеры плавно увеличивают размер модели (от 1 млрд до 10 млрд, затем до 50 млрд параметров), общая ошибка предсказания текста падает плавно. Но способность решать конкретные сложные задачи появляется внезапно.

    Рассмотрим пример с арифметикой (сложение трехзначных чисел):

  • Модель на 1 млрд параметров решает задачу с точностью 1% (просто угадывает случайные числа).
  • Модель на 5 млрд параметров — точность 2%.
  • Модель на 10 млрд параметров — точность 3%.
  • Модель на 50 млрд параметров — точность внезапно прыгает до 80%!
  • !График фазового перехода при масштабировании нейросетей

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

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

    К концу этапа предварительного обучения мы получаем Базовую модель — невероятно эрудированную сущность, впитавшую в себя знания всего человечества. Однако эта сущность всё ещё является лишь «продолжателем текста». Чтобы превратить её в полезного помощника, который отвечает на вопросы и следует инструкциям, необходим следующий шаг — тонкая настройка (Fine-tuning).