Udostępnij za pośrednictwem


Schemat wejściowy oceny agenta

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W tym artykule wyjaśniono schemat danych wejściowych wymagany przez ocenę agenta w celu oceny jakości, kosztów i opóźnień aplikacji.

  • Podczas fazy rozwoju ocena odbywa się w trybie offline, a zestaw ewaluacyjny jest wymaganym wejściem do Ewaluacji Agenta.
  • Gdy aplikacja jest w środowisku produkcyjnym, wszystkie dane wejściowe do Oceny Agenta pochodzą z tabel wnioskowania lub dzienników produkcyjnych.

Schemat wejściowy jest identyczny zarówno w przypadku ocen online, jak i offline.

Aby uzyskać ogólne informacje na temat zestawów oceny, zobacz Zestawy oceny.

Schemat wejściowy oceny

W poniższej tabeli przedstawiono schemat wejściowy oceny agenta. Dwie ostatnie kolumny tabeli odnoszą się do sposobu podania danych wejściowych do wywołania mlflow.evaluate(). Aby uzyskać szczegółowe informacje, zobacz Zapewnianie danych wejściowych do przebiegu oceny.

Kolumna Typ danych opis Aplikacja przekazana jako argument wejściowy Wcześniej wygenerowane dane wyjściowe
request_id string Unikatowy identyfikator żądania. Opcjonalnie Opcjonalnie
żądanie Zobacz Schemat dla żądania. Dane wejściowe do aplikacji w celu oceny, pytania użytkownika lub zapytania. Na przykład {'messages': [{"role": "user", "content": "What is RAG"}]} lub "Co to jest RAG?". Gdy request zostanie podany jako ciąg, zostanie on przekształcony na messages przed przekazaniem go do agenta. Wymagania Wymagania
odpowiedź string Odpowiedź wygenerowana przez ocenianą aplikację. Generowane przez ocenę agenta Opcjonalny. Jeśli nie zostanie podany, pochodzi z śledzenia. Albo response albo trace jest wymagany.
expected_facts tablica ciągów Lista faktów, które są oczekiwane w danych wyjściowych modelu. Zobacz wskazówki dotyczące expected_facts. Opcjonalnie Opcjonalnie
expected_response string Prawidłowa odpowiedź na żądanie wejściowe. Zobacz wskazówki dotyczące expected_response. Opcjonalnie Opcjonalnie
Wytyczne tablica ciągów Lista wytycznych, które powinny być zgodne z danymi wyjściowymi modelu. Zobacz wytyczne dotyczące . Opcjonalnie Opcjonalnie
expected_retrieved_context tablica Tablica obiektów zawierających oczekiwany kontekst pobrany dla żądania (jeśli aplikacja zawiera krok pobierania). schemat tablicy Opcjonalnie Opcjonalnie
retrieved_context tablica Wyniki pobierania wygenerowane przez program retriever w ocenianej aplikacji. Jeśli w aplikacji znajduje się wiele kroków pobierania, jest to wynik pobierania z ostatniego kroku (chronologicznie w śladzie). schemat tablicy Generowane przez ocenę agenta Opcjonalny. Jeśli nie podano, pochodzi z podanego śladu.
śledzenia Ciąg JSON śledzenia MLflow MLflow ślad wykonania aplikacji w odpowiednim żądaniu. Generowane przez ocenę agenta Opcjonalny. Albo response albo trace jest wymagany.

expected_facts Wytyczne

Pole expected_facts określa listę faktów, które powinny pojawić się w dowolnej poprawnej odpowiedzi modelu dla określonego żądania wejściowego. Oznacza to, że odpowiedź modelu jest uważana za poprawną, jeśli zawiera te fakty, niezależnie od sposobu wyrażenia odpowiedzi.

Uwzględnienie tylko wymaganych faktów i pozostawienie faktów, które nie są ściśle wymagane w odpowiedzi, umożliwia ocenę agenta w celu zapewnienia bardziej niezawodnego sygnału jakości danych wyjściowych.

Można określić co najwyżej jeden z elementów expected_facts i expected_response. Jeśli określisz oba te elementy, zostanie zgłoszony błąd. Usługa Databricks zaleca użycie metody expected_facts, ponieważ jest to bardziej szczegółowa wskazówka, która pomaga sędziom oceny agenta efektywniej ocenić jakość wygenerowanych odpowiedzi.

guidelines Wytyczne

Pole guidelines określa listę wytycznych, z którymi musi być zgodna każda poprawna odpowiedź na model. Wytyczne mogą odnosić się do różnych cech odpowiedzi, w tym elementów stylistycznych lub związanych z zawartością. Aby uzyskać najbardziej niezawodny sygnał dotyczący przestrzegania wytycznych, usługa Databricks zaleca używanie następującego języka:

  • "Odpowiedź musi ..."
  • "Odpowiedź nie może ..."
  • "Odpowiedź może opcjonalnie ..."

W szczególności należy bezpośrednio odwołać się do żądania i odpowiedzi i pozostawić jak najmniej niejednoznaczności, jak to możliwe w wytycznych. Aby uzyskać wytyczne dotyczące całego zestawu oceny, takie jak zapewnienie, że odpowiedzi mają profesjonalny ton lub są zawsze w języku angielskim, użyj parametru global_guidelines w konfiguracji ewaluatora w następujący sposób:

eval_set = [
    {
        "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.",
        "guidelines": [
            "The response must be in English",
            "The response must be clear, coherent, and concise",
        ]
    }
]

mlflow.evaluate(
    data=pd.DataFrame(eval_set),
    model_type="databricks-agent",
    evaluator_config={
        "databricks-agent": {
            "global_guidelines": [
                "The response must be in English",
                "The response must be clear, coherent, and concise",
            ],
        }
    }
)

expected_response Wytyczne

Pole expected_response zawiera w pełni sformułowaną odpowiedź, która reprezentuje odwołanie do poprawnych odpowiedzi modelu. Oznacza to, że odpowiedź modelu jest uważana za poprawną, jeśli pasuje do zawartości informacji w pliku expected_response. W przeciwieństwie do expected_facts listy tylko faktów, które są wymagane do pojawienia się w poprawnej odpowiedzi i nie jest w pełni sformułowaną odpowiedzią referencyjną.

Podobnie jak expected_facts, expected_response powinna zawierać tylko minimalny zestaw faktów wymaganych do poprawnej odpowiedzi. Uwzględnienie tylko wymaganych informacji i pozostawienie informacji, które nie są ściśle wymagane w odpowiedzi, umożliwia ocenę agenta w celu zapewnienia bardziej niezawodnego sygnału jakości danych wyjściowych.

Można określić co najwyżej jeden z elementów expected_facts i expected_response. Jeśli określisz oba te elementy, zostanie zgłoszony błąd. Usługa Databricks zaleca użycie metody expected_facts, ponieważ jest to bardziej szczegółowa wskazówka, która pomaga sędziom oceny agenta efektywniej ocenić jakość wygenerowanych odpowiedzi.

schemat dla żądania

Schemat żądania może być jednym z następujących elementów:

  • Schemat ukończenia czatu OpenAI . Schemat uzupełniania czatu OpenAI musi mieć jako parametr messages tablicę obiektów. Pole messages może kodować pełną konwersację.
  • Jeśli agent obsługuje schemat uzupełniania czatu OpenAI, możesz przekazać zwykły ciąg. Ten format obsługuje tylko konwersacje jednokrotne. Zwykłe ciągi są konwertowane na messages format "role": "user" z przed przekazaniem do agenta. Na przykład zwykły ciąg "What is MLflow?" jest konwertowany na {"messages": [{"role": "user", "content": "What is MLflow?"}]} przed przekazaniem do agenta.
  • SplitChatMessagesRequest. query Pole ciągu dla najnowszego żądania i opcjonalne history pole, które koduje poprzednie zwroty konwersacji.

W przypadku aplikacji do czatów wieloe obrotu użyj drugiej lub trzeciej opcji powyżej.

W poniższym przykładzie przedstawiono wszystkie trzy opcje w tej samej kolumnie request zestawu danych oceny:

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Schema for arrays in evaluation input (Schemat dla tablic w danych wejściowych oceny)

Schemat tablic expected_retrieved_context i retrieved_context przedstawiono w poniższej tabeli:

Kolumna Typ danych opis Aplikacja przekazana jako argument wejściowy Wcześniej wygenerowane dane wyjściowe
content string Zawartość pobranego kontekstu. Ciąg w dowolnym formacie, takim jak HTML, zwykły tekst lub Markdown. Opcjonalnie Opcjonalnie
doc_uri string Unikatowy identyfikator (URI) dokumentu nadrzędnego, z którego pochodzi fragment. Wymagania Wymagania

Obliczone metryki

Kolumny w poniższej tabeli wskazują dane zawarte w danych wejściowych, a wskazuje, że metryka jest obsługiwana po podaniu tych danych.

Aby uzyskać szczegółowe informacje na temat miary tych metryk, zobacz Jak jakość, koszt i opóźnienie są oceniane przez ocenę agenta.

Metryki obliczeniowe request request i expected_response request, expected_response, expected_retrieved_contexti guidelines request i expected_retrieved_context request i guidelines
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall
response/llm_judged/guideline_adherence/rating