BlogTesty
Testy regresji aplikacji LLM: co uruchamiać przy zmianie promptu lub modelu
Traktuj każdą zmianę promptu, wersji modelu, indeksu wyszukiwania, narzędzia lub ustawienia u dostawcy jak wydanie, nawet jeśli nie zmienił się kod aplikacji. Trzymaj zamrożony zestaw przypadków, z którymi system już dobrze sobie radzi, oczekuj wyników bliskich 100% i zatrzymuj wydanie przy każdym nowym błędzie w kryterium krytycznym. Najpierw uruchamiaj kontrole deterministyczne, potem sprawdzonych sędziów, i porównuj starą i nową wersję przypadek po przypadku, a nie po średnich. Przypadki mierzące postęp w trudnych problemach trzymaj w osobnym zestawie, żeby niski wynik tam nie blokował każdego wydania.
Co liczy się jako zmiana
W zwykłym oprogramowaniu przebieg regresji następuje po zmianie kodu. W aplikacji LLM zachowanie zmienia się także wtedy, gdy ktoś edytuje prompt w pliku konfiguracyjnym, ponownie indeksuje dokumenty albo zmienia ustawienie, a także gdy dostawca aktualizuje model kryjący się za aliasem. Obejmij to wszystko kontrolą wersji albo przynajmniej dziennikiem zmian i uruchamiaj zestaw przy każdej z tych zmian.
- Zmiany promptu i promptu systemowego, także te wprowadzane poza repozytorium kodu
- Nowy model lub nowa wersja modelu oraz aktualizacje aliasu u dostawcy
- Nowe lub zmienione dokumenty w indeksie wyszukiwania oraz zmiany podziału na fragmenty lub embeddingów
- Nowe narzędzia oraz zmienione opisy narzędzi lub uprawnienia
- Ustawienia takie jak temperatura, maksymalna długość wyniku czy liczba pobieranych fragmentów
Co wchodzi do zestawu regresji
Zespół inżynierów Anthropic odróżnia ewaluacje możliwości, które mierzą postęp w zadaniach, z którymi system jeszcze sobie nie radzi, od ewaluacji regresji, które powinny mieć odsetek zaliczeń bliski 100%. Dla zestawu regresji oznacza to przypadki, z którymi obecna wersja sobie radzi, obejmujące każdy zauważony i naprawiony typ błędu, plus krytyczne kryteria z odbioru. Gdy błąd zostaje naprawiony, jego przypadek trafia do zestawu, żeby błąd nie wrócił niezauważony.
Ułóż kontrole według kosztu. Kontrole deterministyczne idą pierwsze i szybko wychwytują błędy: schematy, pola wymagane, argumenty narzędzi, cytaty wskazujące istniejące dokumenty, odmowy przy prośbach spoza zakresu. Potem przychodzą sędziowie LLM, każdy zweryfikowany względem ocen eksperta dziedzinowego, dla kryteriów wymagających oceny. Trzymaj zestaw na tyle mały, żeby uruchamiać go przy każdej zmianie; Hamel Husain i Shreya Shankar opisują zestawy do CI jako małe i celowe, często liczące 100 przykładów lub więcej.
Porównuj wersje przypadek po przypadku
Uruchom starą i nową wersję na tych samych przypadkach, co w języku sylabusa ISTQB CT-AI nazywa się testem back-to-back, i przyjrzyj się przypadkom, które zmieniły wynik. Nowy prompt może podnieść średnią, a mimo to zepsuć pięć przypadków, które wcześniej działały, i to właśnie te pięć może zauważyć klient. Podawaj trzy liczby: przypadki, które przestały przechodzić, przypadki, które zaczęły przechodzić, i zmianę netto.
To, czy zmiana netto jest prawdziwa, wymaga testu sparowanego, a nie porównania dwóch średnich. Nasz poradnik o wielkości próby w ewaluacjach pokazuje metodę na przykładzie: przy 100 przypadkach 8 naprawionych i 5 zepsutych to wciąż szum.
Kiedy zatrzymać wydanie
- Każdy nowy błąd w kryterium krytycznym zatrzymuje wydanie, niezależnie od średniej.
- Kontrola deterministyczna, która przestała przechodzić, zatrzymuje wydanie, bo oznacza bug.
- Przy kryteriach statystycznych zatrzymaj wydanie, gdy odsetek zaliczeń wyraźnie spadnie poniżej wymagania z odbioru, czyli także górna granica jego przedziału jest poniżej, i sprawdź ręcznie, gdy wynik jest na granicy albo przypadki zmieniły wynik w obu kierunkach.
- Sędzia, który się zmienił, z nowym modelem albo nowym promptem, jest ponownie sprawdzany na etykietach eksperta, zanim jego liczby zaczną się liczyć.
Zmiana modelu zasługuje na drugi krok. Zanim przełączysz produkcję na nowy model, uruchom go w trybie cienia na próbce prawdziwego ruchu, z odpowiedziami zapisywanymi, ale niepokazywanymi, i porównaj je z obecną wersją. Przebiegi w cieniu wychwytują pytania, których twój zestaw testów jeszcze nie zawiera.
Szybki i tani zestaw testów
Zestaw 300 przypadków, każdy w trzech przebiegach, z dwoma sędziami na przebieg, to 900 odpowiedzi i 1800 wywołań sędziów na zmianę. Pełny zestaw uruchamiaj przy zmianach modelu i promptu, a mniejszy zestaw dymny przy drobnych poprawkach, używaj zapisanych odpowiedzi niezmienionej wersji jako punktu odniesienia i przenoś sędziego na tańszy model dopiero wtedy, gdy sprawdzisz ten model na etykietach eksperta.
Pytania
Jak robić testy regresji, gdy odpowiedzi nigdy nie są identyczne?
Nie porównuj tekstu. Porównuj, czy każdy przypadek nadal przechodzi swoje kontrole, deterministyczne i oceniane. Inne sformułowanie, które nadal przechodzi, nie jest regresją.
Czy przypinać wersję modelu?
Tak, jeśli dostawca na to pozwala. Na produkcji używaj datowanej wersji modelu zamiast aliasu i przechodź na nową wersję świadomie, po przebiegu regresji, a nie wtedy, gdy zmieni się alias.
Jak często uruchamiać zestaw, gdy nic się nie zmieniło?
Według harmonogramu, na przykład co tydzień, żeby wychwycić zmiany, których nie wprowadziłeś sam: aktualizacje u dostawcy, nowe dokumenty i zmieniający się ruch. Porównuj wyniki z poprzednim przebiegiem.
Kto utrzymuje zestaw?
Zespół, który wydaje zmiany, zwykle inżynierowie, z QA sprawdzającym pokrycie i ekspertem dziedzinowym oceniającym nowe przypadki. Bez kogoś, kto dodaje przypadki z nowych błędów, zestaw powoli przestaje odzwierciedlać prawdziwe użycie.
Powiązane usługi
Testowanie systemów AI
Testy akceptacyjne i strategie testów dla aplikacji LLM, chatbotów i agentów, w języku, którego twój zespół QA już używa.
Inżynieria ewaluacji AI
Ewaluacje produktów AI, agentów i RAG zbudowane na śladach z twojego systemu, z zestawem testów i bramką wydania w twoim repozytorium.
Więcej z bloga
Jak testować systemy AI
Strategia testów dla aplikacji LLM, asystentów RAG i agentów: poziomy testów, wyrocznie, powtarzane przebiegi, dane testowe i techniki z CT-AI, które się przenoszą.
Kryteria akceptacji systemów AI
Jak pisać kryteria akceptacji aplikacji LLM, ustalać próg dla każdego typu błędu i decydować, czy zmierzony odsetek go spełnia, z kalkulatorem.
Wielkość próby w ewaluacji
Jak podawać przedziały ufności dla wyników ewaluacji, porównywać dwa prompty lub modele przypadek po przypadku i dobrać wielkość zestawu testowego do różnicy, którą chcesz wykryć.
Walidacja sędziego LLM
Jak sprawdzić sędziego LLM na ręcznie oznaczonych przykładach, raportować jego TPR i TNR i skorygować odsetek zaliczeń, który podaje.
Porozmawiaj z inżynierem
Przyjdź z jednym zadaniem, które chcesz usprawnić. Rozmowa trwa 30 minut i nie wymaga dostępu do twoich systemów ani danych.
Rezerwacja odbywa się w Kalendarzu Google.
Wolisz najpierw napisać? Zostaw adres e-mail i kilka zdań, a odpowiemy, proponując terminy.
Sprawdź wersję roboczą w swoim programie pocztowym
Wyślij ją stamtąd, a inżynier odpowie ci osobiście, proponując terminy 30-minutowej rozmowy. Jeśli wersja robocza się nie otworzyła, napisz do nas na adres miki@cloudsail.com.