- Entwickler können GPT‑3.5 Turbo jetzt mit eigenen Daten an ihren Anwendungsfall anpassen; Fine-Tuning für GPT‑4 soll im Herbst verfügbar werden
- In ersten Tests erreichte feinabgestimmtes GPT‑3.5 Turbo bei einigen eng umrissenen Aufgaben eine Leistung auf dem Niveau von Standard-GPT‑4 oder sogar darüber; API-Ein- und Ausgabedaten bleiben im Besitz der Kunden
- Kunden in der private beta bestätigten Verbesserungen bei Befolgung von Anweisungen, Stabilität des Ausgabeformats und Anpassung an den Markenton; das Fine-Tuning von GPT‑3.5 Turbo verarbeitet 4k Token
- Einige early tester trainierten Anweisungen direkt in das Modell ein und reduzierten so die Prompt-Größe um bis zu 90%, was zu schnelleren Aufrufen und geringeren Kosten führen kann
- Im Zuge der Einstellung der bisherigen GPT‑3-Basismodelle stehen
babbage-002unddavinci-002als Ersatzmodelle bereit, und/v1/fine_tuning/jobsersetzt das bisherige/v1/fine-tunes
Fine-Tuning für GPT‑3.5 Turbo verfügbar
- Entwickler können jetzt eigene Daten einbringen, um GPT‑3.5 Turbo an ihren Anwendungsfall anzupassen
- Das Fine-Tuning von GPT‑3.5 Turbo ist ab sofort verfügbar, GPT‑4-Fine-Tuning soll im Herbst folgen
- In ersten Tests zeigte feinabgestimmtes GPT‑3.5 Turbo bei einigen eng umrissenen Aufgaben Fähigkeiten auf dem Niveau von Standard-GPT‑4 oder sogar bessere Ergebnisse
- Daten, die über die Fine-Tuning-API gesendet und empfangen werden, bleiben im Besitz der Kunden und werden weder von OpenAI noch von anderen Organisationen zum Training anderer Modelle verwendet
- Zugehörige Richtlinie: API data privacy
Anwendungsfälle mit besserer Leistung
- Kunden in der private beta verbesserten mit überwachtem Fine-Tuning mehrere allgemeine Anwendungsfälle
- Verbesserte Befolgung von Anweisungen: Das Modell kann Anweisungen besser befolgen, etwa Ausgaben kurz zu halten oder immer in einer bestimmten Sprache zu antworten
- Stabiles Ausgabeformat: In Apps, die ein bestimmtes Antwortformat benötigen, etwa für Code-Vervollständigung oder das Erstellen von API-Aufrufen, hält das Modell konsistente Formate besser ein
- Angepasster Ton: Der Ton der Modellausgaben lässt sich konsistenter auf die Stimme einer Unternehmensmarke abstimmen
- Fine-Tuning dient nicht nur der Leistungssteigerung, sondern auch dazu, Prompts zu verkürzen und dabei eine ähnliche Leistung beizubehalten
- Das Fine-Tuning von GPT‑3.5 Turbo verarbeitet 4k Token und damit etwa doppelt so viel wie frühere Fine-Tuning-Modelle von OpenAI
- Early tester trainierten Anweisungen direkt in das Modell ein und reduzierten so die Prompt-Größe um bis zu 90%, was schnellere API-Aufrufe und geringere Kosten unterstützt
- Fine-Tuning ist am wirkungsvollsten, wenn es mit anderen Techniken wie Prompt Engineering, Information Retrieval und Function Calling kombiniert wird
- Hinweise zur Nutzung stehen im Fine-Tuning Guide
- Unterstützung für Fine-Tuning mit Function Calling und
gpt-3.5-turbo-16ksoll später im Herbst bereitgestellt werden
Sicherheitsmaßnahmen und Preise
- OpenAI prüft Trainingsdaten mit der Moderation API und einem GPT‑4-basierten Moderationssystem, um die Sicherheitsfunktionen des Basismodells zu erhalten
- Dieser Moderationsprozess dient dazu, unsichere Trainingsdaten zu erkennen, die mit den Sicherheitsstandards in Konflikt stehen
- Die Kosten für das Fine-Tuning von GPT‑3.5 Turbo teilen sich in Trainings- und Nutzungskosten auf
- Training: $0.008 pro 1K Token
- Nutzungseingabe: $0.012 pro 1K Token
- Nutzungsausgabe: $0.016 pro 1K Token
- Beispielsweise liegen die geschätzten Kosten für einen Fine-Tuning-Job mit
gpt-3.5-turbomit einer Trainingsdatei von 100.000 Token über 3 Epochen bei $2.40
Ersatz für GPT‑3-Modelle und API-Änderungen
- OpenAI kündigte im Juli 2023 an, die bisherigen GPT‑3-Basismodelle
ada,babbage,curie,davincizum 4. Januar 2024 einzustellen babbage-002unddavinci-002sind Ersatzmodelle für diese Modelle und können als Basismodelle oder Fine-Tuning-Modelle verwendet werden- Kunden können über die Completions API auf
babbage-002unddavinci-002zugreifen - Diese Modelle lassen sich über den neuen API-Endpunkt
/v1/fine_tuning/jobsfeinabstimmen - Der neue Endpunkt bietet Paginierung und höhere Skalierbarkeit und unterstützt damit die zukünftige Weiterentwicklung der Fine-Tuning-API
- Der Wechsel vom bisherigen
/v1/fine-tuneszum neuen Endpunkt ist im Fine-Tuning Guide beschrieben - Der bisherige Endpunkt
/v1/fine-tuneswird als deprecated eingestuft und soll am 4. Januar 2024 eingestellt werden
1 Kommentare
Hacker-News-Kommentare
Kann jemand einfach erklären, was Fine-Tuning genau macht?
Ich frage mich, ob man dem Modell zeigt, wie es Fragen beantworten soll, ob man ihm neue Informationen gibt, oder beides.
Wenn ich zum Beispiel ein LLM für Fragen zu einer großen privaten Knowledge Base verwenden möchte: Sollte ich das Modell dann auf dieser Knowledge Base fine-tunen? Falls ja, wie reduziert man Halluzinationen, und ist das besser, als jedes Mal die relevanten Dokumente in den Prompt zu packen?
Was „ähnlich“ bei einem neuen Prompt genau bedeutet, ist ziemlich schwarze Magie der Generalisierung.
Man kann es nutzen, um Stil, Informationen oder beides beizubringen, aber es gibt keine vollständige Methode, die sicherstellt, dass das Modell ausschließlich anhand der Fine-Tuning-Daten antwortet.
Wenn man viele Beispiele einfügt, in denen Themen abgelehnt werden, die nichts mit X zu tun haben, kann man bis zu einem gewissen Grad Leistung erwarten.
Für eine große private Knowledge Base empfehle ich normalerweise kein Fine-Tuning, sondern einen suchbasierten Ansatz.
Wenn man die Informationen in die Eingabe legt, kann man die Quellen prüfen, und das Modell kann leichter ohne Halluzinationen antworten.
Allerdings ist Suche stark bei Lookup-Fragen, kann aber bei Fragen schwach sein, bei denen mehrere Quellen verglichen oder kombiniert werden müssen; hier kann Fine-Tuning gewisse Vorteile haben.
Dieser Blogbeitrag scheint ebenfalls in diese Richtung zu gehen.
Mich würde auch interessieren, wie OpenAI Fine-Tuning umsetzt; LoRA wird es vermutlich nicht sein.
Sprachmodelle sind, wie man an Halluzinationen sieht, keine Werkzeuge zum Speichern oder Abrufen von Daten.
Zum Speichern und Abrufen von Daten sollte man eher Embeddings + Vektordatenbank verwenden.
Fine-Tuning dient dazu, zu verändern, welche Art von Sprache ein Modell erzeugt.
Wenn man eine KI möchte, die wie ein Journalist schreibt, tuned man sie auf Zeitungsartikel; wenn man eine KI möchte, die Rezensionen schreibt, tuned man sie auf Rezensionen.
Siehe https://huyenchip.com/2023/05/02/rlhf.html
Das unterscheidet sich ziemlich stark davon, das Basismodell selbst finezutunen oder RLHF durchzuführen.
Es kann gut geeignet sein, um das Zielverhalten anzupassen, sodass das Modell sich nicht wie ein allgemeiner Chatbot verhält, sondern auf eine bestimmte Weise oder für andere Aufgaben.
Wissen zu einem Bot hinzuzufügen ist dagegen eher Grounded Generation oder Retrieval-Augmented Generation (GG/RAG), also der Versuch, das Basismodell mit neuen Daten, etwa vertraulichen Daten, anzureichern.
Für Frage-Antwort-Systeme auf einer großen privaten Knowledge Base ist es nicht passend; GG/RAG halte ich für geeigneter.
Dazu habe ich kürzlich auch etwas geschrieben: https://vectara.com/fine-tuning-vs-grounded-generation/
Auf hoher Ebene ermöglicht es, mehr Daten ins Modell zu bekommen, als in einen Prompt passen würden.
Eine große private Knowledge Base war eines der typischen Beispiele in diesem Kurs, und in domänenspezifischen oder datenschutzsensiblen Szenarien kann Fine-Tuning sinnvoller sein als Prompting.
Die Formulierung „Fine-Tuning-Trainingsdaten durchlaufen die Moderation API und ein GPT-4-basiertes Prüfsystem“ klingt so, als könne das ziemlich teuer werden.
Wenn man sich die API-Preise ansieht, ist GPT-4-Inferenz teurer als das Modelltraining; daher werden sie GPT-4 wohl nur einsetzen, wenn die Sicherheitsbewertung uneindeutig ist.
Wenn ich die gewünschte Art von Sprache bereits kenne, warum sollte ich OpenAI meinen Datensatz zur Parameteranpassung prüfen lassen müssen?
Beim Fine-Tuning von Llama2 13B oder 70B muss man normalerweise Cloud-GPUs mieten; ich frage mich, wie das im Vergleich zu OpenAIs Fine-Tuning ist.
Bei OpenAI muss man die Infrastruktur nicht selbst mieten, sondern sie ist in der Nutzungsgebühr enthalten. Ich würde gern einen Vergleich aus Sicht von jemandem hören, der Erfahrung mit Fine-Tuning von Llama2-Modellen hat.
Ich denke, GPTs „Fine-Tuning“ ist etwas anderes als das Fine-Tuning eines Modells wie Llama2.
Wahrscheinlich werden nicht alle Gewichte des Netzwerks angepasst, sondern nur ein sehr kleiner Teil, und wie OpenAI es genau macht, ist proprietäre Technik.
Der Trade-off ist, dass OpenAI-Fine-Tuning günstiger ist, aber weniger leistungsfähig als „echtes“ Fine-Tuning.
Das gilt besonders, wenn 13B ausreicht; auf modal.com kann man Inferenz mit einem finegetunten llama2-13B-Modell für ungefähr $0.003 pro 1K Tokens nutzen.
Es gibt definitiv noch günstigere Optionen.
Wenn die Datenmenge nicht riesig ist, liegen die Trainingskosten für llama2 meist auch nur bei ein paar Dollar.
Als davinci-002 als Completion-Modell angeboten wurde, dachte ich kurz, sie würden wieder „unsichere“ Modelle bereitstellen, aber sowohl davinci-002 als auch babbage-002 geraten bei „unsicheren“ Completion-Anfragen in eine Endlosschleife.
text-davinci-003 und text-curie-001 waren in Ordnung; OpenAI scheint wirklich keine unzensierten Modelle zur Nutzung anbieten zu wollen.
Die Generierungskosten eines feinabgestimmten GPT-3.5 Turbo liegen beim 8-Fachen des Basismodells; damit sich das rechnet, müsste man also in den von OpenAI genannten Bereich einer „Reduktion der Prompt-Größe um 90 %“ kommen.
Vielleicht ist es besser, die Ausgabe mit Few-Shot Prompting zu steuern, indem man einfach ein paar Beispiele in jeden Prompt packt.
Natürlich passt das nicht zu jedem Use Case, aber es ist einen Versuch wert.
Außerdem funktionieren Function Calls ohnehin erst ab irgendwann nach diesem Herbst.
Da der Großteil meiner aktuellen Nutzung Function Calls sind, werde ich wohl erst einmal passen.
Mich interessiert das Fazit zu OAI-Fine-Tuning; früher war in diesem Thread die Stimmung, dass es nicht unbedingt nötig sei: https://news.ycombinator.com/item?id=37174850
Ich frage mich, ob genau diese 90 % die Zahl aus der obigen Rechnung sind.
Wenn man nur GPT-3.5-turbo und ein feinabgestimmtes GPT-3.5-turbo vergleicht, stimmt das zwar; wenn es aber ähnlich ist wie beim Fine-Tuning von Llama-2-Modellen, könnte man in vielen praktischen Use Cases wie der Erzeugung von SQL-Abfragen Performance auf GPT-4-Niveau erreichen.
Mathematik oder Coding dürften allerdings schwierig bleiben, sofern man nicht mit beträchtlichen Datenmengen feinabstimmt.
Tatsächlich hat auch ein 7B-Llama-2-Modell nach Fine-Tuning schon Performance auf GPT-4-Niveau gezeigt: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
GPT-3.5 ist für mich so schlecht, dass es nutzlos ist.
Beim Schreiben wiederholt es immer dieselbe Art von Fachjargon, beim Coding liegt es viel zu oft falsch, und auch bei Natural Language Processing muss man alles expliziter sagen, sodass es sich einfach wie ein durchschnittlicher Chatbot anfühlt.
GPT-4 für 20 $ im Monat ist in jeder Hinsicht viel besser, und ich nutze es auch für Angular-Arbeiten.
Wenn die KI einem alle Gründe erklärt, beginnt man tatsächlich, dieses überkonstruierte Framework zu verstehen.
Es eignet sich gut als Übersetzer, Lehrer und Problemlösungshelfer; wenn es noch besser wird, kann ich mir schwer vorstellen, Antworten auf Probleme noch zu googeln.
Was ich mir wünsche, ist eine eingebaute Prompt-Aufteilung.
Die alten GPT-Versionen und die künstlichen Ethikdebatten sollte man hinter sich lassen und sich auf die beste Version dieser Technologie konzentrieren; wenn man sie für 20 $ im Monat verkauft, kann man Milliarden verdienen und vieles im Netz durcheinanderwirbeln.
Die Antworten werden repetitiv und fade.
Wenn man daraus kein Produkt machen will, ist der Aufwand kaum lohnend.
Viele wertvolle LLM-Produkte oder -Funktionen haben allerdings einen engeren Scope, und dort kann Fine-Tuning große Verbesserungen bringen.
Bei SQL-Abfragegenerierung gab es zum Beispiel ein Experiment, in dem schon ein feinabgestimmtes 7B-Llama-2-Modell GPT-4 übertroffen hat: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
LLMs glänzen, wenn es schwierig ist, die passende Frage für Google zu formulieren.
Eine Frage wie „Ich habe einmal von einer Studie gehört, die Google über neue Mitarbeiter und GPA gemacht hat, und dort hieß es, dass es keinen Unterschied mehr macht, sobald der GPA über 3,0 liegt. Kannst du mir den Link zu dieser Studie geben? Gab es Folgestudien?“ ist bei Google schwer zu finden und geht leicht zwischen Links zu Mindest-GPAs und Jobsuche unter.
Bard lieferte Informationen zu Laszlo Bock und seinem Buch, wodurch eine präzisere Suche wie „Laszlo Bock Google GPA“ möglich wurde.
Ich habe denselben Satz in mehrere LLMs eingegeben: ChatGPT antwortete mit einem Hinweis auf seine Wissensgrenze, Bard fand es sofort, und Hugging Face Chat war am besten, weil es Bock sowie Project Oxygen und Project Aristotle nannte.
Claude fand die Studie nicht, schlug aber andere Kandidaten vor; LLaMa fand sie ebenfalls nicht, nannte aber die Google-Studie und einige Namen.
Ich stimme zu, dass Fine-Tuning auf Genauigkeit die Ergebnisse verschlechtern kann.
Alignment ist gleichzeitig auch Misalignment, denn es verschiebt die Wahrscheinlichkeitsverteilung, wodurch zwangsläufig Kompromisse entstehen.
Leider ist Forschung in diesem Bereich nicht populär, und die nötigen Methoden erfordern zudem eine tiefgehende Diskussion über kontroverse Netzwerke sowie Wahrscheinlichkeit und Verteilungen, weshalb sie derzeit bei Top-Konferenzen leicht abgelehnt zu werden scheint.
Tuning auf menschliche Präferenzen ist in Wirklichkeit kein Tuning auf Wissen, sondern auf Ergebnisse, die Menschen mögen.
Man baut damit eine Verzerrung in das Modell ein, die die Bewertungsmetrik Mensch hackt; selbst wenn die durchschnittliche faktische Genauigkeit steigt, kann das LLM dadurch schlechter werden, weil es falsche Informationen überzeugender ausgibt.
Wegen der Art der Datenaggregation muss man extrem auf Simpsons Paradoxon und Berksons Paradoxon achten; im Grunde tunen wir hier über Goodharts Gesetz.
Falls jemand schon einmal ein so großes Modell finegetunt hat, würde mich interessieren, wie viele Daten man normalerweise braucht, um Wirkung zu erzielen.
Ich möchte wissen, ob die in der Doku genannten 100k Token wirklich einen großen Einfluss auf das Verhalten des Basismodells haben können oder ob das eher ein Spielzeugbeispiel ist.
Die genaue Zahl hängt stark vom Use Case ab.
Empfohlen wird, zunächst mit 50 gut erstellten Demos zu starten und zu prüfen, ob es ein Verbesserungssignal gibt.
Wenn das nicht reicht, aber Verbesserungen sichtbar sind, ist es wahrscheinlich, dass es mit mehr Daten weiter besser wird; wenn es keine Verbesserungen gibt, sollte man vor dem Erhöhen der Beispielzahl die Aufgabenstellung oder die Datenstruktur überdenken.
Schon mit ein paar Tausend Beispielen lassen sich Verhalten sowie Inhalt und Art der Ausgaben eines Modells ziemlich stark verändern.
Mechanismen wie LoRA sind eine sehr effiziente Fine-Tuning-Methode, allerdings mit Genauigkeitsverlusten; schon das Ändern einiger oberer Schichten verändert ein Modell recht deutlich.
Beispiele sind https://huggingface.co/datasets/b-mc2/sql-create-context und https://huggingface.co/datasets/GEM/viggo.
Um dagegen das Lösen von Grundschul-Matheaufgaben zu lernen, reichten selbst 8K Beispiele nicht aus; die Abhängigkeit vom Problem ist also sehr groß.
Referenz: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe..., https://huggingface.co/datasets/gsm8k
Ab etwa 1000 Token sieht man erste Verbesserungen.
Es wirkt wie folgender Ablauf: Man bringt das, was ursprünglich veröffentlicht werden sollte, als kostenlose Beta heraus und behebt Bugs, veröffentlicht dann einen stärkeren Bruder als Abo-Dienst, schwächt beide stark ab, bringt Fine-Tuning heraus, damit man das geschwächte GPT-3.5 wieder ungefähr auf das Niveau zum Launch bringen kann – aber nur, wenn man es richtig finegetunt – und behält die nicht abgeschwächte Version für Microsoft-internen Gebrauch, um damit Profit zu machen.
Da ist Google wenigstens ehrlich.
Sie sagen im Grunde, dass sie zwar das beste Produkt haben, es aber als internes Tool wertvoller ist und deshalb nicht veröffentlichen; nach dem GPT-Launch haben sie Bard zur Verteidigung des Aktienkurses angekündigt, aber das war nicht besonders gut und wird vermutlich nicht einmal richtig veröffentlicht.
Meta hat immerhin zumindest eine abgeschwächte Version als Open Source herausgebracht.
Vor ein paar Monaten war ich mit GPT-4 wirklich enorm produktiv, aber jetzt fühlt es sich wieder an, als wäre ich ein Solo-Entwickler.
Wenn ich es heute nutze, verliere ich oft mehr Zeit mit dem Korrigieren von Fehlern, als ich gewinne, sodass es häufig besser ist, es einfach selbst zu machen.
Insofern verstehe ich, warum man es anderen nicht geben möchte.
Wenn du mit einer offensichtlich falschen Antwort wie „es wurde nicht abgeschwächt“ kommen willst, dann verschwende bitte nicht meine Zeit.
Mich interessiert die Privatsphäre.
OpenAI sagt zwar, dass API-Aufrufe nicht fürs Modelltraining verwendet werden, aber ich würde gern wissen, ob OpenAI oder Microsoft den Text trotzdem speichern und, falls ja, wie lange.
Insgesamt ist das großartig, und ich freue mich auf 16k-Fine-Tuning.
Wenn man von dieser Anforderung ausgenommen werden möchte, gibt es ein Antragsformular.
https://learn.microsoft.com/en-us/legal/cognitive-services/o...
Mit den gespeicherten Daten passiert nichts Fragwürdiges; sie dienen buchstäblich nur dazu, mögliche Verstöße gegen Trust & Safety kurz nach dem Ereignis zu untersuchen.
Falls ja, welche Datenschutzzusage gibt es, dass OpenAI es später nicht zur Erweiterung von GPT-5 nutzt?
Ziemlich interessant.
Das ist das erste Mal, dass OpenAIs „Chat“-Modelle finegetunt werden können.
Mich würde interessieren, ob jemand aktuelle AI-Detector schon mit einem finegetunten Modell umgangen hat.
Ich weiß, dass es möglich ist, aber ich möchte ein Gefühl dafür bekommen, wie man den Datensatz aufbauen müsste.
Wer dafür bezahlt, wird betrogen, und wer sie für echte Entscheidungen nutzt, begeht schwere Fehler.
Es ist wirklich traurig, dass manche Schulen AI-Detector einsetzen, um herauszufinden, ob Schüler ihre Essays mit ChatGPT geschrieben haben.
Es gibt viele Fälle, in denen eindeutig von Menschen geschriebene Essays als KI-generiert markiert wurden.
Wenn man ChatGPT 30 Minuten lang Essays schreiben lässt und damit herumspielt, versteht man den ChatGPT-Stil.
Mit guten Prompts kann man es zwar auch in anderen Stilen schreiben lassen, aber ehrlich gesagt machen sich Leute, die ihre Hausaufgaben mit ChatGPT erledigen, normalerweise nicht die Mühe, es nicht nach ChatGPT aussehen zu lassen.
Sie funktionieren nicht, und GPT-generierter Text ist bereits nicht mehr erkennbar.
Es ist unmöglich, mit verlässlicher Sicherheit zu erkennen, ob ein Text von einem Menschen oder von ChatGPT erzeugt wurde.
Solche Detector sind völlig kaputt, und schon mit einfachem Anleiten einer Gedankenkette erhält man Ergebnisse, die nicht wie ChatGPT „klingen“.
Danach ist die Wahrscheinlichkeit, dass es als KI erkannt wird, ungefähr so hoch wie bei einem von Menschen geschriebenen Text.