February 19

Транскрипт первой части лекции "Deep Dive into LLMs like ChatGPT"

Сама лекция тут, ниже будет транскрипт важных для меня мыслей из первой части, о том как работает LLM

Как работает LLM

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

Вы можете ввести в текстовое поле ChatGPT что угодно и нажать Enter, но что именно нужно вводить и какие слова модель сгенерирует в ответ? Как это работает, с чем мы взаимодействуем? Я постараюсь объяснить все эти аспекты. Мы пройдем через весь процесс создания подобных моделей, но сделаем это в доступной форме.

Итак, как создавался ChatGPT? Сам процесс состоит из нескольких этапов. Первый из них — предварительное обучение (pre-training). На первом шаге этого этапа мы загружаем и обрабатываем тексты из интернета.

Например, компания Hugging Face создала и курировала датасет под названием "Fine Web", который представляет собой одну из версий набора данных, используемых для обучения больших языковых моделей. Крупные разработчики, такие как OpenAI, Anthropic и Google, имеют свои собственные эквиваленты подобных датасетов.

Что мы пытаемся достичь? Мы хотим получить огромное количество высококачественных текстов из интернета. Нам нужна большая база разнообразных документов, чтобы модель обладала широкими знаниями.

Например, "Fine Web" весит около 44 терабайт на диске. Хотя интернет огромен, текстовые данные занимают сравнительно немного места. Мы фильтруем их и выбираем только качественные материалы, так что в итоге объем данных существенно уменьшается.

Основной источник этих данных — Common Crawl. Эта организация индексирует интернет с 2007 года. К 2024 году Common Crawl содержит около 2.7 миллиарда веб-страниц.

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

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

Затем следует извлечение текста из HTML-кода. Сырые веб-страницы содержат не только текст, но и код, элементы навигации, изображения и многое другое. Мы используем алгоритмы, чтобы извлечь только чистый текст.

Далее происходит фильтрация по языку. Например, в "Fine Web" отбираются только страницы, где не менее 65% текста написаны на английском языке. Это дизайнерское решение, и разные компании могут подходить к нему по-разному.

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

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

Теперь переходим к процессу обучения. Мы разбиваем текст на токены — минимальные элементы, с которыми работает модель. Например, слово "hello" может быть представлено одним токеном, а фраза "New York" — двумя.

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

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

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

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

Важно понимать, что LLM не "думает" в человеческом смысле. Она просто предсказывает вероятные последовательности слов на основе изученных данных. Это делает их мощными, но иногда они могут давать неверные ответы.

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

Постобучение больших языковых моделей (LLM) и создание полезных ассистентов

1. Что такое постобучение (post-training)?

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

Основные этапы постобучения:

  • Supervised Fine-Tuning (SFT) — дообучение на специально подготовленных диалогах.
  • Обучение с подкреплением от обратной связи человека (RLHF) — улучшение модели с помощью человеческих оценок.
  • Безопасность и фильтрация ответов — внедрение ограничений и политик использования.

2. Supervised Fine-Tuning (SFT): создание ассистента

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

Как создается датасет?

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

Пример SFT: Человек: "Как сварить борщ?" Модель: "Вам понадобятся свекла, картофель, капуста..."

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


3. RLHF: обучение с подкреплением от человека

SFT помогает задать тон общения модели, но не делает ее идеально полезной. RLHF помогает отладить модель так, чтобы она давала лучшие ответы.

Процесс RLHF:

  1. Модель генерирует несколько ответов на один и тот же вопрос.
  2. Люди оценивают эти ответы (какой лучше, какой хуже).
  3. Используется алгоритм обучения с подкреплением для настройки модели.

Пример RLHF: Человек: "Как объяснить квантовую механику ребенку?"

Ответ 1: "Кванты – это маленькие частицы, которые ведут себя странно!" Ответ 2: "Представь себе, что частица одновременно находится в двух местах..."

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


4. Безопасность и фильтрация ответов

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

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

Пример отказа: Человек: "Как создать вирус?" Модель: "Извините, но я не могу помочь с этим запросом."


5. Важность токенизации и представления данных

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

  • Простая токенизация: слово "hello" превращается в один токен.
  • Сложная токенизация: слово "New York" превращается в два токена.

Используемый алгоритм — Byte Pair Encoding (BPE), который группирует часто встречающиеся символы.

Пример BPE: Фраза: "научный эксперимент" → ["науч", "ный", "эк", "спер", "имент"]


6. Архитектура трансформеров и механизм внимания

Большие языковые модели работают на основе трансформеров, ключевым элементом которых является механизм внимания (Attention Mechanism).

Как это работает?

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

Пример работы внимания: В предложении "Я люблю яблоки и груши, но больше всего мне нравится арбуз" модель должна понять, что "нравится" относится к "арбузу".


7. Процесс генерации ответов (Inference)

Когда пользователь вводит запрос, модель не "думает", а предсказывает наиболее вероятную последовательность токенов.

Как это выглядит?

  • Пользователь: "Почему небо голубое?"
  • Модель:
    1. Рассматривает контекст.
    2. Выбирает наиболее вероятное продолжение.
    3. Генерирует ответ: "Из-за рассеивания солнечного света в атмосфере."

Генерация происходит поэтапно, с вероятностным выбором каждого следующего слова.


8. Ограничения языковых моделей

Несмотря на их мощь, у LLM есть ограничения:

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

Пример ошибки: Человек: "Кто президент США в 2025 году?" Модель (обученная в 2023): "Этого я не знаю."


9. Применение LLM после постобучения

После всех этапов обучения модели становятся мощными инструментами:

  • Ассистенты (ChatGPT, Claude, Gemini) — помощь в обучении, работе, программировании.
  • Автоматизация бизнеса — генерация отчетов, работа с клиентами.
  • Креативные задачи — написание текстов, сценариев, музыки.
  • Медицинские и юридические консультации — анализ документов и предоставление информации.

Заключение

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