Optimieren von Phi-3-Modellen im Azure KI Foundry-Portal
Wichtig
Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Mit Azure KI Foundry können Sie große Sprachmodelle mit einem Prozess an Ihre persönlichen Datasets anpassen, der als Optimierung bezeichnet wird. Optimierung bietet einen erheblichen Nutzen, da Anpassung und Optimierung für bestimmte Aufgaben und Anwendungen ermöglicht werden. Dies führt zu einer verbesserten Leistung, Kosteneffizienz, geringerer Latenz und maßgeschneiderten Ausgaben.
In diesem Artikel erfahren Sie, wie Sie die Phi-3-Familie kleiner Sprachmodelle (Small Language Models, SLMs) im Azure KI Foundry-Portal als Dienst mit nutzungsbasierter Bezahlung optimieren.
Die Phi-3-Familie von SLMs ist eine Sammlung von generativen Textmodellen mit Anleitungen. Phi-3-Modelle sind die fähigsten und kostengünstigsten kleinen Sprachmodelle (SLMs), die derzeit verfügbar sind. Sie weisen für verschiedene Benchmarks für Sprache, Begründung, Codierung und Mathematik eine höhere Leistung auf als andere Modelle derselben und der nächsten Größe.
Wichtig
Modelle, die sich in der Vorschau befinden, werden auf ihren Modellkarten im Modellkatalog als Vorschau gekennzeichnet.
Phi-3 Mini ist ein offenes Modell mit 3,8 Milliarden Parametern, das auf den für Phi-2 verwendeten Datensätzen – synthetische Daten und gefilterte Websites – aufbaut und sich auf qualitativ hochwertige, aussagekräftige Daten konzentriert. Das Modell gehört zur Phi-3-Modellfamilie, und die Mini-Version gibt es in zwei Varianten, 4K und 128K, d. h. die Kontextlänge (in Token), die unterstützt werden kann.
- Phi-3-mini-4k-Instruct (Vorschau)
- Phi-3-mini-128k-Instruct (Vorschau)
Das Modell wurde einem strengen Verbesserungsprozess unterzogen, der sowohl eine überwachte Feinabstimmung als auch eine direkte Präferenzoptimierung umfasste, um eine präzise Einhaltung der Anweisungen und robuste Sicherheitsmaßnahmen zu gewährleisten. Bei der Bewertung anhand von Benchmarks, die den gesunden Menschenverstand, das Sprachverständnis, Mathematik, Code, lange Zusammenhänge und logisches Denken testen, zeigten Phi-3 Mini-4K-Instruct und Phi-3 Mini-128K-Instruct eine robuste und hochmoderne Leistung bei Modellen mit weniger als 13 Milliarden Parametern.
Voraussetzungen
Ein Azure-Abonnement. Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie zunächst ein kostenpflichtiges Azure-Konto.
-
Wichtig
Für Modelle der Phi-3-Familie ist das Modelloptimierungsangebot mit nutzungsbasierter Bezahlung nur mit Hubs verfügbar, die in der Region USA, Osten 2 erstellt wurden.
Die rollenbasierten Zugriffssteuerungen in Azure (Azure Role-Based Access Control, Azure RBAC) werden verwendet, um Zugriff auf Vorgänge im Azure KI Foundry-Portal zu gewähren. Um die Schritte in diesem Artikel auszuführen, muss Ihrem Benutzerkonto die Azure KI-Entwicklerrolle in der Ressourcengruppe zugewiesen sein.
Weitere Informationen zu Berechtigungen finden Sie unter Rollenbasierte Zugriffssteuerung im Azure KI Foundry-Portal.
Registrierung des Abonnementanbieters
Überprüfen Sie, ob das Abonnement beim Microsoft.Network
-Ressourcenanbieter registriert ist.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie im linken Menü die Option Abonnements aus.
- Wählen Sie das Abonnement aus, das Sie verwenden möchten.
- Wählen Sie im linken Menü Einstellungen>Ressourcenanbieter aus.
- Vergewissern Sie sich, dass Microsoft.Network in der Liste der Ressourcenanbieter enthalten ist. Fügen Sie ihn andernfalls hinzu.
Datenaufbereitung
Bereiten Sie Ihre Trainings- und Validierungsdaten vor, um das Modell zu optimieren. Ihre Trainings- und Validierungsdatasets bestehen aus Ein- und Ausgabebeispielen für das gewünschte Verhalten des Modells.
Stellen Sie sicher, dass alle Trainingsbeispiele das erwartete Format für Rückschlüsse haben. Für die effektive Optimierung von Modellen ist ein ausgewogenes und vielfältiges Dataset erforderlich.
Dazu gehören die Aufrechterhaltung des Datengleichgewichts, die Einbeziehung verschiedener Szenarien und das regelmäßige Optimieren von Trainingsdaten zur Ausrichtung an realen Erwartungen, was letztendlich zu genaueren und ausgewogeneren Modellantworten führt.
Für verschiedene Modelltypen ist ein anderes Format von Trainingsdaten erforderlich.
Chatvervollständigung
Die Trainings- und Validierungsdaten, die Sie verwenden, müssen als JSON Lines (JSONL)-Dokument formatiert werden. Für Phi-3-mini-128k-instruct
muss das Optimierungs-Dataset im Konversationsformat formatiert werden, das von der Chatvervollständigungs-API verwendet wird.
Beispieldateiformat
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Der unterstützte Dateityp ist JSON-Zeilen. Dateien werden in den Standarddatenspeicher hochgeladen und in Ihrem Projekt verfügbar gemacht.
Optimieren eines Phi-3-Modells
So optimieren Sie ein Phi-3-Modell:
Melden Sie sich bei Azure KI Foundry an.
Wählen Sie das Modell, das Sie optimieren möchten, aus dem Modellkatalog im Azure KI Foundry-Portal aus.
Wählen Sie auf der Seite Details des Modells Optimieren aus.
Wählen Sie das Projekt, in dem Sie Ihre Modelle optimieren möchten. Um das Modelloptimierungsangebot mit nutzungsbasierter Bezahlung zu verwenden, muss Ihr Arbeitsbereich zur Region USA, Osten 2 gehören.
Wählen Sie im Optimierungsassistenten den Link zu den Azure KI Foundry-Nutzungsbedingungen aus, um mehr über die Nutzungsbedingungen zu erfahren. Sie können auch die Registerkarte Azure KI Foundry – Angebotsdetails auswählen, um mehr über die Preise für das ausgewählte Modell zu erfahren.
Wenn Sie das Modell zum ersten Mal im Projekt optimieren, müssen Sie Ihr Projekt für das jeweilige Angebot (z. B. Phi-3-mini-128k-instruct) in Azure KI Foundry abonnieren. Dieser Schritt erfordert, dass Ihr Konto über die Azure-Abonnementberechtigungen und Ressourcengruppenberechtigungen verfügt, die in den Voraussetzungen aufgeführt sind. Jedes Projekt hat sein eigenes Abonnement für das jeweilige Azure KI Foundry-Angebot, mit dem Sie die Ausgaben kontrollieren und überwachen können. Wählen Sie Abonnieren und optimieren aus.
Hinweis
Für das Abonnieren eines Projekts für ein bestimmtes Azure KI Foundry-Angebot (in diesem Fall Phi-3-mini-128k-instruct) muss Ihr Konto über Zugriff vom Typ Mitwirkender oder Besitzer auf der Abonnementebene verfügen, auf der das Projekt erstellt wird. Alternativ kann Ihrem Benutzerkonto eine benutzerdefinierte Rolle zugewiesen werden, die über die Azure-Abonnementberechtigungen und Ressourcengruppenberechtigungen verfügt, die in den Voraussetzungen aufgeführt sind.
Sobald Sie das Projekt für das jeweilige Azure KI Foundry-Angebot registriert haben, müssen nachfolgende Optimierungen desselben Angebots im selben Projekt nicht mehr abonniert werden. Daher müssen Sie nicht über die Berechtigungen auf Abonnementebene für nachfolgende Optimierungen verfügen. Wenn dieses Szenario für Sie gilt, wählen Sie Optimierung fortsetzen aus.
Geben Sie einen Namen für das optimierte Modell sowie die optionalen Tags und Beschreibungen ein.
Wählen Sie Trainingsdaten zum Optimieren Ihres Modells aus. Weitere Informationen finden Sie unter Datenaufbereitung.
Hinweis
Wenn Sie die Trainings-/Validierungsdateien in einem Datenspeicher ohne Anmeldeinformationen haben, müssen Sie den vom Arbeitsbereich verwalteten Identitätszugriff auf Ihren Datenspeicher zulassen, um mit der MaaS-Feinabstimmungen mit einem Speicher ohne Anmeldeinformationen fortzufahren. Nachdem Sie auf der Seite „Datenspeicher“ auf „Authentifizierung aktualisieren“ geklickt haben, > wählen Sie die folgende Option aus:
Stellen Sie sicher, dass alle Trainingsbeispiele das erwartete Format für Rückschlüsse haben. Für die effektive Optimierung von Modellen ist ein ausgewogenes und vielfältiges Dataset erforderlich. Dazu gehören die Aufrechterhaltung des Datengleichgewichts, die Einbeziehung verschiedener Szenarien und das regelmäßige Optimieren von Trainingsdaten zur Ausrichtung an realen Erwartungen, was letztendlich zu genaueren und ausgewogeneren Modellantworten führt.
- Die für das Training zu verwendende Batchgröße. Bei Festlegung auf -1 wird batch_size als 0,2 % der Beispiele im Trainingssatz berechnet. Der maximale Wert beträgt 256.
- Die Optimierungslernrate ist die ursprüngliche Lernrate, die für das Vorabtraining verwendet wurde, mit diesem Multiplikator multipliziert. Es wird empfohlen, mit Werten zwischen 0,5 und 2 zu experimentieren. Empirisch haben wir festgestellt, dass größere Lernraten mit größeren Batchgrößen oftmals besser funktionieren. Der Wert muss zwischen 0,0 und 5,0 liegen.
- Anzahl der Trainingsepochen Eine Epoche bezeichnet einen vollständigen Zyklus über das Dataset.
Aufgabenparameter sind ein optionaler Schritt und eine erweiterte Option. Der Hyperparameter für die Optimierung ist für die Optimierung großer Sprachmodelle (Large Language Models, LLMs) in realen Anwendungen unerlässlich. Er ermöglicht eine bessere Leistung und eine effiziente Ressourcennutzung. Benutzer und Benutzerinnen können die Standardeinstellungen verwenden. Erfahrenere Benutzer und Benutzerinnen können Parameter wie Epochen oder Lernrate anpassen.
Überprüfen Sie Ihre Auswahl, und fahren Sie mit dem Trainieren Ihres Modells fort.
Sobald Ihr Modell optimiert wurde, können Sie das Modell bereitstellen und es in Ihrer eigenen Anwendung, im Playground oder in prompt flow verwenden. Weitere Informationen finden Sie unter Bereitstellen großer Sprachmodelle der Phi-3-Familie mit Azure KI Foundry.
Bereinigen der optimierten Modelle
Sie können ein optimiertes Modell aus der Optimierungsmodellliste in Azure KI Foundry oder auf der Modelldetailseite löschen. Wählen Sie auf der Seite „Optimierung“ das optimierte Modell aus, das Sie löschen möchten, und wählen Sie dann die Schaltfläche „Löschen“ aus, um das optimierte Modell zu löschen.
Hinweis
Sie können kein benutzerdefiniertes Modell löschen, für das eine Bereitstellung vorhanden ist. Sie müssen zunächst die Modellimplementierung löschen, bevor Sie Ihr benutzerdefiniertes Modell löschen können.
Kosten und Kontingente
Kosten- und Kontingentüberlegungen zu Phi-Modellen, die als Dienst optimiert werden
Phi-Modelle, die als Dienst optimiert sind, werden von Microsoft angeboten und zur Verwendung in Azure KI Foundry integriert. Sie finden die Preise beim Bereitstellen oder Optimieren der Modelle auf der Registerkarte „Preise und Bedingungen“ im Bereitstellungs-Assistenten.
Beispielnotebook
Sie können dieses Beispielnotebook verwenden, um einen eigenständigen Optimierungsauftrag zu erstellen und die Fähigkeit eines Modells zu verbessern, Dialoge zwischen zwei Personen mithilfe des Samsum-Datasets zusammenzufassen. Als Trainingsdaten wird das Dataset „ultrachat_200k“ verwendet, das in vier Teile unterteilt ist, die sich für überwachte Optimierung (Supervised Fine-Tuning, SFT) und Generationsbewertung (GEN) eignen. Das Notebook verwendet die verfügbaren Azure KI-Modelle für die Chatvervollständigungsaufgabe. (Wenn Sie ein anderes Modell als das im Notebook verwendete Modell verwenden möchten, können Sie den Modellnamen ersetzen.) Das Notebook umfasst das Einrichten von erforderlichen Komponenten, das Auswählen eines Modells zur Optimierung, das Erstellen von Trainings- und Validierungsdatasets, das Konfigurieren und Übermitteln des Optimierungsauftrags und schließlich das Erstellen einer serverlosen Bereitstellung mithilfe des optimierten Modells für Beispielrückschlüsse.
Inhaltsfilterung
Modelle, die als Dienst mit nutzungsbasierter Bezahlung bereitgestellt werden, werden durch Azure KI Inhaltssicherheit geschützt. Bei der Bereitstellung auf Echtzeitendpunkten können Sie diese Funktion deaktivieren. Wenn Azure KI Inhaltssicherheit aktiviert ist, durchlaufen sowohl Prompt als auch Vervollständigung ein Ensemble von Klassifizierungsmodellen, das darauf abzielt, die Ausgabe schädlicher Inhalte zu erkennen und zu verhindern. Das System zur Inhaltsfilterung (Vorschau) erkennt bestimmte Kategorien potenziell schädlicher Inhalte sowohl in Eingabeprompts als auch in Ausgabevervollständigungen und ergreift entsprechende Maßnahmen. Erfahren Sie mehr über Azure KI Inhaltssicherheit.