Zmieni rzeczywistość, w jakiej żyjemy, zautomatyzuje powtarzalne czynności, wygryzie zawody kreatywne, uprzykrzy życie artystom, zakwestionuje przydatność programistów w społeczeństwie przyszłości. Potrafi tak dużo, a nie radzi sobie z wygenerowaniem dłoni. Oto sztuczna inteligencja.
Modele generatywnej sztucznej inteligencji potrafią naprawdę wiele, od naśladowania rzeczywistości i wyparcia z użytku baz zdjęć pokroju, poprzez tworzenie rzeczy, które nie istnieją, takie jak fotografie mopsów na rowerze, a kończąc na przepięknych, bajecznych wręcz ilustracjach i przejmujących zdjęciach wygrywających prestiżowe konkursy.
Możliwości SI można by wyliczać jeszcze długo. ale każdy, kto kiedykolwiek podjął się pracy z jakimkolwiek modelem text-to-image zauważył, iż choćby najlepsze i najpopularniejsze modele generatywnej sztucznej inteligencji tworzą niskiej jakości dłonie. Dlaczego?
Czytaj także:
– Sztuczna inteligencja wysadzi internet w powietrze. Właśnie pojawił się nowy problem
– Amazon zalewają recenzje pisane przez chatboty. Już się nie dowiesz, czy produkt jest naprawdę dobry
– Nie Microsoft i nie Google. Ktoś inny wygrywa wojnę na sztuczną inteligencję
Ludzkość boi się maszyny, która myśli, iż mamy gdzieś pomiędzy 1 a 10 palców
Aby odpowiedzieć na to pytanie, cofnijmy się do samego początku, do nauki. Niezależnie czy jesteś wybitnym artystą, czy przeciętną osobą potrafiącą odtworzyć podstawowe elementy otaczającej cię rzeczywistości. Czerwony trójkąt a pod nim szary prostokąt – to jest dom, zielony okrąg a pod nim brązowy prostokąt – to jest drzewo. Na podobnej zasadzie pięć dłuższych elementów połączonych do jednego wspólnego śródręcza – wizualnie bliskiemu prostokątowi, to dłoń. Pod tym względem my i sztuczna inteligencja jesteśmy sobie równi: pośród wielu rzeczy, które widzimy, zauważamy pewne stałe elementy, wzorce. Wyróżniamy oryginalne wizualne cechy danego przedmiotu.
Jednak to, w jaki sposób ich doświadczamy to główny element, który różni nas od sztucznej inteligencji. W konkretnym przypadku dłoni jest to fakt, iż mamy je stale „przy sobie” – widzimy je cały czas, a więc mamy dobre wyobrażenie tego jak wyglądają. Nie widzimy ich jedynie położonych płasko na stole, ale widzimy też, jak układają się, trzymając długopis, telefon, niosąc zakupy czy wieszając pranie. Mamy świadomość ich fizycznych ograniczeń, np. tego w ilu miejscach i w jaki sposób mogą zginać się palce.
W przypadku artystów i ludzi medycyny dochodzi także wiedza o wewnętrznej budowie dłoni, a konkretnie rola i położenie kości, mięśni, naczyń krwionośnych. Innymi słowy, znamy dłonie w każdym możliwym wymiarze.
W przypadku sztucznej inteligencji o tym co widzi, należy myśleć w kategoriach pary oczu zamkniętej w ogromnej galerii. Nie mają one do dyspozycji trójwymiarowych danych, ani informacji o tym jak „działa” dłoń. Jedynie zdjęcia, tysiące zdjęć przedstawiających dłonie, które muszą odpowiednio wykorzystać przy przetwarzaniu danego zapytania.
Innymi słowy, sposób, w jaki sztuczna inteligencja uczy się wizualizacji naszego świata, przyczynia się do tworzenia dłoni, od których niejednokrotnie mogą zaboleć paliczki. Jednocześnie w tym momencie bardziej dociekliwym osobom może nasunąć się pytanie: „Okej, sztuczna inteligencja nie jest ekspertem w generowaniu dłoni. To dlaczego samochody, które halucynuje nie wyglądają jakby miały się rozpaść, skoro SI też nie jest inżynierem motoryzacji?”
To jest dobre pytanie, na które odpowiedź składa się kilka czynników.
Nie mam dłoni, dajcie mi dłonie.
Jak już pisałam wielokrotnie, na potencjał modelu, a więc i generowane przez niego wyniki składają się dane treningowe. Nie tylko ich ilość, ale też jakość. A o oba te w przypadku dłoni to ogromny problem.
W przypadku generatywnych modeli text-to-image po prostu brakuje danych treningowych zawierających dłonie w różnych możliwych ułożeniach. Istnieją zestawy danych takie jak ten przygotowany przez inżyniera algorytmów aparatów, Mahmouda Afifiego, które pozwalają dostroić możliwości generowania dłoni. Jednak przez cały czas to nie są zestawy treningowe nastawione na tworzenie sztuki i oryginalnych grafik, a bardziej na rozpoznawanie dłoni na obrazach. Plus sama ilość zdjęć w zestawach treningowych poświęconych dłoniom jest o wiele mniejsza niż w zestawach poświęconych choćby twarzom, pojazdom, czy budynkom.
Jednocześnie prawdą jest, iż dłonie przewijają się na bardzo wielu ilustracjach i fotografiach, np. piłkarze trzymający piłkę po wygranym meczu, przechodnie trzymający telefona w dłoni czy ludzie niosący zakupy. Jednak te wariacje nie są skupione wokół dłoni, a wokół danej osoby czy czynności – dłonie są tylko elementem, zwykle kawałkiem śródręcza i kilkoma palcami.
Zarówno my, wpisujący prompt, jak i przetwarzający go model nie skupiamy się na ułożeniu dłoni i palców w przestrzeni. W związku, z czym SI proszona o wygenerowanie „czarnoskórej dziewczyny ubranej w stylu lat 90 i cieszącej się imprezą” skupi się na głównych założeniach promptu. o ile nie sprecyzujesz, iż „ręce są uniesione w górę i dłonie zaciśnięte w pięść, widoczny kciuk” SI zacznie halucynować generując dłonie. Halucynować pochodzących z już i tak małego zestawu danych. I to ponownie w założeniu, iż SI ma wystarczająco danych, by zrozumieć, o co nam chodzi.
Ile palców ma dłoń? Czyli o tym jak widzimy dłoń
Na pytanie „ile palców ma dłoń” każdy z nas odpowie prosto: pięć. Większa lub mniejsza liczba to efekty mutacji w życiu płodowym, niekiedy tragicznych wypadków w pracy czy eksperymentów z najczarniejszych epok ludzkiej historii. Mimo wszystko jest to obiektywny fakt: zdrowa dłoń ma pięć palców.
Więc teraz zadam pytanie: ile widzisz palców?
Dłoń osoby dorosłej ma pięć palców, widzimy cztery. Dłoń dziecka ma pięć palców, widzimy trzy (na upartego pięć o ile zaczniemy się kłócić). Dla generatywnych modeli sztucznej inteligencji obiektywną prawdą jest to, co widzą. To, co widzą, jest ich wiedzą. To, co wiedzą, przekładają na to, co generują.
Biorąc pod uwagę, pod iloma kątami można sfotografować dłoń i ile różnych pozycji dłoń sama w sobie może przyjąć, dane treningowe pokazują sztucznej inteligencji, iż dłonie mają od jednego do aż dziesięciu palców: jeden w danych z płasko ułożoną dłonią, cztery tam, gdzie trzymamy dłoń na poręczy i dziesięć palców w danych, gdzie obie dłonie są wspólnie zaciśnięte w pięść.
Modele text-to-image nie zawierają tej samej „tekstowej” wiedzy z książek i Wikipedii, która tłumaczyłaby różnicę pomiędzy różnymi pozami a ilością widocznych palców. Żaden zbiór danych treningowych również nie standaryzuje ilości palców widocznych na zdjęciach, dlatego sztuczna inteligencja fantazjuje na temat tego, ile adekwatnie powinno być palców.
Archetyp – a może przeklęty ideał?
Ostatni czynnik, z którego mało kiedy zdajemy sobie sprawę to istnienie pewnego rodzaju archetypu. Kiedy poproszę sztuczną inteligencję o stworzenie wizji futurystycznego miasta, nieświadomie dajemy jej przyzwolenie na fantazjowanie.”Futurystyczne miasto” to koncepcja, która fizycznie nie istnieje, każdy ma inne wyobrażenie, które jest oparte o wyobrażenia i wizje innych osób. Nie ma jednej „idei” futurystycznego miasta, są tylko różne iluzje i fantasmagorie, dlatego dajemy sztucznej inteligencji przyzwolenie na pominięcie okna w budynku czy wsadzenie w projekt pojazdu, którego fizycznie nie da się skonstruować.
Podobnie jest kiedy promptem jest „pejzaż górski z przytulną drewnianą chatką”. Oczami wyobraźni widzimy drewnianą chatkę, góry, drzewa, może jakieś rośliny czy górski potok – mamy bardzo duży margines akceptacji błędu, bo góry górom nierówne i choćby w ramach tego samego łańcucha można doświadczyć różnych widoków. Nie jesteśmy ekspertami od botaniki, niezbyt nas obchodzi czy dany gatunek drzewa występuje w Europie, czy nie, wystarczy, iż wpasowuje się w klimat ilustracji.
W przypadku dłoni istnieje twardy archetyp, przez który margines akceptacji błędu w generowaniu rąk jest bardzo niski. Liczba palców inna niż 5? Źle. Palce wyginają się, w nie tę stronę co trzeba? Źle. Dłoń jest nienaturalnie ułożona względem czynności wykonywanej przez postać? Źle. Na dłoni widać wyraźnie kości śródręcza i naczynia krwionośne, pomimo iż postać jest otyła? Źle.
Prawda jest taka, iż gdyby porównać jakość generowanych dłoni do dowolnego innego przedmiotu z perspektywy eksperta, to wyszłoby, iż sztuczna inteligencja popełnia równie wielkie gafy w wielu innych dziedzinach. Problem polega na tym, iż każdy człowiek jest naturalnie ekspertem od dłoni.
Podobny problem dotyczy ras psów i kotów, gdzie również istnieje pewien wizualny archetyp, profesjonalnie nazywany wzorcem rasy. choćby o ile sztuczna inteligencja załapie umaszczenie zwierzęcia, jego gęstość, kształt pyska, to „wywali się” na proporcjach ciała czy kształcie uszu.
No to dobra, jak rozwiązać problem?
W bardzo dużym uproszczeniu, problemy w generowaniu dłoni przez sztuczną inteligencję sprowadzają się do dwóch czynników: ilości i jakości danych oraz ich oznaczenia. SI mogłaby się nauczyć tego jak wygląda dłoń gdybyśmy nakarmili ją większą ilością danych pozwalającą jej zauważyć jak faktycznie wygląda i działa dłoń. Lepsze oznaczenie danych (tzw. labelling), co dawałoby modelowi informacje o tym co widzi, np. „dłoń na myszce, widoczne trzy palce” lub „dłoń na mopie, pomarszczona dłoń, widoczny tył dłoni” pozwoliłoby jej mniej halucynować i lepiej wpisać się w nasz archetyp idealnej dłoni.
Oznaczać powinno się nie tylko dane treningowe, ale też efekty działania modelu. A adekwatnie oceniać. o ile korzystaliście kiedyś z ChatGPT czy Midjourney, to oba te modele oferują ocenę wygenerowanych treści. Kciuk w górę do sygnał dla SI, iż dobrze wykonuje swe zadanie i powinna podążać tym tropem w przyszłych zapytaniach, natomiast kciuk w dół informuje, iż wymagana jest poprawa.
Obecnie jest już lepiej niż było choćby pół roku temu. W najnowszej wersji wcześniej wspomnianego Midjourney czy nowo wydanego Stable Diffusion XL sztuczna inteligencja już lepiej radzi sobie z generowaniem dłoni. Jednak przez cały czas tworzenie idealnych dłoni pozostaje problemem każdej SI i pozostanie na długo, o ile nie wkroczymy do galerii w której zamknęliśmy SI.