LLM Training

Dies sind meine Notizen aus dem sehr empfohlenen Buch https://www.manning.com/books/build-a-large-language-model-from-scratch mit einigen zusätzlichen Informationen.

Grundinformationen

Sie sollten mit dem Lesen dieses Beitrags beginnen, um einige grundlegende Konzepte zu verstehen, die Sie wissen sollten:

0. Basic LLM Concepts

1. Tokenisierung

Das Ziel dieser ersten Phase ist sehr einfach: Teilen Sie die Eingabe in Tokens (IDs) auf eine Weise, die Sinn macht.

1. Tokenizing

2. Datenauswahl

Das Ziel dieser zweiten Phase ist sehr einfach: Wählen Sie die Eingabedaten aus und bereiten Sie sie für die Trainingsphase vor, indem Sie den Datensatz normalerweise in Sätze einer bestimmten Länge unterteilen und auch die erwartete Antwort generieren.

https://github.com/HackTricks-wiki/hacktricks/blob/de/todo/llm-training-data-preparation/2.-data-sampling.md

3. Token-Embeddings

Das Ziel dieser dritten Phase ist sehr einfach: Weisen Sie jedem der vorherigen Tokens im Vokabular einen Vektor der gewünschten Dimensionen zu, um das Modell zu trainieren. Jedes Wort im Vokabular wird einen Punkt in einem Raum von X Dimensionen haben. Beachten Sie, dass die Position jedes Wortes im Raum zunächst "zufällig" initialisiert wird und diese Positionen trainierbare Parameter sind (während des Trainings verbessert werden).

Darüber hinaus wird während des Token-Embeddings eine weitere Schicht von Embeddings erstellt, die (in diesem Fall) die absolute Position des Wortes im Trainingssatz darstellt. Auf diese Weise hat ein Wort an verschiedenen Positionen im Satz eine unterschiedliche Darstellung (Bedeutung).

3. Token Embeddings

4. Aufmerksamkeitsmechanismen

Das Ziel dieser vierten Phase ist sehr einfach: Wenden Sie einige Aufmerksamkeitsmechanismen an. Dies werden viele wiederholte Schichten sein, die die Beziehung eines Wortes im Vokabular zu seinen Nachbarn im aktuellen Satz, der zum Trainieren des LLM verwendet wird, erfassen. Es werden viele Schichten dafür verwendet, sodass viele trainierbare Parameter diese Informationen erfassen werden.

4. Attention Mechanisms

5. LLM-Architektur

Das Ziel dieser fünften Phase ist sehr einfach: Entwickeln Sie die Architektur des gesamten LLM. Fügen Sie alles zusammen, wenden Sie alle Schichten an und erstellen Sie alle Funktionen, um Text zu generieren oder Text in IDs und umgekehrt zu transformieren.

Diese Architektur wird sowohl für das Training als auch für die Vorhersage von Text nach dem Training verwendet.

5. LLM Architecture

6. Vortraining & Laden von Modellen

Das Ziel dieser sechsten Phase ist sehr einfach: Trainieren Sie das Modell von Grund auf neu. Dazu wird die vorherige LLM-Architektur mit einigen Schleifen über die Datensätze verwendet, wobei die definierten Verlustfunktionen und der Optimierer verwendet werden, um alle Parameter des Modells zu trainieren.

https://github.com/HackTricks-wiki/hacktricks/blob/de/todo/llm-training-data-preparation/6.-pre-training-and-loading-models.md

7.0. LoRA-Verbesserungen beim Feintuning

Die Verwendung von LoRA reduziert die benötigte Berechnung erheblich, um bereits trainierte Modelle fein abzustimmen.

7.0. LoRA Improvements in fine-tuning

7.1. Feintuning für Klassifikation

Das Ziel dieses Abschnitts ist zu zeigen, wie man ein bereits vortrainiertes Modell fein abstimmt, sodass das LLM anstelle von neuem Text die Wahrscheinlichkeiten des gegebenen Textes für jede der gegebenen Kategorien (wie ob ein Text Spam ist oder nicht) angibt.

https://github.com/HackTricks-wiki/hacktricks/blob/de/todo/llm-training-data-preparation/7.1.-fine-tuning-for-classification.md

7.2. Feintuning zur Befolgung von Anweisungen

Das Ziel dieses Abschnitts ist zu zeigen, wie man ein bereits vortrainiertes Modell fein abstimmt, um Anweisungen zu befolgen, anstatt nur Text zu generieren, zum Beispiel, um auf Aufgaben als Chatbot zu antworten.

7.2. Fine-Tuning to follow instructions

Last updated