Überlegungen zur Feinabstimmung von Microsoft Foundry

Feinabstimmung ist der Prozess der Übernahme eines vortrainierten Sprachmodells und der Anpassung, um eine bestimmte Aufgabe auszuführen oder die Leistung eines bestimmten Datasets zu verbessern. Dies umfasst das Trainieren des Modells auf einem kleineren, aufgabenspezifischen Dataset, während die Gewichtungen des Modells geringfügig angepasst werden. Feinjustierung nutzt das Wissen, das das Modell während seiner anfänglichen Schulung auf einem großen, vielfältigen Datensatz erworben hat, sodass es sich spezialisieren kann, ohne von vorne zu beginnen. Dieser Ansatz ist oft effizienter als das Training eines neuen Modells von Grund auf; beispielsweise stimmen viele Teams Hunderte bis Tausende von beschrifteten Beispielen fein ab, anstatt Millionen von Beispielen erneut zu trainieren.

Wesentliche Vorteile der Feinabstimmung

Verbesserte Genauigkeit und Relevanz

Die Feinabstimmung verbessert die Leistung des Modells bei bestimmten Aufgaben, indem das Modell mit aufgabenspezifischen Daten trainiert wird. Dies führt häufig zu genaueren und relevanteren hochwertigen Ergebnissen im Vergleich zu allgemeinen Aufforderungen.

Im Gegensatz zum Few-Shot-Lernen, bei dem nur eine begrenzte Anzahl von Beispielen in einem Prompt enthalten sein kann, ermöglicht Feintuning, das Modell auf einem zusätzlichen Datensatz zu trainieren. Feinabstimmung hilft dem Modell, differenziertere Muster zu erlernen und die Aufgabenleistung zu verbessern.

Effizienz und potenzielle Kosteneinsparungen

Optimierte Modelle erfordern kürzere Prompts, da sie anhand von relevanten Beispielen trainiert werden. Dieser Prozess reduziert die Anzahl der in jeder Anforderung benötigten Token, was je nach Anwendungsfall zu Kosteneinsparungen führen kann.

Da fein abgestimmte Modelle weniger Beispiele in der Eingabeaufforderung benötigen, verarbeiten sie Anforderungen schneller, was zu schnelleren Reaktionszeiten führt.

Skalierbarkeit und Spezialisierung

Die Feinabstimmung nutzt das umfangreiche Vortraining von Sprachmodellen, um deren Fähigkeiten für bestimmte Anwendungen zu verbessern und sie dadurch effizienter und effektiver für gezielte Anwendungsfälle zu machen.

Die Feinabstimmung kleinerer Modelle kann ein Leistungsniveau erreichen, das mit größeren, teureren Modellen für bestimmte Aufgaben vergleichbar ist. Dieser Ansatz reduziert die Rechenkosten und erhöht die Geschwindigkeit und macht sie zu einer kostengünstigen skalierbaren Lösung für die Bereitstellung von KI in ressourcengeschränkten Umgebungen.

Zeitpunkt der Feinabstimmung

Die Feinabstimmung eignet sich für Situationen, in denen Sie über ein kleines, qualitativ hochwertiges Dataset verfügen (z. B. Hunderte bis ein paar Tausend aufgabenspezifische Aufforderung-Antwort-Paare), und wenn Sie die Leistung Ihres Modells verbessern möchten. Die Feinabstimmung findet Anwendung in vielen Anwendungsbereichen, die häufig in die folgenden Kategorien fallen.

  • Reduzierung des Aufwands für das Prompt Engineering: Viele Benutzer beginnen mit Few-Shot-Lernen, indem sie Beispiele für die gewünschten Ausgaben an die Systemnachricht anfügen. Im Laufe der Zeit kann dieser Prozess zu zunehmend langen Eingabeaufforderungen führen, was die Tokenanzahl und Latenz antreibt. Mit der Feinabstimmung können Sie diese Beispiele in das Modell einbetten, indem Sie die erwarteten Ergebnisse trainieren, was sich in Szenarien mit zahlreichen Randfällen als nützlich erweist.

  • Ändern von Stil und Ton: Feinabstimmung hilft beim Ausrichten von Modellausgaben mit einem gewünschten Stil oder Ton, um Konsistenz in Anwendungen wie Kundendienst-Chatbots und markenspezifischer Kommunikation sicherzustellen.

  • Generieren von Ausgaben in bestimmten Formaten oder Schemas: Modelle können optimiert werden, um Ausgaben in bestimmten Formaten oder Schemas zu erzeugen, sodass sie ideal für strukturierte Datengenerierung, Berichte oder formatierte Antworten geeignet sind.

  • Verbesserung der Toolnutzung: Während die Api für Chatabschlusse Toolaufrufe unterstützt, erhöht die Auflistung vieler Tools die Tokennutzung und kann zu falschen Informationen führen. Feinabstimmung mit Toolbeispielen verbessert Genauigkeit und Konsistenz, auch ohne vollständige Tooldefinitionen.

  • Verbesserung der abrufbasierten Leistung: Durch die Kombination von Feinabstimmungen mit Abrufmethoden wird die Fähigkeit eines Modells verbessert, externes Wissen zu integrieren, komplexe Aufgaben auszuführen und präzisere, kontextabhängigeRe Antworten bereitzustellen. Die Feinjustierung trainiert das Modell darauf, abgerufene Daten effektiv zu verwenden und gleichzeitig irrelevante Informationen herauszufiltern.

  • Optimierung der Effizienz: Feinabstimmungen können auch verwendet werden, um Wissen von einem größeren Modell auf einen kleineren zu übertragen, sodass das kleinere Modell eine ähnliche Aufgabenleistung mit niedrigeren Kosten und Latenz erzielen kann. Beispielsweise können Produktionsdaten aus einem leistungsfähigen Modell verwendet werden, um ein kleineres, effizienteres Modell zu optimieren. Dieser Ansatz trägt dazu bei, KI-Lösungen zu skalieren und gleichzeitig die Qualität zu gewährleisten und den Rechenaufwand zu reduzieren.

  • Destillation: Die Modelldestillation verwendet die Ausgaben eines großen Modells, um ein kleineres Modell zu optimieren, sodass es auf ähnliche Weise für einen bestimmten Vorgang ausgeführt werden kann. Beispielsweise können Sie Produktionsdaten aus einer o1-Bereitstellung erfassen und diese Daten zum Optimieren von GPT-4o-mini verwenden. Dieser Prozess kann Kosten und Latenz reduzieren, da kleinere Modelle effizienter sind.

Arten von Feinabstimmungen

Microsoft Foundry bietet die folgenden Feinabstimmungstechniken:

  • Überwachte Feinabstimmung: Auf diese Weise können Sie benutzerdefinierte Daten (Eingabeaufforderung/Abschluss oder Unterhaltungschat, je nach Modell) bereitstellen, um das Basismodell neue Fähigkeiten zu vermitteln. Dieser Prozess umfasst eine weitere Schulung des Modells auf einem qualitativ hochwertigen, mit Bezeichnungen versehenen Dataset, bei dem jeder Datenpunkt mit der richtigen Ausgabe oder Antwort verknüpft ist. Ziel ist es, die Leistung des Modells für einen bestimmten Vorgang zu verbessern, indem seine Parameter basierend auf den bezeichneten Daten angepasst werden. Diese Technik funktioniert am besten, wenn es endlich Möglichkeiten gibt, ein Problem zu lösen, und Sie möchten das Modell einer bestimmten Aufgabe lehren und seine Genauigkeit und Prägnanz verbessern.

  • Verstärkung der Feinabstimmung (RFT): Eine Modellanpassungstechnik, die für die Optimierung des Modellverhaltens in hochkomplexen oder dynamischen Umgebungen vorteilhaft ist und das Modell durch iteratives Feedback und Entscheidungsfindung erlernen und anpassen kann. Beispielsweise können Finanzdienstleister das Modell für schnellere, genauere Risikobewertungen optimieren oder Organisationen im Gesundheitswesen bestimmte Modelle auf eine effizientere Datenanalyse und Hypothesengenerierung anpassen. RFT funktioniert am besten, wenn es viele möglichkeiten gibt, ein Problem zu lösen. Der Grader belohnt das Modell inkrementell und verbessert die Begründungsqualität.

  • Direct Preference Optimization (DPO): Eine Ausrichtungstechnik für große Sprachmodelle, die so konzipiert sind, dass Modellgewichte basierend auf den menschlichen Vorlieben angepasst werden. Im Gegensatz zu Verstärkungslernen aus menschlichem Feedback (RLHF) erfordert DPO keine Anpassung eines Belohnungsmodells und verwendet binäre Einstellungen für Schulungen. Diese Methode ist rechenschwächer und schneller, wodurch sie bei der Ausrichtung gleichermaßen effektiv und effizienter ist. Stellen Sie die bevorzugten und nicht bevorzugten Antworten im Trainingssatz bereit, um diese Technik zu verwenden.

Sie können auch Stapeltechniken verwenden: Verwenden Sie zuerst überwachte Feinabstimmung (SFT), um ein angepasstes Modell zu erstellen, das für Ihren Anwendungsfall optimiert ist, und verwenden Sie dann das DPO, um die Antworten an Ihre spezifischen Einstellungen auszurichten. Konzentrieren Sie sich während des SFT-Schritts auf die Datenqualität und die Repräsentativität der Aufgaben, während der DPO-Schritt die Antworten mit bestimmten Vergleichen anpasst.

Herausforderungen und Einschränkungen der Feinabstimmung

Feinabstimmung großer Sprachmodelle kann eine leistungsstarke Technik sein, um sie an bestimmte Domänen und Aufgaben anzupassen. Die Feinabstimmung ist jedoch auch mit einigen Herausforderungen und Einschränkungen verbunden, die Sie berücksichtigen sollten, bevor Sie sie auf ein reales Problem anwenden. Im Folgenden sind einige dieser Herausforderungen aufgeführt.

  • Feinabstimmung erfordert qualitativ hochwertige, ausreichend große und repräsentative Schulungsdaten, die der Zieldomäne und -aufgabe entsprechen. Qualitätsdaten sind relevant, präzise, konsistent und vielfältig genug, um die möglichen Szenarien und Variationen abzudecken, die das Modell in der realen Welt findet. Eine schlechte Qualität oder nicht repräsentative Daten führen zu Überanpassungen, Unteranpassungen oder Verzerrungen im optimierten Modell, was Generalisierung und Stabilität beeinträchtigt.
  • Feinabstimmung großer Sprachmodelle bedeutet zusätzliche Kosten im Zusammenhang mit dem Training und der Bereitstellung des benutzerdefinierten Modells.
  • Das Formatieren von Eingabe-/Ausgabepaaren, die zum Optimieren eines großen Sprachmodells verwendet werden, kann für die Leistung und Benutzerfreundlichkeit von entscheidender Bedeutung sein.
  • Möglicherweise muss die Feinabstimmung wiederholt werden, wenn die Daten aktualisiert werden, oder wenn ein aktualisiertes Basismodell freigegeben wird. Dazu gehört die regelmäßige Überwachung und Aktualisierung.
  • Die Optimierung ist eine sich wiederholende Aufgabe (Test und Fehler). Daher müssen die Hyperparameter sorgfältig festgelegt werden. Feinabstimmung erfordert viel Experiment und Tests, um die beste Kombination aus Hyperparametern und Einstellungen zu finden, um die gewünschte Leistung und Qualität zu erzielen.
  • Das Importieren von Schulungsdaten aus Azure Blob Storage erfordert, dass das Speicherkonto den öffentlichen Netzwerkzugriff aktiviert hat. Wenn Ihre Unternehmensumgebung den öffentlichen Zugriff auf Speicherkonten einschränkt, verwenden Sie die lokale Dateiuploadmethode oder das SDK, um Schulungsdaten direkt hochzuladen.

Nächste Schritte