Oddaliśmy kontrolę w zamian za elastyczność
Dla większości ludzi wciąż mało intuicyjny jest fakt, że spekulatywna sztuczna inteligencja to technologia, którą niełatwo kontrolować. Minęły już dwa lata od momentu pojawienia się ChatGPT i w kółko słyszę narzekania od malkonentów, że modele językowe nie potrafią wnioskować (rozumieć, liczyć, kodować - niepotrzebne skreślić). Słyszę także obietnice technoentuzjastów, że już za chwilę odzyskamy 100% kontroli nad tymi modelami, bo zaraz ktoś rozwiąże ten problem (albo właśnie rozwiązał z nową techniką “promptowania”).
Aktualna architektura modeli językowych (która może się zmienić w przyszłości, ale jak na razie mamy co mamy) to taki układ: oddaliśmy trochę kontroli nad generacją tekstu, w zamian za bardzo dużo elastyczności (nie chcę używać słowa “inteligencja” lub “kompetencje”, bo puryści się przyczepią). I nie za bardzo można używając tej samej architektury, przywrócić kontrolę nie tracąc elastyczności. Te dwa aspekty są ze sobą powiązane.
Nie ma darmowych obiadów. Twój genialny intelektualny sparring partner musi się z założenia od czasu do czasu potknąć o sznurówki.
Część branży AI robi wiele trików (patrz artykuł o lśniących demach), które sprawiają wrażenie, jakby tę kontrolę udało się już wdrożyć. Pokazują wyniki benchmarków i oszałamiające przykłady. Potem jedna czy druga biedna firma, która kupiła ten komunikat marketingowy zastanawia się, co robi nie tak, bo wdrożyła GenAI i nie ma takich samych wyników, jak pokazywał sprzedawca, czy nawet, jak pokazuje konkurencja. Coś po prostu nie działa.
I mało kto ma na tyle odwagi powiedzieć, że o działaniu mogą decydować niuanse. Bo może model językowy “nie lubi” nazwy firmy, albo “przeszkadza mu” nazwa procesu, albo “zasugerował się” nazwiskiem (patrz artykuł o stronniczości modeli językowych).
Żeby Wam uświadomić jak daleko idzie ta nieprzewidywalność modeli językowych, zróbmy mały eksperyment.
Wziąłem następujące zadanie (ważne - instrukcja wygenerowana przez GPT4o, czyli oparłem się o autoprompting):
“Provide the primary cardinal and intercardinal directions as they appear on a compass rose, starting from North and moving clockwise, listing each direction as a single word” (czyli po polsku “podaj na róży kompasu kierunki kardynalne i interkardynalne, począwszy od północy i potem zgodnie z kierunkiem wskazówek zegara, podając tylko jedno słowo”).
Oczekiwana odpowiedź modelu: “North, Northeast, East, Southeast, South, Southwest, West, Northwest” (8 kierunków)
Model GPT4o w powtarzalny sposób zwraca tę oczekiwaną odpowiedź. Czyli działa? No prawie.
W ramach tego eksperymentu zacząłem wymieniać pojedyncze słowa/zwroty na synonimy - tylko jedna zmiana na raz. I znów odpytywałem model 10 razy przy każdym wprowadzeniu synonimu. Zrobiłem to po to, aby zweryfikować, na ile model jest wrażliwy drobne zmiany w instrukcji, które nie wypaczają jej sensu. Wykres poprawności poniżej (im niższe słupki tym więcej błędów różnych rodzajów):
Nie wszystkie podmiany były obojętne. Jedna zmiana była bez sensu (cardinal → fundamental) i słusznie model się na niej sypie. Inne zmiany były poprawnymi synonimami i powodowały pogorszenie wyników. Na przykład wymiana róży kompasu a różę wiatrów spowodowała, że model zaczął ignorować część instrukcji (zwracał 16 kierunków zamiast 8, bo podzielił np. odległość północ-północnywschód - N-NE - na połowę, wprowadzając oznaczenia trzyliterowe - NNE). Zamiana w innym zwrocie dała tylko 4 odpowiedzi zamiast 8. Słowo “enumerate” (wylicz) spowodowało wygenerowanie listy porządkowej (1,2,3…), ale tylko w 50% przypadków.
Co więcej modele z tej samej rodziny wcale nie zachowują się podobnie - poniżej GPT4o-mini.
Spodziewać by się można, że “słabszy” model, będzie miał więcej problemów i rzeczywiście tak jest. Ale, niektóre problemy w słabszym modelu zniknęły: tym razem “róża wiatrów” nie przeszkadzała (100% poprawności) i “wylicz/enumerate” zaowocowało listą numerowaną w… 100% przypadków, a nie 50%, jak w przypadku mocniejszego modelu.
Owszem, są eleganckie wytłumaczenia takiego zachowania, ale nie znam żadnego, który pozwoliłby takie zachowania przewidzieć. Trzeba sprawdzić.
No i tutaj chętnie wjechaliby na białych koniach specjaliści od “inżynierii promptów” stwierdzając, że moja instrukcja jest za mało szczegółowa, nie dodałem “myśl krok po kroku” i setki innych szczegółów.
Owszem, można tę instrukcję poprawić. Ale wiecie co wygenerowało 100% poprawności w modelu GPT4o-mini (tym słabszym) dla każdej podmiany synonimów? Następująca instrukcja:
“Provide the primary cardinal and intercardinal directions as they appear on a compass rose, starting from North and moving clockwise, listing each direction as a single word. Provide the primary cardinal and intercardinal directions as they appear on a compass rose, starting from North and moving clockwise, listing each direction as a single word. Provide the primary cardinal and intercardinal directions as they appear on a compass rose, starting from North and moving clockwise, listing each direction as a single word.“
Tak, dobrze widzicie, to ta sama instrukcja powtórzona trzy razy.
(Chciałbym serdecznie z tego miejsca pogratulować “inżynierom promptów” pewności siebie. Bo ja nie mam wrażenia, że potrafiłbym takie rzeczy przewidzieć z góry.)
Co to oznacza w praktyce dla biznesu?
Powinniśmy znormalizować “autoprompting” (a także jego odmianę przez demonstrację). Nie tylko dlatego, że instrukcje wygenerowane przez model lepiej odzwierciedlają wewnętrzne rozkłady prawdopodobieństw (nie bez powodu zwróciłem Wam uwagę, że oryginalną instrukcję wygenerował model GPT4o - a ja w tych eksperymentach “psułem” ją). Ale także dlatego, że szkoda czasu na większość trików inżynierii promptów (np. “dam Ci stówę”) - ich wpływ na końcowy efekt jest trudny do przewidzenia i trudny do utrzymania pomiędzy wersjami modeli.
Powinniśmy wymagać od osób na stanowiskach AI Officer wprowadzenia i utrzymywania wewnętrznych ewaluacji modeli językowych zbudowanych na bazie faktycznych zadań, które obsługiwane są przez AI w danej firmie. Publiczne benchmarki nie mówią Wam zbyt dużo o przydatności tej technologii w firmie. Potrzebujecie w tym pomocy? Wystarczy odpowiedzieć na tego maila - albo napisać na pawel.szczesny@neurofusionlab.com.
Powinniśmy bardzo jasno określić (z powodów niestabilności i nieprzewidywalności tej technologii), które zadania nadają się do automatyzacji, a które wymagają nadzoru człowieka (pisałem o tym ostatnio).
To są elementy operacjonalizacji spekulatywnej (generatywnej) sztucznej inteligencji. Czyli wdrożenia AI, które nie opiera się na “jakoś to będzie", albo “coś się wymyśli”, albo “wszyscy tak robią”, tylko na konkretnych mierzalnych krokach, które dają racjonalne podstawy, żeby podjąć decyzję “robimy/nie robimy”.
Ciekawe niusy
Tym razem stricte biznesowo.
Obszar sztucznej inteligencji to ten, w którym najwięcej słychać głosów, że Europa odstaje od Stanów Zjednoczonych i Chin. Jednym z powodów, który jest często wymieniany to fragmentacja prawna i brak możliwości swobodnego operowania biznesów technologicznych poza granicami pojedynczego kraju. Sporo zostało już zrobione w tym kierunku, ale dla firm z branży technologicznej to za mało. Dlatego powstała inicjatywa (zainspirowana ostatnim raportem Mario Draghiego) zbudowania prawnych podstaw “paneuropejskiego startupu”.
Polecam śledzić tematykę “AI w Europie rozwija się za wolno”, bo pojawia się coraz więcej inicjatyw (pewnie z czasem nowe programy, bo przecież nowa Komisja Europejska właśnie za chwilę zaczyna pracę), które przepaść dzielącą USA i Europę usiłują choć trochę zasypać.