Co to jest ocena agenta mozaiki sztucznej inteligencji?
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Ten artykuł zawiera omówienie sposobu pracy z oceną agenta sztucznej inteligencji mozaiki. Ocena agenta ułatwia deweloperom ocenę jakości, kosztów i opóźnień aplikacji sztucznej inteligencji agentów, w tym aplikacji RAG i łańcuchów. Ocena agenta została zaprojektowana tak, aby identyfikować problemy z jakością i określać główną przyczynę tych problemów. Możliwości oceny agenta są ujednolicone w różnych fazach programowania, przemieszczania i produkcji cyklu życia metodyki MLOps, a wszystkie metryki i dane oceny są rejestrowane w przebiegach MLflow.
Ocena agenta integruje zaawansowane, oparte na badaniach techniki oceny z przyjaznym dla użytkownika zestawem SDK i interfejsem użytkownika zintegrowanym z usługą Lakehouse, MLflow i innymi składnikami platformy analizy danych usługi Databricks. Opracowany we współpracy z badaniami nad sztuczną inteligencją Mozaiki, ta zastrzeżona technologia oferuje kompleksowe podejście do analizowania i zwiększania wydajności agenta.
Aplikacje agentów sztucznej inteligencji są złożone i obejmują wiele różnych składników. Ocena wydajności tych aplikacji nie jest tak prosta, jak ocena wydajności tradycyjnych modeli uczenia maszynowego. Zarówno jakościowe, jak i ilościowe metryki używane do oceny jakości są z natury bardziej złożone. Ocena agenta obejmuje zastrzeżone sędzie LLM i metryki agenta w celu oceny pobierania i jakości żądań, a także ogólnych metryk wydajności, takich jak opóźnienie i koszt tokenu.
Jak mogę użyć oceny agenta?
Poniższy kod pokazuje, jak wywołać i przetestować ocenę agenta na wcześniej wygenerowanych danych wyjściowych. Zwraca ramkę danych z ocenami obliczanymi przez sędziów LLM, które są częścią oceny agenta.
Możesz skopiować i wkleić następujące elementy do istniejącego notesu usługi Databricks:
%pip install mlflow databricks-agents
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# Primitive string format
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
"How do I convert a Spark DataFrame to Pandas?"
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Mosaic AI Agent Evaluation
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
Alternatywnie możesz zaimportować i uruchomić następujący notes w obszarze roboczym usługi Databricks:
Przykładowy notes oceny agenta mozaiki sztucznej inteligencji
Dane wejściowe i wyjściowe oceny agenta
Na poniższym diagramie przedstawiono przegląd danych wejściowych akceptowanych przez ocenę agenta i odpowiednich danych wyjściowych generowanych przez ocenę agenta.
Dane wejściowe
Aby uzyskać szczegółowe informacje na temat oczekiwanych danych wejściowych oceny agenta, w tym nazw pól i typów danych, zobacz schemat wejściowy. Niektóre pola są następujące:
- Zapytanie użytkownika (
request
): dane wejściowe agenta (pytanie lub zapytanie użytkownika). Na przykład "Co to jest RAG?". - Odpowiedź agenta (
response
): Odpowiedź wygenerowana przez agenta. Na przykład "Pobieranie rozszerzonej generacji to ...". - Oczekiwana odpowiedź (
expected_response
): (Opcjonalnie) odpowiedź prawdy podstawowej (poprawna). - Ślad MLflow (
trace
): (opcjonalnie) Ślad MLflow agenta, z którego ocena agenta wyodrębnia pośrednie dane wyjściowe, takie jak pobrany kontekst lub wywołania narzędzi. Alternatywnie możesz bezpośrednio podać te pośrednie dane wyjściowe.
Dane wyjściowe
Na podstawie tych danych wejściowych ocena agenta tworzy dwa typy danych wyjściowych:
- Wyniki oceny (na wiersz): dla każdego wiersza podanego jako dane wejściowe ocena agenta tworzy odpowiedni wiersz wyjściowy zawierający szczegółową ocenę jakości, kosztów i opóźnień agenta.
- Sędziowie LLM sprawdzają różne aspekty jakości, takie jak poprawność lub uziemienie, wyprowadzając wynik tak/bez i pisemne uzasadnienie dla tego wyniku. Aby uzyskać szczegółowe informacje, zobacz Jak jakość, koszt i opóźnienie są oceniane przez ocenę agenta.
- Oceny sędziów LLM są łączone w celu uzyskania ogólnego wyniku, który wskazuje, czy ten wiersz "przechodzi" (jest wysokiej jakości) lub "niepowodzenie" (ma problem z jakością).
- W przypadku wszystkich wierszy zakończonych niepowodzeniem zidentyfikowano główną przyczynę. Każda główna przyczyna odpowiada ocenie określonego sędziego LLM, umożliwiając użycie uzasadnienia sędziego do zidentyfikowania potencjalnych poprawek.
- Koszt i opóźnienie są wyodrębniane ze śledzenia MLflow. Aby uzyskać szczegółowe informacje, zobacz Jak są oceniane koszty i opóźnienia.
- Metryki (wyniki agregujące): zagregowane wyniki podsumowujące jakość, koszt i opóźnienie agenta we wszystkich wierszach wejściowych. Obejmują one metryki, takie jak procent poprawnych odpowiedzi, średnia liczba tokenów, średnie opóźnienie i inne. Aby uzyskać szczegółowe informacje, zobacz How cost and latency are assessed and How metrics are aggregated at the level of an MLflow run for quality, cost, and latency (Jak metryki są agregowane na poziomie przebiegu platformy MLflow pod kątem jakości, kosztów i opóźnień).
Programowanie (ocena offline) i produkcja (monitorowanie online)
Ocena agenta została zaprojektowana tak, aby była spójna między środowiskami projektowymi (offline) i produkcyjnymi (online). Ten projekt umożliwia bezproblemowe przejście od programowania do środowiska produkcyjnego, dzięki czemu można szybko iterować, oceniać, wdrażać i monitorować aplikacje agentów wysokiej jakości.
Główną różnicą między programowaniem a produkcją jest to, że w środowisku produkcyjnym nie masz etykiet podstawowych prawdy, podczas gdy w trakcie opracowywania, możesz opcjonalnie używać etykiet ground-truth. Używanie etykiet podstawowych prawdy umożliwia ocenę agenta w celu obliczenia dodatkowych metryk jakości.
Programowanie (w trybie offline)
W programowania twój requests
i expected_responses
pochodzi z zestawu ewaluacyjnego. Zestaw oceny to zbiór reprezentatywnych danych wejściowych, które agent powinien mieć możliwość dokładnego obsługi. Aby uzyskać więcej informacji na temat zestawów oceny, zobacz Zestawy oceny.
Aby uzyskać response
i trace
, ocena agenta może wywołać kod agenta, aby wygenerować te dane wyjściowe dla każdego wiersza w zestawie oceny. Alternatywnie możesz wygenerować te dane wyjściowe samodzielnie i przekazać je do oceny agenta. Aby uzyskać więcej informacji, zobacz Jak podać dane wejściowe do przebiegu oceny.
Produkcja (online)
W środowisku produkcyjnym wszystkie dane wejściowe do oceny agenta pochodzą z dzienników produkcyjnych.
Jeśli do wdrażania aplikacji sztucznej inteligencji używasz struktury agentów Mozaiki AI, można skonfigurować ocenę agenta w celu automatycznego zbierania tych danych wejściowych z tabel wnioskowania rozszerzonego agenta i ciągłego aktualizowania pulpitu nawigacyjnego monitorowania. Aby uzyskać więcej informacji, zobacz Jak monitorować jakość agenta w ruchu produkcyjnym.
Jeśli wdrożysz agenta poza usługą Azure Databricks, możesz przeprowadzić etL dzienniki w wymaganym schemacie wejściowym i podobnie skonfigurować pulpit nawigacyjny monitorowania.
Ustanawianie testu porównawczego jakości z zestawem oceny
Aby zmierzyć jakość aplikacji sztucznej inteligencji podczas programowania (offline), należy zdefiniować zestaw oceny, czyli zestaw reprezentatywnych pytań i opcjonalnych odpowiedzi na podstawowe informacje. Jeśli aplikacja obejmuje krok pobierania, na przykład w przepływach pracy RAG, możesz opcjonalnie podać dokumenty pomocnicze, na których oczekujesz, że odpowiedź będzie oparta.
Aby uzyskać szczegółowe informacje na temat zestawów oceny, w tym zależności metryk i najlepszych rozwiązań, zobacz Zestawy oceny. Aby uzyskać wymagany schemat, zobacz Schemat danych wejściowych oceny agenta.
Przebiegi oceny
Aby uzyskać szczegółowe informacje na temat uruchamiania oceny, zobacz Jak uruchomić ocenę i wyświetlić wyniki. Ocena agenta obsługuje dwie opcje dostarczania danych wyjściowych z łańcucha:
- Aplikację można uruchomić w ramach przebiegu oceny. Aplikacja generuje wyniki dla każdego danych wejściowych w zestawie oceny.
- Możesz podać dane wyjściowe z poprzedniego uruchomienia aplikacji.
Aby uzyskać szczegółowe informacje i wyjaśnienie, kiedy należy używać każdej opcji, zobacz How to provide input to an evaluation run (Jak podać dane wejściowe do przebiegu oceny).
Uzyskiwanie opinii człowieka na temat jakości aplikacji GenAI
Aplikacja do przeglądu usługi Databricks ułatwia zbieranie opinii na temat jakości aplikacji sztucznej inteligencji od recenzentów ludzkich. Aby uzyskać szczegółowe informacje, zobacz Uzyskiwanie opinii na temat jakości aplikacji agenta.
Dostępność geograficzna funkcji Asystenta
Mosaic AI Agent Evaluation to wyznaczona usługa , która używa geos do zarządzania miejscem przechowywania danych podczas przetwarzania zawartości klienta. Aby dowiedzieć się więcej na temat dostępności oceny agenta w różnych obszarach geograficznych, zobacz Databricks Designated Services (Wyznaczone usługi usługi Databricks).
Cennik
Aby uzyskać informacje o cenach, zobacz Mozaika AI Agent Evaluation pricing (Cennik oceny agenta mozaiki sztucznej inteligencji).
Ograniczenie
Ocena agenta nie jest dostępna w obszarach roboczych z obsługą hipaa.
Informacje o modelach, które napędzają sędziów LLM
- Sędziowie LLM mogą korzystać z usług innych firm do oceny aplikacji GenAI, w tym azure OpenAI obsługiwanych przez firmę Microsoft.
- W przypadku usługi Azure OpenAI usługa Databricks zrezygnowała z monitorowania nadużyć, więc w usłudze Azure OpenAI nie są przechowywane żadne monity ani odpowiedzi.
- W przypadku obszarów roboczych Unii Europejskiej (UE) sędziowie LLM używają modeli hostowanych w UE. Wszystkie inne regiony używają modeli hostowanych w Stanach Zjednoczonych.
- Wyłączenie funkcji pomocniczych sztucznej inteligencji opartej na sztucznej inteligencji platformy Azure uniemożliwia sędziego LLM wywoływanie modeli opartych na sztucznej inteligencji platformy Azure.
- Dane wysyłane do sędziego LLM nie są używane do trenowania modelu.
- Sędziowie LLM mają pomóc klientom ocenić swoje aplikacje RAG, a wyniki sędziów LLM nie powinny być używane do trenowania, ulepszania ani dostrajania LLM.