Model uczenia maszynowego od OpenAI, który na podstawie fragmentu tekstu zmyśla całą historię w tym samym stylu, nie powiedział ostatniego słowa. Teraz, gdy nakarmiono go pikselami, zasmakował w obrazach…

Nieco ponad miesiąc po premierze GPT-3, superpotężnego algorytmu generującego tekst, jego poprzednik – GPT-2 – znalazł nowe wcielenie. Jego twórcy postanowili sprawdzić, jak ich model zachowałby się, gdyby wyszkolić go nie na terabajtach tekstu, ale na milionach… fotografii.

Co to za pomysł, by model, który przecież został stworzony jako generator tekstu, zastosować do obrazów? Otóż modele typu Transformer, do których należy GPT-2, określa się jako domain-agnostic, czyli niezależne od przetwarzanych danych. Oznacza to, że model teoretycznie zadziała dla każdych danych, które można zamienić na jednowymiarową sekwencję.

Tekst jest taką sekwencją z natury, ale co z dwuwymiarowym obrazem? Żeby to zadziałało, trzeba go było rozłożyć na czynniki pierwsze – obraz, został „linijka po linijce” zapisany jako ciąg pikseli. Każdy piksel z osobna został zakodowany w specjalnie zaprojektowanym dziewięciobitowym systemie określania koloru.

Na milionach tak przygotowanych obrazów wyszkolono GPT-2. Tak powstał Image GPT, w skrócie iGPT. System występuje w kilku wersjach: iGPT-S (76 milionów parametrów sieci neuronowej, czyli w uproszczeniu połączeń między neuronami), iGPT-M (455 milionów parametrów) i iGPT-L (1,4 miliarda parametrów) – zostały wyszkolone na popularnej bazie obrazów ImageNet. Największa wersja, iGPT-XL z 6,4 miliardami parametrów, była dodatkowo szkolona na korpusie fotografii pobranych z internetu. Budowa modelu jest tożsama z zaprezentowanym w lutym zeszłego roku systemem przetwarzania języka.

Okazało się, że algorytm działający na jednowymiarowych sekwencjach danych, którego działanie w wielkim uproszczeniu sprowadza się do przewidywania kolejnego elementu układanki z zachowaniem kontekstu całości, świetnie sprawdza się także w generowaniu dwuwymiarowych obrazów.

To znaczy, że iGPT – jeśli mu dać fragment obrazu – wytworzy spójny stylistycznie dalszy ciąg. Nie chodzi tu o odtworzenie oryginału, raczej o stworzenie różnych wariacji na temat zadanego fragmentu. Efekt jest analogiczny jak w przypadku generowania tekstu – dalszy ciąg jest całkowicie zmyślony, ale stylistycznie spójny z początkowym fragmentem. Próbki działania algorytmu można zobaczyć na poniższej ilustracji.

Więcej przykładów znajdziecie na blogu OpenAI.

Poza generowaniem obrazów iGPT jest też w stanie je rozpoznawać i klasyfikować. To ciekawe, bo uczenie przebiega w trybie nienadzorowanym, czyli obrazy, którymi „karmiony” jest model, nie mają etykiet określających, co dane zdjęcie zawiera.

Zastosowanie modelu opartego GPT-2 do przetwarzania obrazu raczej nie znajdzie praktycznych zastosowań. Jak przyznają twórcy, jego wyszkolenie wymaga ogromnej mocy obliczeniowej. Na przykład inny model o nazwie MoCo potrzebował 35 razy mniej mocy obliczeniowej, by osiągnąć podobną skuteczność jak iGPT.

Drugim problemem jest wielkość obrazu – iGPT pracuje na sekwencjach pikseli, dlatego praca na dużych obrazach, zawierających miliony punktów, byłaby właściwie niemożliwa. Duże obrazy nie są natomiast żadnym problemem dla działających już konwolucyjnych sieci neuronowych (CNN), które pracują na dwuwymiarowych obrazach i wyszukują w nich charakterystyczne cechy, jak krawędzie czy rogi. Dlatego do praktycznych zastosowań ten rodzaj sieci nadaje się dużo lepiej

Po premierze GPT-2 pojawiły się obawy, że system zostanie wykorzystany do niecnych celów, jak masowa produkcja fake newsów. Na razie się one nie potwierdziły, a niedawno światło dzienne ujrzał następca algorytmu – GPT-3.

Czy w przypadku iGPT możemy – analogicznie – obawiać się wysypu deepfake’ów? W tej chwili nam to nie grozi – algorytm nie został upubliczniony, a do jego poprawnego działania potrzeba bardzo potężnej infrastruktury chmurowej, co – przy niskiej jakości generowanych obrazów – czyni go całkowicie niepraktycznym.

Po co zatem w ogóle bawić się w iGPT? Ludzie z OpenAI chcieli pokazać, że ten rodzaj modelu jest wszechstronny i – jeśli dać mu do dyspozycji odpowiednią moc – jest w stanie działać skutecznie bez modyfikacji pod kątem konkretnego rodzaju danych. Może się to okazać szczególnie skuteczne, gdy chcemy zastosować głębokie uczenie do rodzaju danych, dla których nie powstały jeszcze wyspecjalizowane modele przetwarzania.