Firma NVIDIA opublikowała źródła StyleGAN3, systemu uczenia maszynowego opartego na generatywnej sieci antagonizującej (GAN), który ma na celu syntezę realistycznych obrazów ludzkich twarzy. Kod napisany jest w języku Python z wykorzystaniem frameworka PyTorch i jest rozpowszechniany na licencji NVIDIA Source Code License, która nakłada ograniczenia na użycie w celach komercyjnych.
Dostępne są również gotowe, wytrenowane modele, które zostały przeszkolone na kolekcji Flickr-Faces-HQ (FFHQ) obejmującej 70 tysięcy wysokiej jakości (1024×1024) obrazów PNG twarzy ludzi. Ponadto istnieją modele opracowane na podstawie kolekcji AFHQv2 (zdjęcia zwierząt) oraz Metfaces (obrazy twarzy ludzi z portretów klasycznego malarstwa). Przy opracowywaniu kładzie się nacisk na twarze, ale system może być wytrenowany do generowania dowolnych obiektów, takich jak krajobrazy i samochody. Dodatkowo udostępnione są narzędzia do samodzielnego uczenia sieci neuronowej na podstawie własnych zbiorów obrazów. Do działania wymagany jest jeden lub więcej procesorów graficznych NVIDIA (zalecany GPU Tesla V100 lub A100), co najmniej 12 GB RAM, PyTorch 1.9 oraz zestaw narzędzi CUDA 11.1+. W celu wykrywania sztucznego charakteru uzyskanych twarzy opracowywany jest specjalny detektor.
System pozwala na syntezę obrazu nowej twarzy na podstawie interpolacji cech kilku twarzy, łącząc charakterystyczne dla nich cechy oraz dostosowując końcowy obraz do pożądanego wieku, płci, długości włosów, charakteru uśmiechu, kształtu nosa, koloru skóry, okularów, kąta fotografii. Generator traktuje obraz jako zbiór stylów, automatycznie oddzielając charakterystyczne detale (piegów, włosów, okularów) od ogólnych, wysokopoziomowych atrybutów (poza, płeć, zmiany związane z wiekiem) i pozwala na ich kombinowanie w dowolny sposób z określeniem dominujących właściwości poprzez współczynniki wagowe. W rezultacie generowane są obrazy, które są wizualnie nieodróżnialne od prawdziwych zdjęć.

Pierwsza wersja technologii StyleGAN została opublikowana w 2019 roku, a w 2020 roku zaproponowano ulepszoną edycję StyleGAN2, która pozwala na poprawę jakości obrazów i eliminuje niektóre artefakty. System pozostał statyczny, tzn. nie umożliwiał realistycznej animacji i ruchu twarzy. Podczas opracowywania StyleGAN3 głównym celem było dostosowanie technologii do jej zastosowania w animacji i wideo.
W StyleGAN3 zastosowano przeprojektowaną architekturę generowania obrazów, pozbawioną aliasingu, oraz zaproponowano nowe scenariusze szkolenia sieci neuronowej. W skład wchodzą nowe narzędzia do interaktywnej wizualizacji (visualizer.py), analizy (avg_spectra.py) oraz generowania wideo (gen_video.py). W realizacji także zmniejszono zużycie pamięci i przyspieszono proces szkolenia.

Kluczową cechą architektury StyleGAN3 stał się przejściem do interpretacji wszystkich sygnałów w sieci neuronowej w postaci procesów ciągłych, co umożliwiło manipulację względnymi pozycjami przy formowaniu detali, które nie są związane z absolutnymi współrzędnymi poszczególnych pikseli na obrazie, lecz przywiązane do powierzchni przedstawianych obiektów. W StyleGAN i StyleGAN2 przywiązanie do pikseli podczas generacji prowadziło do problemów z dynamiczną wizualizacją; na przykład podczas ruchu obrazu obserwowano niespójność drobnych detali, takich jak zmarszczki i włoski, które poruszały się jako osobne od reszty twarzy. W StyleGAN3 te problemy zostały rozwiązane, a technologia stała się całkowicie odpowiednia do tworzenia wideo.
Dodatkowo warto wspomnieć o zapowiedzi stworzenia przez firmy NVIDIA i Microsoft największego modelu językowego MT-NLG opartego na głębokiej sieci neuronowej o architekturze „transformer”. Model obejmuje 530 miliardów parametrów, a do jego szkolenia wykorzystano klaster liczący 4480 GPU (560 serwerów DGX A100 z 8 GPU A100 80GB każdy). Jako obszary zastosowań modelu wymienia się rozwiązywanie zadań związanych z przetwarzaniem języka naturalnego, takich jak przewidywanie zakończenia niedokończonego zdania, udzielanie odpowiedzi na pytania, rozumienie tekstu, formułowanie wniosków w języku naturalnym oraz rozwiązywanie dwuznaczności znaczenia słów.

Źródło: opennet.ru
