Этот репозиторий содержит код для разработки, предварительной подготовки и создания GPT-подобного LLM и является официальным хранилищем кода для книги «Создание большой языковой модели» (с нуля).
В создании большой языковой модели (с нуля) вы узнаете и поймете, как крупные языковые модели (LLMS) работают изнутри, кодируя их с нуля, шаг за шагом. В этой книге я направляю вас через создание собственного LLM, объясняя каждый этап четким текстом, диаграммами и примерами.
Метод, описанный в этой книге для обучения и разработки вашей собственной мелкой, нофункциональной модели для образовательных целей, отражает подход, используемый при создании крупномасштабных фундаментальных моделей, таких как модели, стоящие за CHATGPT. Кроме того, эта книга включает в себя код для загрузки весов более крупных моделей, предварительно предопределенных для создания.
Чтобы загрузить копию этого репозитория, нажмите на кнопку загрузки ZIP или выполните следующую команду в вашем терминале:
git clone --depth 1 https://github.com/ranpy13/Learning-LLM.git(Если вы загрузили комплект кода с веб-сайта Manning, пожалуйста, рассмотрите возможность посещения официального репозитория кода на GitHub по адресу https://github.com/ranpy13/learning-llm для последних обновлений.)
Обратите внимание, что этот файл README.md представляет собой файл Markdown ( .md ). Если вы загрузили этот пакет кода с веб -сайта Manning и просматриваете его на вашем локальном компьютере, я рекомендую использовать редактор Markdown или предварительный просмотр для правильного просмотра. Если вы еще не установили редактор Markdown, MarkText - хороший бесплатный вариант.
В качестве альтернативы вы можете просмотреть это и другие файлы на github по адресу https://github.com/ranpy13/learning-llm в вашем браузере, который автоматически отображает маркировку.
Кончик
Если вы ищете руководство по установке пакетов Python и Python и настройке вашей среды кода, я предлагаю прочитать файл readme.md, расположенный в каталоге настройки.
| Название главы | Основной код (для быстрого доступа) | Весь код + дополнительный |
|---|---|---|
| Рекомендации по настройке | - | - |
| CH 1: Понимание моделей крупных языков | Нет кода | - |
| Ch 2: Работа с текстовыми данными | - CH02.IPYNB - DataLoader.ipynb (резюме) - Упражнения-solutions.ipynb | ./CH02 |
| CH 3: Кодирование механизмов внимания | - CH03.IPYNB - multihead-attention.ipynb (резюме) - Упражнения-solutions.ipynb | ./CH03 |
| CH 4: Реализация модели GPT с нуля | - CH04.IPYNB - gpt.py (резюме) - Упражнения-solutions.ipynb | ./CH04 |
| CH 5: Предварительная подготовка на немеченых данных | - CH05.Ipynb - gpt_train.py (резюме) - gpt_generate.py (резюме) - Упражнения-solutions.ipynb | ./CH05 |
| CH 6: ManeTuning для классификации текста | - CH06.IPYNB - gpt_class_finetune.py - Упражнения-solutions.ipynb | ./CH06 |
| CH 7: Maneetuning, чтобы следовать инструкциям | - CH07.IPYNB - gpt_instruction_finetuning.py (резюме) - ollama_evaluate.py (резюме) - Упражнения-solutions.ipynb | ./CH07 |
| Приложение A: Введение в Pytorch | - Code-part1.ipynb - code-part2.ipynb - ddp-script.py - Упражнения-solutions.ipynb | ./Appendix-A |
| Приложение B: Ссылки и дальнейшее чтение | Нет кода | - |
| Приложение C: решения упражнений | Нет кода | - |
| Приложение D: Добавление наворотов и свистков в петлю обучения | - Приложение-d.ipynb | ./appendix-d |
| ПРИЛОЖЕНИЕ E: ПАРАМЕТА-Эффективное Исследование с LORA | - Приложение-E.Ipynb | ./appendix-e |
Ментальная модель ниже суммирует содержимое, описанное в этой книге.
Код в основных главах этой книги предназначен для работы на обычных ноутбуках в течение разумного периода времени и не требует специализированного оборудования. Этот подход гарантирует, что широкая аудитория может взаимодействовать с материалом. Кроме того, код автоматически использует графические процессоры, если они доступны. (Пожалуйста, смотрите DOC настройки для дополнительных рекомендаций.)
Несколько папок содержат дополнительные материалы в качестве бонуса для заинтересованных читателей:
Я приветствую всевозможные отзывы, лучше всего поделиться с помощью дискуссий на форум Мэннинга или 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/ranpy13/Learning-LLM}
}