Direkt zum Inhalt

OpenAI Model Distillation: Ein Leitfaden mit Beispielen

Lerne, wie man LLMs mit dem Destillationswerkzeug von OpenAI destilliert. Dieses Tutorial bietet eine Schritt-für-Schritt-Anleitung für die Erstellung von Git-Befehlen mit GPT-4o und GPT-4o-mini.
Aktualisierte 14. Feb. 2025  · 8 Min. Lesezeit

Ich habe versucht OpenAIdas neue Modell-Destillations-Tool-Es erfordert nur einen minimalen Programmieraufwand und ermöglicht es uns, den gesamten Destillationsprozess auf einer einzigen Plattform zu verwalten, von der Erstellung von Datensätzen bis zur Feinabstimmung der Modelle und Bewertung ihrer Leistung.

In diesem Tutorial helfe ich dir, mit OpenAIs Modell-Destillationstool loszulegen. Zuerst werden wir die Grundlagen der Modell-Destillation behandeln und dann ein Demo-Destillationsprojekt mit der OpenAIs API.

Was ist Modelldestillation?

Stell dir vor, eine gut ausgebildete Lehrerin oder ein gut ausgebildeter Lehrer bringt den Schülerinnen und Schülern ihre Denkprozesse und ihr Wissen bei. Das sind die Grundlagen, wie die Modelldestillation funktioniert.

Bei dieser Technik ist der Lehrer ein großes, vortrainiertes Modell und der Schüler ein kleineres Modell, das lernt, die Ergebnisse des Lehrers zu kopieren. So kann der Schüler/die Schülerin bestimmte Aufgaben auf einem vergleichbaren Niveau wie der Lehrer/die Lehrerin ausführen, nur mit weniger Ressourcen.

Die Modelldestillation gibt es in vielen Formen, jede mit ihren eigenen Methoden und Zielen. In einem Fall muss der Schüler nur die Ergebnisse eines größeren Modells nachahmen. In einem anderen Fall wollen wir den Problemlösungsansatz der Lehrkraft in das kleinere Modell einfließen lassen. Letztlich geht es darum, mit einem effizienten Modell von den Möglichkeiten eines großen Modells zu profitieren.

Wissen destillieren

Eine gängige Methode, um Wissen von einem "Lehrermodell" auf ein "Schülermodell" zu übertragen, ist die Feinabstimmung des Schülermodells anhand eines Datensatzes, der aus Eingaben und den entsprechenden Ausgaben des Lehrermodells besteht.

Während dieses überwachten Lernens lernt das Schülermodell, die Antworten des Lehrers zu wiederholen, wenn es ähnliche Eingaben erhält.

Vorteile der Modelldestillation

Das Destillationsverfahren bringt viele Vorteile mit sich:

  • Reduzierte Kosten: Kleinere Modelle sind in der Anschaffung günstiger.
  • Schnellere Reaktion: Das Benutzererlebnis wird durch die schnelleren Ergebnisse der kleinen Modelle verbessert.
  • Zugänglichkeit: Das Modell kann in Umgebungen mit begrenzten Rechenressourcen eingesetzt werden, z. B. auf Edge-Plattformen oder mobilen Geräten.

Um mehr über die Destillation zu erfahren, kannst du diesen Artikel lesen: LLM-Destillation erklärt.

Wie man Model Distillation mit OpenAI API implementiert

In diesem Abschnitt werden wir ein Beispiel für die Modelldestillation auf der OpenAI-Plattform untersuchen. Unser Hauptaugenmerk liegt auf , um Git-Befehle für die Anfrage eines Nutzers zu generieren.

Wir werden zunächst einen Datensatz der kleinen OpenAIs erstellen GPT-4o mini (Schüler) und werten die Ergebnisse aus.

Als nächstes verwenden wir GPT-4o (Lehrer), um dieselben Sätze zu übersetzen und das Schülermodell anhand des vom Lehrer produzierten Datensatzes zu verfeinern.

Schließlich müssen wir das Schülermodell auswerten und die Verbesserung beurteilen.

Zusammengefasst sind das die Schritte, die wir unternehmen werden:

  1. Wähle die Modelle für Lehrer und Schüler
  2. Bereite deinen Datensatz vor
  3. Erstelle Input/Output-Paare für den Schüler
  4. Bewerten Sie die Leistung des Schülers
  5. Erstelle Input/Output-Paare für die Lehrkraft
  6. Feinabstimmung des Schülers mit dem Datensatz des Lehrers
  7. Bewerten Sie das fein abgestimmte Modell

Schritt 1: Wähle die Modelle für Lehrer und Schüler

Der erste Schritt der Modelldestillation ist die Auswahl des Lehrers und des Schülers, die durch die beabsichtigte Aufgabe und dein Rechenbudget bestimmt wird.

Wenn du mit Open-Source-Modellen arbeitest, gibt es eine Vielzahl von LLMs mit unterschiedlichen Fähigkeiten und Größen. Mit der Plattform von OpenAI sind die Möglichkeiten begrenzt.

Eine Tabelle mit einer Übersicht über die Modelle von OpenAI, einschließlich ihrer Namen, Beschreibungen und Fähigkeiten.

Für unser Beispiel wählen wir GPT-4o mini als das kleinere Schülermodell und GPT-4o als Lehrermodell.

Das GPT-4o-mini ist ein relativ kleines Modell und ein guter Kandidat für die Schülerrolle. Das GPT-4o ist relativ groß, aber viel leistungsfähiger und kann als effizienter Lehrer für den Schüler arbeiten.

Es gibt andere Möglichkeiten, und die Änderung der Modelle würde nur einen minimalen Aufwand in unserem Projekt zur Modelldestillation erfordern.

Schritt 2: Bereite deinen Datensatz vor

Dein Datensatz für diese Aufgabe muss anspruchsvoll genug für das Schülermodell sein, aber nicht so anspruchsvoll für die Lehrkraft. Die Qualitäten eines guten Datensatzes, wie Vielfalt, Repräsentativität oder Genauigkeit, sind bei der Modelldestillation immer noch wichtig.

Es ist sehr wichtig, einen ausreichend großen Datensatz zu haben, um das Schülermodell zu beeinflussen. Es gibt keine eindeutige Antwort auf "Wie groß sollte der Destillationsdatensatz sein?", denn das hängt von der Komplexität deiner Zielaufgabe und den Modellen ab, die du als Lehrer/in und Schüler/in ausgewählt hast.

Wie in der OpenAIs Dokumentationkönnen zwar ein paar hundert Proben ausreichen, aber eine vielfältigere Gruppe von Tausenden von Proben kann manchmal zu besseren Ergebnissen führen.

Unser Datensatz in diesem Artikel besteht aus 386 Nutzeranfragen, die in einem JSON Datei gespeichert sind (du könntest sie genauso gut in Form einer Python-Liste speichern).

{    
    "requests": [
      "Initialize a new Git repository in the current directory.",
      "Clone the repository from GitHub to my local machine.",
      "Create a new branch called 'feature-login'.",
			...
      "Show the differences between the working directory and the staging area.",
      "Stage all modified and deleted files for commit.",
      ]
}

Schritt 3: Erstelle Ein-/Ausgabepaare für den Schüler (optional)

Unser Datensatz besteht derzeit nur aus Eingaben, und wir sollten auch Ausgaben generieren. Die Ergebnisse des Schülers sind für die Destillation nicht notwendig, aber wir brauchen sie, um eine Basislinie für die Genauigkeit des Schülermodells zu erhalten (Schritt 4).

Mit dem folgenden Code iterieren wir über den Eingabedatensatz und erzeugen für jeden eine Ausgabe:

def generate_responses():
    with open(JSON_PATH, 'r') as file:
        user_messages = json.load(file)
    
    for sentence in user_messages['requests']:
        # Call the OpenAI model gpt-4o-mini and store the response
        response = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=[
                {"role": "system", "content": system_prompt},
                {
                    "role": "user",
                    "content": sentence
                },
            ],
            store=True,
            metadata={
                "task": "git"
            }
        )

generate_responses()

Beachte, dass wir beim Aufruf des OpenAI-Modells store=True verwenden. Dieses Argument speichert die Input/Output-Paare in unserem OpenAI-Dashboard, sodass wir die Outputs nicht mit Code speichern müssen.

Um diese Chatvervollständigungen später zu identifizieren und herauszufiltern, vergiss nicht, beim Aufruf der Funktion client.chat.completions.create Metadaten anzugeben. Die Argumente für diese Metadaten sind frei wählbar.

Die erzeugten Ausgaben finden Sie auf der Seite Chat-Abschlüsse Abschnitt unseres OpenAI Dashboards.

Ein Screenshot des Abschnitts "Chat-Abschlüsse" im OpenAI-Dashboard, der eine Liste der bisherigen Chat-Interaktionen zeigt.

Schritt 4: Bewerten Sie die Leistung des Schülers (optional)

Ein weiteres Tool von OpenAI, das für die Modelldestillation nützlich ist, sind die Auswertungen Werkzeug. Wir verwenden dieses Tool, um die Leistung des Schülermodells vor dem Training zu bewerten. Wir werden sie später auch bei der Bewertung des fein abgestimmten Schülermodells verwenden.

Nachdem du die Chatverläufe des vorherigen Schritts herausgefiltert hast, klicke auf die SchaltflächeAuswerten. Wir müssen nun Prüfkriterien hinzufügen.

Ein Screenshot der Benutzeroberfläche des OpenAI Evaluations-Tools, der die Optionen zum Hinzufügen von Prüfkriterien zeigt.

Es gibt eine Vielzahl von Methoden, um die Ein-/Ausgangspaare zu bewerten. Beachte, dass unser aktueller Datensatz automatisch von den Chatverläufen von OpenAI generiert wird und nur die Ein- und Ausgänge enthält. Einige dieser Kriterien erfordern jedoch auch eine Referenz, mit der sie verglichen werden können.

Diese Referenz könnten die Ergebnisse eines anspruchsvolleren Modells sein, wie z.B. GPT-4o oder o1-Vorschau. Da wir die Chats nicht automatisch in OpenAI speichern können, müssen wir die Methoden Criteriamatch oder Custom prompt verwenden, die nur eine Eingabe und eine Ausgabe benötigen.

Wenn du andere Methoden verwenden musst, kannst du die Chatvervollständigungen von OpenAI nicht nutzen und musst deine JSON Datei mit Code erstellen . Das ist nicht kompliziert, aber wir werden in diesem Artikel nicht näher darauf eingehen.

Ein Screenshot der OpenAI GUI für die Kriterienkonfiguration

Sobald du die Auswertungen durchgeführt hast, erhältst du in Kürze deine Ergebnisse.

Schritt 5: Erstelle Input/Output-Paare für die Lehrkraft

Für die Feinabstimmung des Schülermodells benötigen wir einen hochwertigen Datensatz, der von der Lehrkraft erstellt wurde. Dieser Schritt ist fast identisch mit Schritt 3 - du musst nur das Argument model von gpt-4o-mini in gpt-4o ändern.

Schritt 6: Feinabstimmung des Schülers

Auch hier filterst du bei den Chat-Abschlüssen nach dem Lehrermodell und den Metadaten. Als Nächstes wählst du die Schaltfläche Destillieren. OpenAIs Distill ist im Wesentlichen das Werkzeug für die Feinabstimmung.

Ein Screenshot der Oberfläche des OpenAI-Feineinstellungswerkzeugs mit Optionen zur Auswahl von Basismodellen und Hyperparametern.

Für das Basismodell wählen wir den Schüler. Mit den Hyperparametern muss experimentiert und getestet werden, um die besten Ergebnisse zu erzielen - setze sie auf auto. Wähle schließlich Erstellen und warte, bis die Feinabstimmung abgeschlossen ist.

Schritt 7: Bewerten Sie das fein abgestimmte Modell

Sobald wir fertig sind, verwenden wir den Code aus Schritt 3 erneut, dieses Mal mit dem fein abgestimmten Modell als model Argument. Der Name des Feinabstimmungsmodells wird als "Ausgabemodell" auf deiner Feinabstimmungsseite angezeigt.

def generate_responses():
    with open(JSON_PATH, 'r') as file:
        user_messages = json.load(file)

    for sentence in user_messages['requests']:
        # Call the OpenAI model gpt-4o-mini and store the response
        response = client.chat.completions.create(
            model="ft:gpt-4o-mini-2024-07-18:personal:git:AF7QSF0m",
            messages=[
                {"role": "system", "content": system_prompt},
                {
                    "role": "user",
                    "content": sentence
                },
            ],
            store=True,
            metadata={
                "task": "git"
            }
        )

generate_responses()

Nachdem du mit der Erstellung der Outputs fertig bist, nutze die Auswertungen, um die Leistungsfähigkeit deines neuen Modells anhand der Inputs zu beurteilen.

Fazit

OpenAIs Rezept für die Destillation ist einfach, aber geradlinig. Das ist besonders hilfreich, weil du dich nicht selbst um die Feinabstimmung der Modelle kümmern oder die Ergebnisse mit Code auswerten musst.

Die Modelle von OpenAI, selbst die kleineren, sind schon ziemlich ausgefeilt. Experimentiere mit den Hyperparametern, bevor du die Feinabstimmung des Modells vornimmst, bereite angemessene und herausfordernde Aufforderungen für Lehrer und Schüler vor und vergleiche die feinabgestimmte Auswertung mit der Basisauswertung.

Bevor du dich mit deiner eigenen Modelldestillation beschäftigst, empfehle ich dir, diese beiden OpenAI-Ressourcen zu lesen: OpenAI Model Distillation in der API und Model Distillation Dokument.

KI-Anwendungen entwickeln

Lerne, wie man KI-Anwendungen mit der OpenAI API erstellt.
Start Upskilling For Free

Hesam Sheikh Hassani's photo
Author
Hesam Sheikh Hassani
LinkedIn
Twitter

Masterstudent der Künstlichen Intelligenz und technischer Redakteur für KI. Ich gebe Einblicke in die neuesten KI-Technologien, mache ML-Forschung zugänglich und vereinfache komplexe KI-Themen, die du brauchst, um ganz vorne mit dabei zu sein.

Themen

Lerne, KI-Anwendungen zu entwickeln!

Lernpfad

Entwicklung von KI-Anwendungen

23Stunden hr
Lerne, KI-gestützte Anwendungen mit den neuesten KI-Entwicklungstools zu erstellen, darunter die OpenAI API, Hugging Face und LangChain.
Siehe DetailsRight Arrow
Kurs starten
Zertifizierung verfügbar

Kurs

Entwicklung von KI-Systemen mit der OpenAI API

3 hr
3.3K
Nutze die OpenAI API, um deine KI-Anwendungen produktionsreif zu machen.
Mehr anzeigenRight Arrow