Co to jest ocena agenta Mosaic AI?
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
Ten artykuł zawiera przegląd dotyczący pracy z oceną agenta AI Mosaic. Ocena aplikacji agentowych pomaga deweloperom w ocenie jakości, kosztów i opóźnień aplikacji agentowych sztucznej inteligencji, 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 rozwijanej, testowej i produkcyjnej cyklu życia MLOps, a wszystkie metryki i dane oceny są rejestrowane w przebiegach MLflow.
Ewaluacja agenta integruje zaawansowane, oparte na badaniach techniki oceny z przyjaznym dla użytkownika zestawem SDK oraz interfejsem użytkownika, zintegrowanymi z usługą Lakehouse, MLflow oraz innymi składnikami platformy analizy danych 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żonych sędziów LLM i metryki agentów w celu oceny pozyskiwania 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 tabelę danych z wynikami oceny obliczonymi przez sędziów LLM, które są częścią procesu 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."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"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.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
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
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)
# 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 notatnik oceny agenta Mosaic AI
Wejścia i wyjścia 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 do 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
): pytanie lub zapytanie użytkownika do agenta. 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 dane pośrednie, takie jak pobrany kontekst lub wywołania narzędzi. Alternatywnie możesz bezpośrednio podać te pośrednie dane wyjściowe. -
Guidelines (
guidelines
): (Opcjonalnie) Lista wytycznych lub nazwanych wytycznych, do których oczekuje się, że dane wyjściowe modelu będą przestrzegać.
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 uzasadnienie, wyprowadzając wynik tak/nie i pisemne uzasadnienie dla tego wyniku. Aby uzyskać szczegółowe informacje, zobacz Jak jakość, koszt i opóźnienie są oceniane w ramach oceny prowadzonej przez 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 "nie przechodzi" (ma problem jakościowy).
- 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 śladu 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 zachować spójność między środowiskiem deweloperskim w trybie offline a środowiskiem produkcyjnym w trybie 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 opracowywaniem a środowiskiem produkcyjnym jest to, że w produkcji nie masz etykiet ground-truth, podczas gdy w trakcie opracowywania możesz opcjonalnie używać etykiet ground-truth. Używanie etykiet prawdy podstawowej umożliwia Ewaluację Agenta w celu obliczenia dodatkowych metryk jakości.
Programowanie (w trybie offline)
W trakcie opracowywania, requests
i expected_responses
pochodzą z zestawu ewaluacyjnego . Zestaw ewaluacyjny to zbiór reprezentatywnych danych wejściowych, które agent powinien dokładnie obsługiwać. Aby uzyskać więcej informacji na temat zestawów oceny, zobacz Zestawy oceny.
Aby uzyskać response
i trace
, Agent Evaluation może wywołać kod agenta, aby wygenerować te wyniki dla każdego wiersza w zbiorze danych 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 wdrożenia aplikacji sztucznej inteligencji używasz Mosaic AI Agent Framework, można tak skonfigurować ocenę agenta, aby automatycznie zbierała te dane wejściowe z Monitor wdrożonych agentów i stale aktualizowała tabelę monitorowania. Aby uzyskać więcej informacji, zobacz Jak monitorować aplikację sztucznej inteligencji generacji.
Jeśli wdrożysz agenta poza usługą Azure Databricks, możesz przetworzyć dzienniki w procesie ETL do wymaganego schematu wejściowego i w podobny sposób skonfigurować pulpit nawigacyjny do monitorowania.
Ustanów punkt odniesienia dla jakości za pomocą zestawu ewaluacyjnego
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, zapoznaj się z Schematem wejściowym oceny agenta.
- Aby uzyskać informacje na temat syntetycznego generowania zestawu oceny wysokiej jakości, zobacz Syntetyzowanie zestawów oceny.
Przebiegi oceniania
Aby uzyskać szczegółowe informacje na temat uruchamiania oceny, zobacz Uruchamianie oceny i wyświetlanie wyników. Ocena agenta umożliwia dwie opcje uzyskania wyników z łańcucha:
- Aplikację można uruchomić w ramach przebiegu oceny. Aplikacja generuje wyniki dla każdego danego wejściowego w zestawie ewaluacyjnym.
- 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 Podaj dane wejściowe do przebiegu oceny.
Uzyskiwanie opinii człowieka na temat jakości aplikacji generującej sztuczną inteligencję
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 Użyj aplikacji Review do przeglądania przez ludzi aplikacji z AI generatywną.
Ocena dostępności geograficznej agenta Mosaic AI
Mosaic AI Agent Evaluation to Wyznaczona Usługa, która używa Geos do zarządzania miejscem przechowywania danych podczas przetwarzania treści klienta. Aby dowiedzieć się więcej na temat dostępności oceny agenta w różnych obszarach geograficznych, zobacz Wyznaczone Usługi Databricks.
Cennik
Aby uzyskać informacje o cenach, zobacz cennik oceny agenta Mosaic AI.
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, Databricks zrezygnował z monitorowania nadużyć, dzięki czemu żadne zapytania ani odpowiedzi nie są przechowywane w usłudze Azure OpenAI.
- 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 opartych na sztucznej inteligencji Azure uniemożliwia sędziemu LLM korzystanie z modeli opartych na sztucznej inteligencji 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.