Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm wird gezeigt, wie Sie Endbenutzerfeedback sammeln, Entwickleranmerkungen hinzufügen, Expertenüberprüfungssitzungen erstellen und dieses Feedback verwenden, um die Qualität Ihrer GenAI-App zu bewerten.
Was Sie erreichen werden
Am Ende dieses Lernprogramms werden Sie:
- Integrieren Sie eine GenAI-App mit MLflow-Nachverfolgung
- Sammeln von Endbenutzerfeedback, simuliert mithilfe des SDK in diesem Beispiel
- Interaktives Hinzufügen von Entwicklerfeedback über die Benutzeroberfläche
- Feedback zusammen mit Ihren Traces anzeigen
- Sammeln von Expertenfeedback durch Erstellen einer Kennzeichnungssitzung für strukturierte Expertenbewertung.
Einrichten der Umgebung
Installieren Sie die erforderlichen Pakete:
-
mlflow[databricks]: Verwenden Sie die neueste Version von MLflow, um weitere Features und Verbesserungen zu erhalten. -
openai: Diese App verwendet den OpenAI-API-Client, um von Databricks gehostete Modelle aufzurufen.
%pip install -q --upgrade "mlflow[databricks]>=3.1.0" openai
dbutils.library.restartPython()
Erstellen Sie ein MLflow-Experiment. Wenn Sie ein Databricks-Notizbuch verwenden, können Sie diesen Schritt überspringen und das Standard-Notizbuchexperiment verwenden. Folgen Sie andernfalls der Schnellstartanleitung der Umgebung , um das Experiment zu erstellen und eine Verbindung mit dem MLflow Tracking-Server herzustellen.
Schritt 1: Erstellen und Nachverfolgen einer einfachen App
Erstellen Sie zunächst eine einfache GenAI-App unter Verwendung eines LLM mit MLflow-Tracing. Die App verwendet die OpenAI-API, um einen von Databricks gehosteten Foundation Model-Endpunkt aufzurufen.
from databricks.sdk import WorkspaceClient
import mlflow
# Enable automatic tracing for the OpenAI client
mlflow.openai.autolog()
# Create an OpenAI client that is connected to Databricks-hosted LLMs.
w = WorkspaceClient()
client = w.serving_endpoints.get_open_ai_client()
# Create a RAG app with tracing
@mlflow.trace
def my_chatbot(user_question: str) -> str:
# Retrieve relevant context
context = retrieve_context(user_question)
# Generate response using LLM with retrieved context
response = client.chat.completions.create(
model="databricks-claude-3-7-sonnet", # If using OpenAI directly, use "gpt-4o" or "gpt-3.5-turbo"
messages=[
{"role": "system", "content": "You are a helpful assistant. Use the provided context to answer questions."},
{"role": "user", "content": f"Context: {context}\n\nQuestion: {user_question}"}
],
temperature=0.7,
max_tokens=150
)
return response.choices[0].message.content
@mlflow.trace(span_type="RETRIEVER")
def retrieve_context(query: str) -> str:
# Simulated retrieval. In production, this could search a vector database
if "mlflow" in query.lower():
return "MLflow is an open-source platform for managing the end-to-end machine learning lifecycle. It provides tools for experiment tracking, model packaging, and deployment."
return "General information about machine learning and data science."
# Run the app to generate a trace
response = my_chatbot("What is MLflow?")
print(f"Response: {response}")
# Get the trace ID for the next step
trace_id = mlflow.get_last_active_trace_id()
print(f"Trace ID: {trace_id}")
Response: MLflow is an open-source platform designed to manage the complete machine learning lifecycle. It provides tools and functionality for tracking experiments, packaging models, and deploying machine learning solutions. As a comprehensive platform, MLflow helps data scientists and machine learning engineers organize their work, compare results, and streamline the process of moving models from development to production.
Trace ID: tr-88989bb65dcb9bf49e0d03a3d5a302c9
Schritt 2: Sammeln von Endbenutzerfeedback
Wenn Benutzer mit Ihrer App interagieren, können sie Feedback über UI-Elemente wie Daumen nach oben/unten geben. Diese Schnellstartanleitung simuliert einen Endbenutzer, der negatives Feedback über das SDK direkt gibt.
from mlflow.entities.assessment import AssessmentSource, AssessmentSourceType
# Simulate end-user feedback from your app
# In production, this could be triggered when a user clicks thumbs down in your UI
mlflow.log_feedback(
trace_id=trace_id,
name="user_feedback",
value=False, # False for thumbs down - user is unsatisfied
rationale="Missing details about MLflow's key features like Projects and Model Registry",
source=AssessmentSource(
source_type=AssessmentSourceType.HUMAN,
source_id="enduser_123", # In production, this is the actual user ID
),
)
print("End-user feedback recorded!")
# In a real app, you could:
# 1. Return the trace_id with your response to the frontend
# 2. When user clicks thumbs up/down, call your backend API
# 3. Your backend calls mlflow.log_feedback() with the trace_id
End-user feedback recorded!
Schritt 3: Anzeigen von Feedback auf der Benutzeroberfläche
Starten Sie die MLflow-Benutzeroberfläche, um Ihre Spuren mit Feedback zu sehen:
- Navigieren Sie zu Ihrem MLflow-Experiment.
- Navigieren Sie zur Registerkarte "Protokolle ".
- Klicken Sie auf Ihren Trace.
- Das Dialogfeld mit den Trace-Einzelheiten wird angezeigt. Unter Beurteilungen auf der rechten Seite des Dialogs, die
user_feedbackzeigtfalseDies zeigt an, dass der Benutzer die Antwort mit dem Daumen nach unten markiert hat.
Schritt 4: Hinzufügen von Entwickleranmerkungen mithilfe der Benutzeroberfläche
Als Entwickler können Sie auch Ihr eigenes Feedback und Ihre Notizen direkt auf der Benutzeroberfläche hinzufügen:
- Klicken Sie auf der Registerkarte „Protokolle“ auf einen Trace, um ihn zu öffnen.
- Klicken Sie auf einen beliebigen Bereich (wählen Sie den Root-Bereich für Feedback auf Trace-Ebene).
- Klicken Sie auf der Registerkarte "Bewertungen " auf der rechten Seite auf " Neue Bewertung hinzufügen" , und geben Sie Folgendes ein:
-
Typ:
Feedback. -
Name:
accuracy_score. -
Wert:
.75. -
Rationale:
This answer includes the core elements of ML lifecycle management, experiment tracking, packaging, and deployment. However, it does not mention the model registry, project packaging, integration with Generative AI and LLMs, or unique features available in Databricks-managed MLflow, which are now considered essential to a complete description of the platform.
-
Typ:
- Klicken Sie auf "Erstellen".
Nachdem Sie die Seite aktualisiert haben, werden spalten für die neuen Bewertungen in der Protokolltabelle angezeigt.
Schritt 5: Trace zur Überprüfung durch Experten senden
Das negative Endbenutzerfeedback aus Schritt 2 signalisiert ein potenzielles Qualitätsproblem, aber nur Domänenexperten können bestätigen, ob es wirklich ein Problem gibt und die richtige Antwort liefern. Erstellen Sie eine Etikettierungssitzung, um qualifiziertes Expertenfeedback zu erhalten.
from mlflow.genai.label_schemas import create_label_schema, InputCategorical, InputText
from mlflow.genai.labeling import create_labeling_session
# Define what feedback to collect
accuracy_schema = create_label_schema(
name="response_accuracy",
type="feedback",
title="Is the response factually accurate?",
input=InputCategorical(options=["Accurate", "Partially Accurate", "Inaccurate"]),
overwrite=True
)
ideal_response_schema = create_label_schema(
name="expected_response",
type="expectation",
title="What would be the ideal response?",
input=InputText(),
overwrite=True
)
# Create a labeling session
labeling_session = create_labeling_session(
name="quickstart_review",
label_schemas=[accuracy_schema.name, ideal_response_schema.name],
)
# Add your trace to the session
# Get the most recent trace from the current experiment
traces = mlflow.search_traces(
max_results=1 # Gets the most recent trace
)
labeling_session.add_traces(traces)
# Share with reviewers
print(f"Trace sent for review!")
print(f"Share this link with reviewers: {labeling_session.url}")
Experten-Reviewer können jetzt Folgendes tun:
Öffnen Sie die URL der Überprüfungs-App.
Sehen Sie Ihren Verlauf mit der Frage und Antwort (einschließlich aller Rückmeldungen von Endbenutzern).
Bewerten Sie, ob die Antwort tatsächlich korrekt ist.
Geben Sie in
expected_responsedie richtige Antwort auf die Frage "Was ist MLflow?"MLflow is an open-source platform for managing the machine learning lifecycle, including experiment tracking, model registry, packaging, deployment, and evaluation. It supports classical ML, deep learning, and generative AI workflows. On Databricks, MLflow provides managed, secure, and scalable integration for easy collaboration and governanceÜbermitteln Sie ihre Expertenbewertungen als Basiswahrheit.
Sie können auch die MLflow 3-Benutzeroberfläche verwenden, um eine Labeling-Session wie folgt zu erstellen:
- Klicken Sie auf der Seite "Experiment" auf die Registerkarte "Beschriftung".
- Verwenden Sie links die Registerkarten "Sitzungen " und "Schemas", um ein neues Bezeichnungsschema hinzuzufügen und eine neue Sitzung zu erstellen.
Schritt 6: Verwenden von Feedback zum Auswerten Ihrer App
Nachdem Experten Feedback gegeben haben, verwenden Sie ihre expected_response Bezeichnungen, um Ihre App mit dem Scorer von Correctness MLflow auszuwerten:
In diesem Beispiel werden die Spuren direkt zur Auswertung verwendet. Datenbausteine empfiehlt, in Ihrer Anwendung beschriftete Spuren zu einem MLflow-Evaluierungsdatensatz hinzuzufügen, der Versionsverfolgung und Abstammung ermöglicht. Erfahren Sie mehr über das Erstellen von Auswertungsdatensätzen.
from mlflow.genai.scorers import Correctness
# Get traces from the labeling session
labeled_traces = mlflow.search_traces(
run_id=labeling_session.mlflow_run_id, # Labeling Sessions are MLflow Runs
)
# Evaluate your app against expert expectations
eval_results = mlflow.genai.evaluate(
data=labeled_traces,
predict_fn=my_chatbot, # The app we created in Step 1
scorers=[Correctness()] # Compares outputs to expected_response
)
Der Korrektheits-Torschütze vergleicht die Ausgaben Ihrer Anwendung mit den von Experten bereitgestellten Ergebnissen. expected_responseSo erhalten Sie ein quantitatives Feedback über die Übereinstimmung mit den Erwartungen der Experten.
Nächste Schritte
Erfahren Sie mehr über das Sammeln verschiedener Arten von menschlichem Feedback:
- Bezeichnungen während der Entwicklung - Lernen Sie fortgeschrittene Annotationstechniken für die Entwicklung
- Stimmungscheck mit Domänenexperten – Testen Sie Ihre App interaktiv mit Experten
- Sammeln von Feedback zu Domänenexperten – Einrichten systematischer Überprüfungsprozesse für Experten