Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Usługa Databricks zaleca używanie platformy MLflow 3 do oceniania i monitorowania aplikacji GenAI. Na tej stronie opisano ocenę agenta MLflow 2.
- Aby zapoznać się z wprowadzeniem do oceny i monitorowania w usłudze MLflow 3, zobacz Ocena i monitorowanie agentów sztucznej inteligencji.
- Aby uzyskać informacje na temat migracji do platformy MLflow 3, zobacz Migrowanie do platformy MLflow 3 z wersji ewaluacyjnej agenta.
- Aby uzyskać informacje dotyczące platformy MLflow 3 w tym temacie, zobacz Ocena i monitorowanie agentów sztucznej inteligencji.
Ten artykuł zawiera omówienie sposobu pracy z oceną agenta Mosaic AI, opartą na MLflow 2.
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. Zobacz Przykładowe notesy , aby zapoznać się z notesem Szybkiego startu zawierającym podobny kod, który można uruchomić w obszarze roboczym usługi Azure Databricks.
Możesz skopiować i wkleić następujące elementy do istniejącego notesu usługi Azure 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'])
Wejścia i wyjścia oceny 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): wprowadzenie do 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. -
Wytyczne (
guidelines): (Opcjonalnie) lista wytycznych lub nazwanych wytycznych, do których dane wyjściowe modelu powinny się dostosować.
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 przez ocenę agenta (MLflow 2).
- Oceny sędziów LLM są łączone, aby uzyskać ogólny wynik wskazujący, czy dany wiersz "przechodzi" (jest wysokiej jakości), czy "nie przechodzi" (ma problem z jakością).
- Dla dowolnych błędnych wierszy 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 ewaluacyjne (MLflow 2).
Aby uzyskać response i trace, Ewaluacja agenta może wywołać kod agenta, aby wygenerować te dane wyjściowe dla każdego wiersza w zestawie ewaluacyjnym. 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)
Aby uzyskać informacje na temat monitorowania w środowisku produkcyjnym, zobacz Monitor GenAI w środowisku produkcyjnym. Ta funkcja MLflow 3 jest zgodna z eksperymentami MLflow 2. Aby włączyć monitorowanie w eksperymencie MLflow 2, użyj zestawu MLflow 3 SDK, instalując mlflow>=3.1program .
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 (MLflow 2).
- Aby uzyskać wymagany schemat, zobacz Schemat wejściowy oceny agenta (MLflow 2).
- Aby uzyskać informacje na temat syntetycznego generowania zestawu oceny wysokiej jakości, zobacz Syntetyzowanie zestawów oceny.
Przebiegi oceniania
Aby uzyskać szczegółowe informacje o sposobie uruchamiania oceny, zobacz Uruchamianie oceny i wyświetlanie wyników (MLflow 2). 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 przeglądającej do przeglądów ludzkich aplikacji gen AI (MLflow 2).
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 sztucznej inteligencji opartej na partnerach uniemożliwia sędziego LLM wywoływanie modeli opartych na partnerach. Nadal możesz używać sędziów LLM, dostarczając własny model.
- Sędziowie LLM mają pomóc klientom ocenić swoich agentów i aplikacje GenAI, a dane wyjściowe sędziów LLM nie powinny być używane do trenowania, ulepszania ani dostosowywania LLM.
Przykładowe notatniki
W poniższych notesach pokazano, jak używać narzędzia Mosaic AI Agent Evaluation.