Twój system ewaluacyjny skłamie ci, zanim zrobi to twój model
Twój arkusz wyników ewaluacji wskazywał, że oba silniki zawiodły.
Llama3.2 zawiodła w 5 na 6 przypadkach. Anthropic Sonnet zawiodła w 6 na 6 przypadkach.
Etykieta brzmiała „malformed”. Ale przyczyny były inne.
Jedna awaria była błędem API z powodu braku środków. Jedna awaria wynikała z bajtów sterujących terminalem z polecenia CLI, które uszkodziły tekst. Jedna awaria polegała na poprawnym formacie JSON owiniętym w znaczniki markdown, których parser nie mógł odczytać.
Gdybym opublikował to pierwsze podsumowanie, skłamałbym. Obwiniłbym modele za błędy w moim własnym kodzie.
Znalazłem te błędy, analizując surowe dane zamiast ufać podsumowaniu.
Pierwszy błąd wystąpił, ponieważ użyłem podprocesu CLI do wywołania Ollama. Polecenie generowało animacje terminala, takie jak spinery i ruchy kursora. Te bajty sterujące ANSI trafiły do moich danych. Parser napotkał niewidoczne znaki i uległ awarii.
Rozwiązanie: Zmiana podprocesu CLI na bezpośrednie API HTTP.
Drugi błąd wystąpił, ponieważ modele LLM często owijają JSON w znaczniki markdown. Mój parser używał json.loads() na surowym ciągu znaków. Zobaczył backticki i wyrzucił błąd.
Rozwiązanie: Dodanie funkcji usuwającej znaczniki kodu przed parsowaniem.
Gdy naprawiłem pipeline, pojawiły się prawdziwe wyniki.
Modele nie były „martwe”. Były po prostu zakłócane przez system ewaluacyjny. Po naprawie różnica w jakości między oboma modelami stała się widoczna i mierzalna.
Lekcje dla twojego potoku ewaluacji AI:
- Zachowuj surowe dane wyjściowe. Jeśli podsumowanie wskazuje na „malformed”, surowe dane są twoim jedynym źródłem prawdy.
- Rejestruj powód awarii. Nie pisz po prostu „malformed”. Napisz „błąd API” lub „błąd parsowania”.
- Zamroź standardy testowe. Nie zmieniaj reguł tylko po to, aby wyniki wyglądały lepiej.
- Traktuj system ewaluacyjny jako część testowanego systemu.
Model nie jest jedynym elementem poddanym próbie. Twój kod również.
Źródło: https://dev.to/kenielzep97/your-harness-will-lie-to-you-before-your-model-does-662
Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi
