Просто о сложных алгоритмах — часть 1
Сейчас большие языковые модели (LLM) вызывают огромный интерес, и их возможности кажутся почти волшебными, но их работа основана на строгих математических принципах. Давайте разберёмся, как они создаются, обучаются и почему иногда «сочиняют» факты.
В этой статье мы расскажем об этапах создания таких моделей — от базового обучения до тонкой настройки, объясню принципы работы нейронных сетей, причины «галлюцинаций» и процесс генерации текста.
О чём будет цикл:
- Часть 1 (эта статья): основы LLM, включая предобучение, постобучение, архитектуру нейронных сетей и «галлюцинации».
- Часть 2: обучение с подкреплением, анализ современных моделей (например, DeepSeek R1), сравнение с AlphaGo.
Поехали!
Основные этапы создания нейросети
Любая языковая модель проходит через две фазы: предобучение и постобучение.
1. Предобучение: как модель учится понимать язык
До того как модель начнёт генерировать текст, ей нужно изучить структуру языка. Этот этап требует огромных вычислительных ресурсов.
Шаг 1: Сбор и очистка данных
Первая задача — собрать максимально разнообразный и качественный текстовый массив. Источниками могут быть открытые веб-архивы (например, данные краулинга за 20 лет), книги, научные статьи и даже соцсети. Однако сырые данные содержат «шум»: дубликаты, спам, бессвязные фразы. Поэтому их тщательно фильтруют — удаляют лишнее и оставляют только релевантные фрагменты.
Шаг 2: Токенизация
Текст преобразуют в числа, чтобы нейросеть могла его обрабатывать. Для этого слова или части слов (например, «привет» → «при», «вет») заменяют на уникальные числовые идентификаторы — токены.
- В GPT-4 используется более 100 тысяч токенов.
- Токенизацию можно представить как разбивку текста на «кирпичики», которые модель будет анализировать.
Популярный токенизатор, Tiktokenizer, позволяет экспериментировать с токенизацией и видеть, как текст разбивается на токены. Попробуйте ввести предложение, и вы увидите, что каждому слову или части слова присваивается ряд числовых идентификаторов.
Шаг 3: Обучение нейросети
На этом этапе модель учится предсказывать следующий токен в последовательности. Например, для фразы «сегодня я ем…» она может предложить «суп» или «кашу», оценивая вероятность каждого варианта.
Как это работает:
- Параметры модели (веса) — числа, которые корректируются в процессе обучения.
- Архитектура — математическая «схема», определяющая, как входные данные преобразуются в выходные.
Изначально предсказания модели случайны, но благодаря обратному распространению ошибки (метод оптимизации, который усиливает правильные прогнозы, повышая их вероятность и снижая вероятность неправильных) она постепенно учится выбирать правильные токены. Этот процесс повторяется миллиарды раз на огромных данных.
Что получается в итоге?
После предобучения модель:
- Понимает связи между словами и предложениями.
- Улавливает статистические закономерности в данных.
Но такая «базовая» модель всё ещё не похожа на продвинутое автодополнение. Она не умеет выполнять конкретные задачи, например, отвечать на вопросы или писать код. Для этого требуется постобучение.
2. Постобучение: делаем модель полезной
Базовая модель — это «сырая» версия. Чтобы научить её выполнять задачи, её дорабатывают на узких наборах данных. Поскольку модель представляет собой нейронную сеть, она не может быть явно запрограммирована, как традиционное программное обеспечение. Вместо этого мы «программируем» её неявно, обучая на структурированных размеченных наборах данных, которые представляют собой примеры желаемых взаимодействий.
Как это происходит?
- Создают специализированные датасеты с примерами идеальных ответов. Например:
Обучение инструкциям: модель учат следовать указаниям, соблюдать безопасность, вести диалог.
Пример: Российские разработчики привлекают экспертов для разметки данных — те пишут запросы и корректные ответы.
Отраслевая адаптация: модель настраивают под медицину, юриспруденцию или IT. - Вводят специальные маркеры (например, разделители «вопрос-ответ»), чтобы модель чётко отличала запросы пользователя от своих ответов.
После обучения также вводятся специальные токены — символы, которые не использовались во время предварительного обучения, — чтобы помочь модели понять структуру взаимодействия. Эти токены сигнализируют о том, где начинается и заканчивается ввод пользователя и где начинается ответ ИИ, обеспечивая правильное разграничение запросов и ответов.
Теперь мы перейдем к некоторым другим ключевым концепциям.
Как модель генерирует текст?
Принцип генерации (инференс)
Даже на этапе предобучения можно проверить, как модель предсказывает токены. Алгоритм работает так:
- На вход подаётся последовательность токенов.
- Модель рассчитывает вероятности для следующего токена.
- Выбирает вариант не строго по максимуму, а случайно, учитывая распределение вероятностей (как «подбрасывание кубика»).
Этот процесс повторяется для каждого нового слова, пока не будет сформирован полный ответ.
Галлюцинации — когда LLM генерируют ложную информацию
Почему модели «галлюцинируют»?
Причины:
- Галлюцинации возникают потому, что LLM не «знают» фактов — они просто предсказывают наиболее статистически вероятную последовательность слов на основе обучающих данных.
Например, в приведённом ниже примере, если обучающие данные содержат много вопросов «Кто такой…» с однозначными ответами, модель учится тому, что на такие вопросы всегда должны быть уверенные ответы, даже если у неё нет необходимых знаний.
- Если в данных мало информации по запросу, модель выдаёт правдоподобный, но ложный ответ.
Пример: Спросите: «Кто такой Иван Петров?». Если такого человека нет в обучающих данных, модель может придумать биографию, вместо того чтобы сказать: «Не знаю».
Как решают проблему:
- Обучение признавать незнание
Модель тренируют отвечать «Уточните вопрос» или «Информация не найдена» в неоднозначных ситуациях.
Для этого создают датасеты с примерами, где правильный ответ — отказ. - Интеграция с поисковыми системами
Если модель сомневается, она может автоматически искать информацию в интернете и использовать её для генерации ответа.
Типы «памяти» у LLM
- Долгосрочная память — знания, усвоенные во время обучения. Но они неточны и обрывочны. Они основаны на закономерностях, которые модель усвоила из огромного количества данных в интернете, но не являются точными и не поддаются поиску.
- Кратковременная память — контекст текущего диалога. Любая информация в запросе (например, ссылки или уточнения) временно сохраняется и влияет на ответ.
Познание себя
При задании таких вопросов, как «Кто ты?» или «Что тебя создало?», LLM сгенерирует статистическое предположение на основе своих обучающих данных, если только не будет явно запрограммирован на точный ответ.
У больших языковых моделей нет настоящего самосознания, их ответы зависят от закономерностей, выявленных в процессе обучения.
Один из способов обеспечить модели согласованную идентификацию — использовать системное приглашение, которое устанавливает заранее заданные инструкции о том, как она должна описывать себя, свои возможности и ограничения.
Что в итоге?
На этом первая часть заканчивается! Надеемся, это помогло вам понять, как работают LLM: от анализа текстовых данных до тонкой настройки под задачи.. Во второй части мы углубимся в обучение с подкреплением и рассмотрим некоторые из новейших моделей.
👉🏻 А пока, переходи в наш ТГ канал https://t.me/aistars1, где еще больше интересного про нейросети и их обучение!