Zespół badawczy opracował Perturber - narzędzie pozwalające systematycznie testować, jak duże modele językowe radzą sobie z perturbacjami tekstu, które zachowują znaczenie. Problem polega na tym, że ewaluacje LLM na czystych benchmarkach maskują rzeczywistą odporność modeli - gdy dane są zaszumione lub zmieniane w sposoby, które nie wpływają na ich sens, modele często dają zupełnie inne odpowiedzi.

Perturber to service bez stanu (stateless) i biblioteka Pythona, która aplikuje dokładnie jedną perturbację na wywołanie, wybierając z katalogu zawierającego 68 perturbacji podzielonych na 11 rodzin. Każda perturbacja jest stosowana w izolacji, a logika komponowania różnych perturbacji pozostaje po stronie użytkownika. Dzięki temu architekturze service i biblioteka Pythona produkowały identyczne wyniki z konstrukcji, co zapewnia pełną reproducibilność - niezależnie od tego, gdzie kod się uruchomi.

Badacze położyli szczególny nacisk na ewaluację samego narzędzia pod kątem poprawności, reproducibilności i kosztów obliczeniowych, zamiast oceniać odporność konkretnego modelu. Projekt zawiera live playground do eksperymentowania, katalog perturbacji do przeglądania i wyboru do benchmarkingu, oraz możliwość jednokomendowego uruchomienia reproducibilnych ewaluacji. To podejście pozwala badaczom bardziej realistycznie testować, jak modele linguistyczne zachowują się wobec naturalnych wahań w tekście wejściowym.