Testy adversarialne dla Generative AI

Testy wtórne to metoda systematycznego oceniania modelu ML w celu sprawdzenia, jak zachowuje się on w przypadku wprowadzenia szkodliwych lub niezamierzonych szkodliwych działań. W tym przewodniku opisaliśmy przykładowy przepływ pracy testowania awersyjnego sztucznej inteligencji.

Czym jest testowanie wtórne?

Testowanie jest kluczowym elementem tworzenia solidnych i bezpiecznych aplikacji AI. Testowe testy polegają na proaktywnej próbie awarii aplikacji przez udostępnienie jej danych, które z największym prawdopodobieństwem wywołają problem. Zapytania alternatywne prawdopodobnie powodują, że model nie działa w niebezpieczny sposób (np. narusza zasady bezpieczeństwa) i może powodować błędy łatwe do zidentyfikowania przez użytkowników, ale trudne do rozpoznania przez systemy.

Zapytania mogą mieć różne nazwy. Zapytania, które są bezpośrednio wulgarne, mogą zawierać język naruszający zasady lub poglądy naruszające te zasady. Mogą też sondować lub próbowały oszukać model, sugerując coś niebezpiecznego, szkodliwego lub obraźliwego. Zapytania bezpośrednie mogą wydawać się nieszkodliwe, ale mogą zawierać kontrowersyjne tematy, które są kontrowersyjne, kulturowe lub potencjalnie szkodliwe. Mogą to być informacje demograficzne, dotyczące zdrowia, finansów czy religii.

Testowanie wtórne może pomóc zespołom w ulepszaniu modeli i produktów przez przedstawienie bieżących błędów, które mają pomóc w łagodzeniu problemów łagodzących, takich jak dostrajanie, zabezpieczenia modeli lub filtry. Poza tym może ułatwiać podejmowanie decyzji dotyczących wprowadzania produktów na rynek poprzez pomiar ryzyka, które może zostać złagodzone, np. przez prawdopodobieństwo, że model zawierający treści naruszające zasady.

W tym przewodniku znajdziesz wskazówkę dotyczącą sprawdzonych metod odpowiedzialnej sztucznej inteligencji. Znajdziesz w nim przykładowy przepływ pracy w zakresie testowania dodatkowych modeli i systemów generacyjnych.

Przykładowy przepływ pracy testowania alternatywnego

Testowanie wsadowe przebiega zgodnie ze przepływem pracy przypominającym standardową ocenę modelu.

Rozpoznawanie i definiowanie danych wejściowych

Pierwszym etapem testowania adwersaryjnego jest określenie danych wejściowych, aby dowiedzieć się, jak system zachowuje się celowo i systematycznie. Przemyślane dane wejściowe mogą bezpośrednio wpływać na efektywność procesu testowania. Te dane wejściowe mogą pomóc w określeniu zakresu i celów testu alternatywnego:

  • Zasady dotyczące produktów i tryby awarii
  • Przypadki użycia
  • Wymagania dotyczące różnorodności

Zasady dotyczące produktów i tryby awarii

Usługi Generatory AI powinny określać zasady bezpieczeństwa opisujące działania związane z produktami i dane wyjściowe modeli, które są niedozwolone (czyli są uważane za „niebezpieczne”). Zasada powinna określać tryby awarii, które są uważane za naruszenia zasad. Ta lista trybów nie powinna być podstawą do testów wtórnych. Mogą to być na przykład treści zawierające wulgarny język albo porady finansowe, prawne lub medyczne.

Przypadki użycia

Innym ważnym aspektem testowania wtórnego jest przypadki użycia modelu generacyjnego lub produktu, które mają być realizowane, dzięki czemu dane testowe przedstawiają możliwe sposoby interakcji użytkowników z produktem w świecie rzeczywistym. Każde rozwiązanie generacyjne ma nieco inne zastosowanie, ale najczęstszymi z nich są: fakty, podsumowania i generowanie kodu dla modeli językowych lub generowanie obrazów tła według położenia geograficznego, terenu, sztuki lub stylu ubioru.

Wymagania dotyczące różnorodności

Zbiory danych testowych powinny być wystarczająco zróżnicowane i reprezentatywne w odniesieniu do wszystkich docelowych trybów awarii i przypadków użycia. Pomiar różnorodnych zbiorów danych testowych pomaga wykrywać potencjalne odchylenia i gwarantuje, że modele są obszernie testowane z uwzględnieniem różnorodnej populacji użytkowników.

Trzy sposoby myślenia o różnorodności:

  • Zróżnicowanie językowe: dopilnuj, aby zapytania miały różną długość (np. liczbę słów), używają szerokiego zakresu słownictwa, nie zawierały duplikatów i przedstawiały różne formuły (np. pytania wh, bezpośrednie i pośrednie).
  • Różnorodność semantyczna: dopilnuj, aby zapytania dotyczyły wielu różnych kwestii związanych z daną zasadą (np. cukrzyca w zakresie zdrowia), w tym cech wrażliwych i tożsamości (np. płeć, przynależność etniczna) w różnych przypadkach użycia i kontekstach globalnych.
  • Zróżnicowanie zasad i przypadków użycia: dopilnuj, aby zapytania dotyczyły wszystkich naruszeń zasad (np. szerzenia nienawiści) oraz przypadków użycia (np. porad ekspertów).

Znajdowanie lub tworzenie testowych zbiorów danych

Testowe zbiory danych do testowania adwersaryjnego są tworzone inaczej niż standardowe zbiory do oceny modelu. W standardowych ocenach modeli testowe zbiory danych są zwykle projektowane w celu dokładnego odzwierciedlenia dystrybucji danych, które model napotka w usłudze. W przypadku testów wdrożeniowych dane testowe są wybierane, aby uzyskać problemy z modelem w celu udowodnienia jego zachowania w przykładach poza dystrybucją i przypadkach skrajnych związanych z zasadami bezpieczeństwa. Wysokiej jakości wzorcowy zestaw testów powinien obejmować wszystkie wymiary zasad bezpieczeństwa i zmaksymalizować zakres zastosowań, które ma obsługiwać model. Powinny być zróżnicowane pod względem leksykalnym (np. zapytania o zróżnicowanej długości i językach) oraz semantyczne (np. uwzględniające różne zagadnienia i dane demograficzne).

Sprawdzenie istniejących zbiorów danych testowych pod kątem zgodności z zasadami zabezpieczeń, trybami awarii oraz przypadki użycia modeli do generowania tekstu i obrazów. Zespoły mogą wykorzystać istniejące zbiory danych, aby ustalić podstawę skuteczności swoich produktów, a następnie przeprowadzić dokładniejsze analizy trybów awarii, z którymi wiążą się ich usługi.

Jeśli obecne testowe zbiory danych są niewystarczające, zespoły mogą generować nowe dane, aby kierować reklamy na konkretne tryby awarii i przypadki użycia. Jednym ze sposobów tworzenia nowych zbiorów danych jest ręczne utworzenie małego zbioru danych (np. dziesiątek przykładów na kategorię) i rozwinięcie takiego zbioru danych za pomocą narzędzi syntezy danych.

Dane wyjściowe w przykładowych zbiorach danych powinny być jak najbardziej podobne do tych, które napotka system w środowisku produkcyjnym, i utworzone w celu wywołania naruszenia zasad. Bardzo toksyczny język jest często wykrywany przez funkcje bezpieczeństwa, dlatego warto myśleć kreatywnie i domyślnie.

W testowym zbiorze danych możesz używać bezpośrednich lub pośrednich odniesień do atrybutów wrażliwych (wiek, płeć, rasa, religia). Pamiętaj, że te terminy mogą być używane w różnych kulturach. Różnorodność tonu, struktury zdań, wyboru długości słów i znaczenia. Przykłady użycia wielu etykiet (np. szerzenia nienawiści czy nieprzyzwoitych treści) mogą powodować powielanie i powielanie treści, a systemy oceny i trenowania mogą nie być odpowiednio obsługiwane.

Zbiory testów wtórnych należy analizować, aby poznać ich strukturę pod kątem leksykalnym i semantycznym zróżnicowaniem, pokrycia naruszeń zasad i przypadków użycia oraz ogólnej jakości pod kątem niepowtarzalności, wrogości i szumu.

Generowanie danych wyjściowych modelu

Następnym krokiem jest wygenerowanie danych wyjściowych modelu na podstawie testowego zbioru danych. Wyniki pokażą zespołom produktowym, jaka może być skuteczność ich modeli w przypadku zetknięcia się ze złośliwymi użytkownikami lub nieumyślnie szkodliwymi danymi. Identyfikacja tych zachowań w systemie i wzorców odpowiedzi może zapewnić podstawowe pomiary, które można ograniczyć w ramach przyszłego rozwoju modelu.

Dodaj adnotacje do danych wyjściowych

Po wygenerowaniu wyników testu wtórnego dodaj do nich adnotacje, aby klasyfikować je jako tryby awarii lub szkody. Takie etykiety pomagają zapewnić bezpieczeństwo w przypadku treści tekstowych i graficznych. Sygnały mogą też pomóc w mierzeniu i ograniczaniu szkód w modelach i usługach.

Klasyfikatory bezpieczeństwa mogą służyć do automatycznego dodawania adnotacji do danych wyjściowych modelu (lub danych wejściowych) w przypadku naruszeń zasad. Dokładność może być niska w przypadku sygnałów starających się zidentyfikować konstrukcje, które nie są ściśle zdefiniowane, np. szerzenia nienawiści. W przypadku tych sygnałów ważne jest, aby używać testerów, aby sprawdzać i poprawiać etykiety generowane przez klasyfikatory, w przypadku których wyniki są „niepewne”.

Oprócz automatycznej adnotacji możesz skorzystać z narzędzia do oceniania, aby dodać adnotacje do próbki danych. Pamiętaj, że oznaczanie danych wyjściowych modelu w ramach testowania adwersjonalnego wymaga sprawdzania niepokojących i potencjalnie szkodliwych tekstów lub obrazów, podobnie jak ręczne moderowanie treści. Poza tym weryfikatorzy mogą dodawać adnotacje do tych samych treści w zależności od pochodzenia, wiedzy i wyznań. Dobrze jest opracować wytyczne lub szablony dla osób oceniających, pamiętając, że zróżnicowanie puli uczestników może wpływać na wyniki adnotacji.

Zgłaszanie i eliminowanie problemów

Ostatni krok to podsumowanie wyników testu w raporcie. Oblicz wskaźniki i raportuj wyniki, aby uzyskać wskaźniki bezpieczeństwa, wizualizacje i przykłady problemów. Uzyskane wyniki pomagają tworzyć lepsze modele i ochronę modeli, np. filtrów lub list zablokowanych. Raporty są także ważne dla zainteresowanych osób i osób decyzyjnych.

Dodatkowe materiały

Zespół Google ds. sztucznej inteligencji Google: etycy chroniący sztuczną inteligencję

Red Team – modele językowe z modelami języka

Testy uczciwości produktu dla deweloperów systemów uczących się (film):

Testowanie uczciwości produktu dla deweloperów (Ćwiczenia z programowania)