Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial mostra como recolher feedback dos utilizadores finais, adicionar anotações para programadores, criar sessões de revisão especializada e usar esse feedback para avaliar a qualidade da sua aplicação GenAI.
O que você vai conseguir
No final deste tutorial, você irá:
- Instrumente um aplicativo GenAI com rastreamento MLflow
- Coletar comentários do usuário final, simulados usando o SDK neste exemplo
- Adicione comentários do desenvolvedor interativamente por meio da interface do usuário
- Veja os comentários juntamente com os seus rastreios
- Colete feedback de especialistas criando uma sessão de rotulagem para revisão estruturada de especialistas
Configuração do ambiente
Instalar pacotes necessários:
-
mlflow[databricks]: Use a versão mais recente do MLflow para obter mais recursos e melhorias. -
openai: Este aplicativo usará o cliente OpenAI API para chamar modelos hospedados pelo Databricks.
%pip install -q --upgrade "mlflow[databricks]>=3.1.0" openai
dbutils.library.restartPython()
Crie um experimento MLflow. Se estiver a utilizar um bloco de notas Databricks, pode ignorar este passo e utilizar a experiência predefinida do bloco de notas. Caso contrário, siga o início rápido de configuração do ambiente para criar o experimento e conectar-se ao servidor MLflow Tracking.
Etapa 1: Criar e rastrear um aplicativo simples
Primeiro, crie uma aplicação GenAI simples usando um LLM com rastreamento MLflow. A aplicação utiliza a API OpenAI para chamar um endpoint Foundation Model alojado no Databricks.
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
Etapa 2: coletar feedback do usuário final
Quando os usuários interagem com seu aplicativo, eles podem fornecer feedback por meio de elementos da interface do usuário, como botões de polegar para cima/baixo. Este início rápido simula um utilizador final a dar feedback negativo usando diretamente o SDK.
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!
Etapa 3: Exibir comentários na interface do usuário
Inicie a interface do usuário do MLflow para ver seus rastreamentos com comentários:
- Navegue até o experimento MLflow.
- Navegue até ao separador Logs.
- Clique no seu rastreio.
- A caixa de diálogo de detalhes do rastreamento é exibida. Em Avaliações , no lado direito da caixa de diálogo, o
user_feedbackmostrafalse, indicando que o usuário marcou a resposta com o polegar para baixo.
Etapa 4: Adicionar anotações de desenvolvedor usando a interface do usuário
Como desenvolvedor, você também pode adicionar seus próprios comentários e anotações diretamente na interface do usuário:
- Na guia Logs, clique em um traço para abri-lo.
- Clique em qualquer intervalo (escolha o intervalo raiz para feedback ao nível de rastreamento).
- Na guia Avaliações à direita, clique em Adicionar nova avaliação e preencha o seguinte:
-
Tipo:
Feedback. -
Nome:
accuracy_score. -
Valor:
.75. -
Justificação:
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.
-
Tipo:
- Clique em Criar.
Depois de atualizar a página, as colunas para as novas avaliações aparecem na tabela Logs.
Etapa 5: Enviar rastreamento para revisão de especialistas
O feedback negativo do usuário final da Etapa 2 sinaliza um possível problema de qualidade, mas apenas especialistas em domínio podem confirmar se há realmente um problema e fornecer a resposta correta. Crie uma sessão de rotulagem para obter feedback de especialistas autorizados:
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}")
Os revisores especializados agora podem fazer o seguinte:
Abra o URL do aplicativo de revisão.
Veja o seu rastreio com a pergunta e a resposta (incluindo qualquer feedback do utilizador final).
Avalie se a resposta é realmente precisa.
Forneça a resposta correta em
expected_responsepara a pergunta "O que é 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 governanceApresentar as suas avaliações periciais como verdade fundamental.
Você também pode usar a interface do usuário MLflow 3 para criar uma sessão de rotulagem, da seguinte maneira:
- Na página Experimento, clique na guia Rotulagem .
- À esquerda, use as guias Sessões e Esquemas para adicionar um novo esquema de rótulo e criar uma nova sessão.
Etapa 6: usar comentários para avaliar seu aplicativo
Depois dos especialistas fornecerem o feedback, use as suas expected_response etiquetas para avaliar a sua aplicação com o avaliador do Correctness MLflow.
Este exemplo usa diretamente os traços para avaliação. Na sua aplicação, a Databricks recomenda adicionar rastos etiquetados a um conjunto de dados de avaliação do MLflow, que fornece controlo de versão e proveniência. Aprenda a construir conjuntos de dados de avaliação.
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
)
O pontuador de correção compara as saídas do seu aplicativo com as fornecidas expected_responsepor especialistas, fornecendo feedback quantitativo sobre o alinhamento com as expectativas dos especialistas.
Próximos passos
Saiba mais detalhes sobre como coletar diferentes tipos de feedback humano:
- Rótulo durante o desenvolvimento - Aprenda técnicas avançadas de anotação para desenvolvimento
- Vibe check with domain experts - Teste seu aplicativo interativamente com especialistas
- Coletar feedback de especialistas do domínio - Configure processos sistemáticos de revisão de especialistas