Dieses Tutorial richtet sich an Codierer, die daran interessiert sind, die Bausteine von Großsprachemodellen (LLMs) zu verstehen, wie LLMs funktionieren und wie sie in Pytorch von Grund auf codiert werden. Wir werden dieses Tutorial mit einer Einführung in LLMs, jüngsten Meilensteine und deren Anwendungsfälle beginnen. Anschließend werden wir ein kleines GPT-ähnliches LLM codieren, einschließlich seiner Dateneingangspipeline, der Kernarchitekturkomponenten und des Vorab-Codes selbst. Nachdem wir verstanden haben, wie alles zusammen passt und wie man einen LLM voranbringt, lernen wir, wie man vorgezogene Gewichte und Finetune-LLMs mit Open-Source-Bibliotheken lädt.
Das Codematerial basiert auf meinem Build ein großes Sprachmodell von Scratch Book und verwendet auch die LITGPT -Bibliothek.
Hier finden Sie eine Cloud-Umgebung, die alle Code-Beispiele und -abhängigkeiten installiert sind. Auf diese Weise können die Teilnehmer alle Code, insbesondere in den Abschnitten vor der Vorab- und Finetuning, auf einer GPU ausführen.
Weitere Informationen finden Sie in den Anweisungen im Setup -Ordner, um Ihren Computer so einzustellen, dass der Code lokal ausgeführt wird.
| Titel | Beschreibung | Ordner | |
|---|---|---|---|
| 1 | Einführung in LLMs | Eine Einführung in den Workshop zur Einführung von LLMs, die Themen, die in diesem Workshop behandelt werden, und Einrichtungsanweisungen. | 01_Intro |
| 2 | LLM -Eingabedaten verstehen | In diesem Abschnitt codieren wir die Texteingangspipeline, indem wir einen Text -Tokenizer und einen benutzerdefinierten Pytorch -Dataloader für unsere LLM implementieren | 02_Data |
| 3 | Codierung einer LLM -Architektur | In diesem Abschnitt werden wir die einzelnen Bausteine von LLMs durchgehen und sie im Code zusammenstellen. Wir werden nicht alle Module in sorgfältigem Detail abdecken, sondern uns auf das Gesamtbild konzentrieren und wie man sie zu einem GPT-ähnlichen Modell zusammenstellt. | 03_Architecture |
| 4 | Vorab -LLMs | In Teil 4 werden wir den Vorbereitungsprozess von LLMs abdecken und den Code in die zuvor implementierte Modellarchitektur implementieren. Da die Vorbereitung teuer ist, werden wir es nur in einem in der öffentliche Domäne verfügbaren kleinen Textprobe vorab, sodass die LLM einige grundlegende Sätze generieren kann. | 04_PRETRING |
| 5 | Laden vorbereiteten Gewichten | Da Vorbereitung ein langer und teurer Prozess ist, werden wir nun vorgezogene Gewichte in unsere selbst implementierte Architektur laden. Anschließend werden wir die LITGPT Open-Source-Bibliothek vorstellen, die einen ausgefeilteren (aber immer noch lesbaren) Code für Trainings- und Finetuning-LLMs bietet. Wir werden lernen, wie man Gewichte von vorbereiteten LLMs (Lama, Phi, Gemma, Mistral) in LITGPT lädt. | 05_Weighting |
| 6 | Finetuning LLMs | In diesem Abschnitt werden LLM -Finetuning -Techniken eingeführt, und wir werden einen kleinen Datensatz für die Befehlsfonetuning vorbereiten, mit der wir dann ein LLM in LItGPT finetunen. | 06_finetuning |
(Das Codematerial basiert auf meinem Build ein großes Sprachmodell von Scratch Book und verwendet auch die LITGPT -Bibliothek.)