Gość (37.30.*.*)
Problem, o którym wspominasz, jest zjawiskiem dobrze znanym badaczom sztucznej inteligencji i często określa się go mianem „negation blindness” (ślepoty na negację). Wynika on z samej natury architektury Transformer, na której opierają się modele takie jak GPT-4 czy Claude. Mechanizm uwagi (attention mechanism) ma tendencję do skupiania się na „ciężkich” semantycznie słowach, takich jak rzeczowniki i czasowniki, podczas gdy krótkie słowa funkcyjne, jak „nie”, „bez” czy „nigdy”, mogą zostać rozmyte w procesie obliczeniowym.
Dobra wiadomość jest taka, że istnieją skuteczne techniki, które pozwalają „wymusić” na modelu zrozumienie zakazu lub zaprzeczenia.
Zanim przejdziemy do rozwiązań, warto zrozumieć, dlaczego tak się dzieje. Wektory znaczeniowe (embeddingi) słowa „nie” są bardzo abstrakcyjne. Kiedy piszesz „nie myśl o różowym słoniu”, mechanizm uwagi modelu aktywuje silne powiązania ze słowami „myśl” i „różowy słoń”. Słowo „nie” modyfikuje cały kontekst, ale w wielowymiarowej przestrzeni matematycznej jest ono znacznie słabszym sygnałem niż konkretny obraz słonia.
Dodatkowo, modele są trenowane na ogromnych zbiorach danych, gdzie negacja często występuje w kontekstach, które i tak dotyczą danego tematu. To sprawia, że sztuczna inteligencja czasem zachowuje się jak małe dziecko – słyszy czynność, ale ignoruje partykułę przeczącą.
Najskuteczniejszym sposobem na obejście problemu negacji jest zamiana zakazu na nakaz. Zamiast mówić modelowi, czego ma nie robić, powiedz mu dokładnie, co ma zrobić.
Dzięki temu zamiast osłabiać uwagę modelu na konkretnym pojęciu, kierujesz ją na nowy, pożądany cel. To eliminuje ryzyko, że model „przypadkowo” skupi się na zakazanym słowie.
Jeśli musisz użyć negacji, zmuś model do przeanalizowania instrukcji krok po kroku. Metoda Chain of Thought (łańcuch myśli) polega na dodaniu do promptu polecenia: „Przemyśl swoje kroki przed udzieleniem odpowiedzi”.
Kiedy model musi najpierw wypisać zasady, którymi będzie się kierował, szansa na to, że pominie „nie”, drastycznie spada. Możesz poprosić: „Zanim napiszesz tekst, wymień listę rzeczy, których musisz unikać zgodnie z moimi instrukcjami”. Proces werbalizacji zakazu „wyciąga” słowo „nie” z cienia i nadaje mu wyższą wagę w mechanizmie uwagi.
Modele LLM znacznie lepiej radzą sobie z negacją, gdy widzą przykłady. Zamiast liczyć na to, że model zrozumie abstrakcyjną zasadę, pokaż mu, jak ma wyglądać poprawna i błędna odpowiedź.
Przykład:
Dostarczenie wzorca (patternu) sprawia, że model „widzi”, jak negacja przekłada się na konkretne działanie.
Choć może się to wydawać banalne, formatowanie ma znaczenie. Mechanizm uwagi reaguje na strukturę tekstu. Jeśli zakaz jest kluczowy, warto go wyróżnić.
### OGRANICZENIA.Jeśli korzystasz z modeli poprzez API (np. OpenAI), masz do dyspozycji potężne narzędzie o nazwie logit_bias. Pozwala ono na ręczne obniżenie prawdopodobieństwa wystąpienia konkretnych tokenów (słów). Jeśli absolutnie nie chcesz, aby model użył słowa „niebieski”, możesz ustawić ujemną wartość dla tego tokenu, co fizycznie uniemożliwi modelowi jego wygenerowanie, niezależnie od tego, co podpowiada mu mechanizm uwagi.
Zjawisko, o które pytasz, ma swój odpowiednik w psychologii człowieka i nazywa się „teorią procesów ironicznych”. W 1987 roku psycholog Daniel Wegner przeprowadził badanie, w którym poprosił uczestników, aby przez pięć minut nie myśleli o białym niedźwiedziu. Okazało się, że badani myśleli o nim średnio raz na minutę. Modele językowe, będąc trenowane na ludzkich tekstach, w pewnym sensie „odziedziczyły” tę trudność w procesowaniu czystej negacji.
Jeśli chcesz mieć pewność, że AI Cię posłucha:
Stosując te metody, zmieniasz sposób, w jaki mechanizm uwagi przetwarza Twój prompt, co pozwala niemal całkowicie wyeliminować problem ignorowania negacji.