このリポジトリには、GPT のような LLM の開発、事前トレーニング、および微調整のためのコードが含まれており、書籍『Build a Large Language Model (From Scratch)』の公式コード リポジトリです。
「Build a Large Language Model (From Scratch)」では、大規模言語モデル (LLM) を最初からコーディングすることで、その仕組みを徹底的に学び、理解します。この本では、独自の LLM の作成方法をガイドし、各段階をわかりやすいテキスト、図、例で説明します。
この本で説明されている、教育目的で独自の小さいながらも機能的なモデルをトレーニングおよび開発する方法は、ChatGPT の背後にあるような大規模な基礎モデルを作成する際に使用されるアプローチを反映しています。さらに、この本には、微調整のために大きな事前トレーニング済みモデルの重みをロードするためのコードが含まれています。
このリポジトリのコピーをダウンロードするには、[ZIP をダウンロード] ボタンをクリックするか、ターミナルで次のコマンドを実行します。
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(Manning Web サイトからコード バンドルをダウンロードした場合は、GitHub の公式コード リポジトリ (https://github.com/rasbt/LLMs-from-scratch) にアクセスして最新の更新を確認することを検討してください。)
このREADME.md
ファイルは Markdown ( .md
) ファイルであることに注意してください。このコード バンドルを Manning Web サイトからダウンロードし、ローカル コンピューターで表示している場合は、適切に表示するために Markdown エディターまたはプレビューアーを使用することをお勧めします。 Markdown エディタをまだインストールしていない場合は、MarkText が無料の優れたオプションです。
あるいは、GitHub (https://github.com/rasbt/LLMs-from-scratch) にあるこのファイルと他のファイルをブラウザで表示することもできます。これにより、Markdown が自動的にレンダリングされます。
ヒント
Python および Python パッケージのインストールとコード環境のセットアップに関するガイダンスが必要な場合は、セットアップ ディレクトリにある README.md ファイルを読むことをお勧めします。
章のタイトル | メインコード (クイックアクセス用) | すべてのコード + 補足 |
---|---|---|
セットアップの推奨事項 | - | - |
Ch 1: 大規模な言語モデルを理解する | コードがありません | - |
Ch 2: テキスト データの操作 | - ch02.ipynb - dataloader.ipynb (概要) - 演習ソリューション.ipynb | ./ch02 |
Ch 3: コーディング アテンション メカニズム | - ch03.ipynb - multihead-attention.ipynb (概要) - 演習ソリューション.ipynb | ./ch03 |
第 4 章: GPT モデルを最初から実装する | - ch04.ipynb - gpt.py (概要) - 演習ソリューション.ipynb | ./ch04 |
Ch 5: ラベルなしデータの事前トレーニング | - ch05.ipynb - gpt_train.py (概要) - gpt_generate.py (概要) - 演習ソリューション.ipynb | ./ch05 |
Ch 6: テキスト分類の微調整 | - ch06.ipynb - gpt_class_finetune.py - 演習ソリューション.ipynb | ./ch06 |
Ch 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 |
以下のメンタルモデルは、本書で扱われている内容を要約したものです。
この本の主要な章のコードは、妥当な期間内で従来のラップトップで実行できるように設計されており、特殊なハードウェアは必要ありません。このアプローチにより、幅広い視聴者がコンテンツに確実に参加できるようになります。さらに、GPU が利用可能な場合、コードは自動的に GPU を利用します。 (その他の推奨事項については、セットアップに関するドキュメントを参照してください。)
いくつかのフォルダーには、興味のある読者向けのボーナスとしてオプションの資料が含まれています。
あらゆる種類のフィードバックを歓迎します。マニング フォーラムまたは 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}
}