Freigeben über


LoRA Fine-Tuning für Phi-Silika

Low Rank Adaptation (LoRA) kann verwendet werden, um das Phi-Silikatmodell zu optimieren, um seine Leistung für Ihren spezifischen Anwendungsfall zu verbessern. Durch die Verwendung von LoRA zur Optimierung von Phi Silica, microsoft Windows local language model, können Sie genauere Ergebnisse erzielen. Bei diesem Prozess wird ein LoRA-Adapter trainiert und dann während der Ableitung angewendet, um die Genauigkeit des Modells zu verbessern.

Hinweis

Phi-Silika-Features sind in China nicht verfügbar.

Voraussetzungen

  • Sie haben einen Anwendungsfall zur Verbesserung der Reaktion von Phi-Silika identifiziert.
  • Sie haben eine Bewertungskriterien ausgewählt, um zu entscheiden, was eine "gute Antwort" ist.
  • Sie haben die Phi-Silika-APIs ausprobiert und erfüllen ihre Bewertungskriterien nicht.

Trainieren des Adapters

Um einen LoRA-Adapter für die Feinabstimmung des Phi-Silika-Modells mit Windows 11 zu trainieren, müssen Sie zuerst ein Dataset generieren, das vom Schulungsvorgang verwendet wird.

Generieren eines Datasets für die Verwendung mit einem LoRA-Adapter

Zum Generieren eines Datasets müssen Sie Daten in zwei Dateien aufteilen:

  • train.json – Wird für die Schulung des Adapters verwendet.

  • test.json – Wird für die Auswertung der Leistung des Adapters während und nach dem Training verwendet.

Beide Dateien müssen das JSON-Format verwenden, wobei jede Zeile ein separates JSON-Objekt ist, das ein einzelnes Beispiel darstellt. Jedes Beispiel sollte eine Liste von Nachrichten enthalten, die zwischen einem Benutzer und einem Assistenten ausgetauscht werden.

Jedes Nachrichtenobjekt erfordert zwei Felder:

  • content: der Text der Nachricht.

  • role: entweder "user" oder "assistant", der den Absender angibt.

Sehen Sie sich die folgenden Beispiele an:

{"messages": [{"content": "Hello, how do I reset my password?", "role": "user"}, {"content": "To reset your password, go to the settings page and click 'Reset Password'.", "role": "assistant"}]} 

{"messages": [{"content": "Can you help me find nearby restaurants?", "role": "user"}, {"content": "Sure! Here are some restaurants near your location: ...", "role": "assistant"}]}  

{"messages": [{"content": "What is the weather like today?", "role": "user"}, {"content": "Today's forecast is sunny with a high of 25°C.", "role": "assistant"}]}  

Schulungstipps:

  • Am Ende jeder Beispielzeile ist kein Komma erforderlich.

  • Fügen Sie so viele hochwertige und vielfältige Beispiele wie möglich ein. Um optimale Ergebnisse zu erzielen, sammeln Sie mindestens ein paar Tausend Schulungsbeispiele in Ihrer train.json Datei.

  • Die test.json Datei kann kleiner sein, sollte jedoch die Arten von Interaktionen abdecken, die ihr Modell verarbeiten soll.

  • Erstellen Sie train.json und test.json Dateien mit einem JSON-Objekt pro Zeile, die jeweils einen kurzen Dialog zwischen einem Benutzer und einem Assistenten enthalten. Die Qualität und Menge Ihrer Daten wirken sich erheblich auf die Effektivität Ihres LoRA-Adapters aus.

Schulung eines LoRA-Adapters im AI Toolkit

Um einen LoRA-Adapter mit dem AI Toolkit für Visual Studio Code zu trainieren, benötigen Sie zunächst die folgenden erforderlichen Voraussetzungen:

So installieren Sie das AI Toolkit für Visual Studio Code:

  1. Herunterladen der AI Toolkit-Erweiterung in Visual Studio Code

  2. Sobald die AI Toolkit-Erweiterung heruntergeladen wurde, können Sie über den linken Symbolleistenbereich in Visual Studio Code darauf zugreifen.

  3. Navigieren Sie zu Tools>Feinabstimmung.

  4. Geben Sie einen Projektnamen und einen Projektspeicherort ein.

  5. Wählen Sie im Modellkatalog "microsoft/phi-silika" aus.

  6. Wählen Sie "Projekt konfigurieren" aus.

    Screenshot der AI-Toolkit-Erweiterung in Visual Studio Code.

  7. Wählen Sie die neueste Version von Phi Silica aus.

  8. Wählen Sie unter Training-Datensatzname> und Test-Datensatzname Ihre und train.json Dateien aus.

  9. Wählen Sie "Projekt generieren" aus – ein neues VS-Codefenster wird geöffnet.

  10. Stellen Sie sicher, dass das richtige Workloadprofil in Ihrer Bicep-Datei ausgewählt ist, damit der Azure-Auftrag ordnungsgemäß bereitgestellt und ausgeführt wird. Fügen Sie Folgendes hinzu: workloadProfiles

    { 
         workloadProfileType: 'Consumption-GPU-NC24-A100' 
         name: 'GPU'
    } 
    
  11. Wählen Sie "Neuer Feinabstimmungsauftrag" aus, und geben Sie einen Namen für den Auftrag ein.

  12. Es wird ein Dialogfeld angezeigt, in dem Sie aufgefordert werden, das Microsoft-Konto auszuwählen, mit dem Sie auf Ihr Azure-Abonnement zugreifen können.

  13. Nachdem Ihr Konto ausgewählt wurde, müssen Sie im Dropdownmenü des Abonnements eine Ressourcengruppe auswählen.

  14. Nun sehen Sie, dass Ihr Fine-Tuning-Job erfolgreich gestartet wurde, zusammen mit einem Status des Auftrags. Nach Abschluss des Auftrags haben Sie die Möglichkeit, den neu trainierten LoRA-Adapter herunterzuladen, indem Sie auf die Schaltfläche "Herunterladen" klicken. Es dauert in der Regel 45 bis 60 Minuten, bis eine Feinabstimmung abgeschlossen ist.

Rückschluss

Schulung ist die erste Phase, in der das KI-Modell aus einem großen Dataset lernt und Muster und Korrelationen erkennt. Die Ableitung ist andererseits die Anwendungsphase, in der ein trainiertes Modell (Phi Silica in unserem Fall) neue Daten (unser LoRA-Adapter) verwendet, um Vorhersagen oder Entscheidungen zu treffen, mit denen eine angepasste Ausgabe generiert werden soll.

So wenden Sie den trainierten LoRA-Adapter an:

  1. Verwenden Sie die AI Dev Gallery-App. AI Dev Gallery ist eine App, mit der Sie zusätzlich zum Anzeigen und Exportieren von Beispielcode mit lokalen KI-Modellen und APIs experimentieren können. Erfahren Sie mehr über ai Dev Gallery.

  2. Nachdem Sie AI Dev Gallery installiert haben, öffnen Sie die App, und wählen Sie die Registerkarte "AI-APIs" aus, und wählen Sie dann "Phi Silica LoRA" aus.

    Screenshot der KI-Entwickler-Galerie mit Windows AI-APIs, einschließlich Phi Silica LoRA.

  3. Wählen Sie die Adapterdatei aus. Der Standardspeicherort für diese Zu speichern ist: Desktop / lora_lab / trainedLora.

  4. Füllen Sie die Felder "Systemaufforderung" und "Prompt" aus. Wählen Sie dann "Generieren" aus, um den Unterschied zwischen Phi Silica mit und ohne loRA-Adapter anzuzeigen.

  5. Experimentieren Sie mit dem Prompt und dem System-Prompt, um zu sehen, wie sich dies auf Ihre Ergebnisse auswirkt.

  6. Wählen Sie "Beispiel exportieren" aus, um eine eigenständige Visual Studio-Lösung herunterzuladen, die nur diesen Beispielcode enthält.

Generieren von Antworten

Nachdem Sie Ihren neuen LoRA-Adapter mit AI Dev Gallery getestet haben, können Sie den Adapter ihrer Windows-App mithilfe des folgenden Codebeispiels hinzufügen.

using Microsoft.Windows.AI.Text; 
using Microsoft.Windows.AI.Text.Experimental; 

// Path to the LoRA adapter file 
string adapterFilePath = "C:/path/to/adapter/file.safetensors"; 

// Prompt to be sent to the LanguageModel 
string prompt = "How do I add a new project to my Visual Studio solution?"; 

// Wait for LanguageModel to be ready 
if (LanguageModel.GetReadyState() == AIFeatureReadyState.NotReady) 

{ 
var languageModelDeploymentOperation = LanguageModel.EnsureReadyAsync();
     await languageModelDeploymentOperation; 
}   

// Create the LanguageModel session 
var session = LanguageModel.CreateAsync(); 

// Create the LanguageModelExperimental 
var languageModelExperimental = new LanguageModelExperimental(session); 

// Load the LoRA adapter 
LowRankAdaptation loraAdapter = languageModelExperimental.LoadAdapter(adapterFilePath); 

// Set the adapter in LanguageModelOptionsExperimental 
LanguageModelOptionsExperimental options = new LanguageModelOptionsExperimental 

{ 
LoraAdapter = loraAdapter 
}; 

// Generate a response with the LoRA adapter provided in the options 
var response = await languageModelExperimental.GenerateResponseAsync(prompt, options);

Verantwortungsvolle KI – Risiken und Einschränkungen der Feinabstimmung

Wenn Kunden Phi Silica optimieren, kann es die Modellleistung und Genauigkeit für bestimmte Aufgaben und Domänen verbessern, aber es kann auch neue Risiken und Einschränkungen einführen, die Kunden beachten sollten. Einige dieser Risiken und Einschränkungen sind:

  • Datenqualität und -darstellung: Die Qualität und Repräsentativität der daten, die für die Feinabstimmung verwendet werden, kann sich auf das Verhalten und die Ausgaben des Modells auswirken. Wenn die Daten laut, unvollständig, veraltet oder schädliche Inhalte wie Stereotype enthalten, kann das Modell diese Probleme erben und ungenaue oder schädliche Ergebnisse erzeugen. Wenn die Daten z. B. Geschlechtsstereotypen enthalten, kann das Modell sie verstärken und sexistische Sprache generieren. Kunden sollten ihre Daten sorgfältig auswählen und vorverarbeiteten, um sicherzustellen, dass sie für die beabsichtigte Aufgabe und Domäne relevant, vielfältig und ausgewogen sind.

  • Modellfestigkeit und Generalisierung: Die Fähigkeit des Modells, verschiedene und komplexe Eingaben und Szenarien zu verarbeiten, kann nach der Feinabstimmung verringert werden, insbesondere, wenn die Daten zu schmal oder spezifisch sind. Das Modell kann sich an die Daten überanpassen und einige seiner generellen Kenntnisse und Fähigkeiten verlieren. Wenn die Daten zum Beispiel nur Sport betreffen, kann das Modell Schwierigkeiten haben, Fragen zu beantworten oder Texte zu anderen Themen zu generieren. Kunden sollten die Leistung und Robustheit des Modells für eine Vielzahl von Eingaben und Szenarien bewerten und das Modell für Aufgaben oder Domänen, die sich außerhalb ihres Gültigkeitsbereichs befinden, vermeiden.

  • Regurgitation: Während Ihre Schulungsdaten nicht für Microsoft oder Kunden von Drittanbietern verfügbar sind, können schlecht abgestimmte Modelle Schulungsdaten erneut oder direkt wiederholen. Die Kunden sind dafür verantwortlich, jegliche personenbezogene oder anderweitig geschützte Informationen aus ihren Schulungsdaten zu entfernen und sollten ihre trainierten Modelle auf Überanpassungen oder anderweitig minderwertige Antworten überprüfen. Um regurgitation zu vermeiden, werden Kunden ermutigt, große und vielfältige Datasets bereitzustellen.

  • Modelltransparenz und Erklärungsfähigkeit: Die Logik und die Begründung des Modells können nach der Feinabstimmung undurchsichtiger und schwieriger zu verstehen sein, insbesondere, wenn die Daten komplex oder abstrakt sind. Ein fein abgestimmtes Modell kann Ergebnisse erzeugen, die unerwartet, inkonsistent oder widersprüchlich sind, und Kunden können möglicherweise nicht erklären, wie oder warum das Modell zu diesen Ausgaben gelangt ist. Wenn es sich bei den Daten beispielsweise um rechtliche oder medizinische Begriffe handelt, kann das Modell Ausgaben generieren, die ungenau oder irreführend sind, und Kunden können sie möglicherweise nicht überprüfen oder rechtfertigen. Kunden sollten die Ergebnisse und das Verhalten des Modells überwachen und prüfen und klare und genaue Informationen und Anleitungen für die Endbenutzer des Modells liefern.

Siehe auch