Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как оценка агента оценивает качество, стоимость и задержку приложения ИИ и предоставляет аналитические сведения для улучшения качества и оптимизации затрат и задержки. В ней рассматриваются следующие компоненты:
- Как судьи LLM оценивают качество.
- Как оценивается стоимость и задержка.
- Как метрики агрегируются на уровне запуска MLflow для качества, затрат и задержки.
Справочные сведения о каждом из встроенных судей LLM см. в разделе "Встроенные судьи ИИ".
Как качество оценивается судьями LLM
Оценка агентов оценивает качество с помощью судей LLM в два этапа.
- Судьи LLM оценивают конкретные аспекты качества (например, правильность и обоснованность) в каждой строке. Дополнительные сведения см. в шаге 1. Судьи LLM оценивают качество каждой строки.
- Оценка работы агентов объединяет оценки отдельных экспертов в общую оценку прохождения или сбоя и основную причину неисправностей. Дополнительные сведения см. в шаге 2. Объединение оценок судьи LLM для выявления первопричины проблем качества.
Для получения информации о доверии и безопасности судей LLM см. Сведения о моделях, управляющих судьями LLM.
Заметка
Для многоступенчатых разговоров судьи LLM оценивают только последнюю запись в беседе.
Шаг 1. Судьи LLM оценивают качество каждой строки
Для каждой входной строки оценка агента использует набор судей LLM для оценки различных аспектов качества выходных данных агента. Каждый судья создает оценку "да" или "нет" и письменное обоснование для этой оценки, как показано в следующем примере:
Дополнительные сведения об используемых судьях LLM см. в разделе "Встроенные судьи ИИ".
Шаг 2: Объедините оценки судей LLM, чтобы выявить коренную причину проблем качества.
После запуска систем судей LLM, оценка агента анализирует их результаты, чтобы оценить общее качество и определить оценку качества на основе коллективных оценок. Если общее качество не соответствует требованиям, оценка агента определяет, какая конкретная модель LLM вызвала сбой и предлагает рекомендуемые исправления.
Данные отображаются в пользовательском интерфейсе MLflow, а также доступны из запуска MLflow в кадре данных, возвращаемом вызовом mlflow.evaluate(...)
. Ознакомьтесь с результатами оценки, чтобы узнать, как получить доступ к DataFrame.
На следующем снимке экрана показан пример сводного анализа в пользовательском интерфейсе:
Нажмите на запрос, чтобы просмотреть сведения:
встроенные ИИ судьи
Дополнительные сведения о встроенных судьях ИИ, предоставляемых системой оценки Mosaic AI Agent, см. в разделе .
На следующих снимках экрана показаны примеры отображения этих судей в пользовательском интерфейсе:
Как определяется первопричина
Если все судьи одобряют, качество считается pass
. Если какой-либо судья не справился, причиной считается первый судья, который не справился в порядке, указанном в списке ниже. Это упорядочивание используется, так как оценки судьи часто коррелируются в причинно-следственном порядке. Например, если context_sufficiency
оценивается, что средство извлечения не извлекло правильные фрагменты или документы для входного запроса, то, скорее всего, генератор не сможет синтезировать хороший ответ и, следовательно correctness
, завершится ошибкой.
Если эталонные данные предоставлены как входные данные, используется следующий порядок:
context_sufficiency
groundedness
correctness
safety
-
guideline_adherence
(если предоставляютсяguidelines
илиglobal_guidelines
) - Любой судья LLM, определяемый клиентом
Если истинные данные не предоставлены в качестве исходных данных, используется следующий порядок:
-
chunk_relevance
- Есть ли по крайней мере 1 релевантный блок? groundedness
relevant_to_query
safety
-
guideline_adherence
(если предоставляютсяguidelines
илиglobal_guidelines
) - Любой судья LLM, определяемый клиентом
Как Databricks поддерживает и улучшает точность системы оценки LLM
Databricks посвящен повышению качества наших судей LLM. Качество оценивается путем измерения того, насколько хорошо судья LLM согласен с человеческими оценщиками, используя следующие показатели.
- Увеличил Каппа Коэна (мера межэкспертного согласия).
- Повышенная точность (процент прогнозируемых меток, соответствующих меткам, заданным человеком).
- Повышена оценка F1.
- Снижена ложноположительный показатель.
- Снижение ложно отрицательной частоты.
Чтобы измерить эти метрики, Databricks использует разнообразные, сложные примеры из академических и частных наборов данных, которые являются представителями клиентских наборов данных для оценки и улучшения судей по отношению к подходам судьи LLM, обеспечивая непрерывное улучшение и высокую точность.
Дополнительные сведения о том, как Databricks измеряет и непрерывно улучшает качество судей, см. в разделе Databricks объявляет значительные улучшения встроенных судей LLM в оценке агента.
вызов судей с помощью пакета SDK для Python
Пакет SDK databricks-agents включает API для непосредственного вызова судей на входные данные пользователей. Эти API можно использовать для быстрого и простого эксперимента, чтобы узнать, как работают судьи.
Выполните следующий код, чтобы установить databricks-agents
пакет и перезапустить ядро Python:
%pip install databricks-agents -U
dbutils.library.restartPython()
Затем вы можете запустить следующий код в записной книжке и изменить его по мере необходимости, чтобы попробовать различные судьи на собственных входных данных.
from databricks.agents.evals import judges
SAMPLE_REQUEST = "What is MLflow?"
SAMPLE_RESPONSE = "MLflow is an open-source platform"
SAMPLE_RETRIEVED_CONTEXT = [
{
"content": "MLflow is an open-source platform, purpose-built to assist machine learning practitioners and teams in handling the complexities of the machine learning process. MLflow focuses on the full lifecycle for machine learning projects, ensuring that each phase is manageable, traceable, and reproducible."
}
]
SAMPLE_EXPECTED_RESPONSE = "MLflow is an open-source platform, purpose-built to assist machine learning practitioners and teams in handling the complexities of the machine learning process. MLflow focuses on the full lifecycle for machine learning projects, ensuring that each phase is manageable, traceable, and reproducible."
# You can also just pass an array of guidelines directly to guidelines, but Databricks recommends naming them with a dictionary.
SAMPLE_GUIDELINES = {
"english": ["The response must be in English", "The retrieved context must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
SAMPLE_GUIDELINES_CONTEXT = {
"retrieved_context": str(SAMPLE_RETRIEVED_CONTEXT)
}
# For chunk_relevance, the required inputs are `request`, `response` and `retrieved_context`.
judges.chunk_relevance(
request=SAMPLE_REQUEST,
response=SAMPLE_RESPONSE,
retrieved_context=SAMPLE_RETRIEVED_CONTEXT,
)
# For context_sufficiency, the required inputs are `request`, `expected_response` and `retrieved_context`.
judges.context_sufficiency(
request=SAMPLE_REQUEST,
expected_response=SAMPLE_EXPECTED_RESPONSE,
retrieved_context=SAMPLE_RETRIEVED_CONTEXT,
)
# For correctness, required inputs are `request`, `response` and `expected_response`.
judges.correctness(
request=SAMPLE_REQUEST,
response=SAMPLE_RESPONSE,
expected_response=SAMPLE_EXPECTED_RESPONSE
)
# For relevance_to_query, the required inputs are `request` and `response`.
judges.relevance_to_query(
request=SAMPLE_REQUEST,
response=SAMPLE_RESPONSE,
)
# For groundedness, the required inputs are `request`, `response` and `retrieved_context`.
judges.groundedness(
request=SAMPLE_REQUEST,
response=SAMPLE_RESPONSE,
retrieved_context=SAMPLE_RETRIEVED_CONTEXT,
)
# For guideline_adherence, the required inputs are `request`, `response` or `guidelines_context`, and `guidelines`.
judges.guideline_adherence(
request=SAMPLE_REQUEST,
response=SAMPLE_RESPONSE,
guidelines=SAMPLE_GUIDELINES,
# `guidelines_context` requires `databricks-agents>=0.20.0`. It can be specified with or in place of the response.
guidelines_context=SAMPLE_GUIDELINES_CONTEXT,
)
# For safety, the required inputs are `request` and `response`.
judges.safety(
request=SAMPLE_REQUEST,
response=SAMPLE_RESPONSE,
)
Оценка затрат и задержки
Оценка агента измеряет количество токенов и задержку выполнения, чтобы помочь вам лучше понять производительность агента.
Стоимость токена
Чтобы оценить затраты, Агентская оценка вычисляет общее количество токенов во всех вызовах генерации LLM в процессе трассировки. Это приблизит общую стоимость, указанную как больше токенов, что обычно приводит к большей стоимости. Подсчет токенов выполняется только в том случае, если trace
доступен. Если аргумент model
включен в вызов mlflow.evaluate()
, трассировка создается автоматически. Вы также можете напрямую указать столбец trace
в наборе данных оценки.
Для каждой строки определяются следующие количества маркеров.
Поле данных | Тип | Описание |
---|---|---|
total_token_count |
integer |
Сумма всех маркеров ввода и вывода во всех диапазонах LLM в трассировке агента. |
total_input_token_count |
integer |
Сумма всех входных маркеров во всех диапазонах LLM в трассировке агента. |
total_output_token_count |
integer |
Сумма всех выходных токенов во всех диапазонах LLM в следе агента. |
Задержка выполнения
Вычисляет задержку всего приложения в секундах для трассировки. Задержка вычисляется только при наличии трассировки. Если аргумент model
включен в вызов mlflow.evaluate()
, трассировка создается автоматически. Вы также можете напрямую указать столбец trace
в наборе данных оценки.
Для каждой строки вычисляется следующее измерение задержки:
Имя | Описание |
---|---|
latency_seconds |
Сквозная задержка на основе трассировки |
Как метрики агрегируются на уровне запуска MLflow для качества, затрат и задержки
После вычисления всех показателей качества, затрат и задержки для каждой строки оценка агента объединяет эти метрики на метрики для каждого запуска, которые регистрируются в MLflow и суммируют качество, стоимость и задержку агента во всех входных строках.
Оценка агента создает следующие метрики:
Имя метрики | Тип | Описание |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Среднее значение chunk_relevance/precision по всем вопросам. |
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
% вопросов, где context_sufficiency/rating оценен как yes . |
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
% вопросов, где correctness/rating оценен как yes . |
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
% вопросов, где relevance_to_query/rating оценивается как yes . |
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
% вопросов, где groundedness/rating оценен как yes . |
response/llm_judged/guideline_adherence/rating/percentage |
float, [0, 1] |
% вопросов, где guideline_adherence/rating оценен как yes . |
response/llm_judged/safety/rating/average |
float, [0, 1] |
% вопросов, где safety/rating оценено как yes . |
agent/total_token_count/average |
int |
Среднее значение total_token_count по всем вопросам. |
agent/input_token_count/average |
int |
Среднее значение input_token_count по всем вопросам. |
agent/output_token_count/average |
int |
Среднее значение output_token_count по всем вопросам. |
agent/latency_seconds/average |
float |
Среднее значение latency_seconds по всем вопросам. |
response/llm_judged/{custom_response_judge_name}/rating/percentage |
float, [0, 1] |
% вопросов, где {custom_response_judge_name}/rating оценен как yes . |
retrieval/llm_judged/{custom_retrieval_judge_name}/precision/average |
float, [0, 1] |
Среднее значение {custom_retrieval_judge_name}/precision по всем вопросам. |
На следующих снимках экрана показано, как метрики отображаются в пользовательском интерфейсе:
Сведения о моделях, которые могут использовать судьи LLM
- Судьи LLM могут использовать сторонние службы для оценки приложений GenAI, включая Azure OpenAI, управляемых корпорацией Майкрософт.
- Для Azure OpenAI Databricks отказался от мониторинга злоупотреблений, поэтому запросы или ответы не хранятся в Azure OpenAI.
- Для рабочих областей Европейского союза (ЕС) судьи LLM используют модели, размещенные в ЕС. Все остальные регионы используют модели, размещенные в США.
- Отключение вспомогательных функций на основе ИИ Azure запрещает судье LLM вызывать модели на основе Azure AI.
- Данные, отправленные судье LLM, не используются при обучении модели.
- Судьи LLM предназначены для того, чтобы помочь клиентам оценить свои приложения RAG, и выходные данные судьи LLM не должны использоваться для обучения, улучшения или точной настройки LLM.