Pular para o conteúdo principal

Guia de início rápido do feedback humano

Este início rápido mostra como coletar feedback do usuário final, adicionar anotação do desenvolvedor, criar sessões de revisão de especialistas e usar esse feedback para avaliar a qualidade do seu aplicativo GenAI.

Ele abrange as seguintes etapas do ciclo de vida do feedback humano:

  • Instrumentar um aplicativo GenAI com rastreamento de MLflow.
  • Coletar feedback do usuário final (neste exemplo, o feedback do usuário final é simulado usando o SDK).
  • Adicione feedback do desenvolvedor de forma interativa por meio da interface do usuário.
  • visualizar o feedback junto com seus traços.
  • Criar uma sessão de rótulo para revisão estruturada de especialistas.
  • Use o feedback de especialistas para avaliar a qualidade do aplicativo.

Todo o código desta página está incluído no Notebook de exemplo.

Pré-requisitos

  1. Instale o site MLflow e o pacote necessário

    Bash
    pip install --upgrade "mlflow[databricks]>=3.1.0" openai "databricks-connect>=16.1"
  2. Crie um experimento MLflow seguindo o início rápido de configuração do ambiente.

Etapa 1: criar e rastrear um aplicativo simples

Primeiro, crie um aplicativo GenAI simples usando um LLM com rastreamento de MLflow.

  1. Inicialize um cliente OpenAI para se conectar a LLMs hospedados pela Databricks ou LLMs hospedados pela OpenAI.

Use o MLflow para obter um cliente OpenAI que se conecta aos LLMs hospedados pela Databricks. Selecione um modelo dentre os modelos de base disponíveis.

Python
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"
  1. Defina seu aplicativo de chatbot:

    Python
    # 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=model_name, # 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 would 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}")

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, como botões de polegar para cima/para baixo. Este início rápido simula um usuário final dando feedback negativo usando o SDK diretamente.

Python
import mlflow
from mlflow.entities.assessment import AssessmentSource, AssessmentSourceType

# Simulate end-user feedback from your app
# In production, this would 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", # Would be actual user ID in production
),
)

print("End-user feedback recorded!")

# In a real app, you would:
# 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 would then call mlflow.log_feedback() with the trace_id

Etapa 3: visualizar o feedback na UI

Inicie a interface de usuário do MLflow para ver seus traços com feedback:

  1. Navegue até seu experimento MLflow.
  2. Navegue até o site Traces tab.
  3. Clique no seu rastreamento.
  4. A caixa de diálogo de detalhes do rastreamento é exibida. Em Avaliações , no lado direito da caixa de diálogo, o user_feedback mostra false, indicando que o usuário marcou a resposta com o polegar para baixo.

Avaliação humana

Etapa 4: Adicionar anotação de desenvolvedor por meio da UI

Como desenvolvedor, você também pode adicionar seus próprios comentários e notas diretamente na interface do usuário:

  1. Em Traces (Rastreamentos ) tab, clique em um rastreamento para abri-lo.

  2. Clique em qualquer extensão (escolha a extensão raiz para feedback em nível de rastreamento).

  3. Em Assessments (Avaliações ) tab, à direita, clique em Add new assessment (Adicionar nova avaliação ) e preencha os dados a seguir:

    • Digite : Feedback ou Expectation.
    • Nome : por exemplo, " accuracy_score ".
    • Valor : Sua avaliação.
    • Justificativa : Explicação opcional.
  4. Clique em Criar .

Depois que o senhor acessar refresh a página, as colunas para as novas avaliações aparecerão na tabela Traces.

Etapa 5: enviar rastreamento para análise de um especialista

O feedback negativo do usuário final da Etapa 2 indica um possível problema de qualidade, mas somente especialistas do domínio podem confirmar se realmente há um problema e fornecer a resposta correta. Crie uma sessão de rótulo para obter feedback de especialistas autorizados:

Python
import mlflow
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}")

Use o aplicativo de avaliaç�ão

Os revisores especialistas agora podem fazer o seguinte:

  1. Abra o URL do aplicativo de avaliação.
  2. Veja seu rastreamento com a pergunta e a resposta (incluindo qualquer feedback do usuário final).
  3. Avalie se a resposta é realmente precisa.
  4. Forneça a resposta correta em expected_response, se necessário.
  5. Envie suas avaliações de especialistas como verdade fundamental.

O senhor também pode usar a interface de usuário do MLflow 3 para criar uma sessão de rótulo, como segue:

  1. Na página do experimento, clique no rótulo tab.
  2. À esquerda, use a guia Sessions and Schemas para adicionar um novo esquema de rótulo e criar uma nova sessão.

Como criar uma sessão de rótulo na interface do usuário.

Etapa 6: use o feedback para avaliar seu aplicativo

Depois que os especialistas fornecerem feedback, use o expected_response rótulo deles para avaliar seu aplicativo com o Corretor de Correção do MLflow:

nota

Este exemplo usa diretamente os rastreamentos para avaliação. Em seu aplicativo, o site Databricks recomenda adicionar traços de rótulo a um conjunto de dados de avaliação MLflow que fornece acompanhamento e linhagem de versão. Consulte o guia de criação de sets de avaliação.

Python
import mlflow
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 marcador de correção compara os resultados do seu aplicativo com o expected_response fornecido por especialistas, fornecendo feedback quantitativo sobre o alinhamento com as expectativas dos especialistas.

Avaliação humana: respostas esperadas

Exemplo de notebook

O Notebook a seguir inclui todo o código desta página.

Caderno de início rápido de feedback humano

Open notebook in new tab

Próximas etapas

Continue sua jornada com estas ações recomendadas e o tutorial.

Guia de referência

Para obter mais detalhes sobre os conceitos e recursos mencionados neste início rápido, consulte o seguinte: