Przepływy i metryki oceny
Przepływy oceny to specjalny typ przepływu monitów, który oblicza metryki, aby ocenić, jak dobrze wyniki przebiegu spełniają określone kryteria i cele. Możesz tworzyć lub dostosowywać przepływy i metryki oceny dostosowane do zadań i celów oraz użyć ich do oceny innych przepływów monitów. W tym artykule opisano przepływy ewaluacyjne, sposób ich opracowywania i dostosowywania oraz używania ich w przebiegach wsadowych monitów w celu oceny wydajności przepływu.
Omówienie przepływów oceny
Przepływ monitu to sekwencja węzłów, które przetwarzają dane wejściowe i generują dane wyjściowe. Przepływy ewaluacyjne używają również wymaganych danych wejściowych i generują odpowiednie dane wyjściowe, które zwykle są wynikiem lub metrykami. Przepływy ewaluacyjne różnią się od standardowych przepływów w środowisku tworzenia i użyciu.
Przepływy ewaluacyjne zwykle są uruchamiane po uruchomieniu, które testują, odbierając jego dane wyjściowe i używając danych wyjściowych do obliczania wyników i metryk. Metryki dziennika przepływów oceny przy użyciu funkcji zestawu SDK log_metric()
przepływu monitu.
Dane wyjściowe przepływu oceny to wyniki, które mierzą wydajność testowanego przepływu. Przepływy oceny mogą mieć węzeł agregacji, który oblicza ogólną wydajność przepływu testowanego w testowym zestawie danych.
W następnych sekcjach opisano sposób definiowania danych wejściowych i wyjściowych w przepływach oceny.
Dane wejściowe
Przepływy ewaluacyjne obliczają metryki lub wyniki dla przebiegów wsadowych, biorąc pod uwagę dane wyjściowe przebiegu, który testują. Jeśli na przykład testowany przepływ jest przepływem pytań i odpowiedzi, który generuje odpowiedź na podstawie pytania, możesz nazwać dane wejściowe oceny jako answer
. Jeśli testowany przepływ jest przepływem klasyfikacji, który klasyfikuje tekst do kategorii, możesz nazwać dane wejściowe oceny jako category
.
Mogą być potrzebne inne dane wejściowe jako prawda naziemna. Jeśli na przykład chcesz obliczyć dokładność przepływu klasyfikacji, musisz podać kolumnę category
zestawu danych jako podstawowe informacje. Jeśli chcesz obliczyć dokładność przepływu pytań i odpowiedzi, musisz podać answer
kolumnę zestawu danych jako podstawy prawdy. Może być konieczne użycie innych danych wejściowych w celu obliczenia metryk, takich jak question
i context
w scenariuszach QnA lub pobierania rozszerzonej generacji (RAG).
Definiujesz dane wejściowe przepływu oceny w taki sam sposób, jak definiujesz dane wejściowe standardowego przepływu. Domyślnie ocena używa tego samego zestawu danych co testowany przebieg. Jeśli jednak odpowiednie etykiety lub docelowe wartości prawdy naziemnej znajdują się w innym zestawie danych, możesz łatwo przełączyć się na ten zestaw danych.
Opisy danych wejściowych
Aby opisać dane wejściowe potrzebne do obliczania metryk, możesz dodać opisy. Opisy są wyświetlane podczas mapowania źródeł wejściowych w przesłaniach przebiegu wsadowego.
Aby dodać opisy dla poszczególnych danych wejściowych, wybierz pozycję Pokaż opis w sekcji danych wejściowych podczas opracowywania metody oceny, a następnie wprowadź opisy.
Aby ukryć opisy w formularzu wejściowym, wybierz pozycję Ukryj opis.
Dane wyjściowe i metryki
Dane wyjściowe oceny to wyniki pokazujące wydajność testowanego przepływu. Dane wyjściowe zwykle zawierają metryki, takie jak wyniki, i mogą również zawierać tekst z przyczyn i sugestii.
Wyniki wyjściowe
Monit przepływa przetwarza jeden wiersz danych w danym momencie i generuje rekord wyjściowy. Przepływy ewaluacyjne mogą również obliczyć wyniki dla każdego wiersza danych, dzięki czemu można sprawdzić, jak przepływ działa w poszczególnych punktach danych.
Wyniki dla każdego wystąpienia danych można rejestrować jako dane wyjściowe przepływu oceny, określając je w sekcji wyjściowej przepływu oceny. Środowisko tworzenia jest takie samo jak definiowanie standardowych danych wyjściowych przepływu.
Poszczególne wyniki można wyświetlić na karcie Dane wyjściowe po wybraniu pozycji Wyświetl dane wyjściowe, tak samo jak podczas sprawdzania danych wyjściowych standardowego przebiegu partii przepływu. Możesz dołączyć te wyniki na poziomie wystąpienia do danych wyjściowych przetestowanego przepływu.
Rejestrowanie agregacji i metryk
Przepływ oceny zapewnia również ogólną ocenę przebiegu. Aby odróżnić ogólne wyniki od poszczególnych wyników wyjściowych, te ogólne wartości wydajności przebiegu są nazywane metrykami.
Aby obliczyć ogólną wartość oceny na podstawie poszczególnych wyników, zaznacz pole wyboru Agregacja w węźle języka Python w przepływie oceny, aby przekształcić ją w węzeł redukcji . Następnie węzeł przyjmuje dane wejściowe jako listę i przetwarza je jako partię.
Za pomocą agregacji można obliczyć i przetworzyć wszystkie wyniki poszczególnych danych wyjściowych przepływu i obliczyć ogólny wynik przy użyciu każdego wyniku. Na przykład aby obliczyć dokładność przepływu klasyfikacji, można obliczyć dokładność poszczególnych danych wyjściowych oceny, a następnie obliczyć średnią dokładność wszystkich danych wyjściowych oceny. Następnie możesz zarejestrować średnią dokładność jako metrykę przy użyciu polecenia promptflow_sdk.log_metric()
. Metryki muszą być numeryczne, takie jak float
lub int
. Rejestrowanie metryk typu ciągu nie jest obsługiwane.
Poniższy fragment kodu to przykład obliczania ogólnej dokładności przez uśrednianie wyniku grades
dokładności wszystkich punktów danych. Ogólna dokładność jest rejestrowana jako metryka przy użyciu metody promptflow_sdk.log_metric()
.
from typing import List
from promptflow import tool, log_metric
@tool
def calculate_accuracy(grades: List[str]): # Receive a list of grades from a previous node
# calculate accuracy
accuracy = round((grades.count("Correct") / len(grades)), 2)
log_metric("accuracy", accuracy)
return accuracy
Ponieważ ta funkcja jest wywoływana w węźle języka Python, nie musisz przypisywać jej gdzie indziej i później można wyświetlić metryki. Po użyciu tej metody oceny w przebiegu wsadowym możesz wyświetlić metrykę przedstawiającą ogólną wydajność, wybierając kartę Metryki podczas wyświetlania danych wyjściowych.
Opracowywanie przepływu oceny
Aby opracować własny przepływ oceny, wybierz pozycję Utwórz na stronie Przepływ monitu usługi Azure Machine Learning Studio. Na stronie Tworzenie nowego przepływu możesz wykonać następujące czynności:
Wybierz pozycję Utwórz na karcie Przepływ oceny w obszarze Utwórz według typu. Ten wybór zawiera szablon do tworzenia nowej metody oceny.
Wybierz pozycję Przepływ oceny w galerii Eksploruj i wybierz jeden z dostępnych wbudowanych przepływów. Wybierz pozycję Wyświetl szczegóły , aby uzyskać podsumowanie każdego przepływu, a następnie wybierz pozycję Klonuj , aby otworzyć i dostosować przepływ. Kreator tworzenia przepływu ułatwia modyfikowanie przepływu dla własnego scenariusza.
Obliczanie wyników dla każdego punktu danych
Przepływy oceny obliczają wyniki i metryki dla przepływów uruchamianych w zestawach danych. Pierwszym krokiem w przepływach oceny jest obliczanie wyników dla poszczególnych danych wyjściowych.
Na przykład w wbudowanym przepływie oceny dokładności klasyfikacji, grade
który mierzy dokładność każdego wygenerowanego przepływu danych wyjściowych do odpowiedniej prawdy podstawowej jest obliczana w węźle języka Python klasy .
Jeśli używasz szablonu przepływu oceny, obliczysz ten wynik w węźle line_process Python. Możesz również zastąpić węzeł line_process python dużym węzłem modelu językowego (LLM), aby użyć modułu LLM do obliczenia wyniku lub użyć wielu węzłów do wykonania obliczeń.
Jako dane wyjściowe przepływu oceny należy określić dane wyjściowe tego węzła, co oznacza, że dane wyjściowe są wynikiem obliczanym dla każdej próbki danych. Możesz również uzyskać przyczynę wyjściową, aby uzyskać więcej informacji, i jest to takie samo środowisko, jak definiowanie danych wyjściowych w standardowym przepływie.
Obliczanie i rejestrowanie metryk
Następnym krokiem oceny jest obliczenie ogólnych metryk w celu oceny przebiegu. Metryki są obliczane w węźle języka Python z wybraną opcją Agregacja . Ten węzeł pobiera wyniki z poprzedniego węzła obliczeniowego i organizuje je na liście, a następnie oblicza ogólne wartości.
Jeśli używasz szablonu oceny, ten wynik jest obliczany w węźle agregacji . Poniższy fragment kodu przedstawia szablon dla węzła agregacji.
from typing import List
from promptflow import tool
@tool
def aggregate(processed_results: List[str]):
"""
This tool aggregates the processed result of all lines and log metric.
:param processed_results: List of the output of line_process node.
"""
# Add your aggregation logic here
aggregated_results = {}
# Log metric
# from promptflow import log_metric
# log_metric(key="<my-metric-name>", value=aggregated_results["<my-metric-name>"])
return aggregated_results
Możesz użyć własnej logiki agregacji, takiej jak obliczanie średniej oceny, mediany lub odchylenia standardowego.
Rejestrowanie metryk przy użyciu promptflow.log_metric()
funkcji . W jednym przepływie oceny można rejestrować wiele metryk. Metryki muszą być numeryczne (float
/int
).
Korzystanie z przepływów oceny
Po utworzeniu własnego przepływu i metryk oceny możesz użyć przepływu do oceny wydajności standardowego przepływu. Możesz na przykład ocenić przepływ pytań i odpowiedzi, aby przetestować, jak działa na dużym zestawie danych.
W usłudze Azure Machine Learning Studio otwórz przepływ, który chcesz ocenić, a następnie wybierz pozycję Oceń na górnym pasku menu.
W kreatorze Uruchamiania i oceny usługi Batch wypełnij ustawienia podstawowe i ustawienia uruchamiania usługi Batch, aby załadować zestaw danych na potrzeby testowania i konfigurowania mapowania danych wejściowych. Aby uzyskać więcej informacji, zobacz Przesyłanie przebiegu wsadowego i ocenianie przepływu.
W kroku Wybierz ocenę możesz wybrać co najmniej jedną niestandardową ocenę lub wbudowane oceny do uruchomienia. Niestandardowa ocena zawiera listę wszystkich przepływów oceny utworzonych, sklonowanych lub dostosowanych. Przepływy ewaluacyjne utworzone przez inne osoby pracujące nad tym samym projektem nie są wyświetlane w tej sekcji.
Na ekranie Konfigurowanie oceny określ źródła wszystkich danych wejściowych wymaganych do metody oceny. Na przykład kolumna podstawowej prawdy może pochodzić z zestawu danych. Jeśli metoda oceny nie wymaga danych z zestawu danych, nie musisz wybierać zestawu danych ani odwoływać się do żadnych kolumn zestawu danych w sekcji mapowania danych wejściowych.
W sekcji Mapowanie danych wejściowych oceny można wskazać źródła wymaganych danych wejściowych do oceny. Jeśli źródło danych pochodzi z danych wyjściowych przebiegu, ustaw źródło jako
${run.outputs.[OutputName]}
. Jeśli dane pochodzą z testowego zestawu danych, ustaw źródło jako${data.[ColumnName]}
. Wszystkie opisy ustawione dla danych wejściowych są również wyświetlane tutaj. Aby uzyskać więcej informacji, zobacz Przesyłanie przebiegu wsadowego i ocenianie przepływu.Ważne
Jeśli przepływ oceny ma węzeł LLM lub wymaga połączenia z użyciem poświadczeń lub innych kluczy, musisz wprowadzić dane połączenia w sekcji Połączenie na tym ekranie, aby móc korzystać z przepływu oceny.
Wybierz pozycję Przejrzyj i prześlij , a następnie wybierz pozycję Prześlij , aby uruchomić przepływ oceny.
Po zakończeniu przepływu oceny można zobaczyć wyniki na poziomie wystąpienia, wybierając pozycję Wyświetl uruchomienia>wsadowe Wyświetl najnowsze dane wyjściowe przebiegu wsadowego w górnej części ocenianego przepływu. Wybierz przebieg oceny z listy rozwijanej Dołącz powiązane wyniki , aby wyświetlić ocenę dla każdego wiersza danych.