Поделиться через


Запуск оценки и просмотр результатов

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

В этой статье описывается, как выполнить оценку и просмотреть результаты при разработке приложения ИИ. Сведения о том, как отслеживать качество развернутых агентов на рабочем трафике, см. в статье "Мониторинг качества агента на рабочем трафике".

Чтобы оценить агента, необходимо указать оценочный набор. По крайней мере, набор для оценки — это набор запросов для вашего приложения, который может поступать либо из курированного набора запросов на оценку, либо из данных трассировки от пользователей агента. Дополнительные сведения см. в наборах оценок и схеме входных данных для оценки агента.

Проведение оценки

Чтобы выполнить оценку, используйте метод mlflow.evaluate() из API MLflow, указав model_type как databricks-agent для активации оценки агентами на платформе Databricks с помощью встроенных судей ИИ.

В следующем примере задается набор глобальных рекомендаций для ИИ-оценщика глобальных руководящих принципов , которые приводят к провалу оценки, если ответы не соответствуют этим принципам. Для оценки вашего агента с помощью этого подхода не требуется собирать метки отдельно для каждого запроса.

import mlflow
from mlflow.deployments import get_deploy_client

# The guidelines below will be used to evaluate any response of the agent.
global_guidelines = [
  "If the request is unrelated to Databricks, the response must should be a rejection of the request",
  "If the request is related to Databricks, the response must should be concise",
  "If the request is related to Databricks and question about API, the response must have code",
  "The response must be professional."
]

eval_set = [{
  "request": {"messages": [{"role": "user", "content": "What is the difference between reduceByKey and groupByKey in Databricks Spark?"}]}
}, {
  "request": "What is the weather today?",
}]

# Define a very simple system-prompt agent.
@mlflow.trace(span_type="AGENT")
def llama3_agent(messages):
  SYSTEM_PROMPT = """
    You are a chatbot that answers questions about Databricks.
    For requests unrelated to Databricks, reject the request.
  """
  return get_deploy_client("databricks").predict(
    endpoint="databricks-meta-llama-3-3-70b-instruct",
    inputs={"messages": [{"role": "system", "content": SYSTEM_PROMPT}, *messages]}
  )

# Evaluate the Agent with the evaluation set and log it to the MLFlow run "system_prompt_v0".
with mlflow.start_run(run_name="system_prompt_v0") as run:
  mlflow.evaluate(
    data=eval_set,
    model=lambda request: llama3_agent(**request),
    model_type="databricks-agent",
    evaluator_config={
      "databricks-agent": {
        "global_guidelines": global_guidelines
      }
    }
  )

В этом примере используются следующие критерии, которые не требуют истинных меток: соблюдение руководящих принципов, релевантность к запросу, безопасность.

При использовании агента с извлекателем выполняются следующие метрики: Заземленность, релевантность блоков

mlflow.evaluate() также вычисляет задержку и метрики затрат для каждой записи оценки, агрегируя результаты по всем входным данным для данного запуска. Они называются результатами оценки. Результаты оценки регистрируются в заключивом запуске, а также сведения, зарегистрированные другими командами, такими как параметры модели. При вызове mlflow.evaluate() за пределами запуска MLflow создается новый запуск.

Оценить с помощью эталонных меток

В следующем примере указываются истинные метки для каждой строки: expected_facts и guidelines, которые будут использоваться для оценки судьями правил корректности и руководящих принципов соответственно. Отдельные оценки обрабатываются отдельно с помощью меток истины для каждой строки.

%pip install databricks-agents
dbutils.library.restartPython()

import mlflow
from mlflow.types.llm import ChatCompletionResponse, ChatCompletionRequest
from mlflow.deployments import get_deploy_client
import dataclasses

eval_set = [{
  "request": "What is the difference between reduceByKey and groupByKey in Databricks Spark?",
  "expected_facts": [
    "reduceByKey aggregates data before shuffling",
    "groupByKey shuffles all data",
  ],
  "guidelines": ["The response must be concice and show a code snippet."]
}, {
  "request": "What is the weather today?",
  "guidelines": ["The response must reject the request."]
}]

# Define a very simple system-prompt agent.
@mlflow.trace(span_type="AGENT")
def llama3_agent(messages):
  SYSTEM_PROMPT = """
    You are a chatbot that answers questions about Databricks.
    For requests unrelated to Databricks, reject the request.
  """
  return get_deploy_client("databricks").predict(
    endpoint="databricks-meta-llama-3-3-70b-instruct",
    inputs={"messages": [{"role": "system", "content": SYSTEM_PROMPT}, *messages]}
  )

# Evaluate the agent with the evaluation set and log it to the MLFlow run "system_prompt_v0".
with mlflow.start_run(run_name="system_prompt_v0") as run:
  mlflow.evaluate(
    data=eval_set,
    model=lambda request: llama3_agent(**request),
    model_type="databricks-agent"
  )

В этом примере применяются те же критерии оценки, что и выше, а также следующие: корректность , релевантность , безопасность .

Если вы используете агент с извлекателем, запускается следующий процесс оценки: достаточность контекста

Требования

Вспомогательные функции ИИ на основе ИИ Azure должны быть включены для рабочей области.

Предоставление входных данных для выполнения оценки

Существует два способа предоставления входных данных для выполнения оценки:

  • Укажите ранее созданные выходные данные для сравнения с набором оценки. Этот параметр рекомендуется, если вы хотите оценить выходные данные из приложения, которое уже развернуто в рабочей среде, или если вы хотите сравнить результаты оценки между конфигурациями оценки.

    С помощью этого параметра можно указать набор оценки, как показано в следующем коде. Оценочный набор должен содержать ранее созданные выходные данные. Более подробные примеры см. в разделе "Пример: передача ранее созданных выходных данных в оценку агента".

    evaluation_results = mlflow.evaluate(
        data=eval_set_with_chain_outputs_df,  # pandas DataFrame with the evaluation set and application outputs
        model_type="databricks-agent",
    )
    
  • Передайте приложение в качестве входного аргумента. mlflow.evaluate() обращается к приложению для каждого входного значения в наборе для оценки и сообщает оценки качества и другие метрики для каждого созданного выходного значения. Этот параметр рекомендуется использовать, если приложение зарегистрировано с помощью MLflow с включенной трассировкой MLflow или если приложение реализовано как функция Python в записной книжке. Этот параметр не рекомендуется, если приложение было разработано за пределами Databricks или развернуто за пределами Databricks.

    С помощью этого параметра можно указать набор вычислений и приложение в вызове функции, как показано в следующем коде. Более подробные примеры см. в разделе "Пример. Передача приложения в оценку агента".

    evaluation_results = mlflow.evaluate(
        data=eval_set_df,  # pandas DataFrame containing just the evaluation set
        model=model,  # Reference to the MLflow model that represents the application
        model_type="databricks-agent",
    )
    

Дополнительные сведения о схеме набора оценок см. в схеме ввода оценки агента.

Выходные данные оценки

Оценка агента возвращает выходные данные из mlflow.evaluate() кадров данных, а также записывает эти выходные данные в выполнение MLflow. Вы можете проверить выходные данные в записной книжке или на странице соответствующего запуска MLflow.

Просмотр выходных данных в записной книжке

В следующем коде показаны некоторые примеры того, как проверить результаты выполнения оценки из записной книжки.

%pip install databricks-agents pandas
dbutils.library.restartPython()

import mlflow
import pandas as pd

###
# Run evaluation
###
evaluation_results = mlflow.evaluate(..., model_type="databricks-agent")

###
# Access aggregated evaluation results across the entire evaluation set
###
results_as_dict = evaluation_results.metrics
results_as_pd_df = pd.DataFrame([evaluation_results.metrics])

# Sample usage
print(f"The percentage of generated responses that are grounded: {results_as_dict['response/llm_judged/groundedness/percentage']}")

###
# Access data about each question in the evaluation set
###

per_question_results_df = evaluation_results.tables['eval_results']

# Show information about responses that are not grounded
per_question_results_df[per_question_results_df["response/llm_judged/groundedness/rating"] == "no"].display()

Кадр данных per_question_results_df включает все столбцы в входной схеме и все результаты оценки, относящиеся к каждому запросу. Дополнительные сведения о вычисляемых результатах см. в статье о том, как оценивается качество, стоимость и задержка с помощью оценки агента.

Просмотр выходных данных с помощью пользовательского интерфейса MLflow

Результаты оценки также доступны в пользовательском интерфейсе MLflow. Чтобы получить доступ к пользовательскому интерфейсу MLflow, щелкните значок Значок эксперимента "Эксперимент" в правой боковой панели записной книжки, а затем на соответствующем запуске или щелкните ссылки, отображаемые в результатах ячейки записной книжки, в которой вы выполнили.mlflow.evaluate()

Проверка результатов оценки для одного запуска

В этом разделе описывается, как просмотреть результаты оценки для отдельного запуска. Сведения о сравнении результатов между запусками см. в статье "Сравнение результатов оценки между запусками".

Обзор оценки качества судьями LLM

Оценки судьи по запросу доступны в databricks-agents версии 0.3.0 и выше.

Чтобы просмотреть обзор качества каждого запроса в оценочном наборе, щелкните вкладку Результаты оценки на странице запуска MLflow. На этой странице показана сводная таблица каждого запуска оценки. Дополнительные сведения см. в идентификаторе оценки выполнения.

overview_judges

В этом обзоре показаны оценки разных судей для каждого запроса, состояние качества и сбоя каждого запроса на основе этих оценок и первопричина неудачных запросов. Щелкнув строку в таблице, вы перейдете на страницу сведений для этого запроса, включающую следующее:

  • Выходные данные модели: созданный ответ от агентического приложения и его трассировки, если они включены.
  • Ожидаемые выходные данные: ожидаемый ответ для каждого запроса.
  • Подробные оценки: оценки судей LLM по этим данным. Нажмите кнопку "Просмотреть сведения" , чтобы отобразить обоснование, предоставленное судьями.

details_judges

Агрегированные результаты для полного набора оценок

Чтобы просмотреть агрегированные результаты через весь набор оценки, перейдите на вкладку Обзор (для числовых значений) или вкладку Метрики модели (для диаграмм).

метрики оценки, значения

метрики оценки, диаграммы

Сравнение результатов оценки между запусками

Важно сравнить результаты оценки между запусками, чтобы узнать, как агентическое приложение реагирует на изменения. Сравнение результатов поможет вам понять, положительно влияют ли изменения на качество или помогут вам устранить неполадки в изменении поведения.

Сравнение результатов на запрос между запусками

Чтобы сравнить данные для каждого отдельного запроса во время выполнения, щелкните вкладку "Оценка " на странице "Эксперимент". В таблице показан каждый вопрос в наборе оценок. Используйте раскрывающееся меню, чтобы выбрать столбцы для просмотра.

отдельные вопросы в оценочном наборе

Сравнение агрегированных результатов между запусками

Вы можете получить доступ к тем же агрегированным результатам на странице "Эксперимент", что также позволяет сравнивать результаты в разных запусках. Чтобы получить доступ к странице "Эксперимент", щелкните значок Значок эксперимента "Эксперимент" на правой боковой панели записной книжки или щелкните ссылки, отображаемые в результатах ячейки записной книжки, в которой вы запустили mlflow.evaluate().

На странице "Эксперимент" щелкните значок отображения диаграммы. Это позволяет визуализировать агрегированные результаты для выбранного выполнения и сравнить их с прошлыми.

агрегированные результаты

Какие судьи выполняются

По умолчанию для каждой записи оценки оценка агента ИИ Мозаики применяет подмножество судей, которые лучше всего соответствуют информации, присутствующих в записи. В частности:

  • Если запись содержит эталонный ответ, оценка агента использует судей context_sufficiency, groundedness, correctness, safetyи guideline_adherence.
  • Если запись не включает ответ на основе истины, оценка агента применяет chunk_relevance, groundedness, relevance_to_query, safetyи guideline_adherence судей.

Дополнительные сведения см. в следующем разделе:

Сведения о доверии и безопасности судьи LLM см. в сведения о моделях, которые могут использовать судьи LLM.

Пример. Передача приложения в оценку агента

Чтобы передать приложение mlflow_evaluate(), используйте model аргумент. Существует 5 вариантов передачи приложения в аргументе model .

  • Модель, зарегистрированная в каталоге Unity.
  • Модель MLflow, зарегистрированная в текущем эксперименте MLflow.
  • Модель PyFunc, загруженная в записную книжку.
  • Локальная функция в записной книжке.
  • Развернутая конечная точка агента.

В следующих разделах приведены примеры кода, иллюстрирующие каждый параметр.

Вариант 1. Модель, зарегистрированная в каталоге Unity

%pip install databricks-agents pandas
dbutils.library.restartPython()

import mlflow
import pandas as pd

evaluation_results = mlflow.evaluate(
    data=eval_set_df,  # pandas DataFrame with just the evaluation set
    model = "models:/catalog.schema.model_name/1"  # 1 is the version number
    model_type="databricks-agent",
)

Вариант 2. Модель MLflow, зарегистрированная в текущем эксперименте MLflow

%pip install databricks-agents pandas
dbutils.library.restartPython()

import mlflow
import pandas as pd

# In the following lines, `6b69501828264f9s9a64eff825371711` is the run_id, and `chain` is the artifact_path that was
# passed with mlflow.xxx.log_model(...).
# If you called model_info = mlflow.langchain.log_model() or mlflow.pyfunc.log_model(), you can access this value using `model_info.model_uri`.
evaluation_results = mlflow.evaluate(
    data=eval_set_df,  # pandas DataFrame with just the evaluation set
    model = "runs:/6b69501828264f9s9a64eff825371711/chain"
    model_type="databricks-agent",
)

Вариант 3. Модель PyFunc, загруженная в записную книжку

%pip install databricks-agents pandas
dbutils.library.restartPython()

import mlflow
import pandas as pd

evaluation_results = mlflow.evaluate(
    data=eval_set_df,  # pandas DataFrame with just the evaluation set
    model = mlflow.pyfunc.load_model(...)
    model_type="databricks-agent",
)

Вариант 4. Локальная функция в записной книжке

Функция получает входной формат следующим образом:

{
  "messages": [
    {
      "role": "user",
      "content": "What is MLflow?",
    }
  ],
  ...
}

Функция должна возвращать значение в одном из следующих трех поддерживаемых форматов:

  • Обычная строка, содержащая ответ модели.

  • Словарь в ChatCompletionResponse формате. Например:

    {
      "choices": [
        {
          "message": {
            "role": "assistant",
            "content": "MLflow is a machine learning toolkit.",
          },
         ...
        }
      ],
      ...,
    }
    
  • Словарь в StringResponse формате, например { "content": "MLflow is a machine learning toolkit.", ... }.

В следующем примере используется локальная функция для упаковки конечной точки базовой модели и ее оценки:

  %pip install databricks-agents pandas
  dbutils.library.restartPython()

  import mlflow
  import pandas as pd

  def model(model_input):
    client = mlflow.deployments.get_deploy_client("databricks")
    return client.predict(endpoint="endpoints:/databricks-meta-llama-3-1-405b-instruct", inputs={"messages": model_input["messages"]})

  evaluation_results = mlflow.evaluate(
    data=eval_set_df,  # pandas DataFrame with just the evaluation set
    model = model
    model_type="databricks-agent",
  )

Вариант 5. Развернутая конечная точка агента

Этот параметр работает только при использовании конечных точек агента, развернутых с помощью databricks.agents.deploy версии пакета SDK или databricks-agents более поздней версии 0.8.0 . Для базовых моделей или более старых версий пакета SDK используйте вариант 4, чтобы упаковать модель в локальную функцию.

%pip install databricks-agents pandas
dbutils.library.restartPython()

import mlflow
import pandas as pd

# In the following lines, `endpoint-name-of-your-agent` is the name of the agent endpoint.
evaluation_results = mlflow.evaluate(
    data=eval_set_df,  # pandas DataFrame with just the evaluation set
    model = "endpoints:/endpoint-name-of-your-agent"
    model_type="databricks-agent",
)

Как пройти набор оценки, когда приложение включено в вызов mlflow_evaluate()

В следующем коде data — это DataFrame pandas с набором данных для оценки. Это простые примеры. Подробности см. в схеме ввода .

# You do not have to start from a dictionary - you can use any existing pandas or Spark DataFrame with this schema.

# Minimal evaluation set
bare_minimum_eval_set_schema = [
    {
        "request": "What is the difference between reduceByKey and groupByKey in Spark?",
    }]

# Complete evaluation set
complete_eval_set_schema = [
    {
        "request_id": "your-request-id",
        "request": "What is the difference between reduceByKey and groupByKey in Spark?",
        "expected_retrieved_context": [
            {
                # In `expected_retrieved_context`, `content` is optional, and does not provide any additional functionality.
                "content": "Answer segment 1 related to What is the difference between reduceByKey and groupByKey in Spark?",
                "doc_uri": "doc_uri_2_1",
            },
            {
                "content": "Answer segment 2 related to What is the difference between reduceByKey and groupByKey in Spark?",
                "doc_uri": "doc_uri_2_2",
            },
        ],
        "expected_response": "There's no significant difference.",
    }]

# Convert dictionary to a pandas DataFrame
eval_set_df = pd.DataFrame(bare_minimum_eval_set_schema)

# Use a Spark DataFrame
import numpy as np
spark_df = spark.table("catalog.schema.table") # or any other way to get a Spark DataFrame
eval_set_df = spark_df.toPandas()

Пример. Передача ранее созданных выходных данных в оценку агента

В этом разделе описывается передача ранее созданных выходных данных в вызове mlflow_evaluate() . Сведения о требуемой схеме набора для оценки см. в разделе Входная схема оценки агента.

В следующем коде data — это таблица данных pandas с оценочным набором и результатами, сгенерированными приложением. Это простые примеры. Подробности см. в схеме ввода .

%pip install databricks-agents pandas
dbutils.library.restartPython()

import mlflow
import pandas as pd

evaluation_results = mlflow.evaluate(
    data=eval_set_with_app_outputs_df,  # pandas DataFrame with the evaluation set and application outputs
    model_type="databricks-agent",
)

# You do not have to start from a dictionary - you can use any existing pandas or Spark DataFrame with this schema.

# Minimum required input
bare_minimum_input_schema = [
    {
        "request": "What is the difference between reduceByKey and groupByKey in Spark?",
        "response": "reduceByKey aggregates data before shuffling, whereas groupByKey shuffles all data, making reduceByKey more efficient.",
    }]

# Input including optional arguments
complete_input_schema  = [
    {
        "request_id": "your-request-id",
        "request": "What is the difference between reduceByKey and groupByKey in Spark?",
        "expected_retrieved_context": [
            {
                # In `expected_retrieved_context`, `content` is optional, and does not provide any additional functionality.
                "content": "Answer segment 1 related to What is the difference between reduceByKey and groupByKey in Spark?",
                "doc_uri": "doc_uri_2_1",
            },
            {
                "content": "Answer segment 2 related to What is the difference between reduceByKey and groupByKey in Spark?",
                "doc_uri": "doc_uri_2_2",
            },
        ],
        "expected_response": "There's no significant difference.",
        "response": "reduceByKey aggregates data before shuffling, whereas groupByKey shuffles all data, making reduceByKey more efficient.",
        "retrieved_context": [
            {
                # In `retrieved_context`, `content` is optional. If provided, the Databricks Context Relevance LLM Judge is executed to check the `content`'s relevance to the `request`.
                "content": "reduceByKey reduces the amount of data shuffled by merging values before shuffling.",
                "doc_uri": "doc_uri_2_1",
            },
            {
                "content": "groupByKey may lead to inefficient data shuffling due to sending all values across the network.",
                "doc_uri": "doc_uri_6_extra",
            },
        ],
        "guidelines": [
          "The response must be in English",
        ]
    }]

# Convert dictionary to a pandas DataFrame
eval_set_with_app_outputs_df = pd.DataFrame(bare_minimum_input_schema)

# Use a Spark DataFrame
import numpy as np
spark_df = spark.table("catalog.schema.table") # or any other way to get a Spark DataFrame
eval_set_with_app_outputs_df = spark_df.toPandas()

Пример. Использование пользовательской функции для обработки ответов из LangGraph

Агенты LangGraph, особенно с функциями чата, могут возвращать несколько сообщений для одного вызова вывода. Это ответственность пользователя за преобразование ответа агента в формат, поддерживаемый оценкой агента.

Одним из способов является использование пользовательской функции для обработки ответа. В следующем примере показана пользовательская функция, извлекающая последнее сообщение чата из модели LangGraph. Затем эта функция используется в mlflow.evaluate() для возврата одного строкового ответа, который можно сравнить с столбцом ground_truth.

В примере кода приводятся следующие предположения:

  • Модель принимает входные данные в формате {"messages": [{"role": "user", "content": "hello"}]}.
  • Модель возвращает список строк в формате ["ответ 1", "ответ 2"].

Следующий код отправляет сцепленные ответы судье в этом формате: "ответ 1nresponse2"

import mlflow
import pandas as pd
from typing import List

loaded_model = mlflow.langchain.load_model(model_uri)
eval_data = pd.DataFrame(
    {
        "inputs": [
            "What is MLflow?",
            "What is Spark?",
        ],
        "expected_response": [
            "MLflow is an open-source platform for managing the end-to-end machine learning (ML) lifecycle. It was developed by Databricks, a company that specializes in big data and machine learning solutions. MLflow is designed to address the challenges that data scientists and machine learning engineers face when developing, training, and deploying machine learning models.",
            "Apache Spark is an open-source, distributed computing system designed for big data processing and analytics. It was developed in response to limitations of the Hadoop MapReduce computing model, offering improvements in speed and ease of use. Spark provides libraries for various tasks such as data ingestion, processing, and analysis through its components like Spark SQL for structured data, Spark Streaming for real-time data processing, and MLlib for machine learning tasks",
        ],
    }
)

def custom_langgraph_wrapper(model_input):
    predictions = loaded_model.invoke({"messages": model_input["messages"]})
    # Assuming `predictions` is a list of strings
    return predictions.join("\n")

with mlflow.start_run() as run:
    results = mlflow.evaluate(
        custom_langgraph_wrapper,  # Pass the function defined above
        data=eval_data,
        model_type="databricks-agent",
    )

print(results.metrics)

Создание панели мониторинга с метриками

При итерации по качеству агента может потребоваться поделиться панелью мониторинга со своими заинтересованными лицами, в которой показано, как качество улучшилось с течением времени. Вы можете извлечь метрики из выполнения оценки MLflow, сохранить значения в таблице Delta и создать панель мониторинга.

В следующем примере показано, как извлечь и сохранить метрические значения из последнего оценочного запуска в вашей записной книжке.

uc_catalog_name = "catalog"
uc_schema_name = "schema"
table_name = "results"

eval_results = mlflow.evaluate(
    model=logged_agent_info.model_uri, # use the logged Agent
    data=evaluation_set, # Run the logged Agent for all queries defined above
    model_type="databricks-agent", # use Agent Evaluation
)

# The `append_metrics_to_table function` is defined below
append_metrics_to_table("<identifier-for-table>", eval_results.metrics, f"{uc_catalog_name}.{uc_schema_name}.{table_name}")

В следующем примере показано, как извлечь и сохранить значения метрик для прошлых запусков, сохраненных в эксперименте MLflow.

import pandas as pd

def get_mlflow_run(experiment_name, run_name):
  runs = mlflow.search_runs(experiment_names=[experiment_name], filter_string=f"run_name = '{run_name}'", output_format="list")

  if len(runs) != 1:
    raise ValueError(f"Found {len(runs)} runs with name {run_name}. {run_name} must identify a single run. Alternatively, you can adjust this code to search for a run based on `run_id`")

   return runs[0]

run = get_mlflow_run(experiment_name ="/Users/<user_name>/db_docs_mlflow_experiment", run_name="evaluation__2024-10-09_02:27:17_AM")

# The `append_metrics_to_table` function is defined below
append_metrics_to_table("<identifier-for-table>", run.data.metrics, f"{uc_catalog_name}.{uc_schema_name}.{table_name}")

Теперь вы можете создать панель мониторинга с помощью этих данных.

Следующий код определяет функцию append_metrics_to_table , используемую в предыдущих примерах.

# Definition of `append_metrics_to_table`

def append_metrics_to_table(run_name, mlflow_metrics, delta_table_name):
  data = mlflow_metrics.copy()

  # Add identifying run_name and timestamp
  data["run_name"] = run_name
  data["timestamp"] = pd.Timestamp.now()

  # Remove metrics with error counts
  data = {k: v for k, v in mlflow_metrics.items() if "error_count" not in k}

  # Convert to a Spark DataFrame(
  metrics_df = pd.DataFrame([data])
  metrics_df_spark = spark.createDataFrame(metrics_df)

  # Append to the Delta table
  metrics_df_spark.write.mode("append").saveAsTable(delta_table_name)

Сведения о моделях, которые могут использовать судьи LLM

  • Судьи LLM могут использовать сторонние службы для оценки приложений GenAI, включая Azure OpenAI, управляемых корпорацией Майкрософт.
  • Для Azure OpenAI Databricks отказался от мониторинга злоупотреблений, поэтому запросы или ответы не хранятся в Azure OpenAI.
  • Для рабочих областей Европейского союза (ЕС) судьи LLM используют модели, размещенные в ЕС. Все остальные регионы используют модели, размещенные в США.
  • Отключение вспомогательных функций ИИ на основе искусственного интеллекта Azure запрещает судье LLM вызывать модели, на основе ИИ Azure.
  • Данные, отправленные судье LLM, не используются для обучения модели.
  • Судьи LLM предназначены для того, чтобы помочь клиентам оценить свои приложения RAG, и выходные данные судьи LLM не должны использоваться для обучения, улучшения или точной настройки LLM.