Freigeben über


Eingabeschema für die Agentauswertung

Wichtig

Dieses Feature befindet sich in der Public Preview.

In diesem Artikel wird das eingabeschema erläutert, das von der Agentauswertung benötigt wird, um die Qualität, Kosten und Latenz Ihrer Anwendung zu bewerten.

  • Während der Entwicklung erfolgt die Auswertung offline, und ein Evaluierungssatz ist eine erforderliche Eingabe für die Agent-Auswertung.
  • Wenn sich eine Anwendung in der Produktion befindet, stammen alle Eingaben zur Agent-Auswertung aus Ihren Rückschlusstabellen oder Produktionsprotokollen.

Das Eingabeschema ist sowohl für Online- als auch offline-Auswertungen identisch.

Allgemeine Informationen zu Auswertungssätzen finden Sie unter Evaluierungssätze.

Bewertungseingabeschema

Die folgende Tabelle zeigt das Eingabeschema der Agentauswertung. Die letzten beiden Spalten der Tabelle beziehen sich auf die Bereitstellung von Eingaben für den mlflow.evaluate() Aufruf. Weitere Informationen finden Sie unter Bereitstellen von Eingaben für eine Auswertungsausführung .

Spalte Datentyp Beschreibung Als Eingabeargument übergebene Anwendung Zuvor generierte Ausgaben
request_id Zeichenfolge Eindeutiger Bezeichner der Anforderung. Optional Optional
request Weitere Informationen finden Sie unter Schema für Anforderungen. Eingabe in die Anwendung, um die Frage oder Abfrage des Benutzers auszuwerten. Beispiel: {'messages': [{"role": "user", "content": "What is RAG"}]} "Was ist RAG?". Wenn request sie als Zeichenfolge angegeben wird, wird sie transformiert messages , bevor sie an Ihren Agent übergeben wird. Erforderlich Erforderlich
automatisieren Zeichenfolge Antwort, die von der zu bewertenden Anwendung generiert wurde. Generiert durch Agent-Auswertung Optional. Wenn dies nicht angegeben wird, wird sie von der Ablaufverfolgung abgeleitet. Entweder response oder trace ist erforderlich.
expected_facts Array von Zeichenfolgen Eine Liste der Fakten, die in der Modellausgabe erwartet werden. Siehe expected_facts Richtlinien. Optional Optional
expected_response Zeichenfolge Grundwahrheitsantwort (richtig) auf die eingegebene Anfrage. Siehe expected_response Richtlinien. Optional Optional
expected_retrieved_context array Array von Objekten, die den erwarteten abgerufenen Kontext für die Anforderung enthalten (falls die Anwendung einen Abrufschritt enthält). Arrayschema Optional Optional
retrieved_context array Abrufergebnisse, die vom Retriever in der zu bewertenden Anwendung generiert werden. Wenn sich mehrere Abrufschritte in der Anwendung befinden, ist dies das Abrufergebnis aus dem letzten Schritt (chronologisch in der Ablaufverfolgung). Arrayschema Generiert durch Agent-Auswertung Optional. Wenn dies nicht angegeben wird, wird sie von der bereitgestellten Ablaufverfolgung abgeleitet.
Ablaufverfolgung JSON-Zeichenfolge der MLflow-Ablaufverfolgung MLflow Trace der Ausführung der Anwendung für die entsprechende Anforderung. Generiert durch Agent-Auswertung Optional. Entweder response oder trace ist erforderlich.

expected_facts Richtlinien

Das expected_facts Feld gibt die Liste der Fakten an, die in jeder korrekten Modellantwort für die spezifische Eingabeanforderung angezeigt werden sollen. Das heißt, eine Modellantwort gilt als richtig, wenn sie diese Fakten enthält, unabhängig davon, wie die Antwort formuliert wird.

Wenn Sie nur die erforderlichen Fakten einschließen und fakten, die in der Antwort nicht unbedingt erforderlich sind, können Agentenauswertung ein robusteres Signal für die Ausgabequalität bereitstellen.

Sie können höchstens eine von expected_facts und expected_response. Wenn Sie beide angeben, wird ein Fehler gemeldet. Databricks empfiehlt die Verwendung expected_facts, da es sich um eine spezifischere Richtlinie handelt, die agent Evaluation hilft, die Qualität der generierten Antworten effektiver zu beurteilen.

expected_response Richtlinien

Das expected_response Feld enthält eine vollständig gebildete Antwort, die einen Verweis für die richtigen Modellantworten darstellt. Das heißt, eine Modellantwort gilt als richtig, wenn sie mit dem Informationsinhalt expected_responseübereinstimmt. Im Gegensatz dazu werden nur die Fakten aufgelistet, expected_facts die in einer korrekten Antwort angezeigt werden müssen und keine vollständig gebildete Referenzantwort ist.

Ähnlich wie expected_facts, expected_response sollte nur die minimale Menge von Fakten enthalten, die für eine korrekte Antwort erforderlich sind. Durch die Einbeziehung nur der erforderlichen Informationen und das Weglassen von Informationen, die in der Antwort nicht unbedingt erforderlich sind, kann die Agentenbewertung ein zuverlässigeres Signal für die Ausgabequalität liefern.

Sie können höchstens eine von expected_facts und expected_response. Wenn Sie beide angeben, wird ein Fehler gemeldet. Databricks empfiehlt die Verwendung expected_facts, da es sich um eine spezifischere Richtlinie handelt, die agent Evaluation hilft, die Qualität der generierten Antworten effektiver zu beurteilen.

Schema für Anforderungen

Das Anforderungsschema kann Folgendes sein:

  • Das OpenAI-Chatabschlussschema. Das OpenAI-Chatabschlussschema muss ein Array von Objekten als messages Parameter aufweisen. Das messages Feld kann die vollständige Unterhaltung codieren.
  • Wenn der Agent das OpenAI-Chatabschlussschema unterstützt, können Sie eine einfache Zeichenfolge übergeben. Dieses Format unterstützt nur Unterhaltungen mit nur einer Wendung. Einfache Zeichenfolgen werden in das messages Format konvertiert, bevor "role": "user" sie an Ihren Agent übergeben werden. Beispielsweise wird eine einfache Zeichenfolge vor der Übergabe an Ihren Agent in {"messages": [{"role": "user", "content": "What is MLflow?"}]} eine einfache Zeichenfolge "What is MLflow?" konvertiert.
  • SplitChatMessagesRequest. Ein query-Zeichenfolgenfeld für die letzte Anforderung und ein optionales history-Feld, das vorherige Gesprächswendungen codiert.

Verwenden Sie für Chatanwendungen die zweite oder dritte der obigen Optionen.

Das folgende Beispiel zeigt alle drei Optionen in derselben Spalte request des Auswertungsdatasets:

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Schema für Arrays in Auswertungseingaben

Das Schema der Arrays expected_retrieved_context und retrieved_context wird in der folgenden Tabelle angezeigt:

Spalte Datentyp Beschreibung Als Eingabeargument übergebene Anwendung Zuvor generierte Ausgaben
content Zeichenfolge Inhalt des abgerufenen Kontexts. Zeichenfolge in beliebigem Format, z. B. HTML, Nur-Text oder Markdown. Optional Optional
doc_uri Zeichenfolge Eindeutiger Bezeichner (URI) des übergeordneten Dokuments, aus dem der Block stammt. Erforderlich Erforderlich

Berechnete Metriken

Die Spalten in der folgenden Tabelle geben die in der Eingabe enthaltenen Daten an und geben an, dass die Metrik unterstützt wird, wenn diese Daten bereitgestellt werden.

Ausführliche Informationen dazu, was diese Metriken messen, finden Sie unter "Bewertung von Qualität, Kosten und Latenz durch Agent Evaluation".

Berechnete Metriken request request und expected_response request, expected_response und expected_retrieved_context request und expected_retrieved_context
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall