Referenzantworten
Lernen Sie, LLM-Antworten gegen bekannte korrekte Antworten für Genauigkeitstests und Qualitätssicherung zu evaluieren
Referenzantworten bieten eine Möglichkeit, generierte Antworten automatisch gegen bekannte korrekte Antworten zu evaluieren. Dies ist besonders nützlich für:
- Genauigkeitstests - Überprüfen, ob LLM-Antworten mit erwarteten Antworten übereinstimmen
- Qualitätssicherung - Gewährleistung einer konstanten Leistung über verschiedene Prompts hinweg
Wichtige Schritte
- Erstellen Sie ein Prompt-Template mit Template-Variablen. Stellen Sie sicher, dass
{{reference_answer}} nicht als Template-Variable in Ihrer Prompt-Template verwendet wird, da sonst die Lösung direkt mitgegeben wird.
- Fügen Sie Kriterien hinzu, die die Template-Variable
{{reference_answer}} verwenden
- Erstellen Sie eine Collection mit allen Template-Variablen, die im Prompt-Template verwendet werden, sowie die
{{reference_answer}}. Template-Variable
- Das war's! Sie können nun Ihre Antworten anhand der Referenzantworten bewerten.
Das folgende Beispiel zeigt, wie Sie Referenzantworten mit elluminate verwenden können:
| """v1.0 API version of example_sdk_usage_reference_answer.py
Demonstrates using reference answers in evaluation criteria.
The criterion can include template variables like {{reference_answer}} to
compare the LLM's response against a known correct answer.
"""
from dotenv import load_dotenv
from elluminate import Client
from elluminate.schemas import RatingMode
load_dotenv(override=True)
client = Client()
# v1.0: get_or_create_prompt_template - template is part of lookup
template, _ = client.get_or_create_prompt_template(
name="Geography Expert - Capitals",
messages="What is the capital city of the following country: {{country}}. Give only the name of the capital city in your response, nothing else.",
)
# v1.0: Create criterion set with reference answer criterion
criterion_set, _ = client.get_or_create_criterion_set(
name="Capital City Verification",
)
# The criterion uses {{reference_answer}} from the template variables
# This allows comparing LLM output against known correct answers
criterion_set.add_criteria(
[
"The correct capital city is: {{reference_answer}}. Is the given answer correct?",
]
)
# v1.0: Link criterion set to template
criterion_set.link_template(template)
# v1.0: get_or_create_collection
collection, _ = client.get_or_create_collection(
name="Country Capitals",
defaults={"description": "A collection of countries and their capital cities"},
)
# Template variables include both prompt inputs AND reference answers
# The reference_answer is used by the criterion, not the prompt
values = [
{"country": "France", "reference_answer": "Paris"},
{"country": "Japan", "reference_answer": "Tokyo"},
{"country": "Argentina", "reference_answer": "Buenos Aires"},
]
# v1.0: collection.add_many() - single call for all variables
collection.add_many(variables=values)
# v1.0: run_experiment() handles everything
experiment = client.run_experiment(
name="Capital Cities Experiment",
prompt_template=template,
collection=collection,
criterion_set=criterion_set,
rating_mode=RatingMode.FAST,
)
# Display results
for response in experiment.responses():
print(f"Prompt: {response.prompt.messages[-1]['content']}")
print(f"Response: {response.response_str}")
print(f"Rating: {response.ratings[0].rating}")
print("-" * 80)
|
-
Zunächst erstellen wir die Prompt-Template. Beachten Sie, dass wir hier nur die Template-Variable {{country}} verwenden.
-
Hier fügen wir ein Kriterium zum Prompt-Template hinzu. Beachten Sie, dass das Kriterium die Template-Variable {{reference_answer}} verwendet, die mit der Referenzantwort aus den Template-Variablen gefüllt wird.
-
Wir definieren die Template-Variablen. Jede Template-Variable enthält einen Wert für country und die reference_answer, welche die korrekte Antwort für das jeweilige Land ist.
Evaluierungskriterien
Definieren Sie Kriterien, die die Referenzantworten zur Bewertung von Antworten verwenden. Häufige Muster sind:
- Exakter Vergleich
- Überprüfung der semantischen Ähnlichkeit