💾 Archived View for sdf.org › flamenco › 2023-09-25_inba-z-si.gmi captured on 2023-12-28 at 16:04:30. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Minęło już 9 miesięcy 2023 roku, a ja znowu się opuściłem w blogowaniu.
Miało to swoje oczywiste przyczyny, zmieniłem pracę po 20 latach (czyli
psycholologicznie to jest poważna zmiana), wykorzystałem zaległy urlop, aby
oddawać się refleksjom na temat świata starożytnego depcąc bruki Rzymu,
Neapolu, Pompei i Herkulanum. Odwiedziłem Manchester z międzylądowaniem w
pobliżu Sandefjordu, jednego z typowych, nudnych do urzygu, norweskich miast.
Nawarstwiło się zatem wrażeń, a i przemyśleń.
Ale nie wszystkimi zamiaruję się dzielić. W końcu to jest mój
prywatny-publiczny blog, to znaczy, w równej mierze służy on mnie, co innym.
Bo po latach, gdy stanę się już innym człowiekiem (co do czego nie mam
najmniejszych wątpliwości), będę mógł zajrzeć w przeszłość swojego
umysłu i przeżyć zadziwienie/pomięszanie/zachwyt/przerażenie, co też
dziwnego mi chodziło po głowie. Ale z drugiej strony, ponieważ blog ten
publikuje się na otwartej stronie, nie dzielę się tutaj najbardziej
chwilowymi, radykalnymi, czy brutalnymi pomysłami.
Dziś zatem tylko o jednym technolololologicznym zjawisku.
Postępy w rozwoju tak zwanej Sztucznej Inteligencji czasem naprawdę robią
wrażenie. Mam na myśli ich tempo. Bynajmniej wciąż jeszcze nie zachwycam
się ich możliwościami. Niestety, coraz lepiej wychodzi im zwykłe
"zmyślanie" informacji, zamiast klejenia prawdziwych. Przekonuję się o tym
co i raz (dostało to nawet pseudonaukową, czysto marketingową nazwę - mówi
się, że SI halucynuje[1] czyli po naszemu - *bredzi*). Być może dlatego,
że te silniki, które udziela się gawiedzi (w celu zgromadzenia odpowiednio
dużego zasobu danych badawczych) do zabawy, zwykle nie mają bezpośredniego
dostępu do Internetu? Może to i prawda. Ale raczej nie o to chodzi.
https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)
Ludzkość jednakowoż uległa zachwytowi nad możliwościami tych tajemniczych
programów, o których krąży mnóstwo plotek. A że umieją zdiagnozować
raka lepiej od ludzkiego lekarza, a to że upakowane w uzbrojonego drona
rozwaliły kontener z operatorem, który miał nimi sterować, a to że nas
podsłuchują przez wyłączone telefony...
Dziś z całym przekonaniem możemy przewidywać, że najdalej za 20 lat świat
będzie naprawdę wyglądać inaczej, przynajmniej w warstwie informacyjnej
(wynoszenie śmieci niestety wciąż będzie spoczywać na tzw. głowie
rodziny). Na przykład skończy się konieczność wkuwania języków obcych -
za przystępną cenę będzie można nabyć autotłumacze, które pozwolą się
komunikować, nawet na ponadpodstawowym poziomie, bez znajomości języka
interlokutora. Nie wykluczam, że w ten sposób dostępna się stanie
możliwość wymiany informacji na dowolnym poziomie, tj. prowadzenia nawet
bardzo fachowej rozmowy na hermetyczne tematy, albo, kto wie, może nawet
wymiany językiem poezji? To ostatnie jednakowoż wciąż leży w dziale
Science-Fiction, bo do opanowania poezji, jak słusznie zauważył Stanisław
Lem[2] potrzeba gruntownego przygotowania, wykształcenia i głębokiego
związku z całą naszą kulturową przeszłością.
https://krzysztof.smirnow.eu/dokuwiki/doku.php?id=txt:elekrybalt
Istotne w tej całej *inbie[3]* czyli *ambie[4]* ze Sztuczną Inteligencją[5]
jest, że to żadna inteligencja. Publiczność wzbudziła się systemami
ekspertowymi[6] i modelami językowymi[7], drobnymi kosteczkami z całej góry
niezbędnych zagadnień do rozwiązania puzla sztucznej inteligencji. Nasze
współczesne zachwyty nad nimi mają dwie podstawy, obie przesadne. *Po
pierwsze* zachowujemy się jak rodzice na widok berbecia, który wstał na
nóżki i z trudem zrobił swoje pierwsze samodzielne trzy kroczki, zanim się
wygrzmocił. Owszem, widać postęp i to bardzo szybki. Ale nie przesadzajmy -
sami chodzimy codziennie i nie robimy z tego święta. Jeszcze daleka droga
przed sieciami neuronowymi. *Po drugie*, po prostu doświadczamy zachwytu i
pomięszania na widok programu, który potrafi dać wynik inny od wprost
zaprogramowanego. Choć większość współczesnych skłonna jest traktować
nawet zwykły komputer jak partnera w interesach (te modły nad klawiaturą,
gdy Windołz uparcie nie przyjmuje hasła!), to jednak sądzę, że wiemy, iż
program nie zdolen jest dać innego wyniku niż z góry przewidziany przez jego
autora.
3: https://pl.wiktionary.org/wiki/inba
4: https://pl.wiktionary.org/wiki/amba
https://pl.wikipedia.org/wiki/Sztuczna_inteligencja
https://pl.wikipedia.org/wiki/System_ekspertowy
https://en.wikipedia.org/wiki/Language_model
Cóż, programistyka nie stoi w miejscu, rozwija się, a programy tworzą
zespoły nazywane systemami - a to już zaczyna być tak skomplikowane, że
choć powyższa prawda wciąż nie daje się podważyć, to jednak liczba
możliwych wyników staje się trudna do ogarnięcia przez umysł pochłaniacza
tabletek na nadciśnienie. Pojawiają się tzw. undocumented features[8], czyli
zachowania programów, które nie zostały opisane w instrukcji, albo
przeoczone przez projektantów, programistów (i stanowią w zasadzie błąd
systemu). W tym momencie nasz mózg, ewolucyjnie nastawiony na interakcję i
komunikację, już jest przekonany, że po drugiej stronie ma do czynienia z
potencjalnym interlokutorem o podobnym potencjale. A to wciąż tylko bardzo
szybki kretyn-biurokrata.
https://en.wikipedia.org/wiki/Undocumented_feature
Tymczasem cała ta technologia opiera się o dosyć stare zjawisko
informatyczne, jakim są generatory liczb pseudolosowych[9]. O czym będzie
niżej. Zapoznajcie się z linkowanym hasłem na początek.
https://pl.wikipedia.org/wiki/Generator_liczb_pseudolosowych
Generator Liczb Pseudolosowych oraz Generator Liczb
Losowych [IMG]
Typowy program komputerowy to (bardzo skomplikowana i porozwidlana) długa
instrukcja, mapa, ścieżka dojścia do jakiegoś celu (wielu celów). Zawiera
w sobie niezbędne sposoby przetwarzania danych, zwykle liczbowych, zwane
algorytmami, które proces usprawniają i pozwalają na to, że taki program
może mielić naprawdę bardzo dużo danych w krótkim czasie. Ale z grubsza
rzecz biorąc składa się z dróżek od punktu A do B. Zakłada się, że na
wejściu pojawią się jakieś konkretne rodzaje danych, uporządkowanych w
określony sposób (np. tabelka przelewów), a na wyjściu takoż coś, co z
tych danych wyniknie po przetworzeniu zawsze tą samą metodą (np. saldo
rachunku). Jest to tylko bardziej skomplikowane, zawiera więcej kroków
pośrednich, ale w gruncie rzeczy w podobny sposób działała młockarnia
mojego dziadka: na wejściu było zżęte zboże, na wyjściu ziarno, plewy i
słoma. A bez ludzkiego operatora to tylko złom.
Jak z takiego tępego biurokraty wykuć coś, co wygląda na inteligenta?
przydługiego tekstu), że moim celem było uporządkowanie i uproszczenie
własnych wyobrażeń na ten temat, a nie napisanie podręcznika, jak na
świecie robi się SI. Nie znam się, nie robię. Tego sobie szukajcie gdzie
indziej.**
Mamy cały ocean różnych programów, które powstały w ostatnim półwieczu.
Nauczyliśmy się dzięki nim przetwarzać mnóstwo różnych danych.
Składając je do kupy tworzyliśmy systemy przypominające kombajn, który
sprawił, że młockarnia dziadka zardzewiała za stodołą: maszyna
wjeżdżała na pole, gdzie zboże sobie rosło, a po paru godzinach na
wyjściu było ziarno, słoma w balotach, a plewy rozsypane po rżysku. Czyli
kombajn jako alegoria systemu, składał się z kilku maszyn: do cięcia
zboża, młócenia i nowszej wersji snopowiązałki. Dla nienawykłego oka
wygląda to dość inteligentnie. Ale to wciąż zakładane (i nie inne) dane
na wejściu i oczekiwany (zaprojektowany wcześniej) wynik na wyjściu. Dodanie
do tego umiejętności kopania kartofli nie zmieni ogólnego obrazu. Ale co,
jeżeli zechcemy, aby ten kombajn sam umiał ocenić, kiedy należy wyjechać w
pole na żniwo (to nie jest już trywialne zagadnienie)? Coś, co umie każdy
rolnik bez średniego wykształcenia, rozkłada na łopatki najdroższe
komputery. Podjąć racjonalną decyzję na podstawie starych oraz nowych
kryteriów i danych, których nikt przed nim nie widział.
No, ale da się taki program stworzyć. Biedzą się nad tym już ze trzy
dekady, do czegoś musieli w końcu dojść. A zastosowali nic innego tylko
gotowe sztuczki, które mieli na warsztacie. Jak stworzyć program, który
może na wejściu przyjąć **jakieś** dane, a na wyjściu dać wynik,
którego programista **nie przewidział** z góry i nie zaprogramował? Skąd
wziąć ów aspekt **nieprzewidywalności**, który widać w każdej żywej
istocie? I tu wraca na tapetę generator liczb **pseudolosowych**. Znalazł on
dotychczas zastosowanie w kryptografii (o wiele większa dziedzina, niż się
nam zwykle wydaje), badaniach naukowych, statystyce (sic!), grach komputerowych
oraz innych, np. okazało się, że komputer przy jego pomocy całkiem sprawnie
robi rachunki (też sic!). Opiera się w swoim działaniu o wskazane jakieś
dane na wejściu, zwane *ziarnem*. Bo maszyna, w której nic nie jest
przypadkowe, ów *pozorny* przypadek musi wytworzyć na podstawie jakichś
informacji[^1]. Weźmy najprostszy *nomen omen* przypadek, który losuje
między `0` i `1`, czyli np. "tak" i "nie", albo "jabłko" i "gruszka".
[^1]: Jak to rozumiem? Tworzymy jakiś algorytm[10], na tyle skomplikowany, że
nie możemy za każdym razem odtwarzać go sobie łatwo w umyśle, którego
zadaniem jest przemielić dane dane i na ich podstawie wygenerować wynik ze
ściśle zdefiniowanego zakresu. Ale zakres ów nie ma żadnego związku z
danymi, które stanowiły podstawę do wyniku. Np. powiemy mu, że ma
przeczytać "Wojnę i Pokój" Tołstoja, a z tego ma się pojawić `0` albo
`1`. Być może będzie to właśnie `1`. I wcale niewykluczone, że na
podstawie tej powieści komputer zawsze powie `1` (bo to jest *pseudolosowy*
generator). Akurat tutaj nam to nie przeszkadza, bo dane składające się na
ziarno mają być jednorazowego użytku. W omawianym przypadku funkcja takiego
generatora być może została specjalnie utworzona właśnie do tego zadania.
To już tajemnica tego nowiutkiego przemysłu.
https://pl.wikipedia.org/wiki/Algorytm
Teraz weźmy program komputerowy, zaopatrzony w jakiś algorytm analizy
obrazów, tj. np. taki, co potrafi z surowych danych zdjęcia (tzw. format RAW)
wygenerować spakowany obrazek w formacie JPEG. Dołączmy do niego generator
liczb pseudolosowych. I nazwijmy całość *Janusz*. W ten sposób Janusz umie
wykonać analizę obrazka, użyć jej jako **ziarna[11]** a następnie podjąć
czynności zapamiętać zestaw `analiza_obrazka+decyzja`.
https://en.wikipedia.org/wiki/Random_seed
Januszowi każemy rozpoznać, czy na zdjęciu jest **gruszka**, czy **jabłko**
- czyli coś, czego z całą pewnością nie umie. Ale że umie co innego,
zatem będzie odpowiadał (*pseudo*) losowo `gruszka` lub `jabłko`, dla
komputera to w zasadzie bez różnicy. W tym celu *nakarmimy* go milionami, a
może i miliardami obrazów tych owoców. Dla każdego z nich powtórzy to, do
czego powstał, czyli zrobi analizę, a następnie użyje jej jako podstawy do
wygenerowania *losowej* (a konkretnie **pseudolosowej**) odpowiedzi. Wszystkie
te wyniki zostaną zapamiętane.
Postawimy nad *Januszem* kolejny program (nazwijmy go *Dantonem*), który umie
odczytać podpis pod zdjęciem, a zatem "wie", czy na nim jest gruszka czy
jabłko. Program ten ma władzę życia i śmierci nad Januszem. Jeżeli Janusz
nie rozpozna owocu ze zdjęcia, zostanie zabity, to znaczy wyłączony. Jeżeli
udzieli odpowiedzi prawidłowej, otrzyma nagrodę w postaci kolejnego zdjęcia
do oceny.
Programy "zabite" wędrują do szuflady, przydadzą się ewentualnie później.
Janusz nagrodzony (dla uproszczenia to wciąż jest tylko jedna instancja na
raz) "żyje" doputy, dopóki udziela poprawnych odpowiedzi. Gdy *Danton*
wreszcie go "zabije", do szuflady wędruje cała historia działania *Janusza*.
I tak w kółko.
Po pewnym czasie mamy pełną szufladę (**pseudo**) losowych zestawień analiz
obrazków gruszek i jabłek połączonych z poprawnymi oraz odpowiedziami i z
niepoprawnymi bredniami. Czyli zamiast zdjęcia jabłka z podpisem "jabłko"
mamy zbiór jego analiz z takim podpisem. Mamy też cały kosz takichże
analiz, ale z błędnym podpisem.
Teraz bierzemy *Janusza* i trochę go przebudowujemy (powstaje *Janusz bis*).
Mianowicie pozwalamy mu porównywać wynik wykonanej przez niego analizy obrazu
do całego mnóstwa takich danych zakończonych pozytywnym wynikiem. To
statystycznej analizy w oparciu o różne wagi i biasy (takie tam narzędzia
statystyczne). W efekcie tej czynności Janusz oprócz swojej analizy dostaje
dodatkową ocenę, jak bardzo jest ona podobna (ta jego analiza) do innych,
które pozwoliły wcześniejszym instancjom Janusza "przeżyć".
[^2]: To znaczy: żeby napisać (czyli wydumać i zaprogramować) ten algorytm,
trzeba być bardzo inteligentnym, podobnie, jak tylko bardzo bystrzy
inżynierowie mogli zaprojektować i zbudować komputer. Ale do wykonania tego
algorytmu wystarczy być już tylko tępym narzędziem elektronicznym, czyli
właśnie komputerem.
Wszystko to oczywiście dzieje się w świecie liczb[^3]. A tych jest tam całe
mnóstwo. Ocena porównawcza zawiera mnóstwo dodatkowych ocen analitycznych,
bowiem, jak wcześniej napisałem, jeden Janusz "przetrwał" pojedyncze
rozpoznanie jabłka, a inny przecież zdołał zdać kilka egzaminów.
Pamiętajmy, że ten, który przetrwał dłużej, nie był w jakiś sposób
bardziej inteligentny od innych. Miał tylko więcej szczęścia. A właściwie
pseudoszczęścia, pochodzącego z generatora liczb pseudolosowych. Który to
generator losował odpowiedź mając za ziarno właśnie wykonane analizy. Za
każdym razem ich decyzje były losowe, ale oparte o realizację algorytmu na
otrzymanym zdjęciu.
[^3]: Bynajmniej nie cyfr, jak lubi **rusycyzować** znany rusofob Zychowicz.
Potem tworzymy *Janusza encore bis*, który porównuje analizy *Januszy* oraz
samo, co poprzednicy, na bazie ich pracy. I powyższa historia powtarza się w
kółko przez bardzo długi czas. Jak długi? Aż komputer zacznie się grzać,
ale zacznie udzielać poprawnych odpowiedzi częściej niż założony próg,
np. 95%.
Tylko *Danton* wciąż ten sam...
No dobrze, to się wydaje proste. *Janusz* zbiera coraz więcej poprawnych
odpowiedzi połączonych z danymi analitycznymi i mechanizm statystyczny coraz
precyzyjniej dobiera odpowiedzi, a zatem coraz częściej trafia. Ale to
oznacza, że za każdym razem ma coraz więcej danych do przetworzenia, zanim
udzieli odpowiedzi. To nie ma sensu. Program ma działać szybko i nie grzać
komputera ponad miarę.
Tu znowu wkraczają programiści i tworzą kolejny program, nazwijmy go
przez *Januszy* prac i wyszukać te fragmenty analizy, które najczęściej
występowały w poprawnych odpowiedziach. W świecie ludzi możemy to
opowiedzieć tak, że *Heniek* zaczyna "rozumieć", że np. jabłko jest
bardziej *kuliste* w kształcie i częściej ma kolory żółte i czerwone, a
gruszka jest, no właśnie, *gruszkowata* i zwykle zielona lub żółtawa. Ale
do takiej analizy, jak tu przedstawiłem, nie potrzebujemy *Heńka*. Zresztą
nasz mózg też analizuje mnóstwo innych cech gruszek i jabłek, po prostu ich
nie opisuje w jednym, krótkim zdaniu. A *Heniek* ma być bezstronny i nie
polegać na dobrych radach, po prostu ma znaleźć wszystkie dane, które dają
największe prawdopodobieństwo poprawnego odróżnienia owoców. I zgromadzić
je w jednym pudełku z napisem "jabłko" oraz w drugim z napisem "gruszka". A
co właściwie on tam będzie gromadzić - tego nie wiemy. Dla nas może to
być zupełnie bez sensu, ale z bazy wynika, że *Januszowi* pozwoliło
przetrwać kolejny egzamin.
Teraz bierzemy którąś tam generację *Janusza bis encore bisbis encore
bisbisbis* i karmimy go danymi od *Heńka*. Przypominam, że ów *Janusz*
podejmuje decyzje losowo. Ale w przeciwieństwie do *Heńka* robi to wobec
zupełnie nowych danych, których nikt przed nim nie analizował. Komu
potrzebna umiejętność ponownego rozpoznania owocu, który już wcześniej
został poprawnie nazwany?
Pomimo, że wciąż decyzja nie jest rozumna, tylko losowa, to program prawie
bezbłędnie, a przecież w końcu znacznie sprawniej od rozumnego człowieka,
odróżnia gruszki od jabłek! Bo jego generator liczb pseudolosowych jako
ziarno ma niezrozumiały dla nas zestaw danych wsadowych, z których generuje
decyzję.
to fakt (wyjaśnienia trzeba raczej szukać w hasłach typu heurystyka[12],
algorytmy genetyczne[13], metoda Monte Carlo[14]). W końcu ja tu bardzo
upraszczam, żeby nie oszaleć. To trochę bardziej złożone narzędzie. Ale z
grubsza o to chodzi, że gdzieś tam w piwnicy i tak jakiś krasnoludek rzuca
kostką[^6].**
https://pl.wikipedia.org/wiki/Heurystyka_(informatyka)
https://pl.wikipedia.org/wiki/Algorytm_genetyczny
https://pl.wikipedia.org/wiki/Metoda_Monte_Carlo
[^6]: Powyższy przykład wyjaśnia też zjawisko "*halucynowania[15]*" SI
stwierdzone w interakcjach z tzw. *modelami językowymi[16]*. Jeżeli
oprogramowanie zostanie "wyszkolone" nie do odróżniania owoców, tylko do
składania zdań, jego pierwszym i zasadniczym zadaniem będzie udzielenie
informacji. Jakość tej informacji stać będzie na drugim miejscu. Bo jeżeli
powiesz cokolwiek, to może trafisz w punkt. Jeżeli nic nie powiesz - na pewno
nie trafisz.
https://en.wikipedia.org/wiki/Hallucination_(artificial_intelligence)
https://en.wikipedia.org/wiki/Language_model
A chodzi o to, że odpowiedź, jaką otrzymujemy od onego *Janusza*, z jednej
strony jest przypadkowa, ale z drugiej, ów wygenerowany komputerowo przypadek
oparty jest o nieznane nam, bo wcześniej wydestylowane z setek tysięcy prób,
dane. To się nazywa *stochastycznie[17]*, w odróżnieniu od
statystycznie[18], lub losowo[19]. Czym zatem jest taka odpowiedź[20]? Czymś
bardzo podobnym do wyników działania ludzkiego mózgu, wynikiem
niezliczonych, przypadkowych[21], opartych o liczne doświadczenia,
przemyślenia, skojarzenia, wyobrażenia, (oraz inne, czasem bez związku z
tematem), wyborów.
https://en.wikipedia.org/wiki/Stochastic
https://pl.wikipedia.org/wiki/Statystyka
https://pl.wikipedia.org/wiki/Losowość
=>
https://www.researchgate.net/publication/346049491_Modeling_of_stochastic_brain_
function_in_artificial_intelligence 20:
https://www.researchgate.net/publication/346049491_Modeling_of_stochastic_brain_
function_in_artificial_intelligence
=>
https://www.researchgate.net/publication/351286957_STOCHASTIC_ACTIVITY_OF_NEURON
AL_NETWORKS_OF_THE_BRAIN_AS_A_PHYSICAL_BASIS_FOR_REALIZATION_OF_CONSCIOUSNESS_TO
WARDS_MATHEMATICAL_APROACH_IN_THE_PROBLEM_OF_CAUSAL_NATURE_OF_SUBJECTIVE_VALUE
21:
https://www.researchgate.net/publication/351286957_STOCHASTIC_ACTIVITY_OF_NEURON
AL_NETWORKS_OF_THE_BRAIN_AS_A_PHYSICAL_BASIS_FOR_REALIZATION_OF_CONSCIOUSNESS_TO
WARDS_MATHEMATICAL_APROACH_IN_THE_PROBLEM_OF_CAUSAL_NATURE_OF_SUBJECTIVE_VALUE
Przedstawiona powyżej historyjka jest oczywiście dużym uproszczeniem procesu
nauczania maszyny, w niektórych wypadkach zwanego "uczeniem maszynowym", a do
tego przedstawia tylko **wydedukowany** jeden ze sposobów, a tych jest z
pewnością wiele. Wyżej podana historyjka nie tyle miała wyjaśnić, jak
się robi przesławną *Sztuczną Inteligencję*, co pozwolić mi podsumować
sobie w duszności i cichości własne wyobrażenia na ten temat. Ale wynika z
niej oczywisty wniosek, że zarówno komputer, jak i jego oprogramowanie, dalej
są zwyczajnie kretyńskie. Pojawiła się tylko nowa jakość dwojakiego
rodzaju:
1. Część algorytmu działania nowego typu programów opiera się o
niezrozumiałe dla nas zbiory danych oraz nieznane nam algorytmy.
2. Program w nieznany nam sposób potrafi nas przewyższyć w czynnościach, do
których do niedawna stosowaliśmy takie cechy umysłu jak **doświadczenie**
oraz **intuicja**.
Ale zauważcie, że ów z takim trudem "nauczony" program wciąż nie umie nic
więcej niż tylko odróżnić gruszkę od jabłka. W pozostałych sprawach
jest tak samo głupi jak jego poprzednicy sprzed czasów, gdy gawiedź
zachwyciła się interfejsem okienkowym - czyli bezdennie głupi. Bo nic nie
umie.
Inteligencja, jaką pod czaszką posiada najgłupszy z ludzi, potrafi o wiele
więcej i w ogromnej liczbie dziedzin.
Do takich możliwości jeszcze komputerom bardzo daleko. Bardzo. Daleko.
To są wciąż bardzo szybkie biurokratyczne idioty.
Więc aż tak bardzo się nie pałujmy.
Zdołamy je jakoś oszukać.
--------------------------------------------------------------------------------
📅 pon 25 września 2023