Я создал языковую модель с нуля за 30 минут
Forward Pass
0:00 / 0:00
Я создал языковую модель с нуля за 30 минут
249 просмотров · 4 дн. назад
Forward Pass
592 подписчика
249 просмотров · 4 дн. назад
В этом видео мы создадим языковую модель с нуля на PyTorch: данные, токенизатор, трансформер, цикл обучения, генерация и настройка инструкций — каждая строка объяснена, используя общедоступные наборы данных Hugging Face.
Мы создадим Pip, языковую модель в стиле GPT с 31 миллионом параметров, по частям. Начнем с данных: TinyStories, 2,12 миллиона коротких рассказов на Hugging Face и FineWeb-Edu для случаев, когда вам нужны общие знания. Затем мы обучим токенизатор BPE на уровне байтов с 8192 токенами и преобразуем набор данных в один поток идентификаторов токенов для предсказания следующего токена.
Затем мы создадим сам трансформер:
таблицу встраивания, которая присваивает каждому токену вектор;
причинное самовнимание, объясненное на примере работы с softmax (запросы, ключи и значения, причинная маска и масштабирование √d в масштабированном скалярном произведении внимания);
Многоголовочное внимание и встраивание вращательного положения (RoPE), отображаемое в виде стрелок часов;
Многослойный персептрон SwiGLU, остаточные связи и RMSNorm, объединенные в 8 блоков трансформеров с связанным выходным блоком.
Обучение LLM включает:
функцию потерь кросс-энтропии с проверкой на адекватность ln(8192) = 9,01;
AdamW, разминка плюс косинусное затухание скорости обучения, ограничение градиента, bfloat16 и накопление градиента;
правило Chinchilla о количестве токенов на параметр и оценку 6ND.
Затем мы генерируем текст с температурой и выборкой top-k и измеряем перплексию. Мы также используем систему оценки GPT-4 из статьи и превращаем базовую модель в последователя инструкций с контролируемой тонкой настройкой на TinyStoriesInstruct (шаблон чата плюс маска потерь). Наконец, мы сравниваем конфигурацию Pip с Qwen3.8-27B, чтобы показать, как масштабируются одни и те же базовые элементы LLM, включая механизм внимания для групповых запросов, кэш ключ-значение и линейное внимание.
Разделы
0:00 Создание собственной LLM: план
1:41 Набор данных: TinyStories на Hugging Face
3:39 Токенизация: кодирование пар байтов (BPE)
6:57 Предсказание следующего токена
8:12 Встраивание токенов
9:35 Объяснение самовнимания (Q, K, V)
13:05 Многоголовочное внимание в PyTorch
14:09 Встраивание вращающегося положения (RoPE)
15:36 Блок трансформера: SwiGLU, остатки, RMSNorm
17:45 Полная модель GPT (31 млн параметров)
19:33 Функция потерь кросс-энтропии
21:03 Цикл обучения: AdamW, расписание LR, bf16
24:57 Генерация текста: температура и top-k
26:34 Оценка LLM: перплексия и оценка GPT-4
27:34 Настройка инструкций (SFT) с маской потерь
29:53 Масштабирование: Pip против Qwen3.8-27B
31:52 Как предсказание следующего токена пишет историю
Источники:
Элдан и Ли, «TinyStories: Насколько маленькими могут быть языковые модели и при этом говорить на связном английском?» arXiv:2305.07759v2. Рисунок 1 (28M против GPT2-XL завершений) и таблица GPT-Eval (Рисунок 4).
Набор данных TinyStories: https://huggingface.co/datasets/ronen...
TinyStoriesInstruct: https://huggingface.co/datasets/ronen...
FineWeb-Edu: https://huggingface.co/datasets/Huggi...
smol-smoltalk: https://huggingface.co/datasets/Huggi...
Конфигурация Qwen3.8-27B: https://huggingface.co/Qwen/Qwen3.8-27B
Vaswani et al., "Attention Is All You Need", arXiv:1706.03762
Su et al., "RoFormer: Enhanced Transformer with Rotary Position Embedding", arXiv:2104.09864
Шазир, «Варианты GLU улучшают трансформер», arXiv:2002.05202
Чжан и Сеннрих, «Нормализация слоя среднеквадратичного отклонения», arXiv:1910.07467
Лощилов и Хуттер, «Регуляризация с разделением весов» (AdamW), arXiv:1711.05101
Хоффманн и др., «Обучение вычислительно оптимальных больших языковых моделей» (Chinchilla), arXiv:2203.15556
Каплан и др., «Законы масштабирования для нейронных языковых моделей», arXiv:2001.08361
Рэдфорд и др., «Языковые модели — это неконтролируемые многозадачные обучающиеся модели» (GPT-2), 2019
NVIDIA Страница продукта H100 и техническое описание: https://www.nvidia.com/en-us/data-cen...
Документация PyTorch: scaled_dot_product_attention, nn.RMSNorm, torch.autocast, torch.compile
#LLM #BuildLLMFromScratch #PyTorch #Transformers #MachineLearning