Содержание курса
1. Подготовка
2 урока
22
13
2м
0
Открытый
1.1
Приветствие
↗
12
7
1м 10с
0
Открытый
1.2
Инструменты
↗
10
6
0м 28с
0
2. Мини-математика “скаляры, векторы, матрицы, тензоры”
4 урока
22
10
0м
0
Открытый
2.1
Скаляр → Вектор → Матрица → Тензор
↗
11
6
0м 15с
0
Открытый
2.2
softmax и temperature
↗
9
3
-
0
Закрытый
2.3
Производная (очень упрощённо)
↗
2
1
-
0
Закрытый
2.4
Проверка знаний, закрепление материала
↗
0
0
-
0
3. Мини-курс Python “нужное для LLM”
9 уроков
4
0
0м
0
Закрытый
3.1
Переменные, типы, операции
↗
1
0
-
0
Закрытый
3.2
Условия и циклы (контроль потока + ошибки новичков)
↗
0
0
-
0
Закрытый
3.3
Функции
↗
0
0
-
0
Закрытый
3.4
Работа с файлами и текстом (самое важное для LLM)
↗
0
0
-
0
Закрытый
3.5
Проверка знаний, закрепление материала
↗
0
0
-
0
Закрытый
3.6
Модули и структура проекта
↗
1
0
-
0
Закрытый
3.7
NumPy минимум (таблицы/матрицы как для чисел)
↗
1
0
-
0
Закрытый
3.8
PyTorch самое нужное (тензоры + автоград)
↗
0
0
-
0
Закрытый
3.9
Проверка знаний, закрепление материала
↗
1
0
-
0
4. Введение
2 урока
3
1
0м
0
Закрытый
4.1
Что такое LLM?
↗
2
1
-
0
Закрытый
4.2
Проверка знаний
↗
1
0
-
0
5. Этап 1: Токенизация - учимся работать с текстом
8 уроков
24
23
1м
0
Открытый
5.1
Начало
↗
2
2
-
0
Открытый
5.2
Токенизация текста - получение идентификаторов
↗
15
15
1м 29с
0
Открытый
5.3
Проблема - токенов нет в словаре [UNK]
↗
1
1
-
0
Открытый
5.4
Детокенизация — пытаемся из идентификаторов получить предложение
↗
1
1
-
0
Открытый
5.5
Byte Pair Encoding (BPE)
↗
2
2
-
0
Открытый
5.6
Код. Пишем простой токенизатор
↗
1
1
-
0
Закрытый
5.7
Код. Реализация Byte-pair encoding
↗
1
1
-
0
Закрытый
5.8
Закрепляем результат, проверка знаний.
↗
1
0
-
0
6. Этап 2: Подготовка текст для обучения
6 уроков
5
4
0м
0
Закрытый
6.1
Скользящее окно - генерация пар «входные данные — цель»
↗
1
1
-
0
Закрытый
6.2
Код. Создаём наш первый учебный датасет
↗
1
0
-
0
Закрытый
6.3
Код. Реализуем класс Dataset для PyTorch
↗
1
1
-
0
Закрытый
6.4
Код. Собираем всё вместе: DataLoader
↗
1
1
-
0
Закрытый
6.5
Код. Рефакторим проект
↗
1
1
-
0
Закрытый
6.6
Закрепляем результат, проверка знаний.
↗
0
0
-
0
7. Этап 3 - Векторизация токенов и кодирование позиций
4 урока
5
1
0м
0
Закрытый
7.1
Векторные представления (Embeddings)
↗
1
0
-
0
Закрытый
7.2
Позиционирование векторов - Positional Encoding
↗
1
1
-
0
Закрытый
7.3
Код. Слои - TokenEmbedding, PositionalEmbedding, EmbeddingLayer
↗
2
0
-
0
Закрытый
7.4
Закрепляем результат, проверка знаний.
↗
1
0
-
0
8. Механизм Внимания без обучаемых весов
7 уроков
6
6
0м
0
Закрытый
8.1
Эпоха до Внимания: RNN и LSTM и решение проблемы
↗
1
1
-
0
Закрытый
8.2
Как работает Самовнимание (Self-Attention)
↗
1
1
-
0
Закрытый
8.3
Математика. Вычисляем показатели внимания (Attention Scores)
↗
1
1
-
0
Закрытый
8.4
Математика. Нормализация через Softmax (Attention Weights)
↗
1
1
-
0
Закрытый
8.5
Математика. Вычисляем контекстные векторы
↗
1
1
-
0
Закрытый
8.6
Код. Простой пример расчета контекстного вектора
↗
1
1
-
0
Закрытый
8.7
Закрепляем результат, проверка знаний.
↗
0
0
-
0
9. Механизм Внимания - обучаемые весовые матрицы
10 уроков
7
7
0м
0
Закрытый
9.1
Почему нужны обучаемые веса?
↗
1
1
-
0
Закрытый
9.2
Обучаемые матрицы W_Q, W_K, W_V
↗
1
1
-
0
Закрытый
9.3
Математика с обучаемыми весами
↗
1
1
-
0
Закрытый
9.4
Математика. Шаг 1. Вычисляем Query, Key, Value
↗
1
1
-
0
Закрытый
9.5
Математика. Шаг 2. Вычисляем Attention Scores
↗
0
0
-
0
Закрытый
9.6
Математика. Шаг 3. Causal Mask - модель не должна видеть будущее
↗
0
0
-
0
Закрытый
9.7
Математика. Шаг 4. Нормализация через Softmax
↗
2
2
-
0
Закрытый
9.8
Математика. Шаг 5. Вычисляем контекстные векторы
↗
0
0
-
0
Закрытый
9.9
Сравнение: Без весов vs С весами
↗
0
0
-
0
Закрытый
9.10
Код. Механизм самовнимания с обучаемыми весами
↗
1
1
-
0
10. Multi-Head Attention
12 уроков
6
6
0м
0
Закрытый
10.1
Зачем нужно Multi-Head Attention?
↗
1
1
-
0
Закрытый
10.2
Архитектура Multi-Head Attention
↗
1
1
-
0
Закрытый
10.3
Математика. Шаг 1: Весовые матрицы для каждой головы
↗
0
0
-
0
Закрытый
10.4
Математика. Шаг 2: Вычисляем Q, K, V для Head 0
↗
0
0
-
0
Закрытый
10.5
Математика. Шаг 3: Вычисляем Attention Scores для Head 0
↗
1
1
-
0
Закрытый
10.6
Математика. Шаг 4: Softmax для Head 0
↗
0
0
-
0
Закрытый
10.7
Математика. Шаг 5: Context Vectors для Head 0
↗
0
0
-
0
Закрытый
10.8
Математика. Шаг 6: Вычисляем Head 1
↗
2
2
-
0
Закрытый
10.9
Математика. Шаг 7: Объединяем головы (Concatenate)
↗
1
1
-
0
Закрытый
10.10
Математика. Шаг 8: Выходная проекция (W_O)
↗
0
0
-
0
Закрытый
10.11
Сравнение "голов" нашей модели с GPT-3
↗
0
0
-
0
Закрытый
10.12
Код. Реализация Multi-Head Attention
↗
0
0
-
0
11. Feed-Forward Network (FFN) — добавим нейросеть
8 уроков
8
7
0м
0
Закрытый
11.1
Зачем нужен Feed-Forward Network?
↗
2
1
-
0
Закрытый
11.2
Архитектура Feed-Forward Network
↗
1
1
-
0
Закрытый
11.3
Математика. Шаг 1: Весовые матрицы FFN
↗
2
2
-
0
Закрытый
11.4
Математика. Шаг 2: Первый линейный слой (Linear 1)
↗
1
1
-
0
Закрытый
11.5
Математика. Шаг 3: Функция активации ReLU
↗
1
1
-
0
Закрытый
11.6
Математика. Шаг 4: Второй линейный слой (Linear 2)
↗
0
0
-
0
Закрытый
11.7
Сравнение: Вход vs Выход FFN и с GPT-3 (175B)
↗
0
0
-
0
Закрытый
11.8
Реализация Feed-Forward Network в Python
↗
1
1
-
0
12. Transformer Block + Output Layer (Собираем всё вместе)
20 уроков
8
7
0м
0
Закрытый
12.1
Введение в Transformer — Революция в NLP
↗
1
1
-
0
Закрытый
12.2
Зачем вообще нужен Transformer block
↗
1
1
-
0
Закрытый
12.3
Из чего состоит Transformer block
↗
0
0
-
0
Закрытый
12.4
Как данные проходят через Transformer block
↗
1
1
-
0
Закрытый
12.5
Почему attention и FFN дополняют друг друга
↗
0
0
-
0
Закрытый
12.6
Расчеты Transformer block
↗
1
1
-
0
Закрытый
12.7
Расчеты - Output Layer (Выходной слой)
↗
1
1
-
0
Закрытый
12.8
Математика
↗
0
0
-
0
Закрытый
12.9
Математика. Шаг 1. Первая LayerNorm
↗
0
0
-
0
Закрытый
12.10
Математика. Шаг 2. Строим Q, K, V
↗
0
0
-
0
Закрытый
12.11
Математика. Шаг 3. Считаем attention scores
↗
0
0
-
0
Закрытый
12.12
Математика. Шаг 4. Применяем softmax
↗
1
1
-
0
Закрытый
12.13
Математика. Шаг 5. Получаем выход attention
↗
0
0
-
0
Закрытый
12.14
Математика. Шаг 6. Residual connection
↗
0
0
-
0
Закрытый
12.15
Математика. Шаг 7. Вторая LayerNorm
↗
0
0
-
0
Закрытый
12.16
Математика. Шаг 8. Feed-Forward Network
↗
0
0
-
0
Закрытый
12.17
Математика. Шаг 9. Второй Residual connection
↗
0
0
-
0
Закрытый
12.18
Математика. Шаг 10. Output layer
↗
0
0
-
0
Закрытый
12.19
Математика. Шаг 11. Превращаем logits в вероятности
↗
1
1
-
0
Закрытый
12.20
Код. Реализация Transformer Block
↗
1
0
-
0
13. Training Loop (Loss + Backprop + Optimizer)
9 уроков
3
3
0м
0
Закрытый
13.1
Введение
↗
1
1
-
0
Закрытый
13.2
Общая картина обучения
↗
0
0
-
0
Закрытый
13.3
Почему training loop — центральный механизм обучения
↗
0
0
-
0
Закрытый
13.4
Loss function
↗
0
0
-
0
Закрытый
13.5
Backpropagation
↗
0
0
-
0
Закрытый
13.6
Optimizer: кто именно двигает веса?
↗
0
0
-
0
Закрытый
13.7
Полный процесс обучения
↗
0
0
-
0
Закрытый
13.8
Математика - основные формулы
↗
1
1
-
0
Закрытый
13.9
Код. Реализация training loop
↗
1
1
-
0
14. Генерация текста. Финал
4 урока
12
12
0м
0
Закрытый
14.1
Как модель начинает “говорить”
↗
1
1
-
0
Закрытый
14.2
Реализация. Шаг 1. Сохраняем лучшую модель по loss
↗
3
3
-
0
Закрытый
14.3
Реализация. Шаг 2. Генерация текста
↗
1
1
-
0
Открытый
14.4
Пробуем готовый датасет - Пьеса Шекспира
↗
7
7
-
0