Entwickeln eines Auswertungsflusses im Microsoft Foundry-Portal (klassisch)

Gilt nur für:klassisches Foundry Portal. Dieser Artikel ist für das neue Foundry-Portal nicht verfügbar. Erfahren Sie mehr über das neue Portal.

Hinweis

Links in diesem Artikel können Inhalte in der neuen Microsoft Foundry-Dokumentation anstelle der jetzt angezeigten Foundry-Dokumentation (klassisch) öffnen.

Warnung

Die Entwicklung der Prompt Flow-Funktion endete am 20. April 2026. Das Feature wird am 20. April 2027 vollständig eingestellt. Am Ruhestandsdatum wechselt Prompt Flow in den schreibgeschützten Modus. Ihre vorhandenen Workflows werden bis zu diesem Datum weiterhin ausgeführt.

Recommended action: Migrieren Sie Ihre Prompt Flow-Arbeitslasten bis spätestens zum 20. April 2027 zu Microsoft Agent Framework.

Auswertungsflüsse sind spezielle Arten von Flüssen, die bewerten, wie gut die Ergebnisse einer Ausführung mit bestimmten Kriterien und Zielen übereinstimmen.

Im Prompt-Flow können Sie Ihren eigenen Auswertungsfluss anpassen oder erstellen, der auf Ihre Aufgaben und Ziele zugeschnitten ist. Diesen Fluss können Sie dann zum Auswerten anderer Flüsse verwenden. In diesem Dokument lernen Sie Folgendes:

  • So entwickeln Sie eine Auswertungsmethode.
  • Verstehen Sie Eingaben, Ausgaben und Protokollierungsmetriken für die Bewertung von Promptabläufen.

Voraussetzungen

Wichtig

Dieser Artikel bietet Unterstützung älterer Systeme für hub-basierte Projekte. Es funktioniert nicht für Foundry-Projekte. Sehen Sie , wie Sie wissen, welche Art von Projekt Sie haben?

SDK-Kompatibilitätshinweis: Codebeispiele erfordern eine bestimmte Microsoft Foundry SDK-Version. Wenn Kompatibilitätsprobleme auftreten, sollten Sie die Migration von einem hubbasierten zu einem Foundry-Projekt in Betracht ziehen.

Beginnen mit der Entwicklung einer Auswertungsmethode

Es gibt zwei Möglichkeiten, eigene Auswertungsmethoden zu entwickeln:

  • Anpassen eines integrierten Auswertungsflusses: Ändern eines integrierten Auswertungsflusses.

    1. Wählen Sie unter "Erstellen und Anpassen" die Option "Ablauf der Eingabeaufforderung" aus.
    2. Wählen Sie "Erstellen" aus, um den Flusserstellungs-Assistenten zu öffnen.
    3. Wählen Sie in der Flussgalerie unter Explore galleryEvaluation flow aus, um nach diesem Typ zu filtern. Wählen Sie ein Beispiel aus und klicken Sie auf 'Klonen', um Anpassungen vorzunehmen.
  • Neuen Auswertungsfluss von Grund auf erstellen: Entwickeln Sie eine völlig neue Auswertungsmethode von Grund auf.

    1. Wählen Sie unter "Erstellen und Anpassen" die Option "Ablauf der Eingabeaufforderung" aus.
    2. Wählen Sie "Erstellen" aus, um den Flusserstellungs-Assistenten zu öffnen.
    3. Wählen Sie im Flusskatalog unter " Erstellen nach Typ " im Feld "Auswertungsfluss" die Option "Erstellen " aus, und sehen Sie dann eine Vorlage für den Auswertungsfluss.

Verstehen der Bewertung im Promptfluss

In Prompt flow ist ein Ablauf eine Sequenz von Knoten, die eine Eingabe verarbeiten und eine Ausgabe generieren. Auswertungsflüsse nehmen auch erforderliche Eingaben und erzeugen entsprechende Ausgaben.

Einige besondere Merkmale von Auswertungsmethoden sind:

  • Sie werden in der Regel nach der zu testden Ausführung ausgeführt und empfangen Ausgaben aus dieser Ausführung.
  • Abgesehen von den Ausgaben des zu testenden Laufs können optional ein weiteres Dataset erhalten, das entsprechende Referenzwerte enthalten kann.
  • Sie verfügen möglicherweise über einen Aggregationsknoten, der die Gesamtleistung des getesteten Flusses basierend auf den einzelnen Bewertungen berechnet.
  • Sie können Metriken mithilfe der log_metric() Funktion protokollieren.

Wir stellen vor, wie die Eingaben und Ausgaben bei der Entwicklung von Auswertungsmethoden definiert werden sollen.

Eingänge

Eine Auswertung wird nach einer anderen Ausführung ausgeführt, um zu beurteilen, wie gut die Ergebnisse dieser Ausführung mit bestimmten Kriterien und Zielen übereinstimmen. Daher empfängt die Auswertung die generierten Ergebnisse dieser Ausführung.

Andere Eingaben können ebenfalls erforderlich sein, wie z. B. die Referenzdaten, die aus einem Datensatz stammen könnten. Standardmäßig verwendet die Auswertung dasselbe Dataset wie das Test-Dataset, das für die getestete Ausführung bereitgestellt wird. Wenn sich jedoch die entsprechenden Bezeichnungen oder Zielgrund-Wahrheitswerte in einem anderen Dataset befinden, können Sie ganz einfach zu diesem Datensatz wechseln.

Um eine Auswertung auszuführen, müssen Sie daher die Quellen dieser erforderlichen Eingaben angeben. Dazu wird beim Übermitteln einer Auswertung ein Abschnitt "Eingabezuordnung" angezeigt.

  • Wenn die Datenquelle aus der Ausführungsausgabe stammt, wird die Quelle als ${run.output.[OutputName]} angegeben.
  • Wenn die Datenquelle aus Ihrem Testdatensatz stammt, wird die Quelle als ${data.[ColumnName]} angezeigt.

Hinweis

Wenn ihre Auswertung keine Daten aus dem Dataset erfordert, müssen Sie nicht auf Datasetspalten im Eingabezuordnungsabschnitt verweisen, wobei angegeben wird, dass die Datasetauswahl eine optionale Konfiguration ist. Die Auswahl des Datasets wirkt sich nicht auf das Auswertungsergebnis aus.

Eingabebeschreibung

Um zu erinnern, welche Eingaben zum Berechnen von Metriken erforderlich sind, können Sie eine Beschreibung für jede erforderliche Eingabe hinzufügen. Die Beschreibungen werden beim Zuordnen der Quellen in der Batchausführungsübermittlung angezeigt.

Wenn Sie Beschreibungen für jede Eingabe hinzufügen möchten, wählen Sie " Beschreibung anzeigen " im Eingabeabschnitt aus, wenn Sie Ihre Auswertungsmethode entwickeln. Und Sie können "Beschreibung ausblenden" auswählen, um die Beschreibung auszublenden.

Diese Beschreibung wird dann angezeigt, wenn diese Auswertungsmethode in der Batchverarbeitung verwendet wird.

Ausgaben und Metriken

Die Ergebnisse einer Auswertung sind die Ergebnisse, die die Leistung des getesteten Flusses messen. Die Ausgabe enthält in der Regel Metriken wie Bewertungen und kann auch Text für Begründung und Vorschläge enthalten.

Ergebnisse auf Instanzebene

Im Ablauffluss verarbeitet der Fluss jeden Beispieldatensatz einzeln und generiert einen Ausgabedatensatz. Ebenso gibt es in den meisten Auswertungsfällen eine Metrik für jede Ausgabe, mit der Sie überprüfen können, wie der Ablauf für alle einzelnen Daten ausgeführt wird.

Um die Bewertung für jedes Datenbeispiel aufzuzeichnen, berechnen Sie die Bewertung für jede Ausgabe, und protokollieren Sie die Bewertung als Flussausgabe , indem Sie sie im Ausgabeabschnitt festlegen. Diese Erstellungsumgebung ist identisch mit der Definition einer Standardflussausgabe.

Wir berechnen diese Bewertung im line_process Knoten, den Sie beim Erstellen eines neuen Typs von Grund auf erstellen und bearbeiten können. Sie können diesen Python-Knoten auch durch einen LLM-Knoten ersetzen, um die BEWERTUNG mithilfe von LLM zu berechnen.

Wenn diese Auswertungsmethode verwendet wird, um einen anderen Fluss auszuwerten, kann die Bewertung auf Instanzebene auf der Registerkarte "Übersichtsausgabe>" angezeigt werden.

Metrikprotokollierung und Aggregationsknoten

Darüber hinaus ist es auch wichtig, eine Gesamtbewertung für den Lauf bereitzustellen. Sie können die "set as aggregation" eines Python Knotens in einem Auswertungsfluss überprüfen, um ihn in einen "reduzierten" Knoten umzuwandeln, sodass der Knoten die Eingaben as a list übernehmen und im Batch verarbeiten kann.

Auf diese Weise können Sie alle Bewertungen jeder Flussausgabe berechnen und verarbeiten und ein Gesamtergebnis für jede Variante berechnen.

Sie können Metriken in einem Aggregationsknoten mithilfe der Aufforderung flow_sdk.log_metrics()protokollieren. Die Metriken sollten numerisch (float/int) sein. Die Metrikprotokollierung für Zeichenfolgentypen wird nicht unterstützt.

Wir berechnen diese Bewertung im aggregate Knoten, den Sie beim Erstellen eines Typs von Grund auf neu erstellen und bearbeiten können. Sie können diesen Python Knoten auch durch einen LLM-Knoten ersetzen, um die LLM zum Berechnen der Bewertung zu verwenden. Sehen Sie sich das folgende Beispiel für die Verwendung der log_metric API in einem Auswertungsfluss an:

from typing import List
from promptflow import tool, log_metric

@tool
def calculate_accuracy(grades: List[str], variant_ids: List[str]):
    aggregate_grades = {}
    for index in range(len(grades)):
        grade = grades[index]
        variant_id = variant_ids[index]
        if variant_id not in aggregate_grades.keys():
            aggregate_grades[variant_id] = []
        aggregate_grades[variant_id].append(grade)

    # calculate accuracy for each variant
    for name, values in aggregate_grades.items():
        accuracy = round((values.count("Correct") / len(values)), 2)
        log_metric("accuracy", accuracy, variant_id=name)

    return aggregate_grades

Da Sie diese Funktion im Python-Knoten aufgerufen haben, müssen Sie sie an keiner anderen Stelle zuweisen, und Sie können die Metriken später anzeigen. Wenn diese Auswertungsmethode in einem Batchlauf verwendet wird, kann die Bewertung auf Instanzebene auf der Registerkarte "Übersichtsmetriken>" angezeigt werden.

Nächste Schritte