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_facts
van , 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_facts
van , 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
. Hetmessages
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
. Eenquery
tekenreeksveld voor de meest recente aanvraag en een optioneelhistory
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 |
✓ | ✓ |