Этот репозиторий содержит код для разработки, предварительного обучения и точной настройки LLM, подобного GPT, и является официальным репозиторием кода для книги «Построение большой языковой модели (с нуля)».
В курсе «Создание большой языковой модели (с нуля)» вы узнаете и поймете, как работают большие языковые модели (LLM) изнутри наружу, шаг за шагом кодируя их с нуля. В этой книге я проведу вас через создание собственного LLM, объясняя каждый этап понятным текстом, диаграммами и примерами.
Описанный в этой книге метод обучения и разработки собственной небольшой, но функциональной модели для образовательных целей отражает подход, используемый при создании крупномасштабных базовых моделей, таких как те, что лежат в основе ChatGPT. Кроме того, в эту книгу включен код для загрузки весов более крупных предварительно обученных моделей для точной настройки.
Чтобы загрузить копию этого репозитория, нажмите кнопку «Загрузить ZIP» или выполните следующую команду в своем терминале:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(Если вы загрузили пакет кода с веб-сайта Мэннинга, рассмотрите возможность посещения официального репозитория кода на GitHub по адресу https://github.com/rasbt/LLMs-from-scratch для получения последних обновлений.)
Обратите внимание, что этот файл README.md
представляет собой файл Markdown ( .md
). Если вы загрузили этот пакет кода с веб-сайта Мэннинга и просматриваете его на своем локальном компьютере, я рекомендую использовать редактор Markdown или программу предварительного просмотра для правильного просмотра. Если вы еще не установили редактор Markdown, MarkText — хороший бесплатный вариант.
Альтернативно вы можете просмотреть этот и другие файлы на GitHub по адресу https://github.com/rasbt/LLMs-from-scratch в своем браузере, который автоматически отображает Markdown.
Кончик
Если вам нужны инструкции по установке Python и пакетов Python, а также по настройке среды кода, я предлагаю прочитать файл README.md, расположенный в каталоге установки.
Название главы | Основной код (для быстрого доступа) | Весь код + дополнительный |
---|---|---|
Рекомендации по настройке | - | - |
Глава 1: Понимание больших языковых моделей | Нет кода | - |
Глава 2: Работа с текстовыми данными | - ch02.ipynb - dataloader.ipynb (сводка) - упражнения-решения.ipynb | ./ch02 |
Глава 3: Кодирование механизмов внимания | - ch03.ipynb - multihead-attention.ipynb (сводка) - упражнения-решения.ipynb | ./ch03 |
Глава 4. Реализация модели GPT с нуля | - ch04.ipynb - gpt.py (сводка) - упражнения-решения.ipynb | ./ch04 |
Глава 5: Предварительное обучение на неразмеченных данных | - ch05.ipynb - gpt_train.py (сводка) - gpt_generate.py (сводка) - упражнения-решения.ipynb | ./ch05 |
Глава 6: Точная настройка классификации текста | - ch06.ipynb - gpt_class_finetune.py - упражнения-решения.ipynb | ./ch06 |
Глава 7: Точная настройка для следования инструкциям | - ch07.ipynb - gpt_instruction_finetuning.py (сводка) - ollama_evaluate.py (сводка) - упражнения-решения.ipynb | ./ch07 |
Приложение A: Введение в PyTorch | - код-part1.ipynb - код-part2.ipynb - DDP-script.py - упражнения-решения.ipynb | ./приложение-A |
Приложение B: Ссылки и дополнительная литература | Нет кода | - |
Приложение C: Решения для упражнений | Нет кода | - |
Приложение D. Добавление наворотов в цикл обучения | - приложение-D.ipynb | ./приложение-D |
Приложение E. Точная настройка с эффективным использованием параметров с помощью LoRA | - приложение-E.ipynb | ./приложение-E |
Приведенная ниже ментальная модель суммирует содержание этой книги.
Код в основных главах этой книги предназначен для работы на обычных ноутбуках в течение разумного периода времени и не требует специального оборудования. Такой подход гарантирует, что с материалом сможет ознакомиться широкая аудитория. Кроме того, код автоматически использует графические процессоры, если они доступны. (Дополнительные рекомендации см. в документации по установке.)
Несколько папок содержат дополнительные материалы в качестве бонуса для заинтересованных читателей:
Я приветствую любые отзывы, лучше всего поделиться ими на форуме Мэннинга или в обсуждениях на GitHub. Аналогично, если у вас есть какие-либо вопросы или вы просто хотите поделиться идеями с другими, не стесняйтесь публиковать их на форуме.
Обратите внимание: поскольку этот репозиторий содержит код, соответствующий печатной книге, в настоящее время я не могу принимать вклады, которые расширяли бы содержание кода основной главы, поскольку это привело бы к отклонениям от физической книги. Сохранение единообразия помогает обеспечить удобство работы для всех.
Если вы найдете эту книгу или код полезными для вашего исследования, рассмотрите возможность цитирования ее.
Цитата в стиле Чикаго:
Рашка, Себастьян. Создайте большую языковую модель (с нуля) . Мэннинг, 2024. ISBN: 978-1633437166.
Запись в BibTeX:
@book{build-llms-from-scratch-book,
author = {Sebastian Raschka},
title = {Build A Large Language Model (From Scratch)},
publisher = {Manning},
year = {2024},
isbn = {978-1633437166},
url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
github = {https://github.com/rasbt/LLMs-from-scratch}
}