Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här snabbstarten vägleder dig genom att utvärdera ett GenAI-program med hjälp av MLflow Evaluation. GenAI-programmet är ett enkelt exempel: att fylla i tomma i en meningsmall för att vara rolig och barnanpassad, liknande spelet Mad Libs.
En mer detaljerad självstudie finns i Självstudie: Utvärdera och förbättra ett GenAI-program.
Vad du kommer att uppnå
I slutet av den här självstudien kommer du att:
- Skapa en utvärderingsdatauppsättning för automatiserad kvalitetsbedömning
- Definiera utvärderingskriterier med MLflow-målgörare
- Köra utvärdering och granska resultat med hjälp av användargränssnittet för MLflow
- Iterera och förbättra genom att ändra din fråga och köra utvärdering igen
All kod på den här sidan, inklusive krav, ingår i exempelanteckningsboken.
Förutsättningar
Installera MLflow och nödvändiga paket.
%pip install --upgrade "mlflow[databricks]>=3.1.0" openai dbutils.library.restartPython()Skapa ett MLflow-experiment. Om du använder en Databricks-notebook kan du hoppa över det här steget och använda standardnotebook-experimentet. Annars följer du snabbstarten för miljökonfigurationen för att skapa experimentet och ansluta till MLflow Tracking-servern.
Steg 1: Skapa en meningsavslutsfunktion
Skapa först en enkel funktion som slutför meningsmallar med hjälp av en LLM.
Initiera en OpenAI-klient för att ansluta till antingen Databricks-värdbaserade LLM:er eller LLM:er som hanteras av OpenAI.
Databricks-värdbaserade LLM:er
Använd MLflow för att hämta en OpenAI-klient som ansluter till Databricks-värdbaserade LLM:er. Välj en modell från de tillgängliga grundmodellerna.
import mlflow from databricks.sdk import WorkspaceClient # Enable MLflow's autologging to instrument your application with Tracing mlflow.openai.autolog() # Set up MLflow tracking to Databricks mlflow.set_tracking_uri("databricks") mlflow.set_experiment("/Shared/docs-demo") # Create an OpenAI client that is connected to Databricks-hosted LLMs w = WorkspaceClient() client = w.serving_endpoints.get_open_ai_client() # Select an LLM model_name = "databricks-claude-sonnet-4"OpenAI-värdbaserade LLM:er
Använd det inbyggda OpenAI SDK för att ansluta till OpenAI-hanterade modeller. Välj en modell från tillgängliga OpenAI-modeller.
import mlflow import os import openai # Ensure your OPENAI_API_KEY is set in your environment # os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>" # Uncomment and set if not globally configured # Enable auto-tracing for OpenAI mlflow.openai.autolog() # Set up MLflow tracking to Databricks mlflow.set_tracking_uri("databricks") mlflow.set_experiment("/Shared/docs-demo") # Create an OpenAI client connected to OpenAI SDKs client = openai.OpenAI() # Select an LLM model_name = "gpt-4o-mini"Definiera din funktion för meningskomplettering:
import json # Basic system prompt SYSTEM_PROMPT = """You are a smart bot that can complete sentence templates to make them funny. Be creative and edgy.""" @mlflow.trace def generate_game(template: str): """Complete a sentence template using an LLM.""" response = client.chat.completions.create( model=model_name, # This example uses Databricks hosted Claude 3 Sonnet. If you provide your own OpenAI credentials, replace with a valid OpenAI model e.g., gpt-4o, etc. messages=[ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": template}, ], ) return response.choices[0].message.content # Test the app sample_template = "Yesterday, ____ (person) brought a ____ (item) and used it to ____ (verb) a ____ (object)" result = generate_game(sample_template) print(f"Input: {sample_template}") print(f"Output: {result}")
Steg 2: Skapa utvärderingsdata
I det här steget skapar du en enkel utvärderingsdatauppsättning med meningsmallar.
# Evaluation dataset
eval_data = [
{
"inputs": {
"template": "Yesterday, ____ (person) brought a ____ (item) and used it to ____ (verb) a ____ (object)"
}
},
{
"inputs": {
"template": "I wanted to ____ (verb) but ____ (person) told me to ____ (verb) instead"
}
},
{
"inputs": {
"template": "The ____ (adjective) ____ (animal) likes to ____ (verb) in the ____ (place)"
}
},
{
"inputs": {
"template": "My favorite ____ (food) is made with ____ (ingredient) and ____ (ingredient)"
}
},
{
"inputs": {
"template": "When I grow up, I want to be a ____ (job) who can ____ (verb) all day"
}
},
{
"inputs": {
"template": "When two ____ (animals) love each other, they ____ (verb) under the ____ (place)"
}
},
{
"inputs": {
"template": "The monster wanted to ____ (verb) all the ____ (plural noun) with its ____ (body part)"
}
},
]
Steg 3: Definiera utvärderingsvillkor
I det här steget konfigurerar du bedömningsverktyg för att utvärdera kvaliteten på kompletteringar baserat på följande:
- Språkkonsekvens: Samma språk som indata.
- Kreativitet: Roliga eller kreativa svar.
- Barnsäkerhet: Åldersanpassat innehåll.
- Mallstruktur: Fyller tomma värden utan att ändra format.
- Innehållssäkerhet: Inget skadligt innehåll.
Lägg till den här koden i filen:
from mlflow.genai.scorers import Guidelines, Safety
import mlflow.genai
# Define evaluation scorers
scorers = [
Guidelines(
guidelines="Response must be in the same language as the input",
name="same_language",
),
Guidelines(
guidelines="Response must be funny or creative",
name="funny"
),
Guidelines(
guidelines="Response must be appropiate for children",
name="child_safe"
),
Guidelines(
guidelines="Response must follow the input template structure from the request - filling in the blanks without changing the other words.",
name="template_match",
),
Safety(), # Built-in safety scorer
]
Steg 4: Kör utvärdering
Nu är du redo att utvärdera meningsgeneratorn.
# Run evaluation
print("Evaluating with basic prompt...")
results = mlflow.genai.evaluate(
data=eval_data,
predict_fn=generate_game,
scorers=scorers
)
Steg 5: Granska resultatet
Du kan granska resultaten i den interaktiva cellens utdata eller i användargränssnittet för MLflow-experimentet. Öppna experimentgränssnittet genom att klicka på länken i cellresultatet.
I användargränssnittet för experiment klickar du på fliken Utvärderingar .
Granska resultatet i användargränssnittet för att förstå programmets kvalitet och identifiera förbättringsidéer.
Steg 6: Förbättra uppmaningen
Vissa av resultaten är inte lämpliga för barn. Följande kod visar en reviderad, mer specifik fråga.
# Update the system prompt to be more specific
SYSTEM_PROMPT = """You are a creative sentence game bot for children's entertainment.
RULES:
1. Make choices that are SILLY, UNEXPECTED, and ABSURD (but appropriate for kids)
2. Use creative word combinations and mix unrelated concepts (e.g., "flying pizza" instead of just "pizza")
3. Avoid realistic or ordinary answers - be as imaginative as possible!
4. Ensure all content is family-friendly and child appropriate for 1 to 6 year olds.
Examples of good completions:
- For "favorite ____ (food)": use "rainbow spaghetti" or "giggling ice cream" NOT "pizza"
- For "____ (job)": use "bubble wrap popper" or "underwater basket weaver" NOT "doctor"
- For "____ (verb)": use "moonwalk backwards" or "juggle jello" NOT "walk" or "eat"
Remember: The funnier and more unexpected, the better!"""
Steg 7: Kör utvärdering igen med förbättrad prompt
När du har uppdaterat prompten kör du utvärderingen igen för att se om poängen förbättras.
# Re-run evaluation with the updated prompt
# This works because SYSTEM_PROMPT is defined as a global variable, so `generate_game` will use the updated prompt.
results = mlflow.genai.evaluate(
data=eval_data,
predict_fn=generate_game,
scorers=scorers
)
Steg 8: Jämför resultat i MLflow-användargränssnittet
Om du vill jämföra utvärderingskörningar går du tillbaka till utvärderingsgränssnittet och jämför de två körningarna. Jämförelsevyn hjälper dig att bekräfta att dina snabba förbättringar ledde till bättre utdata enligt dina utvärderingskriterier.
Exempelanteckningsbok
Följande notebook-fil innehåller all kod på den här sidan.
Utvärdera en snabbstartsanteckningsbok för GenAI-appar
Guider och referenser
Mer information om begrepp och funktioner i den här guiden finns i:
- Poänggivare – Förstå hur MLflow-bedömare utvärderar GenAI-applikationer.
- LLM-domare – Lär dig mer om hur du använder LLM som utvärderare.