Чему вы научитесь
- Научитесь читать схемы архитектур основанных на Трансформерах.
- Изучите принципы проектирования современных LLM.
- Понимать алгоритм токенизации текста.
- Реализовывать ключевые компоненты GPT.
- Управлять креативностью модели.
- Собирать и подготавливать данные для обучения.
- Настраивать Pre-train цикл обучения LLM.
О курсе
Один из самых эффективных способов разобраться как работает тот или иной алгоритм — реализовать его самому. Этим мы и займемся в данном курсе.
Глобально курс можно поделить на две части.
Сначала мы подробно изучим и реализуем модель GPT-1 и все ее компоненты
- Токенизатор (BPE)
- Эмбеддинги (Токенов и Позиционные)
- Блок Декодера:
- Multi-Head Attention
- FeedForward-слои
- Остаточные связи
- Вероятностная генерация
После чего соберем эти компоненты в единую LLM и настроим процесс обучения (Pre-train).
Во второй части мы займемся разработкой уже более современных LLM:
- GPT-2
- Llama
- Mistral
- Mixtral
- Gemma
В процессе мы познакомимся с новыми архитектурными фишками:
- Pre-norm, RMSNorm — новые способы нормализации
- GELU, SiLU, SwiGLU, GeGLU — новые функции активации
- KV-cache, SWA — механизмы, позволяющие оптимизировать инференс
- RoPE — новый способ кодирования позиционных эмбедингов
- GQA, MQA — новые экономичные механизмы внимания
- MoE — новая экономичная архитектура для FNN
И все это будет реализовано на чистом Python и низкоуровневых методах библиотеки PyTorch (nn.linear, nn.dropout и пр.).
Для кого этот курс
Начальные требования
- Базовые знания Python, минимальный ООП (классы, функции).
- Понимание основ машинного обучения (train/test, таргет, фичи, градиент, функции потерь, метрики и т.д.).
- Базовые знания по PyTorch: линейные слои, активации, нормализация, дропаут, обратное распространение ошибки.
- Желателен опыт реализации простой полносвязнной сети для задачи много-классовой классификации.
Наши преподаватели
Как проходит обучение
Курс состоит из текстовых лекций и практических заданий на написание кода. В каждом задании вам необходимо будет написать класс, который реализует один из компонентов LLM. Мы автоматически создадим экземпляр этого класса и выполним все необходимые проверки. Каждое задания сопровождаются необходимой теорией.