OpenAI Evals – kompleksowy przewodnik po nowym narzędziu do oceny AI #EN115

TL;DR

  • OpenAI Evals to nowa funkcja beta do oceny wydajności modeli AI, którą autor nazywa „incredibly cool and powerful”
  • Automatyczne zbieranie danych przez ustawienie parametru „Store=True” w chat completions API
  • Różnorodne kryteria oceny – factuality, semantic similarity, sentiment analysis, custom prompts i inne
  • Integracja z Voice AI – autor stworzył darmowy template do analizy rozmów z VAPI
  • Format JSONL wymagany do importu – każdy klucz JSON staje się oddzielną kolumną w evaluations
  • Ograniczenia beta – brak API, dostęp tylko przez dashboard
  • Potencjał uproszczenia stosów technologicznych zastępując narzędzia jak Langfuse

Nowe narzędzie obok Realtime API

OpenAI wypuściło funkcję Evals obok Realtime API. Nie byłby zaskoczony, gdyby ludzie o tym nie słyszeli – podkreśla autor – ponieważ to nowa funkcja. Evals to skrót od „evaluating model performance”, czyli pomocy w ewaluacji LLM-ów lub modeli OpenAI.

Według autora ma to potencjał uproszczenia stosów technologicznych obecnie używanych do analizy. W kontekście Voice AI, gdzie się specjalizuje, staje się to „incredibly powerful”. Programowo można teraz zrozumieć całe przepływy konwersacji bezpośrednio w API, bez polegania na zewnętrznych dostawcach.

Wcześniej dostępne były narzędzia jak Langfuse, które można było zainstalować do analizy każdej wiadomości. Dzięki nim możliwe było wyciąganie danych w celu poprawy modelu i re-promptowania. Teraz jednak z tą nową funkcją można to robić bezpośrednio w OpenAI.

Zbieranie danych do analizy

Automatyczne zbieranie przez Store=True

Najbardziej eleganckim rozwiązaniem pokazanym przez autora jest automatyczne zbieranie danych z chat completions. Wystarczy jednak dodać jeden klucz do żądania API:

"Store": true

Jak wyjaśnia autor, ustawienie tego klucza automatycznie rozpoczyna zbieranie wszystkich chat completions utworzonych przy użyciu tego endpointu. Dane trafiają następnie bezpośrednio do konta OpenAI. W dokumentacji OpenAI dodano ponadto screenshot pokazujący sekcję Chat Completions, gdzie można zobaczyć wszystkie chat completions. Następnie można je zacząć ewaluować.

Własne zestawy danych

Jak podkreśla autor, to najważniejszy punkt całego setupu – bez zestawu danych całe narzędzie nie będzie pomocne, ponieważ potrzebne są jakieś dane. Mogą to być dane rzeczywiste lub syntetyczne (generowane przez AI), jednak musi to być jakiś rodzaj danych, które można do tego wprowadzić.

OpenAI pozwala nie tylko uploadować zestaw danych, ale również bezpośrednio wykorzystywać chat completions z platformy OpenAI do generowania zestawów danych.

Dostępne kryteria oceny

Dostępne jest kilka kryteriów w dashboardzie OpenAI, w sekcji evaluations:

Podstawowe sprawdzenia

  • Factuality – sprawdza czy niektóre dane są dokładne
    • Wymaga pola z pytaniem, odpowiedzią modelu i referencyjną odpowiedzią
    • W przypadku analizy rozmów nie jest to jednak istotne
  • Semantic similarity – porównuje różne wartości semantycznie
    • Nie działa jak operator równości sprawdzający czy to jest dokładnie to samo
    • Sprawdza natomiast czy są semantycznie podobne
    • Jeśli ustawisz na 4, muszą być dość podobne aby przejść
    • Z kolei jeśli ustawisz niżej, nie muszą być tak podobne
    • Przydatne do A/B testowania transkryptów voice agentów
  • String check – sprawdza czy określona kolumna ma określony string lub jego część
    • Można sprawdzić czy wspomina o „booking”, „schedule” czy określonej właściwości
  • JSON/XML validation – sprawdza czy odpowiedzi mają format JSON lub XML i pasują do schematu
  • Criteria match – sprawdza czy dane spełniają określone kryteria
    • Przykład: czy konwersacja jest profesjonalna
    • Wymaga jednak pola z konwersacją i odpowiedzią modelu
  • Text quality – dodatkowo autor wspomina jako jedno z dostępnych kryteriów
  • Sentiment analysis – sprawdza sentyment konwersacji
    • W tym przypadku autor ustawia na „positive” aby sprawdzić czy rozmowy były pozytywne
  • Custom prompt – pozwala natomiast zdefiniować własne wartości do sprawdzenia pass/fail

Praktyczny przykład z VAPI

Według autora stworzył template na Replit, który pozwala wyciągnąć rozmowy VAPI bezpośrednio z dashboardu VAPI. Następnie można je wyeksportować jako zestaw danych sformatowany do importu w sekcji evaluations OpenAI.

Template jest dostępny za darmo na hub.indegradicus.com. Po kliknięciu Fork tworzysz ponadto własną kopię na swoim koncie Replit.

Checklist: Proces z VAPI

Kliknij Fork na stronie Replit aby stworzyć własną kopię
Kliknij Run aby uruchomić serwer z formularzem
Dodaj VAPI key (prywatny klucz z sekcji API Keys w dashboardzie VAPI)
Ustaw limit – maksymalnie 100 (ograniczenie API), autor poleca 10 do testów
Opcjonalnie dodaj assistant ID jeśli chcesz filtrować konkretnego asystenta
Kliknij Fetch Data i poczekaj na przetworzenie
Pobierz plik przez przycisk „Download Process Data”

Struktura danych z VAPI

Autor skonfigurował sześć różnych pól danych:

  • Call type – outbound, inbound, web call (zależnie od setupu)
  • Cost – koszt w centach
  • Analysis summary – podsumowanie całej rozmowy z agentem VAPI
  • Analysis structure – zwykle zawiera KPI śledzone przez strukturalne dane w VAPI
  • Analysis successful evaluation – ocena czy rozmowa była udana
  • Complete transcript – cała konwersacja jako string tekstowy

Evals automatycznie dodaje wszystkie te kolumny jako zmienne, których można użyć do dalszej oceny zestawu danych.

Import do OpenAI

Checklist: Import i konfiguracja

Przejdź do sekcji Evaluations w dashboardzie OpenAI
Kliknij Create aby otworzyć sidebar z setupem
Wybierz Import i kliknij Upload
Uploaduj pobrany plik z VAPI
Sprawdź rozpoznane pola – zobaczysz pola z lewej strony
Dodaj kryteria testowe klikając „Add”
Skonfiguruj każde kryterium według potrzeb

Przykład konfiguracji custom prompt

Autor pokazuje tworzenie custom prompt do sprawdzania satysfakcji klienta. Wybiera GPT-4o mini zamiast droższych modeli, ponieważ powinno wystarczyć i jest tańsze.

Prompt klasyfikuje czy użytkownik w transkrypcji był zadowolony czy nie, zwracając wartości: satisfied, unsatisfied, unclear.

W gradingu autor ustawia:

  • satisfied = fail
  • unsatisfied = pass
  • unclear = pass

Autor wyjaśnia, że odwrócił to, ponieważ chce zobaczyć które rozmowy poszły źle, nie te udane.

Tworzenie własnych zestawów danych JSONL

Szczegółowo wyjaśnia autor jak stworzyć zestaw danych w wymaganym formacie.

Format JSONL

W JSON editorze pokazuje autor, że każda linia w dokumencie będzie własnym obiektem danych niezależnym od innych. Sposób reprezentacji w evaluations OpenAI polega natomiast na tym, że każdy klucz najwyższego poziomu w JSON jest oddzielną kolumną.

Przykład struktury:

{"first_name": "Janis", "last_name": "Doe", "youtube_handle": "janismore"}

Checklist: Tworzenie pliku JSONL

Stwórz jednowymiarowy obiekt JSON z kluczami i wartościami
Zminimalizuj do jednej linii klikając ikonę minifikacji
Skopiuj linię tyle razy ile masz rekordów danych
Zmień wartości w każdej linii na odpowiednie dane
Zapisz jako plik .jsonl – rozszerzenie jest bardzo ważne
Importuj w sekcji Evaluations w dashboardzie OpenAI

Uruchamianie i rezultaty

Estymacja kosztów

Przed każdym uruchomieniem system pokazuje estymację kosztów. W przykładzie autora: 81,920 tokenów z GPT-4o mini nie jest zbyt drogie. Jednak przy większych zestawach danych (100,000+ linii) estymacja staje się ważna.

Analiza wyników

Po uruchomieniu odświeża autor stronę i widzi status „succeeded” z wynikami „scores 20%, custom prompt 100%”.

W rezultatach sentiment classifier pokazuje pass lub fail (czy sentyment pasował do zdefiniowanych kryteriów). Z kolei custom prompt pokazuje pass dla wszystkich konwersacji, co oznacza że we wszystkich klienci nie byli zadowoleni.

Jak wyjaśnia autor, prawdopodobnie wynika to z danych testowych – gdyby to był prawdziwy agent z bookingami i zadowolonymi klientami, wyniki byłyby inne.

Obecne ograniczenia

Funkcja jest w beta, więc wskazuje autor na ograniczenia:

  • Brak API – nie widział jeszcze referencji API
  • Dostęp tylko przez dashboard – nie można w pełni używać z API
  • Status beta – wciąż w fazie rozwoju

Mimo to uważa autor, że jest to „incredibly cool” i będzie „massively powerful”. Wierzy ponadto, że wkrótce będzie API, ale na razie dobrze jest zapoznać się z funkcją. Będzie bowiem znacznie ważniejsza i zaawansowana długoterminowo.

Przyszłość i potencjał

Wierzy autor, że będzie to znacznie bardziej rozwinięte i zobaczymy API, ponieważ jeszcze go nie widział. Podkreśla przy tym znaczenie wczesnego zapoznania się z narzędziem.

W kontekście Voice AI staje się to potężne, ponieważ można programowo zrozumieć cały przepływ konwersacji bezpośrednio w API. Może to w związku z tym uprościć stosy technologiczne używane obecnie do analizy.

Kończy autor mówiąc, że „data is king” – wszyscy to wiemy, więc możliwość wyciągnięcia większej ilości danych będzie bardzo ważna.

Podsumowanie

OpenAI Evals reprezentuje nowy sposób oceny wydajności modeli AI bezpośrednio w ekosystemie OpenAI. Zapewnia ponadto autor dostęp do darmowego template dla VAPI i zachęca do eksperymentowania z funkcją w fazie beta.

Podkreśla również, że mimo obecnych ograniczeń, warto się zapoznać z narzędziem już teraz. Ma bowiem potencjał znacznego rozwoju i uproszczenia workflow analitycznych.


Ten wpis jest częścią mojej kolekcji notatek z ciekawych podcastów, webinarów i innych treści, które uważam za wartościowe i do których sam chcę wracać. Jeśli chcesz sprawdzić oryginalne źródło, materiał pochodzi z: OpenAI Evals Explained with Examples | AI Voice


Opublikowano

,

Komentarze

Dodaj komentarz