Dieses Repository enthält den Code für die Entwicklung, das Vortraining und die Feinabstimmung eines GPT-ähnlichen LLM und ist das offizielle Code-Repository für das Buch Build a Large Language Model (From Scratch).
In „Build a Large Language Model (From Scratch)“ lernen und verstehen Sie, wie große Sprachmodelle (LLMs) von innen nach außen funktionieren, indem Sie sie Schritt für Schritt von Grund auf codieren. In diesem Buch führe ich Sie durch die Erstellung Ihres eigenen LLM und erkläre jede Phase mit klarem Text, Diagrammen und Beispielen.
Die in diesem Buch beschriebene Methode zum Trainieren und Entwickeln eines eigenen kleinen, aber funktionalen Modells für Bildungszwecke spiegelt den Ansatz wider, der bei der Erstellung großer grundlegender Modelle wie denen hinter ChatGPT verwendet wird. Darüber hinaus enthält dieses Buch Code zum Laden der Gewichte größerer vorab trainierter Modelle zur Feinabstimmung.
Um eine Kopie dieses Repositorys herunterzuladen, klicken Sie auf die Schaltfläche „ZIP herunterladen“ oder führen Sie den folgenden Befehl in Ihrem Terminal aus:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(Wenn Sie das Codepaket von der Manning-Website heruntergeladen haben, besuchen Sie bitte das offizielle Code-Repository auf GitHub unter https://github.com/rasbt/LLMs-from-scratch, um die neuesten Updates zu erhalten.)
Bitte beachten Sie, dass es sich bei dieser README.md
Datei um eine Markdown-Datei ( .md
) handelt. Wenn Sie dieses Codepaket von der Manning-Website heruntergeladen haben und es auf Ihrem lokalen Computer anzeigen, empfehle ich für die ordnungsgemäße Anzeige die Verwendung eines Markdown-Editors oder einer Vorschau. Wenn Sie noch keinen Markdown-Editor installiert haben, ist MarkText eine gute kostenlose Option.
Alternativ können Sie diese und andere Dateien auf GitHub unter https://github.com/rasbt/LLMs-from-scratch in Ihrem Browser anzeigen, wodurch Markdown automatisch gerendert wird.
Tipp
Wenn Sie Anleitungen zur Installation von Python und Python-Paketen und zum Einrichten Ihrer Codeumgebung benötigen, empfehle ich Ihnen, die Datei README.md im Setup-Verzeichnis zu lesen.
Kapiteltitel | Hauptcode (für Schnellzugriff) | Alle Codes + Ergänzungen |
---|---|---|
Einrichtungsempfehlungen | - | - |
Kapitel 1: Große Sprachmodelle verstehen | Kein Code | - |
Kapitel 2: Arbeiten mit Textdaten | - ch02.ipynb - dataloader.ipynb (Zusammenfassung) - Exercise-solutions.ipynb | ./ch02 |
Kapitel 3: Aufmerksamkeitsmechanismen kodieren | - ch03.ipynb - multihead-attention.ipynb (Zusammenfassung) - Exercise-solutions.ipynb | ./ch03 |
Kapitel 4: Implementierung eines GPT-Modells von Grund auf | - ch04.ipynb - gpt.py (Zusammenfassung) - Exercise-solutions.ipynb | ./ch04 |
Kapitel 5: Vortraining für unbeschriftete Daten | - ch05.ipynb - gpt_train.py (Zusammenfassung) - gpt_generate.py (Zusammenfassung) - Exercise-solutions.ipynb | ./ch05 |
Kapitel 6: Feinabstimmung für die Textklassifizierung | - ch06.ipynb - gpt_class_finetune.py - Exercise-solutions.ipynb | ./ch06 |
Kapitel 7: Feinabstimmung, um Anweisungen zu befolgen | - ch07.ipynb - gpt_instruction_finetuning.py (Zusammenfassung) - ollama_evaluate.py (Zusammenfassung) - Exercise-solutions.ipynb | ./ch07 |
Anhang A: Einführung in PyTorch | - code-part1.ipynb - code-part2.ipynb - DDP-script.py - Exercise-solutions.ipynb | ./Anhang-A |
Anhang B: Referenzen und weiterführende Literatur | Kein Code | - |
Anhang C: Übungslösungen | Kein Code | - |
Anhang D: Hinzufügen von Schnickschnack zur Trainingsschleife | - Anhang-D.ipynb | ./Anhang-D |
Anhang E: Parametereffizientes Feintuning mit LoRA | - Anhang-E.ipynb | ./Anhang-E |
Das folgende mentale Modell fasst die in diesem Buch behandelten Inhalte zusammen.
Der Code in den Hauptkapiteln dieses Buches ist so konzipiert, dass er innerhalb eines angemessenen Zeitrahmens auf herkömmlichen Laptops läuft und keine spezielle Hardware erfordert. Dieser Ansatz stellt sicher, dass sich ein breites Publikum mit dem Material auseinandersetzen kann. Darüber hinaus nutzt der Code automatisch GPUs, sofern diese verfügbar sind. (Weitere Empfehlungen finden Sie im Setup-Dokument.)
Mehrere Ordner enthalten optionale Materialien als Bonus für interessierte Leser:
Ich freue mich über jede Art von Feedback, das Sie am besten über das Manning-Forum oder die GitHub-Diskussionen teilen. Wenn Sie Fragen haben oder einfach nur Ideen von anderen austauschen möchten, zögern Sie bitte nicht, diese ebenfalls im Forum zu posten.
Bitte beachten Sie, dass ich derzeit keine Beiträge akzeptieren kann, die den Inhalt des Hauptkapitelcodes erweitern würden, da dieses Repository den Code enthält, der einem gedruckten Buch entspricht, da dies zu Abweichungen vom physischen Buch führen würde. Eine einheitliche Einhaltung trägt dazu bei, ein reibungsloses Erlebnis für alle zu gewährleisten.
Wenn Sie dieses Buch oder diesen Code für Ihre Recherche nützlich finden, denken Sie bitte darüber nach, es zu zitieren.
Zitat im Chicago-Stil:
Raschka, Sebastian. Erstellen Sie ein großes Sprachmodell (von Grund auf) . Manning, 2024. ISBN: 978-1633437166.
BibTeX-Eintrag:
@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}
}