Ressourcen/Modelltraining/Trainingsmethoden

Methode

Fortgesetztes Pre-Training

Fortgesetztes Pre-Training trainiert ein Modell mit Ihren Rohtexten auf dieselbe Weise, wie es ursprünglich trainiert wurde: durch die Vorhersage des nächsten Wortes. Es fügt Wissen über Ihre Fachdomäne hinzu, jedoch kein neues Verhalten. Daher folgt in der Regel ein überwachtes Training (Supervised).

Kapitel 75 Min. Lesezeit5 Quellen

Was es ist

Ein Basismodell hat sein Wissen im Pre-Training erworben: durch die Vorhersage des nächsten Wortes über eine riesige Menge an öffentlichen Texten. Das Continued pre-training führt denselben Prozess ein zweites Mal durch, und zwar mit Ihrem Text. Es gibt keine Prompts, keine Antworten und keinen Bewerter; das Modell liest Ihre Dokumentation und wird besser darin, vorherzusagen, wie sie weitergeht, was bedeutet, dass es deren Vokabular, Entitäten und Fakten aufnimmt.

Das Konzept ist fest etabliert. Gururangan et al. (2020) zeigten in vier Domänen (biomedizinische und informatikbezogene Arbeiten, Nachrichten und Rezensionen) und bei acht Aufgaben, dass eine zweite Phase des Pre-Trainings mit domänenspezifischem Text die Ergebnisse verbesserte und dass das Pre-Training mit dem aufgabeneigenen, ungelabelten Text selbst danach noch hilfreich war.

Wie der Text aufbereitet wird

  • Passagen von etwa 700 Wörtern, die an Absatzumbrüchen getrennt werden, damit keine Passage mitten im Gedanken endet. Sehr kurze Dokumente können übersprungen werden.
  • Personenbezogene Daten werden geschwärzt, wie bei jeder Datenaufbereitung.
  • Etwa 5 % der Passagen werden zurückgehalten, sodass der Verlust an Texten gemessen werden kann, mit denen das Modell nie trainiert wurde.
1 · AN ABSATZUMBRÜCHEN UNTERTEILENABCDEFzurückgehalten (~5 %)ein Abschnitt ≈ 700 Wörter ≈ 900 Token2 · IN SEQUENZEN VON 2.048 TOKEN PACKENSequenz 1ABSequenz 2CDEvollständigvollständigDer Loss umfasst jedes Token: Es gibt keine Fragen und Antworten, nur Text
Wie Dokumente zu Daten für das Continued Pre-training werden. Der Text wird an Absatzumbrüchen in Abschnitte von etwa 700 Wörtern unterteilt, sodass kein Abschnitt mitten im Gedanken endet. Etwa 5 % werden zurückgehalten, um den Loss bei Texten zu messen, mit denen das Modell nie trainiert wird. Bei Hugging Face werden kurze Abschnitte dann nebeneinander in Sequenzen voller Länge gepackt, sodass keine Rechenleistung für Padding verschwendet wird. Die Längenangaben dienen der Veranschaulichung.

Wie jeder Anbieter es trainiert

Hugging Face: Jeder Abschnitt ist eine text-Zeile. Der Loss umfasst jedes Token, im Gegensatz zum überwachten Training, bei dem nur die Antwort zählt. Kurze Abschnitte werden zu Sequenzen voller Länge zusammengepackt, sodass keine Rechenleistung für das Padding aufgewendet wird.

Eine Passage für Hugging Face
{"text": "Sharing reports\n\nAny report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}

Offene Modelle von Vertex AI (Gemma, Llama, Qwen): Es gibt keinen reinen Textmodus, daher wird jeder Abschnitt als Prompt und Completion eingegeben, wobei der Titel des Dokuments als Prompt dient. Vertex lernt die Completion, also den Abschnitt. Vertex zeigt für diese Art von Aufgabe möglicherweise keine Loss-Kurve an.

Dieselbe Passage für offene Vertex AI-Modelle
{"prompt": "Sharing reports",
 "completion": "Any report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}
Hugging Face · reiner Text
Abschnitt→texteine Zeile pro Abschnitt→lernt jedes Token
Offene Modelle von Vertex AI · Prompt und Completion
promptder Titel des Dokuments+completionder Abschnitt→lernt den Abschnitt
Derselbe Abschnitt, so geschrieben, wie jeder Anbieter damit trainieren kann. Hugging Face akzeptiert reinen Text. Die offenen Modelle von Vertex AI haben keinen reinen Textmodus, daher dient der Dokumenttitel als Prompt und der Abschnitt ist der Teil, der gelernt wird.

Anderswo nicht verfügbar. Gemini, Azure, Fireworks und aktuelle Bedrock-Modelle bieten kein Continued pre-training an; Bedrock tat dies nur für Titan Text, das eingestellt wurde. Bei diesen Anbietern werden Dokumente stattdessen zu generierten Q&A.

Wissen, nicht Verhalten

Nach dem Continued pre-training weiß das Modell mehr, antwortet aber nicht zwangsläufig besser: Es wurde darauf trainiert, Text fortzusetzen, nicht auf eine Frage zu antworten. Allen-Zhu & Li (2023) stellten fest, dass Wissen, das ein Modell auswendig gelernt hat, nicht immer durch Fragen extrahierbar ist und dass erst unterschiedliche Formulierungen desselben Fakts dieses abrufbar machen. Das übliche Vorgehen ist also zunächst ein Continued pre-training und dann ein überwachter Durchlauf mit Chats oder generierten Q&A, der auf dem trainierten Modell aufbaut.

BasismodellAllgemeinwissen
→liest Ihren TextFortgesetztes Pre-Trainingkennt nun Ihre Dokumente
→fortsetzen abÜberwachter DurchlaufChats oder generierte Q&A: nutzt dieses Wissen zur Beantwortung
Fortgesetztes Pre-Training fügt Wissen hinzu, kein Verhalten. Ein Modell, das nur Ihre Dokumente gelesen hat, setzt Text fort; es beantwortet noch keine Fragen dazu. Ein überwachter Durchlauf, der darauf aufbaut, bringt ihm bei, das Gelesene anzuwenden.
Dimensionierung eines Durchlaufs (zur Veranschaulichung)
  1. Ein Helpcenter mit 120.000 Wörtern wird in etwa 170 Abschnitte von jeweils rund 700 Wörtern unterteilt.
  2. Etwa 5 % (9 Abschnitte) werden zurückbehalten; mit 161 wird trainiert, was etwa 113.000 Wörtern entspricht.
  3. Bei etwa 1,3 Token pro Wort sind das rund 150.000 Token pro Epoche. Zwei Epochen trainieren mit etwa 300.000 Token.
  4. Gepackt in Sequenzen von 2.048 Token entspricht eine Epoche etwa 72 Sequenzen. Mit einem LoRA-Rang von 32 bei einem kleinen offenen Modell ist dies ein kurzer, kostengünstiger Vorgang.
  5. Ein überwachter Durchlauf mit den Support-Chats sowie generierten Q&A baut anschließend darauf auf und wird dagegen evaluiert.
  6. Im Gegensatz dazu liefert ein Pilotprojekt mit einem Dokument von 2.000 Wörtern drei Abschnitte: Dies beweist zwar, dass die Pipeline funktioniert, ist aber viel zu wenig Text, um das Modell zu verändern.

Wann Sie dies wählen sollten

  • Wählen Sie diese Option, wenn Sie über eine umfangreiche Dokumentation verfügen (Zehntausende von Wörtern oder mehr), ein offenes Modell trainieren und im Anschluss einen überwachten Durchlauf planen.
  • Wählen Sie generierte Q&A, wenn Sie zeitnah bessere Antworten wünschen, weniger Dokumente haben oder bei einem Anbieter trainieren, der kein fortgesetztes Pre-Training anbietet.
  • Ziehen Sie beides in Betracht: fortgesetztes Pre-Training, um die Dokumentation aufzunehmen, und anschließend generierte Q&A und Chats, um dem Modell beizubringen, daraus Antworten zu generieren.

Einstellungen

AbschnittslängeTypisch Etwa 700 Wörter#

Wie lang jeder Trainingsabschnitt ist. Etwa 700 Wörter, getrennt an Absatzumbrüchen, sodass jeder Abschnitt ein zusammenhängender Text ist und bequem in eine Trainingssequenz passt. Sehr kurze Dokumente werden möglicherweise übersprungen, da sie zu kurz sind, um etwas zu vermitteln.

EpochenTypisch 1–3#

Wie oft das Modell alle Abschnitte liest. Halten Sie diesen Wert niedrig: Viele Durchgänge führen dazu, dass das Modell Abschnitte Wort für Wort rezitiert, anstatt das Wissen zu nutzen. Jede Epoche verursacht zudem in etwa die Kosten einer weiteren Epoche.

LoRA-RangTypisch 32 (16 für andere Methoden)#

Die Größe des Adapters, der speichert, was das Modell lernt. Neues Wissen erfordert einen größeren Adapter als eine bloße Stiländerung. Daher verwendet Scalata für das fortgesetzte Pre-Training den Rang 32 und für die anderen Methoden den Rang 16. Biderman et al. (2024) stellten bei Code und Mathematik fest, dass ein vollständiges Fine-Tuning Änderungen eines Rangs erlernt, der 10- bis 100-mal größer ist als bei typischen LoRA-Konfigurationen – ein wahrscheinlicher Grund dafür, dass niedrige Ränge nicht ausreichen, wenn das Ziel neues Wissen ist.

Häufige Fehler

  • Es auf einigen wenigen Seiten auszuführen und eine Veränderung zu erwarten. Es werden Zehntausende von Wörtern oder mehr benötigt.
  • Nach dem Continued pre-training aufzuhören. Das Modell weiß mehr, benötigt aber dennoch einen überwachten Durchlauf, um gut zu antworten.
  • Die Verwendung vieler Epochen. Das Modell beginnt, Abschnitte zu rezitieren, anstatt deren Inhalt zu nutzen.
  • Einen niedrigen LoRA-Rang beizubehalten. Wissen erfordert mehr Adapterkapazität als Stil.
  • Danach bei Gemini, Azure, Fireworks oder Bedrock zu suchen. Verwenden Sie dort generierte Q&A.

Quellen und weiterführende Literatur

Externe Quellen werden in einem neuen Tab geöffnet.

  1. 01Don't Stop Pretraining: Adapt Language Models to Domains and TasksGururangan et al., 2020 · arXiv · arxiv.orgDie klassische Studie zum domänen- und aufgabenadaptiven Pre-Training.
  2. 02LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgLoRA im Vergleich zum vollständigen Fine-Tuning für das Continued pre-training und warum der Rang wichtig ist.
  3. 03Synthetic continued pretrainingYang et al., 2024 · arXiv · arxiv.orgWarum ein kleiner Korpus für sich genommen wenig lehrt und wie synthetische Variationen helfen.
  4. 04SFT TrainerHugging Face TRL docs · huggingface.coTraining mit reinem Text und das Packen von Sequenzen mit Hugging Face TRL.
  5. 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comTuning offener Modelle wie Gemma, Llama und Qwen auf Vertex AI.

Verwandeln Sie wochenlange Expertenarbeit in Minuten

Erfahren Sie, wie Scalata zu Ihrem Team, Ihren Daten und Ihren Kontrollen passt.

Vertrieb kontaktieren