Home | Research | For Students | Publications | Talks | Codes | WebLog | Personal |
Przez pół roku napisano, powiedziano i zrobiono już chyba wszystko o AI. Przez pewien czas postęp był tak szybki, że niektórzy zaczęli pisać prace przeglądowe pod tytułem typu ,,Osiągnięcia w dziedzinie AI w ciągu ostatnich 2 tygodni''. Apele o wstrzymanie prac trafiają w próżnię, obecnie model GPT4 jest dostępny nawet w wyszukiwarce Bing, pod nazwami ,,Creative'' i ,,Precise''. Liczne pluginy do ChatGPT w tym ,,kalkulator'' w postaci Wolfram Alpha usunęły matematyczną ułomność AI w niepamięć. GPT4 niestety nieco ostatnio ,,zgłupiał''. Zapewne oryginał okazał się zbyt kosztowny w utrzymaniu.
Twitter ćwierkał od pewnego czasu na temat nowego wcielenia ChatGPT o nazwie Code Interpreter. Dostępny tylko dla wybranych, którzy pokazywali zdumiewające możliwości kodowania, analizy danych czy naukowej wizualizacji. Jak tylko dostałem do niego dostęp, podjąłem pierwszą próbę.
Akurat natrafiłem na dziwaczny wzór, pozwalający obliczyć liczbę Pi. Była to suma harmoniczna (odwrotności liczb naturalnych), ale z modyfikacjami. Jeżeli reszta z dzielenia przez 7 była zero, to waga też wynosiła zero.
Jeżeli reszta była równa 1,2 lub 4 to wyraz był brany ze znakiem +, w przeciwnym wypadku -.
Dla jasności, podaję kod:
Table[If[Mod[i,7] == 0, 0, If[Mod[i, 7] == 1 || Mod[i, 7] == 2 || Mod[i, 7] == 4, 1/i, -1/i]], {i, 1, 16}]
i jego wynik
1, 1/2, -1/3, 1/4, -1/5, -1/6, 0, 1/8, 1/9, -1/10, 1/11, -1/12, -1/13, 0, 1/15, 1/16, ...
Szybko odpaliłem Wolfram Desktop zainstalowany w związku z moim niedoszłym wyjazdem do Bostonu, i już po 15 minutach miałem pewność, że suma jest numerycznie zbieżna do wyniku, który był z góry podany, czyli Pi/Sqrt[7]. Ze względu na dziwaczny sposób zdefiniowania ciągu próbę dostania analitycznego wyniku odpuściłem, oceniając zadanie jako zbyt trudne. Dostaną je studenci na NOF. Albo raczej ,,dostaliby'' gdyby nie Code Interpreter...
Jak z powyższym problemem poradzi sobie Code Interpreter? Zacząłem od prośby o przepisanie powyższego wzoru z Mathematici w Pythonie i obliczenie wyniku.
Na początek, CI wyjaśnił, że kod nie policzy mi sumy nieskończonej, tylko skończoną. Pokazał kod i zapytał dla jakiego n_terms ma go uruchomić
Ponieważ wcześniej zrobiłem to samo w Mma, zasugerowałem n_terms=10^5.
Warto podkreślić, że CI nie wymaga od nas kopiowania kodu i uruchamiania go na własnym komputerze czy w chmurze. Robi to sam ,,u siebie''. Obliczenia są ukryte. Jak rozumiem, idea jest taka, aby w ogóle nie oglądać kodu i nie posiadać wiedzy jak programować czy cokolwiek uruchamiać. Po prostu zadajemy pytanie, a CI pisze kod, sam go uruchamia a następnie na podstawie uzyskanych wyników podaje odpowiedź w ,,języku naturalnym''. Wynik, który dostałem to 1.18741. Zapytałem: czy to wygląda jak Pi/Sqrt[7]?
Odp: tak, obie liczby są bliskie.
No dobra. Idziemy dalej. Poprosiłem o obliczenie błędu względnego sumy dla n_terms będących kolejnymi potęgami 2. Oto odpowiedź:
To samo dostałem wcześniej w Mathematice, ale nie po 1 sekundzie...
To teraz wykres błędu w skali log-log:
Irytacja zaczyna we mnie narastać. Proszę więc o dofitowanie do wykresu linii prostej celem oszacowania kiedy dokładność osiągnie $MachineEpsilon.
Wszystko się zgadza, CI idzie jak burza. W tym momencie ja wcześniej się poddałem. Ale idźmy dalej. Chcemy teraz wynik analityczny!
CI stwierdza, że bez wzoru analitycznego na n-ty wyraz ciągu, bez Mod i If, wyprowadzenie wzoru jest trudne. He, he, doskonale o tym wiem, dlatego odpuściłem.
Tymczasem CI proponuje zupełnie inne podejście. Rozbijmy szereg na kilka opisanych analitycznie. Ponieważ rachunek jest modulo 7, a jeden z wyrazów zero, dostajemy 6 szeregów:
Wystarczy je dodać i dostajemy ten sam szereg, zapisany bez Mod i If
Teraz tylko poprosimy CI o przepisanie sumy w Mathematice i wrzucenie jej do Plug-ina Wolfram Alpha. Na szczęście CI nie ma do niego (jeszcze!)
dostępu... uff.
Ale ja mam dostęp do Wolfram Desktop, gdzie wynik dostaję natychmiast:
Nie wygląda to na Pi/Sqrt[7]... ale CI twierdzi, z małym potknięciem (Python nie posiada funkcji cotangens), że oba wyrażenia
są identyczne w arytmetyce zmiennoprzecinkowej. Wykazanie, że powyższy wzór to faktycznie Pi/Sqrt[7] znowu dostaną studenci na kolokwium z NOF.
Co ciekawe, CI w sytuacji gdy kod nie działa z jakiegoś powodu, wraca krok wstecz i próbuje do skutku korygować błędy.
Ogólnie rzecz biorąc, po tej sesji osłupiałem. Dotychczas tego rodzaju ,,dyskusje'' z komputerem widywałem tylko na kartach bądź ekranach historii science fiction. Odruchowo człowiekowi ręka zmierza ku prawej piersi w poszukiwaniu znaczka Gwiezdnej Floty z wezwaniem: "komputer, sprawdź ten wzór na liczbę Pi, jego zbieżność i spróbuj wyprowadzić wzór analityczny". Albo jak Tempe w ,,Fiasku'' Lema usiłuje zagiąć GOD-a wykazując mu, że machinalnie przemnożył prawdopodobieństwa i podał dowódcy zaniżony o rzędy wielkości wynik:
Naturalną reakcją na taki stan rzeczy jest zignorowanie istnienia Code Interpretera i nie używanie go, podobnie jak niektórzy zareagowali 400 lat temu na lunetę Galileusza. Dzieło szatana, po co w ogóle się tym zajmować? Luneta miała jednakże również bardziej przyziemne zastosowania, np. militarne, więc technologia się rozwijała. Podobnie będzie z AI. Patenty na GPT5 już złożono...jak optymiści twierdzą, im mądrzejsza AI, tym łatwiej będzie jej wpoić zasady, którymi (rzekomo) się kierujemy... Oby nie było to kopanie najsłabszych ku uciesze najsilniejszych. Albo gorzej, jak w Forbidden Planet (realizacja najgorszych instynktów) czy Solaris (realizacja wyrzutów sumienia).
W celibacie od CI wytrzymałem do dziś. Ciekawość to jak wiadomo najprostsza droga do piekła. A ciekawość tę pobudziła informacja o istnieniu listy wszystkich wyrzuconych na plaże świata kaszalotów. Na dodatek prowadzona jest od .... 1572 roku! Lista , niestety, znajduje się na Wikipedii. Konia z rzędem temu co w 5 minut parsuje takiego typu dane i wyświetli mi mapę lokalizacji. Odpaliłem więc CI i już po kilkunastu minutach dyskusji o parsowaniu w Pythonie danych wiki, GIS, Nominatina i niemożności użycia API Google Maps, dostałem to com chciał: mapę Tasmanii z zaznaczonymi wyrzuconymi wielorybami .
Jakie z powyższych dywagacji wynikają wnioski? Bez wątpienia, pełny GPT4 wyposażony w Code Interpreter i plug-in Wolfram Alpha staje się niemal pełnoprawnym naukowcem, czymś w rodzaju początkującego ,,data scientist'', na poziomie dobrego studenta fizyki I roku. Już teraz jest szybszy, nie męczy się i ,,zna'' na każdej dyscyplinie. Pytanie co dalej? Czy to już koniec możliwości AI, czego wielu by sobie życzyło? Świata Star Treka czy Lemowskiego Fiasca, gdzie komputer grzecznie wykonuje nasze polecenia i uniżenie przeprasza co 3 zdanie, jak student wytykający nauczycielowi oczywiste błędy na tablicy? A może czeka nas świat Diuny, gdzie przemocą i prawnymi regulacjami wytępiono wszelkie przejawy AI? Czy wreszcie pojawi się sztuczna inteligencja przerastająca nas we wszystkim, z politowaniem komentująca działania naszego gatunku, ośmieszając najwybitniejsze ludzkie umysły, jak GOLEM XIV ? Do usłyszenia ponownie za kolejne pół roku...