Перейти к содержимому

Я создал языковую модель с нуля за 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