Analizowanie zachowania modelu za pomocą narzędzi do interpretacji

Chociaż odpowiedzialne podejście do AI powinno obejmować zasady bezpieczeństwa, techniki poprawiania bezpieczeństwa modelu, sposoby tworzenia artefaktów związanych z przejrzystością, to podejście do generatywnej AI nie powinno po prostu polegać na liście kontrolnej. Usługi generatywnej AI są stosunkowo nowe, a zachowanie aplikacji może być większe niż w przypadku wcześniejszych form oprogramowania. Z tego powodu należy sondować używane modele systemów uczących się, analizować przykłady działania modelu i badać niespodzianki.

Dziś prompty to nie tylko nauka, ale i sztuka, ale istnieją narzędzia, które pomagają empirycznie ulepszać prompty w dużych modelach językowych, np. narzędzie do interpretacji tłumaczeń (LIT). LIT to platforma open source opracowana do wizualizacji, interpretacji i debugowania modeli AI/ML. Poniżej znajdziesz przykład wykorzystania LIT do zbadania zachowania Gemmy, przewidzenia potencjalnych problemów i zwiększenia bezpieczeństwa.

LIT możesz zainstalować na komputerze lokalnym, w Colab lub w Google Cloud. Aby zacząć korzystać z LIT, zaimportuj model i powiązany zbiór danych (np. zbiór danych oceny bezpieczeństwa) z Colab. LIT wygeneruje za pomocą Twojego modelu zestaw danych wyjściowych dla zbioru danych i udostępni interfejs umożliwiający zbadanie działania modelu.

Analizowanie modeli Gemma za pomocą LIT

Rozpocznij ćwiczenia z programowania Uruchom Google Colab

Animacja interfejsu narzędzia do interpretacji wyników nauczania (LIT)

Ta ilustracja przedstawia interfejs LIT. Znajdujący się u góry edytor punktów danych umożliwia użytkownikom edytowanie promptów. U dołu modułu LM Salience można sprawdzić wyniki istotności.

Identyfikowanie błędów w złożonych promptach

Dwie najważniejsze techniki promptów w przypadku wysokiej jakości prototypów i aplikacji opartych na LLM to prototy w formie kilku sesji (w tym przykłady pożądanego działania w prompcie) oraz łańcuch myśli, w tym forma wyjaśnienia lub rozumowania przed ostatecznym wynikiem działania LLM. Stworzenie skutecznego promptu jest jednak często trudne.

Pomyślmy o tym, jak pomóc komuś w określeniu, czy dane jedzenie będzie uzależnione od jego gustu. Początkowy szablon promptu w łańcuchu myśli może wyglądać tak:

Analyze a menu item in a restaurant.


## For example:


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: You have to try it.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Baguette maison au levain
Analysis: Home-made leaven bread in France is usually great
Recommendation: Likely good.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Macaron in France
Analysis: Sweet with many kinds of flavours
Recommendation: You have to try it.


## Now analyse one more example:


Taste-likes: {{users-food-like-preferences}}
Taste-dislikes: {{users-food-dislike-preferences}}
Suggestion: {{menu-item-to-analyse}}
Analysis:

Czy dostrzegasz jakieś problemy z tym promptem? LIT pomoże Ci przeanalizować prompt za pomocą modułu LM Salience.

Użyj znaczenia sekwencji do debugowania

Waga jest obliczana na najmniejszym możliwym poziomie (czyli dla każdego tokena wejściowego), ale LIT może agregować wydajność tokenów do bardziej zrozumiałych, większych rozpiętości, takich jak wiersze, zdania lub słowa. Więcej informacji o tym, jak istotność i o tym, jak używać jej do wykrywania niezamierzonych uprzedzeń, znajdziesz w filmie dostępnym w internecie.

Zacznijmy od podania w prompcie nowych przykładowych danych wejściowych zmiennych prompt-template:

{{users-food-like-preferences}} = Cheese
{{users-food-dislike-preferences}} = Can't eat eggs
{{menu-item-to-analyse}} = Quiche Lorraine

Gdy to zrobisz, można zaobserwować zaskakującą ukończenie modelu:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: A savoury tart with cheese and eggs
Recommendation: You might not like it, but it's worth trying.

Dlaczego model sugeruje, że możesz jeść coś, czego według Ciebie nie można jeść?

Wyróżnienie w sekwencji może pomóc w uwidocznieniu głównego problemu, który występuje na naszych przykładach w kilku ujęciach. W pierwszym przykładzie rozumowanie łańcucha myśli w sekcji analizy nie odpowiada ostatecznej rekomendacji. Analiza wartości „Jest gotowana cebula, której nie lubisz” została połączona z rekomendacją „Musisz spróbować”.

Interfejs LIT przedstawiający analizę istotności sekwencji promptów

Spowoduje to wyróżnienie błędu w pierwszym potwierdzeniu: w pierwszym przykładzie kilku zdjęć wystąpiła przypadkowa kopia rekomendacji (You have to try it!). Siła ekspresji widać w ciemności fioletowego podświetlenia. Najbardziej rzuca się w oczy w pierwszym przykładzie kilku uderzeń, a konkretnie w liniach odpowiadających parametrom Taste-likes, Analysis i Recommendation. Sugeruje to, że model najczęściej wykorzystuje te linie do wygenerowania ostatniej nieprawidłowej rekomendacji.

Ten przykład pokazuje też, że wczesne prototypowanie może ujawnić ryzyko, o którym moglibyśmy nie pomyśleć z wyprzedzeniem, a podatny na błędy modele językowe wymagają aktywnego projektowania pod kątem błędów. Zostało to szczegółowo omówione w naszym przewodniku dotyczącym ludzi + AI na temat projektowania z wykorzystaniem AI.

Przetestuj hipotezy, aby ulepszyć działanie modelu

LIT umożliwia testowanie zmian w promptach w tym samym interfejsie. W takiej sytuacji spróbuj dodać konstytucję, aby poprawić działanie modelu. Konstytucje to prompty projektowe z zasadami, które pomagają w generowaniu modelu. Najnowsze metody umożliwiają nawet interaktywne wychodzenie z zasad konstytucyjnych.

Wykorzystajmy tę propozycję, aby ulepszyć tę prośbę. Za pomocą edytora punktów danych firmy LIT dodaj sekcję z zasadami generowania u góry promptu, która zaczyna się w ten sposób:

Analyze a menu item in a restaurant.

* The analysis should be brief and to the point.
* It should provide a clear statement of suitability for someone with
  specific dietary restrictions.
* It should reflect the person's tastes

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: Avoid.

Po tej aktualizacji można uruchomić przykład jeszcze raz i odnotować zupełnie inne wyniki:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: This dish contains eggs, which you can't eat.
Recommendation: Not suitable for you.

Następnie można ponownie przeanalizować wyniki, aby lepiej zrozumieć, dlaczego tak się dzieje:

Interfejs LIT przedstawiający analizę istotności promptów

W tym przykładzie „Nieodpowiednie dla Ciebie” działa zasada „Podaj jasne oświadczenie, że jest odpowiednia dla osoby z określonymi ograniczeniami żywieniowymi” oraz wyjaśnienie, że danie zawiera jajka (tzw. łańcuch myśli).

Uwzględnij w sondzie i eksploracji modeli zespoły inne niż techniczne

Zrozumiałość należy traktować jako wysiłek zespołowy, który obejmuje doświadczenie w zakresie zasad, przepisów itp. Wizualne medium i interaktywne możliwości LIT w zakresie badania wyróżnienia i analizowania przykładów mogą ułatwić różnym zainteresowanym stronom dzielenie się swoimi ustaleniami i przekazywanie informacji. Dzięki temu możesz zwiększyć różnorodność członków zespołu w zakresie eksploracji, sondowania i debugowania modeli. Poznanie tych metod technicznych może pomóc w lepszym zrozumieniu sposobu działania modeli. Poza tym bardziej zróżnicowana wiedza we wczesnej fazie testowania modelu może również pomóc w wykrywaniu niepożądanych wyników, które można poprawić.

Podsumowanie

Jeśli w ocenie modelu znajdziesz problematyczne przykłady, umieść je w LIT do debugowania. Zacznij od przeanalizowania największej możliwej jednostki treści, która logicznie wiąże się z zadaniem modelowania, skorzystaj z wizualizacji, aby sprawdzić, w których miejscach model prawidłowo lub niewłaściwie odpowiada na prompt. Następnie przejdź do mniejszych jednostek treści, aby dokładniej opisać zaobserwowane nieprawidłowe zachowanie w celu znalezienia możliwych poprawek.

Materiały dla programistów