Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве показано, как собирать отзывы конечных пользователей, добавлять заметки разработчиков, создавать сеансы проверки экспертов и использовать эти отзывы для оценки качества приложения GenAI.
В ней рассматриваются следующие этапы жизненного цикла обратной связи человека:
- Оснащение приложения GenAI с использованием трассировки MLflow.
- Сбор отзывов конечных пользователей (в этом примере отзыв конечных пользователей имитируется с помощью пакета SDK).
- Интерактивное добавление отзывов разработчика через пользовательский интерфейс.
- Просмотрите обратную связь вместе с трассировками.
- Создайте сеанс маркировки для структурированной проверки экспертов.
- Используйте отзывы экспертов для оценки качества приложения.
Весь код на этой странице включен в пример записной книжки.
Предпосылки
Установка MLflow и обязательных пакетов
pip install --upgrade "mlflow[databricks]>=3.1.0" openai "databricks-connect>=16.1"
Создайте эксперимент MLflow, выполнив руководство по быстрому началу настройки среды.
Шаг 1. Создание и трассировка простого приложения
Сначала создайте простое приложение GenAI с помощью LLM с трассировкой MLflow.
Инициализируйте клиент OpenAI для подключения к LLM, размещенным в Databricks или OpenAI.
Размещенные в Databricks LLM
Используйте MLflow, чтобы получить клиента OpenAI, который подключается к LLM, размещенным на платформе Databricks. Выберите модель из доступных базовых моделей.
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 LLMs
Используйте собственный пакет SDK OpenAI для подключения к моделям, размещенным в OpenAI. Выберите модель из доступных моделей OpenAI.
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"
Определите приложение чат-бота:
# 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}")
Шаг 2. Сбор отзывов конечных пользователей
Когда пользователи взаимодействуют с приложением, они могут предоставлять отзывы с помощью элементов пользовательского интерфейса, таких как кнопки вверх и вниз. В этом кратком руководстве имитируется конечный пользователь, предоставляющий отрицательные отзывы с помощью пакета SDK напрямую.
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
Шаг 3. Просмотр отзывов в пользовательском интерфейсе
Запустите пользовательский интерфейс MLflow, чтобы просмотреть трассировки с отзывом:
- Перейдите к эксперименту MLflow.
- Перейдите на вкладку "Трассировки ".
- Щелкните по вашей трассировке.
- Появится диалоговое окно сведений о трассировке. В разделе "Оценки" справа от диалогового окна
user_feedback
отображаетсяfalse
, указывающее, что пользователь отметил ответ как неудовлетворительный.
Шаг 4. Добавление заметок разработчика через пользовательский интерфейс
В качестве разработчика вы также можете добавить собственные отзывы и заметки непосредственно в пользовательском интерфейсе:
- Во вкладке "Трейс" щелкните на трейс для его открытия.
- Нажмите на любой интервал (выберите корневой интервал для обратной связи уровня трассировки).
- На вкладке "Оценки" справа нажмите кнопку "Добавить новую оценку " и введите следующую команду:
-
Тип:
Feedback
илиExpectation
. - Имя: например, "accuracy_score".
- Значение: оценка.
- Обоснование: Необязательное объяснение.
-
Тип:
- Нажмите кнопку Создать.
После обновления страницы в таблице Traces отображаются столбцы для новых оценок.
Шаг 5. Отправка трассировки для проверки экспертов
Отрицательные отзывы конечных пользователей на шаге 2 сигнализирует о потенциальной проблеме качества, но только эксперты домена могут подтвердить, действительно ли проблема и предоставить правильный ответ. Создайте сеанс маркировки для получения достоверных отзывов экспертов:
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}")
Теперь специалисты-рецензенты могут выполнять следующие действия:
- Откройте URL-адрес приложения для отзывов.
- Просмотрите трассировку с вопросом и ответом (включая отзывы пользователей).
- Оцените, является ли ответ фактически точным.
- При необходимости укажите правильный ответ
expected_response
. - Отправьте свои экспертные заключения в качестве эталонных данных.
Вы также можете использовать пользовательский интерфейс MLflow 3 для создания сеанса маркировки следующим образом:
- На странице «Эксперимент» щелкните вкладку «Маркировка».
- Слева используйте вкладки "Сеансы и схемы" , чтобы добавить новую схему меток и создать новый сеанс.
Шаг 6. Использование отзывов для оценки приложения
После предоставления экспертами отзывов используйте их expected_response
метки для оценки вашего приложения с помощью инструмента оценки корректности MLflow.
Замечание
В этом примере непосредственно используются следы для оценки. В приложении Databricks рекомендует добавлять помеченные трассировки в набор данных оценки MLflow, который обеспечивает отслеживание версий и происхождение. См. руководство по созданию набора данных для оценки.
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
)
Оценщик правильности сравнивает выходные данные вашего приложения с данными от эксперта expected_response
, предоставляя вам количественную обратную связь о соответствии ожиданиям экспертов.
пример записной книжки
Следующая записная книжка содержит весь код на этой странице.
Тетрадь быстрого запуска по обратной связи с пользователями
Дальнейшие шаги
Продолжайте свое путешествие с помощью этих рекомендуемых действий и руководств.
- Создание наборов данных оценки. Создание комплексных тестовых наборов данных из рабочей обратной связи
- Метка во время разработки — узнайте о расширенных методах аннотирования для разработки
- Сбор отзывов экспертов по домену — настройка системных процессов проверки экспертов
Справочные руководства
Дополнительные сведения о концепциях и функциях, упомянутых в этом кратком руководстве, см. в следующих статьях:
- Обзор приложения. Общие сведения об интерфейсе обратной связи MLflow
- Сеансы маркировки . Узнайте, как работают сеансы экспертной проверки
- Схемы маркировки — исследование структуры отзывов и типов