Zum Inhalt

Experimente

Experimente helfen Ihnen dabei, verschiedene Prompts systematisch zu vergleichen und deren Effektivität zu bewerten. Sie sind besonders nützlich, wenn Sie mehrere Varianten von Prompts testen und analysieren möchten, welche für Ihren Anwendungsfall am besten geeignet ist. Zusätzlich ermöglichen Experiments die Analyse, welche Evaluationskriterien im Allgemeinen gut über verschiedene Prompts hinweg funktionieren und welche konstant fehlschlagen. Dies hilft Ihnen, systematische Stärken und Schwächen in Ihren Prompt-Designs zu identifizieren.

Ein Experiment kombiniert mehrere Komponenten:

  • Ein Prompt Template als Grundlage
  • Eine Reihe von Eingaben (Template Variables oder Collection)
  • Evaluationskriterien und Ratings für die Antworten

Schauen Sie gerne in den Abschnitt Key Concepts für einen detaillierten Überblick über die Konzepte. Aber bevor wir zu tief in die Details einsteigen, lassen Sie uns ein Beispiel betrachten.

from dotenv import load_dotenv
from elluminate import Client

load_dotenv(override=True)

client = Client()

values = [
    {"person": "Richard Feynman", "field": "Quantum Electrodynamics"},
    {"person": "Albert Einstein", "field": "Relativity"},
]

collection, _ = client.collections.get_or_create(
    name="Famous Physicists", description="A collection of renowned theoretical physicists"
)

for template_variables in values:
    client.template_variables.add_to_collection(template_variables, collection=collection)

prompt_template, _ = client.prompt_templates.get_or_create(
    "Please write a brief biography highlighting {{person}}'s contributions to {{field}} "
    "and their impact on modern physics.",
    name="Physicist Biography",
)

client.criteria.get_or_generate_many(prompt_template)

responses = client.responses.generate_many(prompt_template, collection=collection)

experiment, _ = client.experiments.get_or_create(
    "Physics Pioneers Analysis",
    prompt_template=prompt_template,
    collection=collection,
    description="Evaluating biographies of influential physicists and their contributions",
)  # (1)!

for response in responses:
    client.ratings.rate(response, experiment=experiment)  # (2)!

# Update the experiment to include the responses and results
experiment = client.experiments.get(experiment.name)

# Display individual responses and ratings
print("\n===== Individual Responses =====")
for response in experiment.rated_responses:  # (3)!
    print(f"\nResponse for {response.prompt.template_variables.input_values.get('person')}:")
    print(f"{response.response}\n")
    print("Ratings:")
    for rating in response.ratings:
        print(f"Criteria: {rating.criterion.criterion_str}")
        print(f"Rating: {rating.rating}\n")

# Display aggregated results using the new summary method
print("\n===== Aggregated Results =====")
experiment.print_results_summary()
1. Erstellen Sie ein `Experiment`. Falls das `Experiment` bereits existiert, wird es zurückgegeben. Beachten Sie, dass das gleiche `PromptTemplate` und die gleiche `Collection`, die zur Generierung der `Response`s verwendet wurden, hier ebenfalls verwendet werden.

2. Hier werden die Ratings für die `Response`s erstellt. Durch die Übergabe des zuvor erstellten `Experiment`s werden die `Response`s mit Ratings mit dem `Experiment` verknüpft.

3. Die `Response`s mit Ratings sind über die `rated_responses`-Eigenschaft des `Experiment`s zugänglich.

Experiments anzeigen

Sie können die Ergebnisse eines Experiments in der Benutzeroberfläche betrachten. Die Experiment-Ansicht zeigt hilfreiche Statistiken, die Ihnen helfen zu erkennen, welche Kriterien im Allgemeinen erfüllt werden und welche nicht. Die Experiment-Ansicht sieht wie folgt aus. Hier werden einige Statistiken angezeigt:

  • Overall Score: Der Mittelwert und die Standardabweichung aller Antworten
  • Average Tokens: Der Mittelwert und die Standardabweichung der für alle Antworten verwendeten Tokens
  • Weakest Criteria: Die am wenigsten erfüllten Kriterien und der Prozentsatz der Antworten, die sie erfüllt haben

Im Criteria Performance-Graphen sehen Sie, welche Kriterien generell erfüllt werden und welche besonders herausfordernd sind.

Experiment View

Es gibt auch einen detaillierten Analyse-Tab, der wie folgt aussieht. Hier können Sie die Score Distribution und die Criteria Performance Analysis der Antworten sehen, um die Gesamtleistung zu verstehen und Ausreißer zu identifizieren. Außerdem können Sie Antwortbeispiele untersuchen, die nach Leistung kategorisiert und sortiert sind.

Experiment View Detailed Analysis

Im individuellen Antwort-Tab können Sie jede Antwort im Detail inspizieren.

Experiment View Detailed Response

Experiments vergleichen

Wenn Sie mehrere Experiments haben, können Sie in der Dashboard-Ansicht der Benutzeroberfläche einen Vergleich starten. Dies ist besonders nützlich für den Vergleich von Antworten aus verschiedenen Prompts, die auf unterschiedlichen Prompt Templates basieren.

Experiment Comparison

Anschließend erhalten Sie eine detaillierte Statistik des Vergleichs der Experiments. Hier können Sie sehen, wie die Kriterien im Vergleich erfüllt wurden und wie die Prompts im Vergleich abgeschnitten haben.

Experiment Comparison Details

Sie können auch einen detaillierten Vergleichsbericht einsehen, der Folgendes zeigt:

  • Wie viele Antworten sich verbessert haben, verschlechtert haben oder den gleichen Score aber unterschiedliche Bewertungen haben
  • Eine detaillierte Auflistung der Bewertungen für diese Antworten
  • Eine Zusammenfassung, welche Kriterien am häufigsten nicht erfüllt wurden

Experiment Comparison Report

Experiments sind hervorragend geeignet für:

  • Vergleichende Analyse: Vergleichen Sie verschiedene Prompt Templates oder Ansätze direkt nebeneinander. Zum Beispiel können Sie verschiedene Versionen des gleichen Prompts testen, um die effektivste Formulierung zu finden.

  • Qualitätsevaluation: Verfolgen und analysieren Sie die Antwortqualität durch systematische Erfassung von Ratings. Dies hilft dabei, Muster in der Antwortqualität und Verbesserungsbereiche zu identifizieren.

  • Leistungsverfolgung: Berechnen und überwachen Sie wichtige Metriken über Antworten innerhalb eines Experiments. Dies ist besonders nützlich beim Testen verschiedener Konfigurationen oder Ansätze.

Experiments überwachen

Um die Performance von Experimenten über die Zeit zu überwachen, klicken Sie im Experiment Dashboard auf die Schaltfläche View Timeline.

Experiment Dashboard

Dies führt Sie zur Experiment Timeline, wo Sie die Scores aller Experimente im Zeitverlauf sehen können. Sie können die Experimente nach Datum, Prompt Template, Collection und Modellkonfiguration filtern. Wenn Sie mit der Maus über einen Datenpunkt halten, werden die entsprechenden Experiment-Informationen in einem Tooltip angezeigt. Durch Klicken auf einen Datenpunkt gelangen Sie zur detaillierten Experiment-Ansicht, die im Abschnitt Experiments anzeigen beschrieben ist.

Experiment Timeline

Experiments planen

Sie können Experimente auch so planen, dass sie regelmäßig ausgeführt werden. Dies ist besonders nützlich, wenn Sie Evaluierungen nach einem Zeitplan ohne manuelles Eingreifen durchführen möchten. Um ein Experiment zu planen, klicken Sie in der Experiment Timeline-Ansicht auf die Schaltfläche Schedule Run. Hier können Sie den Zeitplan konfigurieren.

Create Scheduled Run

Sie können Folgendes konfigurieren:

Häufigkeit:

  • Täglich: Einmal täglich zu einer bestimmten Zeit ausführen
  • Wöchentlich: An bestimmten Wochentagen zu einer bestimmten Zeit ausführen
  • Monatlich: An bestimmten Tagen des Monats zu einer bestimmten Zeit ausführen

Benachrichtigungseinstellungen:

  • E-Mail-Adressen für Benachrichtigungen
  • Benachrichtigungsschwellwert. Wenn der Durchschnittsscore eines Experiments unter diesen Schwellenwert fällt, werden Benachrichtigungen an die konfigurierten E-Mail-Adressen gesendet

Experiment-Parameter:

  • Prompt Template
  • Template Variables Collection
  • Modell für die Generierung von Antworten
  • Rating-Modus (schnell vs. detailliert)

Ihre geplanten Ausführungen werden im Bereich Scheduled Runs angezeigt. Hier haben Sie einen klaren Überblick über Ihre geplanten Ausführungen und die wichtigsten Einstellungen, wie zum Beispiel die Zeitplanung.

List Scheduled Runs

Durch Auswahl des Filter-Icons in einem Zeitplan werden nur die Ausführungen aus diesem Zeitplan angezeigt. Zusätzlich wird der konfigurierte Schwellenwert für den Durchschnittsscore der Experimente angezeigt. Dies ermöglicht es Ihnen, sich auf spezifische Experimente zu konzentrieren, was die Analyse der Leistung erleichtert.

Filter Scheduled Runs

Sie können auch eine bestehende geplante Ausführung modifizieren, wenn Sie auf das Bearbeiten-Icon klicken. Sie können Folgendes anpassen:

  • Ausführungshäufigkeit
  • Benachrichtigungsschwelle
  • Benachrichtigungs-E-Mails
  • Zeitplan deaktivieren

Edit Scheduled Run