Delen via


Invoerschema voor agentevaluatie

Belangrijk

Deze functie is beschikbaar als openbare preview.

In dit artikel wordt het invoerschema uitgelegd dat is vereist voor agentevaluatie om de kwaliteit, kosten en latentie van uw toepassing te beoordelen.

  • Tijdens de ontwikkeling vindt de evaluatie offline plaats en is een evaluatieset een vereiste invoer voor agentevaluatie.
  • Wanneer een toepassing in productie is, zijn alle invoer voor agentevaluatie afkomstig uit uw deductietabellen of productielogboeken.

Het invoerschema is identiek voor zowel online als offline evaluaties.

Zie Evaluatiesets voor algemene informatie over evaluatiesets.

Evaluatieinvoerschema

In de volgende tabel ziet u het invoerschema van agentevaluatie. De laatste twee kolommen van de tabel verwijzen naar de wijze waarop invoer aan de mlflow.evaluate() aanroep wordt verstrekt. Zie Hoe u invoer kunt opgeven voor een evaluatieuitvoering voor meer informatie.

Kolom Gegevenstype Beschrijving Toepassing doorgegeven als invoerargument Eerder gegenereerde uitvoer
request_id tekenreeks Unieke id van aanvraag. Optioneel Optioneel
aanvraag Zie Schema voor aanvraag. Voer invoer in voor de toepassing om de vraag of query van de gebruiker te evalueren. Bijvoorbeeld {'messages': [{"role": "user", "content": "What is RAG"}]} ' of 'Wat is RAG?'. Wanneer request deze wordt opgegeven als een tekenreeks, wordt deze getransformeerd messages totdat deze wordt doorgegeven aan uw agent. Vereist Vereist
antwoord tekenreeks Antwoord gegenereerd door de toepassing die wordt geëvalueerd. Gegenereerd door agentevaluatie Optioneel. Als dit niet is opgegeven, is deze afgeleid van de tracering. trace Of response is vereist.
expected_facts tekenreeksmatrix Een lijst met feiten die worden verwacht in de modeluitvoer. Zie expected_facts richtlijnen. Optioneel Optioneel
expected_response tekenreeks Grond-waarheidsantwoord (juist) voor de invoeraanvraag. Zie expected_response richtlijnen. Optioneel Optioneel
expected_retrieved_context matrix Matrix van objecten die de verwachte opgehaalde context voor de aanvraag bevatten (als de toepassing een ophaalstap bevat). Matrixschema Optioneel Optioneel
retrieved_context matrix Resultaten ophalen die zijn gegenereerd door de retriever in de toepassing die wordt geëvalueerd. Als er meerdere stappen voor het ophalen in de toepassing staan, zijn dit de resultaten van de laatste stap (chronologisch in de tracering). Matrixschema Gegenereerd door agentevaluatie Optioneel. Als deze niet is opgegeven, is deze afgeleid van de opgegeven tracering.
tracering JSON-tekenreeks van MLflow Trace MLflow Trace van de uitvoering van de toepassing op de bijbehorende aanvraag. Gegenereerd door agentevaluatie Optioneel. trace Of response is vereist.

expected_facts Richtsnoeren

In expected_facts het veld wordt de lijst met feiten opgegeven die naar verwachting worden weergegeven in een correct modelantwoord voor de specifieke invoeraanvraag. Dat wil gezegd, een modelantwoord wordt als correct beschouwd als deze feiten bevat, ongeacht hoe het antwoord wordt geformuleerd.

Door alleen de vereiste feiten op te geven en feiten weg te laten die niet strikt vereist zijn in het antwoord, kan agentevaluatie een robuuster signaal over de uitvoerkwaliteit bieden.

U kunt maximaal één van expected_facts en expected_response. Als u beide opgeeft, wordt er een fout gerapporteerd. Databricks raadt aan gebruik te maken expected_factsvan , omdat het een specifiekere richtlijn is waarmee agentevaluatie effectiever kan beoordelen wat de kwaliteit van gegenereerde reacties is.

expected_response Richtsnoeren

Het expected_response veld bevat een volledig gevormd antwoord dat een verwijzing vertegenwoordigt voor de juiste modelreacties. Dat wil gezegd, een modelantwoord wordt als correct beschouwd als deze overeenkomt met de informatie-inhoud in expected_response. Hierentegen expected_facts worden alleen de feiten vermeld die vereist zijn om in een correct antwoord te worden weergegeven en is geen volledig gevormd verwijzingsantwoord.

Vergelijkbaar met expected_facts, expected_response mag alleen de minimale set feiten bevatten die vereist zijn voor een correct antwoord. Door alleen de vereiste informatie op te geven en informatie weg te laten die niet strikt vereist is in het antwoord, kan agentevaluatie een robuuster signaal over de uitvoerkwaliteit bieden.

U kunt maximaal één van expected_facts en expected_response. Als u beide opgeeft, wordt er een fout gerapporteerd. Databricks raadt aan gebruik te maken expected_factsvan , omdat het een specifiekere richtlijn is waarmee agentevaluatie effectiever kan beoordelen wat de kwaliteit van gegenereerde reacties is.

Schema voor aanvraag

Het aanvraagschema kan een van de volgende zijn:

  • Het voltooiingsschema van de OpenAI-chat. Het voltooiingsschema van de OpenAI-chat moet een matrix met objecten hebben als parameter messages . Het messages veld kan het volledige gesprek coderen.
  • Als de agent het openAI-voltooiingsschema voor chats ondersteunt, kunt u een gewone tekenreeks doorgeven. Deze indeling ondersteunt alleen gesprekken met één beurt. Tekenreeksen zonder opmaak worden geconverteerd naar de messages indeling met "role": "user" voordat ze worden doorgegeven aan uw agent. Een gewone tekenreeks "What is MLflow?" wordt bijvoorbeeld geconverteerd {"messages": [{"role": "user", "content": "What is MLflow?"}]} naar voordat deze wordt doorgegeven aan uw agent.
  • SplitChatMessagesRequest. Een query tekenreeksveld voor de meest recente aanvraag en een optioneel history veld waarmee eerdere beurten van het gesprek worden gecodeerd.

Voor chattoepassingen met meerdere beurten gebruikt u de tweede of derde optie hierboven.

In het volgende voorbeeld ziet u alle drie de opties in dezelfde request kolom van de evaluatiegegevensset:

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 voor matrices in evaluatie-invoer

Het schema van de matrices expected_retrieved_context en retrieved_context wordt weergegeven in de volgende tabel:

Kolom Gegevenstype Beschrijving Toepassing doorgegeven als invoerargument Eerder gegenereerde uitvoer
content tekenreeks Inhoud van de opgehaalde context. Tekenreeks in elke indeling, zoals HTML, tekst zonder opmaak of Markdown. Optioneel Optioneel
doc_uri tekenreeks Unieke id (URI) van het bovenliggende document waaruit het segment afkomstig is. Vereist Vereist

Berekende metrische gegevens

De kolommen in de volgende tabel geven de gegevens aan die zijn opgenomen in de invoer en geven aan dat de metrische waarde wordt ondersteund wanneer die gegevens worden opgegeven.

Zie Hoe kwaliteit, kosten en latentie worden beoordeeld door agentevaluatie voor meer informatie over wat deze metrische gegevens meten.

Berekende metrische gegevens request request en expected_response request, expected_response en expected_retrieved_context request en 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