※このリポジトリは rasbt LLMs-from-scratchを機械翻訳したものです。
このリポジトリには、GPT ライクな LLM の開発、事前学習、ファインチューニングのためのコードが含まれており、書籍大規模言語モデルを作る(ゼロから)の公式コードリポジトリです。
大規模言語モデルを作る(ゼロから)では、大規模言語モデル(LLM)を一からコーディングすることで、その内部動作を学習し理解します。本書では、明確なテキスト、図、例を使って各段階を説明しながら、独自の LLM の作成方法をガイドします。
本書で説明されている、教育目的で独自の小規模ながら機能的なモデルを訓練・開発する方法は、ChatGPT の背後にあるような大規模な基盤モデルの作成に使用されるアプローチを反映しています。さらに、本書にはファインチューニング用により大きな事前学習済みモデルの重みを読み込むコードも含まれています。
- 公式ソースコードリポジトリへのリンク
- Manning(出版社ウェブサイト)の書籍ページへのリンク
- Amazon.com の書籍ページへのリンク
- ISBN 9781633437166
このリポジトリのコピーをダウンロードするには、Download ZIPボタンをクリックするか、ターミナルで以下のコマンドを実行してください:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git(Manning ウェブサイトからコードバンドルをダウンロードした場合は、最新のアップデートのためにhttps://github.com/rasbt/LLMs-from-scratchの GitHub 上の公式コードリポジトリを訪問することをご検討ください。)
このREADME.mdファイルは Markdown(.md)ファイルであることにご注意ください。Manning ウェブサイトからこのコードバンドルをダウンロードしてローカルコンピュータで表示している場合は、適切に表示するために Markdown エディタまたはプレビューアの使用をお勧めします。まだ Markdown エディタをインストールしていない場合、Ghostwriterは良い無料オプションです。
または、ブラウザでhttps://github.com/rasbt/LLMs-from-scratchの GitHub でこのファイルや他のファイルを表示することもできます。GitHub は自動的に Markdown をレンダリングします。
ヒント: Python と python パッケージのインストール、コード環境のセットアップに関するガイダンスをお探しの場合は、setupディレクトリにあるREADME.mdファイルを読むことをお勧めします。
| 章タイトル | メインコード(クイックアクセス用) | 全コード + 補足 |
|---|---|---|
| セットアップ推奨事項 | - | - |
| 第 1 章: 大規模言語モデルを理解する | コードなし | - |
| 第 2 章: テキストデータを扱う | - ch02.ipynb - dataloader.ipynb (要約) - exercise-solutions.ipynb |
./ch02 |
| 第 3 章: アテンション機構をコーディングする | - ch03.ipynb - multihead-attention.ipynb (要約) - exercise-solutions.ipynb |
./ch03 |
| 第 4 章: GPT モデルをゼロから実装する | - ch04.ipynb - gpt.py (要約) - exercise-solutions.ipynb |
./ch04 |
| 第 5 章: ラベルなしデータで事前学習する | - ch05.ipynb - gpt_train.py (要約) - gpt_generate.py (要約) - exercise-solutions.ipynb |
./ch05 |
| 第 6 章: テキスト分類のためのファインチューニング | - ch06.ipynb - gpt_class_finetune.py - exercise-solutions.ipynb |
./ch06 |
| 第 7 章: 指示に従うためのファインチューニング | - ch07.ipynb - gpt_instruction_finetuning.py (要約) - ollama_evaluate.py (要約) - exercise-solutions.ipynb |
./ch07 |
| 付録 A: PyTorch 入門 | - code-part1.ipynb - code-part2.ipynb - DDP-script.py - exercise-solutions.ipynb |
./appendix-A |
| 付録 B: 参考文献とさらなる読み物 | コードなし | - |
| 付録 C: 演習の解答 | コードなし | - |
| 付録 D: トレーニングループに機能を追加する | - appendix-D.ipynb | ./appendix-D |
| 付録 E: LoRA によるパラメータ効率的なファインチューニング | - appendix-E.ipynb | ./appendix-E |
以下のメンタルモデルは、本書で扱う内容を要約しています。
最も重要な前提条件は、Python プログラミングの強固な基盤です。 この知識があれば、LLM の魅力的な世界を探索し、本書で提示される概念とコード例を理解する準備が整います。
深層ニューラルネットワークの経験がある場合、LLM はこれらのアーキテクチャに基づいて構築されているため、特定の概念がより馴染みやすいかもしれません。
本書では、外部の LLM ライブラリを使用せずに、PyTorch を使用してコードをゼロから実装します。PyTorch の習熟は前提条件ではありませんが、PyTorch の基本に精通していることは確かに有用です。PyTorch が初めての場合、付録 A が PyTorch の簡潔な紹介を提供します。また、PyTorch in One Hour: From Tensors to Training Neural Networks on Multiple GPUsという私の本も、基本を学ぶのに役立つかもしれません。
本書の主要な章のコードは、通常のラップトップで妥当な時間内に実行できるように設計されており、専門的なハードウェアを必要としません。このアプローチにより、幅広い読者が教材に取り組むことができます。さらに、コードは利用可能な場合、自動的に GPU を使用します。(追加の推奨事項については、setupドキュメントをご覧ください。)
17 時間 15 分のコンパニオンビデオコースでは、本書の各章をコーディングで進めていきます。コースは本書の構造を反映した章とセクションに編成されているため、本書の独立した代替として、または補完的なコードアロングリソースとして使用できます。
本書の各章にはいくつかの演習が含まれています。解答は付録 C にまとめられており、対応するコードノートブックはこのリポジトリの主要な章フォルダで利用できます(例:./ch02/01_main-chapter-code/exercise-solutions.ipynb)。
コード演習に加えて、Manning ウェブサイトから 170 ページの無料 PDF Test Yourself On Build a Large Language Model (From Scratch)をダウンロードできます。各章約 30 のクイズ問題と解答が含まれており、理解度をテストするのに役立ちます。
いくつかのフォルダには、関心のある読者のためのボーナスとしてオプションの教材が含まれています:
- セットアップ
- 第 2 章: テキストデータを扱う
- 第 3 章: アテンション機構をコーディングする
- 第 4 章: GPT モデルをゼロから実装する
- 第 5 章: ラベルなしデータで事前学習する:
- 第 6 章: 分類のためのファインチューニング
- 第 7 章: 指示に従うためのファインチューニング
あらゆる種類のフィードバックを歓迎します。Manning ForumまたはGitHub Discussionsで共有することをお勧めします。同様に、質問がある場合や、単に他の人とアイデアを交換したい場合は、遠慮なくフォーラムに投稿してください。
このリポジトリは印刷された本に対応するコードを含んでいるため、現在、主要な章のコードの内容を拡張する貢献は受け付けることができません。物理的な本からの逸脱が生じてしまうためです。一貫性を保つことで、すべての人にとってスムーズな体験を確保できます。
本書またはコードがあなたの研究に役立つ場合は、引用をご検討ください。
シカゴスタイルの引用:
Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 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}
}




