Objavljeno: 31.1.2023 | Avtor: Matej Huš | Monitor Februar 2023

Umetna inteligenca gre v 3D

Številni problemi se lahko prevedejo v generiranje slik in besedil, kar umetna in inteligenca z algoritmi difuzije že precej dobro zna. Podjetje OpenAI je zato nepresenetljivo predstavilo tudi model za ustvarjanje tridimenzionalnih točkovnih modelov. Obljubljajo veliko, rezultati pa vendarle zaostajajo za dosedanjimi dosežki podjetja.

OpenAI nadaljuje izdajanje orodij, ki uporabljajo umetno inteligenco za ustvarjanje stvaritev po človeškem opisu. DALL-E 2 od lanskega septembra sleherniku omogoča ustvarjanje in popravljanje slik (Umetna inteligenca, ki riše in slika, Monitor 11/22), ChatGPT pa je decembra lani (Kdo bo še pisal eseje?, Monitor 01/13) ustvaril na milijone strani besedil, ki segajo od šaljivih pesmi do uvodov v znanstvene članke. Naslednji korak je pravzaprav logično nadaljevanje prvega. Več slik lahko zložimo v video, kar OpenAI že preizkuša in je nekaj rezultatov že odstrl, dasiravno ta nadgradnja DALL-E 2 javnosti še ni na voljo. Po drugi strani pa lahko več slik istega predmeta z več strani združimo v tridimenzionalni model. To zmore nova storitev, ki se imenuje Point E.

Ko so konec decembra izdali Point E, je na spletu spet završalo, na družbenih omrežjih pa se je znašlo nekaj stvaritev. A v nasprotju s prejšnjimi storitvami na internetu stvaritev ni bilo toliko, recenzije pa so večidel dopolnjevali kar izdelki, ki jih je OpenAI priložil kot zglede. Razlog je kompleksnost uporabe. Medtem ko sta ChatGPT in DALL-E 2 po registraciji na voljo kot vmesnika na internetu, kamor zgolj vpišemo vhod (prompt) in kliknemo Start, je Point E na voljo kot koda na Githubu. Kdor ga torej želi preizkusiti, mora oddeskati na github.com/openai/point-e, prenesti arhiv in ga, sledeč navodilom, namestiti. Vsaj tako je bilo čisto na začetku, kasneje so ga lahko preizkusili tudi manj vešči, saj so se na internetu znašle implementacije, ki so delovale v brskalniku. A pri teh so bile čakalne vrste (zaradi procesorskega časa) predolge, da bi sploh prišli na vrsto.

Mi smo ga namestili kar sami.

Point E lahko poganjamo sami, še najlaže v Googlovem Colabu. Rezultati so klavrni.

Namestitev

V resnici niti lokalna namestitev ni zapletena, kar sem preizkusil tudi sam. Z Githuba sem prenesel kodo in jo odpakiral v Ubuntu 22.04, ki je imel nameščene vse najnovejše paketke, poleg tega pa še okolje Anaconda, Jupyter za odpiranje zvezkov s kodo (ipynb) in pip za nameščanje paketov v Pythonu. Nato sem se odpravil v mapo s kodo, zagnal virtualno okolje conda (da ne bi packal po sistemu), namestil Point E (pip install -e .) in v Jupytru odprl prvi zvezek text2pointcloud.ipynb. Ta je namenjen ustvarjanju tridimenzionalnih modelov (point cloud) iz besedilnega vnosa (prompt). Poleg tega Point E vsebuje še image2pointcloud.ipynb, kjer je vnos kar poljubna slika, in pointcloud2mesh.ipynb, ki iz tridimenzionalnega modela točk ustvari mrežo.

Poleg lokalne poti obstaja tudi vmesna, ki je običajno še najhitrejša. Na Google Colabu lahko ustvarimo nov projekt, v katerega prenesemo repozitorij Point E z Githuba, naložimo želeni zvezek in ga celo z grafičnim pospeševanjem (GPU) brezplačno poženemo kar na Googlovih strežnikih. Če doma nimamo zelo hitre grafične kartice ali pa vse skupaj poganjamo v slabše konfigurirani virtualki, bodo Googlovi strežniki hitrejši. Zrcaljenje repozitorija v Colab, namestitev in ustvaritev modelov trajajo približno pol minute. To moramo storiti le enkrat. Najpočasnejši del je dejansko generirati tridimenzionalno strukturo, kar je trajalo dobro minuto.

Iz slike lahko Point E ustvari tridimenzionalni točkovni model.

Večkrat sem že zapisal, da nove tehnologije korenito spremenijo svet šele, ko se dovolj pocenijo, da postanejo dostopne sleherniku. A to ni zadostni pogoj. Nujno je tudi, da postane njihova uporaba dovolj enostavna za slehernika. Če bi za vožnjo avtomobila morali vsakokrat prestaviti pet cevk pod pokrovom, nastaviti uplinjač in sami umeriti merilnik hitrosti, se z njim pač ne bi vozil nihče razen največjih zanesenjakov. Ko se tehnologije razvijajo, takšni posegi seveda niso problematični, saj še niso namenjene komercializaciji. Tako nekako je bilo videti tudi lokalno poganjanje Point E, ko se je iz neznanih vzrokov Jupyter »pritožil«, da ne najde Widget Javascript, in pip javil, da odsvetuje nameščanje z administratorskimi privilegiji (sudo), medtem ko brez njih sploh ni deloval. Prav tako je bilo treba besedilni opis želenega predmeta vsakokrat vpisati v kodo – to ni težko, predvsem pa je zelo jasno, kam – in kodo popravljati tudi za druge spremembe, kot so število izrisanih slik iz različnih perspektiv, vrsta modela, gostot mreže za izris (grid) in podobno. Vse to lahko spreminjamo, a se moramo v kodo, ki je resda zgledno dokumentirana, vseeno dovolj poglobiti, da to najdemo. Nihče razen bralcev te revije tega ne bo počel. Uporaba na Googlovem Colabu vseh teh pomanjkljivosti ne odpravi, nam pa vsaj prihrani nameščanje vseh potrebnih paketkov in nastavljanje Jupytra. Nekaj je.

Ustvarjanje glasbe – Riffusion

Marsikateri problem lahko prevedemo na ustvarjanje slik, kamor sodi tudi glasba. Vsak zvočni posnetek ima enoličen slikovni odtis, ki se imenuje spektrogram. To je prikaz spektra frekvenc v signalu v odvisnosti od časa. Ker gre za tridimenzionalni graf, ga v dve dimenziji sploščimo z uporabo barvnega ključa. Na vodoravni osi je čas, na navpični so frekvence, barva točk pa ponazarja intenziteto.

Algoritem stabilne difuzije je mogoče uporabiti tudi za generiranje spektrogramov. Ena izvedenka se imenuje Riffusion in je javnosti na voljo od sredine decembra. Gre za model stabilne difuzije, ki je bil izurjen na spektrogramih, zato ustvarja te. Rezultat lahko potem obdelamo z inverzno Fourierjevo transformacijo, pa bomo iz spektralnega zapisa dobili zvočno datoteko. Ustrezno kodo najdemo na Githubu (github.com/riffusion/riffusion), na Hugging Faceu pa je spet kopica spletnih vmesnikov, ki znajo isto.

Določimo lahko začetne ključne besede, želeno trajanje posnetka in morebitne negativne ključne besede. Rezultat sta spektrogram in zvočna datoteka. Težko si je predstavljati, da bi lahko kmalu nadomestila človeške skladatelje, saj rezultati sicer spominjajo na želene ključne besede, a niso poslušljivi. Saksofon res zveni kot saksofon, a v rokah učenca 1. razreda glasbene šole. Ta se bo igrati šele naučil, Riffusion pa najbrž tudi!

Spektrogram algoritma Riffusion ob ključni besedi »saksofon« igra zelo energično skladbo.

A vendarle bodo tehnično manj vešči uporabniki še najbolj veseli interaktivne različice na spletu, ki se je kmalu zatem pojavila. Podjetje Hugging Face, ki se ukvarja z razvojem orodij za uporabo strojnega učenja, na svoji strani nudi tudi storitev Spaces, kjer lahko uporabljamo tudi kodo iz drugih projektov skupnosti. Ena izmed implementacij je dostopna na naslovu huggingface.co/spaces/openai/point-e, kjer kaj dosti parametrov ne moremo spreminjati. K sreči ni edina, saj je na primer huggingface.co/spaces/anzorq/point-e_demo že precej bolj prilagodljiva, obstajajo pa tudi druge. S tem je tudi Point E dostopen resnično vsakomur, če le ni prevelikega navala.

Kako deluje

Point E, kot ga je OpenAI predstavil javnosti, ima tri skripte za pretvorbo besedila ali slik v točkovni model ter njegovo pretvorbo v mrežo. Uporablja difuzne modele za ustvarjanje pogledov iz različnih perspektiv in združitev v tridimenzionalni model. OpenAI poudarja, da je glavna prednost hitrost, saj izgradnja strukture že na enem grafičnem procesorju traja vsega dobro minuto. To je bistveno hitreje od dosedanjih metod, ki so bile za velikostne razrede počasnejše.

Kodo, ki jo množično poganjajo laični uporabniki, uporablja že izurjen difuzni model. V resnici so na voljo trije (40M, 300M in 1B – kar se nanaša na količino vhodnih podatkov za trening), a poanta je, da so že pripravljeni. Tehnologija pa je seveda splošna, in kdor ima ustrezno znanje ter podatke, lahko izuri povsem svoj model, ki bo zadovoljeval njegove zahteve.

Point E pošlje slike skozi model CLIP, katerega rezultati se vodijo v Transformerju. Rezultat je točkovni model.

Point E se je uril na več milijonih obstoječih 3D-modelov, ki so bili iz različnih zornih kotov izrisani v Blenderju, nato pa pretvorjeni v točkovne modele (dense point cloud) z ustreznim vzorčenjem (farthest point sampling). Na tak način se izognejo težavam, ki bi nastale pri izdelavi točkovnega modela neposredno iz 3D-mreže. Predvsem pa je to uporabnejše za rezultate, ki jih proizvaja model – navsezadnje so to namreč slike iz različnih zornih kotov. Uporabili so tudi različne hevristične metode, ki so namenjene popravljanju in zato manjšajo pogostost pojavljanja nekakovostnih rezultatov. Mednje sodijo odpravljanje povsem ploskih predmetov, združevanje točk v skupine glede na kakovost in podobno.

Difuzni modeli niso nič novega, saj so se prve zamisli pojavile že leta 2015 v znamenitem članku, ki so ga napisali Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan in Surya Ganguli. Pravi pospešek je področje dobilo leta 2020 in odtlej redno dobivamo nove implementacije, tako komercialne kakor odprtokodne izdelke. Predvsem pa so na voljo orodja, ki uporabnikom omogočajo gradnjo in trening lastnih modelov. Point E uporablja klasični pristop. Vhodnim podatkom postopoma dodaja Gaussov šum, nato pa postopek obrne. Točkovni model pa se zgradi v treh korakih. V prvem se iz besedila (ali slike) ustvari sintetični pogled, torej dvodimenzionalni prikaz. V drugem se izdela grob točkovni model, ki ima 1.024 točk, v zadnjem koraku pa finejši model s 4.096 točkami.

OpenAI je pripravil več modelov. Štirje so izurjeni na 40 milijonih objektov, a z različnimi parametri in pogoji, večja pa uporabljata 300 milijonov in eno milijardo objektov. Tadva sta počasnejša za uporabo, a so rezultati natančnejši, večinoma pa to pomeni tudi boljši. Rezultati testov so pokazali, da se po milijardnem korpusu dodajanje podatkov za trening ne pozna več (diminishing returns). Point E po kakovosti ni tako dober kot DreamFields in DreamFusion, ki tudi znata generirati tridimenzionalne strukture. A pri teh posamezen postopek traja več ur, Point E pa je gotov v minuti ali dveh. To je kompromis med hitrostjo in kakovostjo.

Sodba

Rezultati Point E so v najboljšem primeru povprečni, večinoma pa slabi. Model s 40 milijoni podatkov deluje klavrno. Če mu zapovemo, naj ustvari človeka, bo rezultat siva gmota, ki le delno spominja na človeka. Jeleni in psi mu gredo precej bolje, kakšne kompleksnejše oziroma sestavljene zahteve pa sploh ne. Rjava kača z rdečim klobukom je že pretežak problem, saj sestavi rdečo gmoto, ki niti v najbolj prizanesljivem vrednotenju ne spominja na klobuk ali kačo. Res, rezultati so po velikem pričakovanju razočarali.

Nekoliko bolje se odreže generiranje modelov iz obstoječih fotografij, čeprav tudi tu ne blesti. Za najboljše rezultate morajo biti na slikah enostavni in jasni predmeti na belem ozadju, sicer se model hitro zmede.

Primeri, očitno najboljši, ki jih je OpenAI predstavil v članku.

Priznajmo, da o Point E verjetno ne bi pisali, če ga ne bi ustvaril ravno OpenAI. Za zdaj je preprosto preslab, da bi bil uporaben. Medtem ko je DALL E 2 lahko ustvari že zelo uporabne posnetke – v naši hiši smo z njim ustvarili uradno novoletno čestitko –, ChatGPT pa pripravlja uvode in zaključke projektnih poročil, ki jih je treba minimalno popraviti, Point E caplja zadaj. Problem je pač toliko kompleksnejši, da ga trenutne metode, ki bi v minuti delovale na osebnem računalniku, še ne rešijo zadovoljivo. Tega se zavedajo tudi razvijalci, ki so zato izdali kodo (ki je požrešnejša od drugih njihovih izdelkov) in ne storitve na lastni spletni strani.

Kdor želi resneje uporabiti podobne tehnologije difuzije za ustvarjanje tridimenzionalnih modelov ali tisk, bo posegel po zmogljivejših, a počasnejših orodjih (npr. DreamFusion). Ostali pa se lahko igramo z novimi igračkami in s pričakovanjem zremo v prihodnost. V njej bo zagotovo še vedno prostor za pisatelje, ilustratorje, grafične oblikovalce in druge kreativne poklice. Umetna inteligenca jih gotovo ne bo povsem nadomestila, bo pa dobrodošel pripomoček za učinkovitejše delo. Tudi lektorji zaradi samodejnega podčrtavanja nepravilno zapisanih besed niso izumrli, se je pa njihovo delo spremenilo.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji