Feinabstimmung von Prompts mit Varianten in Azure KI Studio
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.
In diesem Artikel erfahren Sie, wie Sie Varianten verwenden können, um Prompts zu optimieren und die Leistung der verschiedenen Varianten zu bewerten.
Das Erstellen eines guten Prompts ist eine anspruchsvolle Aufgabe, die viel Kreativität, Klarheit und Relevanz erfordert. Ein guter Prompt kann einem vorab trainierten Sprachmodell die gewünschten Ausgaben entlocken, während ein fehlerhafter Prompt zu ungenauen, irrelevanten oder unsinnigen Ausgaben führen kann. Daher ist es notwendig, Prompts zu optimieren, um ihre Leistung und Zuverlässigkeit für verschiedene Aufgaben und Themen zu optimieren.
Varianten können Ihnen dabei helfen, das Verhalten des Modells unter unterschiedlichen Bedingungen zu testen, z. B. verschiedene Formulierungen, Formatierungen, Kontext, Temperatur oder top-k. Sie können vergleichen und die beste Eingabeaufforderung und Konfiguration finden, welche die Genauigkeit, Vielfalt oder Kohärenz des Modells maximieren.
Varianten in Prompt-Flow
Mit Prompt Flow können Sie Varianten verwenden, um Ihren Prompt zu optimieren. Eine Variante bezieht sich auf eine bestimmte Version eines Toolknotens mit spezifischen Einstellungen. Derzeit werden Varianten nur im LLM-Tool unterstützt. Im LLM-Tool kann beispielsweise eine neue Variante entweder einen anderen Prompt-Inhalt oder unterschiedliche Verbindungseinstellungen darstellen.
Angenommen, Sie möchten eine Zusammenfassung eines Nachrichtenartikels generieren. Sie können verschiedene Varianten von Prompts und Einstellungen wie folgt festlegen:
Varianten | Prompt | Verbindungseinstellungen |
---|---|---|
Variante 0 | Summary: {{input sentences}} |
Temperature = 1 |
Variant 1 | Summary: {{input sentences}} |
Temperature = 0,7 |
Variante 2 | What is the main point of this article? {{input sentences}} |
Temperature = 1 |
Variant 3 | What is the main point of this article? {{input sentences}} |
Temperature = 0,7 |
Indem Sie verschiedene Varianten von Prompts und Einstellungen verwenden, können Sie untersuchen, wie das Modell auf verschiedene Ein- und Ausgaben reagiert, um die am besten geeignete Kombination für Ihre Anforderungen zu ermitteln.
Vorteile der Verwendung von Varianten:
- Höhere Qualität bei der LLM-Generierung: Indem Sie mehrere Varianten desselben LLM-Knotens mit verschiedenen Prompts und Konfigurationen erstellen, können Sie die optimale Kombination identifizieren, die hochwertige Inhalte erzeugt, die Ihren Anforderungen entsprechen.
- Geringerer Zeit- und Arbeitsaufwand: Selbst geringfügige Änderungen an eine Prompt können zu abweichenden Ergebnissen führen. Es ist wichtig, die Leistung jeder Prompt-Version nachzuverfolgen und zu vergleichen. Mit Varianten können Sie problemlos frühere Versionen Ihrer LLM-Knoten verwalten. Dies vereinfacht Aktualisierungen basierend auf Varianten ohne das Risiko, dass vorherige Iterationen vergessen werden. Varianten sparen Ihnen Zeit und Arbeit beim Verwalten des Verlaufs der Prompt-Optimierung.
- Höhere Produktivität: Varianten verbessern den Optimierungsprozess für LLM-Knoten, wodurch es einfacher wird, mehrere Variationen zu erstellen und zu verwalten. Sie können in kürzerer Zeit bessere Ergebnisse erzielen und so Ihre Produktivität insgesamt steigern.
- Einfacher Vergleich: Sie können mühelos die Ergebnisse verschiedener Varianten nebeneinander vergleichen, um datengesteuerte Entscheidungen zu Varianten zu treffen, die die besten Ergebnisse liefern.
Wie werden Prompts mithilfe von Varianten optimiert?
In diesem Artikel wird als Beispiel der Beispielflow für die Webklassifizierung verwendet.
- Öffnen Sie zunächst den Beispielflow, und entfernen Sie den Knoten prepare_examples.
- Wählen Sie unter Tools die Option prompt flow aus.
- Wählen Sie Erstellen aus, um den Assistenten zur Erstellung von Flows zu öffnen.
- Wählen Sie im Flow-Katalog unter Katalog durchsuchen im Feld „Webklassifizierung“ die Option Klonen aus.
- Löschen Sie auf der Registerkarte „Flow“ den Knoten prepare_examples.
- Verwenden Sie den folgenden Prompt als Baseline-Prompt im Knoten classify_with_llm.
Your task is to classify a given url into one of the following types:
Movie, App, Academic, Channel, Profile, PDF or None based on the text content information.
The classification will be based on the url, the webpage text content summary, or both.
For a given URL : {{url}}, and text content: {{text_content}}.
Classify above url to complete the category and indicate evidence.
The output shoule be in this format: {"category": "App", "evidence": "Both"}
OUTPUT:
Um diesen Flow zu optimieren, gibt es mehrere Möglichkeiten, von denen im Folgenden zwei beschrieben werden:
Für den Knoten classify_with_llm: Ich habe von der Community und in Dokumenten gelernt, dass eine niedrigere Temperatur eine höhere Genauigkeit, aber weniger Kreativität und Überraschung bietet, sodass eine niedrigere Temperatur für Klassifizierungsaufgaben geeignet ist und die LLM-Leistung auch durch schmale Prompts erhöht werden kann. Daher möchte ich testen, wie sich mein Flow verhält, wenn die Temperatur von 1 auf 0 geändert wird, und wenn der Prompt nur wenige Beispiele enthält.
Für den Knoten summarize_text_content: Ich möchte außerdem das Verhalten meines Flows testen, wenn ich die Zusammenfassung von 100 Wörtern auf 300 Wörter ändere, um festzustellen, ob mehr Textinhalte zur Verbesserung der Leistung beitragen können.
Erstellen von Varianten
- Wählen Sie rechts oben im LLM-Knoten die Schaltfläche Varianten anzeigen aus. Der vorhandene LLM-Knoten „variant_0“ ist die Standardvariante.
- Wählen Sie die Schaltfläche Klonen für „variant_0“ aus, um „variant_1“ zu generieren. Anschließend können Sie Parameter für andere Werte konfigurieren oder den Prompt in „variant_1“ ändern.
- Wiederholen Sie die Schritte, um weitere Varianten zu erstellen.
- Wählen Sie Varianten ausblenden aus, um das Hinzufügen weiterer Varianten zu beenden. Alle Varianten werden ausgeblendet. Es wird die Standardvariante für den Knoten angezeigt.
Für den Knoten classify_with_llm basierend auf „variant_0“:
- Erstellen Sie „variant_1“, bei der die Temperatur von 1 in 0 geändert wird.
- Erstellen Sie „variant_2“, bei der die Temperatur 0 ist und Sie den folgenden Prompt verwenden können, der nur einige wenige Beispiele enthält.
Your task is to classify a given url into one of the following types:
Movie, App, Academic, Channel, Profile, PDF or None based on the text content information.
The classification will be based on the url, the webpage text content summary, or both.
Here are a few examples:
URL: https://play.google.com/store/apps/details?id=com.spotify.music
Text content: Spotify is a free music and podcast streaming app with millions of songs, albums, and original podcasts. It also offers audiobooks, so users can enjoy thousands of stories. It has a variety of features such as creating and sharing music playlists, discovering new music, and listening to popular and exclusive podcasts. It also has a Premium subscription option which allows users to download and listen offline, and access ad-free music. It is available on all devices and has a variety of genres and artists to choose from.
OUTPUT: {"category": "App", "evidence": "Both"}
URL: https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw
Text content: NFL Sunday Ticket is a service offered by Google LLC that allows users to watch NFL games on YouTube. It is available in 2023 and is subject to the terms and privacy policy of Google LLC. It is also subject to YouTube's terms of use and any applicable laws.
OUTPUT: {"category": "Channel", "evidence": "URL"}
URL: https://arxiv.org/abs/2303.04671
Text content: Visual ChatGPT is a system that enables users to interact with ChatGPT by sending and receiving not only languages but also images, providing complex visual questions or visual editing instructions, and providing feedback and asking for corrected results. It incorporates different Visual Foundation Models and is publicly available. Experiments show that Visual ChatGPT opens the door to investigating the visual roles of ChatGPT with the help of Visual Foundation Models.
OUTPUT: {"category": "Academic", "evidence": "Text content"}
URL: https://ab.politiaromana.ro/
Text content: There is no content available for this text.
OUTPUT: {"category": "None", "evidence": "None"}
For a given URL : {{url}}, and text content: {{text_content}}.
Classify above url to complete the category and indicate evidence.
OUTPUT:
Für den Knoten summarize_text_content können Sie basierend auf „variant_0“ die „variant_1“ erstellen, bei der 100 words
im Prompt in 300
Wörter geändert wird.
Der Flow sieht nun wie folgt aus: 2 Varianten für den Knoten summarize_text_content und 3 Varianten für den Knoten classify_with_llm.
Ausführen aller Varianten mit einer einzelnen Datenzeile und Überprüfen der Ausgaben
Um sicherzustellen, dass alle Varianten erfolgreich ausgeführt werden können und wie erwartet funktionieren, können Sie den Flow testweise mit einer einzelnen Datenzeile ausführen.
Hinweis
Sie können jedes Mal nur einen LLM-Knoten mit Varianten für die Ausführung auswählen, während die anderen LLM-Knoten die Standardvariante verwenden.
In diesem Beispiel konfigurieren Sie Varianten sowohl für den Knoten summarize_text_content als auch für den Knoten classify_with_llm, sodass zwei Ausführungen erforderlich sind, um alle Varianten zu testen.
- Wählen Sie rechts oben die Schaltfläche Ausführen aus.
- Wählen Sie einen LLM-Knoten mit Varianten aus. Für die anderen LLM-Knoten wird die Standardvariante verwendet.
- Übermitteln Sie die Flowausführung.
- Nach Abschluss der Flowausführung können Sie das Ergebnis für jede Variante überprüfen.
- Übermitteln Sie eine weitere Flowausführung mit dem anderen LLM-Knoten mit Varianten, und überprüfen Sie die Ausgaben.
- Sie können die Eingabedaten ändern (z. B. die URL einer Wikipedia-Seite) und die obigen Schritte wiederholen, um Varianten mit unterschiedlichen Daten zu testen.
Bewerten von Varianten
Wenn Sie die Varianten mit einigen wenigen Einzeldaten ausführen und die Ergebnisse lediglich visuell überprüfen, kann dies natürlich nicht die Komplexität und Vielfalt realer Daten widerspiegeln. Gleichzeitig ist die Ausgabe nicht messbar, sodass es schwierig ist, die Wirksamkeit verschiedener Varianten zu vergleichen und dann die beste auszuwählen.
Sie können eine Batchausführung übermitteln, mit dem Sie die Varianten mit einer großen Menge an Daten testen und mit Metriken auswerten können, um die am besten geeignete zu finden.
Zunächst müssen Sie ein Dataset vorbereiten, das dem realen Problem, das Sie mit Prompt-Flow lösen möchten, möglichst genau entspricht. In diesem Beispiel handelt es sich um eine Liste von URLs und die Grundwahrheit für deren Klassifizierung. Zum Auswerten der Leistung von Varianten wird die Genauigkeit verwendet.
Wählen Sie oben rechts auf der Seite Auswerten.
Ein Assistent für Batchausführung und -auswertung wird geöffnet. Im ersten Schritt wählen Sie einen Knoten aus, um alle zugehörigen Varianten auszuführen.
Um zu testen, wie gut verschiedene Varianten für jeden Knoten in einem Flow funktionieren, müssen Sie nacheinander eine Batchausführung für jeden Knoten mit Varianten ausführen. Dies hilft Ihnen, Auswirkungen durch Varianten anderer Knoten zu vermeiden und sich auf die Ergebnisse der Varianten dieses Knotens zu konzentrieren. Dies entspricht der Regel für kontrollierte Experimente, nach der Sie nur eine Sache auf einmal ändern dürfen und alles andere gleich lassen.
Sie können beispielsweise den Knoten classify_with_llm auswählen, um alle Varianten auszuführen. Der Knoten summarize_text_content verwendet für diese Batchausführung die Standardvariante.
Als Nächstes können Sie unter Batchausführungseinstellungen den Namen der Batchausführung festlegen, eine Runtime auswählen und die vorbereiteten Daten hochladen.
Wählen Sie danach unter Auswertungseinstellungen eine Auswertungsmethode aus.
Da dieser Flow zur Klassifizierung dient, können Sie die Methode zur Auswertung der Klassifizierungsgenauigkeit auswählen, um die Genauigkeit zu bewerten.
Die Genauigkeit wird berechnet, indem die vorhergesagten Bezeichnungen, die vom Flow (Vorhersage) zugewiesen werden, mit den tatsächlichen Bezeichnungen der Daten (Grundwahrheit) verglichen werden und gezählt wird, wie viele von ihnen übereinstimmen.
Im Abschnitt für die Zuordnung von Auswertungseingaben müssen Sie angeben, dass die Grundwahrheit aus der Kategoriespalte des Eingabedatasets stammt, und die Vorhersage aus einer der Flowausgaben stammt, nämlich „category“.
Nachdem Sie alle Einstellungen überprüft haben, können Sie die Batchausführung übermitteln.
Nachdem die Ausführung übermittelt wurde, wählen Sie den Link aus, und wechseln Sie zur Detailseite der Ausführung.
Hinweis
Diese Ausführung kann einige Minuten dauern.
Visualisieren von Ausgaben
- Nachdem Batchausführung und Auswertungsausführung abgeschlossen sind, wählen Sie auf der Ausführungsdetailseite die Batchausführungen für jede Variante aus. Wählen Sie dann Ausgaben visualisieren aus. Sie sehen die Metriken von 3 Varianten für den Knoten classify_with_llm und die von LLM vorhergesagten Ausgaben für jeden Datensatz.
- Nachdem Sie ermittelt haben, welche Variante am besten geeignet ist, können Sie zur Seite zum Erstellen des Flows zurückkehren und diese Variante als Standardvariante des Knotens festlegen.
- Sie können die obigen Schritte wiederholen, um auch die Varianten des Knotens summarize_text_content auszuwerten.
Sie haben damit den Prozess zur Optimierung von Prompts mithilfe von Varianten abgeschlossen. Sie können dieses Verfahren auf Ihren eigenen Prompt-Flow anwenden, um die beste Variante für den LLM-Knoten zu finden.