Как обучают нейросети: от датасета до готовой модели
Нейросеть не думает и не запоминает тексты - она подстраивает миллиарды чисел под примеры, которые ей показали. Разбираем по шагам, откуда берутся данные для обучения и почему одна и та же модель в разных версиях звучит по-разному.
Обучение нейросети - это процесс, в котором программа миллионы раз сравнивает свой ответ с правильным и понемногу подстраивает внутренние параметры, пока ошибка не станет достаточно маленькой. Звучит просто, но за словами "обучение нейросетям" скрываются недели вычислений на тысячах видеокарт, гигантские наборы текста и картинок и несколько разных этапов, у каждого своя логика.
Дальше разберем путь по порядку: откуда берутся данные, как модель впервые "встречается" с языком, что меняется на этапе дообучения и почему без участия живых людей современные чат-боты отвечали бы куда менее складно.
Что такое датасет и почему он важнее алгоритма
Датасет - это набор примеров, на которых учится модель. Для языковой модели это тексты: статьи, книги, форумы, программный код, переписки, субтитры к видео. Для модели, которая рисует картинки, - пары "изображение плюс подпись". Чем больше и разнообразнее датасет, тем шире круг задач, с которыми модель потом справится.
Тут работает простая аналогия. Если человек десять лет читал только учебники по физике, он прекрасно разберется в формулах, но растеряется, если его попросят написать письмо в поддержку банка. С нейросетью похожая история: модель, обученную в основном на программном коде, не удивляет синтаксис Python, зато она может путаться в бытовых диалогах, если таких примеров в датасете было мало.
Качество данных решает больше, чем размер модели. Разработчики годами чистят датасеты от спама, дублей и токсичного содержимого, потому что модель не отличает хороший пример от плохого - она одинаково старательно копирует и грамотный текст, и безграмотный, если оба встречаются достаточно часто.
Предобучение: как модель впервые встречается с языком
Первый и самый долгий этап называется предобучением. Модели показывают текст с пропущенным словом или обрезанным концом фразы и просят угадать, что там должно быть. Задача выглядит примитивно, но чтобы угадывать хорошо, модели приходится усвоить грамматику, факты о мире, логику причины и следствия и даже некое подобие здравого смысла - иначе предсказания будут слишком часто промахиваться.
На этом этапе почти не участвуют живые разметчики: данные не размечены руками, а обучение идет автоматически, потому что "правильный ответ" для каждого примера - это просто следующее слово в исходном тексте. Именно поэтому предобучение можно масштабировать на объемы, сравнимые с заметной частью текстов интернета, а не ограничиваться тем, что успели вручную проверить люди.
Результат предобучения - модель, которая бегло продолжает любой текст, но плохо понимает, чего от нее хотят. Она с одинаковой готовностью допишет продолжение вопроса вместо ответа на него или уйдет в сторону от темы. Голая языковая модель после этого этапа - скорее начитанный, но невоспитанный собеседник, чем помощник.
Дообучение: от предсказания слов к выполнению инструкций
Чтобы модель начала вести себя как помощник, а не как генератор случайных продолжений текста, ее дообучают на примерах вида "вопрос - хороший ответ". Такие пары составляют люди: пишут вопросы, похожие на те, что реально задают пользователи, и подбирают образцовые ответы - подробные, вежливые, по делу.
Датасет для дообучения на порядки меньше, чем для предобучения, зато он куда дороже в производстве, потому что каждую пару проверяет человек. На этом этапе модель учится формату: отвечать структурированно, не обрывать мысль на середине, признавать, если чего-то не знает, вместо того чтобы выдумывать правдоподобный ответ.
Дообучение бывает и узкоспециализированным. Компания может взять готовую большую модель и дообучить ее на своих данных - юридических документах, медицинских записях, обращениях в техподдержку конкретного продукта. Так получаются модели, которые в своей узкой теме отвечают точнее общей версии, хотя в остальных вопросах рассуждают слабее.
Обучение с подкреплением: человек в роли учителя
После дообучения на образцовых ответах модель обычно проходит еще один этап - обучение с подкреплением на основе обратной связи от людей. Модели показывают несколько вариантов ответа на один вопрос, а разметчики отмечают, какой лучше. На этих оценках обучается отдельная модель-судья, а затем основная модель подстраивается так, чтобы получать от судьи оценки повыше.
Именно этот этап делает ответы не просто правильными, а еще и приятными для чтения: без грубости, без лишней воды, разумной длины. Из-за него разные чат-боты, построенные на похожих по размеру моделях, ощущаются по-разному - у одних характер суше, у других разговорчивее, потому что разметчики оценивали ответы по разным критериям.
Тот же принцип применяют и для того, чтобы модель отказывалась от опасных или незаконных просьб. Отдельная категория примеров в разметке - как раз вопросы, на которые правильный ответ звучит как вежливый отказ, а не попытка угодить любой ценой.
Мультимодальность: когда учат не только тексту
Современные модели все чаще обучают сразу на нескольких типах данных - тексте, изображениях, иногда звуке. Для этого нужны датасеты, где картинка идет в паре с описанием, а не просто россыпь файлов без подписей. Обучить модель понимать изображения намного дороже, чем обучить ее только тексту, потому что разметка картинок почти всегда требует ручной работы.
Разница в подходах заметна и на стороне пользователя: даже одна и та же модель может по-разному вести себя с текстом и с картинками, потому что эти навыки ей прививали не одновременно и не на одних и тех же данных. Про то, как это устроено на практике, можно почитать в материале ChatGPT и картинки: как работать с изображениями в чате.
Почему больше данных не значит умнее
Есть расхожее заблуждение: чем больше параметров и чем длиннее контекст модели, тем она умнее. На практике размер контекста - это скорее объем "оперативной памяти" на один разговор, а не показатель сообразительности. Модель с огромным контекстом способна удержать в поле зрения книгу целиком, но при этом хуже рассуждать над короткой сложной задачей, чем компактная модель, которую специально дообучили именно для рассуждений.
Хороший пример - Kimi: обзор нейросети с гигантским контекстом: контекст там на порядок больше, чем у многих конкурентов, но выбор модели все равно должен зависеть от задачи, а не от одной внушительной цифры в характеристиках.
Сколько это стоит и почему обучение не запустишь дома
Предобучение большой языковой модели требует кластеров из тысяч видеокарт, которые работают неделями подряд, и счетов за электричество, сравнимых с потреблением небольшого города. Именно поэтому крупные модели с нуля обучают считанные компании в мире, у остальных хватает ресурсов только на дообучение готовой модели под свою задачу.
Эта же экономика объясняет, почему бесплатные тарифы у нейросетей такие скромные: компания уже потратила огромные деньги на обучение и теперь пытается их отбить на подписках, а не раздавать вычислительные мощности всем желающим просто так. О том, какими сервисами при этом реально можно пользоваться без оплаты, у нас есть отдельный разбор - бесплатные нейросети: что реально работает без оплаты и VPN.
Дообучение уже доступнее: под конкретную задачу его можно провести на одной мощной видеокарте за часы или дни, а не месяцы. Поэтому небольшие команды и стартапы почти никогда не обучают модель с нуля - берут готовую открытую модель и адаптируют под себя.
Частые заблуждения об обучении нейросетей
Модель запоминает тексты дословно. На деле в процессе обучения она не хранит исходные тексты - она хранит статистические закономерности языка, распределенные по миллиардам числовых параметров. Иногда модель может процитировать известный текст близко к оригиналу, если он попадался в датасете очень часто, но это скорее исключение, чем принцип работы.
Обучение проходит один раз и навсегда. На самом деле у большинства коммерческих моделей есть версии: разработчики регулярно выпускают обновления, дообучают модель на новых данных и на ошибках, которые заметили пользователи уже после запуска.
Чем новее модель, тем она однозначно лучше в любой задаче. Это не всегда так: новая версия может лучше рассуждать, но хуже писать художественные тексты, если разметчики сместили акцент обучения в другую сторону. Поэтому разработчики нередко держат в доступе сразу несколько версий модели одновременно.
Нейросеть можно обучить на любых данных без последствий. Ошибки, предвзятость или токсичное содержание в датасете переносятся в поведение модели - она не умеет сама отделять корректную информацию от мусора без специальной чистки и разметки.
Что из этого стоит помнить на практике
Когда нейросеть путается в фактах, отвечает слишком обтекаемо или отказывается там, где отказ странен, это почти всегда следствие того, как ее обучали, а не случайный сбой. Если ответ вас не устраивает, часто помогает не спорить с моделью, а переформулировать вопрос ближе к тому формату, на котором ее реально дообучали - с четким контекстом и конкретной просьбой. А если один сервис регулярно разочаровывает в конкретной задаче, разумнее попробовать другую модель из подборок в рубрике нейросети и языковые модели, чем ждать, что привычный чат-бот вдруг переучится сам.


