Budowanie zestawu testów referencyjnych
Zbierz 50–200 wysokiej jakości par (dane wejściowe, oczekiwane dane wyjściowe), obejmujących rzadkie przypadki rzeczywistego użycia.
Budowanie zestawu testów referencyjnych to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Czym jest zestaw referencyjny
„Golden test set” (lub „gold set”) to starannie wyselekcjonowany zbiór par (dane wejściowe, oczekiwane wyjście), który definiuje właściwe zachowanie.
Każda zmiana jest mierzona względem tego zestawu.
Cechy dobrego zestawu referencyjnego
- Różnorodny — obejmuje typowe i skrajne przypadki
- Wyselekcjonowany przez ludzi — niegenerowany automatycznie
- Wersjonowany — zapisany w repozytorium
- Udokumentowany — każdy przypadek ma uzasadnienie
Ile przypadków
Praktyczna zasada:
- 50 przypadków — minimum pozwalające rozpocząć pracę
- 200 przypadków — dobre pokrycie
- 1000+ przypadków — dojrzały produkt
Jakość > liczba. 50 dobrze dobranych przypadków jest lepszych niż 500 losowych.
Pozyskiwanie przypadków
- Wywiady z użytkownikami — o co pytają prawdziwi użytkownicy
- Logi produkcyjne — pytania, które rzeczywiście się pojawiły
- Zgłoszenia błędów — każdy błąd staje się ewaluacją
- Generowanie adversarialne — należy poprosić LLM o przełamanie agenta
Mining Bad Production Traces
for trace in last_week_traces():
if trace.has_thumbs_down or trace.had_error:
case = {
'input': trace.input,
'why_bad': trace.feedback_comment,
'expected': None # to be filled by human reviewer
}
save_to_review_queue(case)Oczekiwane wyjście: dopasowanie dokładne a heurystyka
Istnieją dwa rodzaje oczekiwanego wyjścia:
- Dokładne dopasowanie — w przypadku ekstrakcji, klasyfikacji i obliczeń
- Heurystyczne — w przypadku otwartych pytań i odpowiedzi; należy oceniać, czy pojawiają się kluczowe fakty
Heuristic Scoring
def score_answer(actual, expected_facts):
return sum(1 for f in expected_facts if f.lower() in actual.lower()) / len(expected_facts)
case = {
'input': 'What is our refund policy?',
'expected_facts': ['30 days', 'unopened', 'receipt required'],
'min_score': 0.66 # at least 2 of 3 facts mentioned
}
actual_answer = "You can return items within 30 days if they are unopened."
score = score_answer(actual_answer, case['expected_facts'])
print(f"Score: {score:.2f} (min required: {case['min_score']})")
Przypadki adversarialne
Należy uwzględniać trudne przypadki:
- Pytania wykraczające poza zakres („Jaka jest pogoda na Marsie?”)
- Niejednoznaczne zapytania
- Próby prompt injection
- Dane wejściowe w językach obcych
- Bardzo długie dane wejściowe
Wersjonowanie zestawu referencyjnego
Należy przechowywać go jako JSON w repozytorium. Każdy PR aktualizujący zestaw musi wyjaśniać dlaczego:
// gold-set.json
[
{
"id": "refund-policy-001",
"input": "What is your refund policy?",
"expected_facts": ["30 days", "unopened", "receipt required"],
"added_by": "alice@",
"added_at": "2025-08-12",
"reason": "Top customer support question"
}
]Podział na dane testowe i holdout
Aby wykrywać przeuczenie, należy podzielić dane na:
- Zestaw deweloperski — na nim należy iterować (jest widoczny)
- Zestaw testowy — na nim należy dokonywać pomiarów (nie należy dostrajać do niego modelu)
- Holdout — używany wyłącznie przed dużymi wydaniami
Tagowanie przypadków
Należy otagować przypadki według kategorii, aby widzieć, GDZIE nastąpiło pogorszenie:
tag1 = {'tags': ['policy', 'common-question']}
tag2 = {'tags': ['math', 'edge-case']}
print(tag1)
print(tag2)
# Run eval and report:
print("Category 'policy': 0.92")
print("Category 'math': 0.68 <- regression here")
Rubryki ewaluacyjne
W przypadku złożonych wyników należy przygotować rubrykę: co musi się pojawić, co NIE MOŻE się pojawić i co jest preferowane:
rubric = {
'must_include': ['30 days'],
'must_not_include': ['no refunds'],
'preferably_includes': ['receipt']
}
for k, v in rubric.items():
print(f"{k}: {v}")
Źródło przypadków
Jakie źródło przypadków ewaluacyjnych dostarcza najbardziej miarodajnych danych?
Podsumowanie
Co najmniej 50 wyselekcjonowanych przypadków pochodzących od prawdziwych użytkowników i z awarii produkcyjnych. Należy je wersjonować, tagować i dzielić na zestawy deweloperskie, testowe oraz holdout. Zestaw należy powiększać przy każdym błędzie.
Ucz się AI Agents dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 60
- Lekcje
- 239
Często zadawane pytania
Czy lekcja „Budowanie zestawu testów referencyjnych” jest bezpłatna?
Tak — pełny tekst „Budowanie zestawu testów referencyjnych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Budowanie zestawu testów referencyjnych”?
Zbierz 50–200 wysokiej jakości par (dane wejściowe, oczekiwane dane wyjściowe), obejmujących rzadkie przypadki rzeczywistego użycia. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Budowanie zestawu testów referencyjnych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie agentów sterowane ewaluacją
- Budowanie zestawu testów referencyjnych
- Pułapki podejścia LLM-as-a-Judge
- Zestawy benchmarków: SWE-Bench, GAIA, ToolBench