Ubisoft La Forge to otwarta inicjatywa badawczo-rozwojowa, która daje pole do współpracy uczonych oraz ekspertów Ubisoft, mającej pomóc w połączeniu badań akademickich z innowacjami wprowadzanymi w branży gier wideo. Eksperymentując z najnowocześniejszymi technologiami i rozwiązaniami dostępnymi w procesie produkcji gier, osoby te stają na czele świata nauki i w ramach różnych zespołów badają zastosowanie najnowszych technologii, takich jak sztuczna inteligencja, co pozwoli tworzyć bardziej realistyczne i rozrywkowe gry, a także zwiększy wydajność procesu ich produkcji.
Jednym z potencjalnych zastosowań tych technologii jest uczenie się ze wzmocnieniem głębokim: uczenie maszynowe, które wykorzystuje SI do wynajdywania najskuteczniejszych rozwiązań dla różnorakich problemów. Aby odkryć kilka tajemnic tego procesu i dowiedzieć się, w jaki sposób ma on pomóc w tworzeniu bardziej realistycznych postaci niezależnych i ułatwieniu im poruszania się w złożonych światach gier przy jednoczesnym zastosowaniu bardziej ludzkich reakcji, rozmawiamy z Joshuą Romoffem, pochodzącym z Montrealu analitykiem danych, zaangażowanym w inicjatywę Ubisoft La Forge, który zamiłowanie do gier wideo przekuł na dyplom studiów badawczych. Obecnie opracowuje szereg aplikacji do uczenia maszynowego w grach, a ostatnio wystąpił na konferencji poświęconej Sztucznej Inteligencji oraz Interaktywnej Rozrywce Cyfrowej (AIIDE) 2021, gdzie zaprezentował przełomowe rozwiązania, nad którymi pracuje wspólnie ze swoim zespołem, a które mają pomóc postaciom niezależnym w bardziej płynnym poruszaniu się w świecie gry i odnajdywaniu drogi właśnie dzięki uczeniu maszynowemu.
Czym jest uczenie się ze wzmocnieniem głębokim i jak właściwie działa?
Joshua Romoff: Do wyjaśnienia tego będziemy potrzebowali kilku terminów: “agenta” oraz “czynności”. To, co w obszarze Sztucznej Inteligencji nazywamy agentem, to po prostu główna postać, która wchodzi w interakcję z otaczającym ją światem, w naszych badań w jej rolę wcielają się boty. Natomiast mianem czynności określamy wszelkie interakcje, jakie podejmuje ta postać. Lubię postrzegać gracza jako swoiste rozszerzenia kontrolera, bowiem każda komenda, jaką gracz wydaje za pośrednictwem kontrolera, w grze przekłada się na jakąś czynność.
Skupmy naszą uwagę na elemencie uczenia się ze wzmocnieniem: istotą tego pomysłu jest próba wzmocnienia jakiegoś zachowania, podobnie jak w przypadku klasycznego eksperymentu z psem Pawłowa, kiedy to badacz dzwonił dzwonkiem w porze karmienia psa, dzięki czemu pies nauczył się wiązać dźwięk dzwonka z nagrodą. W ten sposób metodą kar i nagród możemy kogoś zachęcić lub zniechęcić do jakichś działań. To samo robimy z agentem SI, przyznając mu punkty za robienie czegoś, co nam się podoba i odbierając je za czynności, których sobie nie życzymy. Moja praca polega na projektowaniu odpowiednich testów i określaniu, kiedy przyznajemy lub odbieramy nagrody, a zadaniem sztucznej inteligencji, jest uzyskanie jak najwyższego wyniku poprzez realizowanie dostępnych czynności.
Natomiast sama głębia odnosi się do sposobu, w jaki agent postrzega otaczający go świat; czyli generalnie głęboką sieć neuralną. Ekran jest bardzo złożonym ekosystemem, w którym jednocześnie wyświetlane są setki tysięcy pikseli. Jak zatem przetworzyć ekran i wszystkie generowane na nim dane? Głęboka sieć neuralna przejmuje ekran, przetwarza go do znacznie mniejszego rozmiaru, analizuje dane, a następnie przenosi pozyskane informacje do fazy uczenia się ze wzmocnieniem, w której w oparciu o te informacje podejmowane są różne czynności. Nazywamy to systemem kompleksowym, ponieważ zawarte jest w nim wszystko, a dane zapętlają się między sobą, do końca i od początku. Robimy tak w ramach każdego schematu, przyznając punkty za każdą czynność oraz efekty, jakie wywołuje ona w ekosystemie, a liczne powtórzenia pozwalają wyszkolić agenta w podejmowaniu czynności, na których nam zależy.
Czy jakieś gry w szczególności zainspirowały cię podczas prac nad uczeniem się ze wzmocnieniem głębokim?
JR: Niewątpliwie. Zawsze miałem do czynienia z grami o otwartym świecie, który gracz przemierza, wchodząc w interakcje z postaciami niezależnymi, na przykład w Far Cry. Tym, co dla mnie zawsze wyróżniało takie gry jest sposób, w jaki gracz wchodzi w interakcję ze sztuczną inteligencją postaci niezależnych, co moim zdaniem jest kluczowym czynnikiem takiego doświadczenia. Wchodzimy w interakcję ze światem, a postaci niezależne stanowią bardzo istotną część tej interakcji. Zawsze lubiłem bawić się takimi postaciami i wynajdywanie luk w logice SI traktowałem jako pewne wyzwanie, chciałem wiedzieć jak mogę nimi manipulować. Walcząc z jakimś przeciwnikiem wdrapywałem się na przykład na jakiś wyżej położony punkt i stamtąd patrzyłem, jak przeciwnik bezradnie kotłuje się pode mną, bo sam nie potrafił się wspinać, albo sprawdzałem jego reakcję na różne inne wydarzenia. To zawsze napędzało mnie do pracy, ta wizja tego jak możemy usprawnić i wytrenować SI, żeby zachowywała się bardziej po ludzku.
Jak wygląda codzienność naukowca badawczo-rozwojowego?
JR: Na co dzień przeprowadzam eksperymenty, odwalam brudną robotę i szkolę naszego tak zwanego “agenta SI” w wykonywaniu określonych zadań w grze. W trakcie eksperymentu trzeba poczynić mnóstwo obserwacji; obserwować wątki i wykresy, a następnie usprawniać różne elementy, żeby uzyskać pożądany efekt końcowy. Innym ważnym dla mnie zadaniem jest praca z magistrantami i doktorantami, którzy przygotowują się do swoich egzaminów dyplomowych. Wszyscy nasi studenci otrzymują wynagrodzenie, ale ja dodatkowo pracuję z nimi i ich wykładowcami nad opracowaniem projektów dla nich, a zwykle jest tak, że takich studenckich projektów mamy prowadzonych kilka jednocześnie, co pomaga studentom, ale też stanowi niebagatelne wsparcie dla naszej własnej pracy. W końcu sam wszystkiego nie zakoduję, prawda? Gdy już mamy działający prototyp, umieszczamy technologię w środowisku sandboksowym, które na ogół stanowi uproszczoną wersję silnika danej gry, i patrzymy na rezultaty naszej pracy. Jeśli projekt wypali, jest szansa, że dzieło naszych studentów trafi do gry, nad którą pracujemy, a oni zyskają nieco doświadczenia związanego z produkcją gier, dlatego zawsze staramy się, aby projekty, nad którymi się pochylamy, stanowiły jakąś wartość dla zespołów tworzących grę i mogły zostać wykorzystane w procesie jej powstawania.
Na konferencji AIIDE opowiadałeś, jak przeprowadzasz testy w grach takich jak Hyper Scape, by tworzyć boty “podobne do graczy”. Możesz nam to przybliżyć?
JR: W trakcie prac nad Hyper Scape przeprowadziliśmy kilka testów – i choć żadne z nich nie odbywały się na serwerach live, gra okazała się bardzo ciekawym sandboksem z punktu widzenia pytań, na które szukaliśmy odpowiedzi. Tym, co jest bardzo fajne w przypadku Hyper Scape to fakt, że środowisko 3D w tej grze jest dość skomplikowane w nawigacji i składa się z szeregu pionowo ułożonych płaszczyzn. Gracze mają do swojej dyspozycji szereg przydatnych narzędzi, takich jak odskocznie, które podrzucają postać w górę, pozwalają oddawać podwójne skoki i pomagają w dostawaniu się na dachy budynków. Można te narzędzia ze sobą łączyć, dlatego dla twórcy gry lub testera tak interesujące jest poznawanie sposobów, jakimi gracze przemierzają przygotowaną mapę.
Tradycyjnie, gry wykorzystują coś, co nazywamy siatką nawigacyjną, czyli rodzaj mapy 2D, na której znajdują się wszystkie dostępne obszary świata gry, a także dane umożliwiające botom określenie, dokąd się udać i jak tam dotrzeć. Ale przeprowadzenie testów przy zastosowaniu tej metody było bardzo trudne, bo gdy ma się tyle szalonych rozwiązań, jak odskocznie, podwójne skoki, a do tego różne poziomy, jeden nad drugim, które nie zawsze połączone są rampami lub schodami, od liczby możliwych rozwiązań aż boli głowa. Zastosowanie uczenia się ze wzmocnieniem głębokim ma tu sens, ponieważ możemy wpuścić agenta w pętlę szkoleniową, a on sam nauczy się, jakie czynności podejmować, aby dotrzeć z punktu A do punktu B, bez korzystania z siatki nawigacyjnej. Naszym głównym celem było zatem wpojenie agentowi tych czynności, a następnie przetestowanie mapy celem upewnienia się, czy wszystkie jej obszary są dla niego dostępne.
Domyślamy się, że testy przeprowadzone w innych grach również przyniosły ci szereg ciekawych spostrzeżeń. Możesz nam o nich opowiedzieć?
JR: Jednym z takich przykładów jest bot szkolony na potrzeby gry For Honor. Chcieliśmy, aby agent częściej się bronił, więc przyznaliśmy mu za to dodatkową nagrodę. Skończyło się to tym, że agent postanowił w ogóle nie kończyć walki, tylko cały czas się bronił. To naprawdę zabawne, ponieważ jednym z głównych wyzwań w procesie szkolenia agentów jest to, by niezależnie od zastosowanych ustawień i czynności, które staramy się zainicjować, agent teoretycznie uczył się jak w możliwie najlepszy sposób osiągnąć określony cel. Jeśli przyznamy mu nagrodę za pozostawanie przy życiu lub obronę, będzie to robił, bo jest to dla niego opłacalne. Niekoniecznie musi nam zależeć na tym, aby bot zawsze lał wszystkich graczy, prawda? Nie byłoby w tym nic zabawnego, dlatego chcemy zainicjować inne zachowania, takie jak obrona, by wprowadzić większe zróżnicowanie w działaniach agenta.
Innym powodem, dla którego warto przyznać taką dodatkową nagrodę jest przyspieszenie procesu szkoleniowego, można bowiem bez trudu dodać tu nagrodę za obronę, a tam za atak – ale wcale nie jest oczywistym, jak te premie zadziałają w połączeniu ze sobą i takie próby mogą owocować bardzo zabawnymi zachowaniami. Inny przypadek mieliśmy przy Hyper Scape, w trakcie testów nawigacyjnych. Uczyliśmy agenta jak najszybszego pokonywania odległości pomiędzy dwoma punktami, ale nie dodaliśmy mu jeszcze zdolności sprintu, on zaś zorientował się, że skacząc i wykonują niewielkie ruchy kamerą może poruszać się nieco szybciej niż w przypadku marszu. Zabawnie było patrzeć, jak postać uczy się skakać niczym królik. Obydwa te przykłady przytoczyłem na konferencji AIIDE.
Czy takie rezultaty nadal są przydatne w procesie tworzenia gry?
JR: To zależy, jakie mają zastosowanie, Jeśli chodzi o testowanie gry, jak w przypadku powyższych eksperymentów, takie rezultaty są bardzo cenne, pozwala bowiem zaobserwować optymalne zachowania w zależności od przyznanych nagród. Można uznać to za proces przyswajania zachowania, które pomaga agentowi osiągnąć cel, co z kolei może nam wskazać zjawiska, o których nie wiedzieliśmy, i pozwolić na sprawdzenie w procesie debugowania, czy nasz kod działa zgodnie z oczekiwaniami.
Czy najnowsza generacja gier konsolowych oraz rozwiązania takie jak chmury czy usługi streamingowe otworzyły nowe możliwości, wcześniej niedostępne dla SI w grach?
JR: W stu procentach tak. Historycznie rzecz biorąc, badania nad uczeniem się ze wzmocnieniem głębokim rozpoczęto już w latach osiemdziesiątych i dziewięćdziesiątych, a badacze byli ograniczeni, dostępną wówczas mocą obliczeniową. Jeśli spróbowalibyśmy uruchomić model takiego uczenia się na konsoli starszej generacji, nie dałoby się tego zrobić lokalnie z przyczyn obliczeniowych – ucierpiałaby liczba klatek wyświetlanych na sekundę. Moc obliczeniowa, jaką odbiorcy dysponują teraz w swoich domach znacząco wzrosła, ulepszeniu uległy też podzespoły, i to wszystko w połączeniu ze sobą oraz z licznymi postępami prac badawczych na tym polu sprawiło, że oto znaleźliśmy się w punkcie, w którym możemy rozwiązać te problemy i mamy jeszcze takie narzędzia jak boty, które przemierzają bardzo złożone mapy 3D, korzystając z mnogości dostępnych na nich fantastycznych rozwiązań. Teraz taki model może działać bardzo wydajnie i zachowywać się w bardziej ludzki sposób – czego nie udałoby nam się tak po prostu zakodować, i wcale nie jest już fikcją posiadanie kilku takich agentów, którzy biegają w grze wykonując różne skomplikowane obliczenia. Nie jest to już pytanie o coś, co może zaistnieć za dziesięć lat; wyniki badań i sprzęt są dostępne i już od jakiegoś czasu budują to, o czym dziś rozmawiamy.
Jakie inne zastosowania mogą twoim zdaniem mieć takie technologie?
JR: Najbardziej naturalnym zastosowaniem są boty i dlatego na nich właśnie się koncentrujemy. Moja grupa jest aktualnie nazywana Ekipą Bystrych Botów, bo wkładamy w nie masę serca. Pracujemy nad botami służącymi do testowania gier, ale łatwo sobie wyobrazić, że bot wyszkolony do nawigacji w środowisku, może potencjalnie zostać wyskalowany i rzucony na graczy jako przeciwnik SI.
Oprócz botów wzmocnione uczenie się jest ogólną płaszczyzną z szeregiem zastosowań. Mogę sobie na przykład wyobrazić, że służy do zarządzania serwerami. Gdy hostujesz serwery dla jakiejś gry, sporym problemem jest niepotrzebne działanie zbyt wielu serwerów lub odwrotnie, gdy jest dużo graczy, a za mało podpiętych serwerów. Teoretycznie moglibyśmy wyszkolić agenta w optymalizowaniu decyzji o sekwencyjnym włączaniu lub wyłączaniu serwerów, tak aby uwzględniał on liczbę graczy w określonych porach dnia i w zależności pod potrzeb zwiększał lub zmniejszał liczbę podpiętych serwerów.
Jakie są twoje cele w związku z przyszłością tej technologii?
JR: Celem jest dalsza praca nad zwiększeniem poziomu realizmu w grach, nadawanie takim elementom jak postaci niezależne czy boty bardziej ludzkich cech i rozwiązywanie problemów, które dotychczas wydawały się nie do rozwiązania. Chcemy też przekazać tę technologię w ręce projektantów gier i tworzyć z jej pomocą rozwiązania zorientowane na graczy. Stałoby się w ten sposób kolejnym narzędziem w repertuarze deweloperów, dlatego stworzenie im możliwości dostosowywania parametrów tych botów i swobodnego z nich korzystania byłoby kolejnym wielkim krokiem, ponieważ wszystkie testy, o których wspominałem, jak na razie nie są prowadzone w środowisku live ani w obecności graczy. Myślę, że bardziej pilnym zadaniem jest przekazanie tego rozwiązania testerom gier i wykorzystywanie go do testowania różnych scenariuszy, od usterek związanych z wydajnością aż po mechanizmy rozgrywki i wiele innych.
Jakie skutki dla gier niesie zastosowanie SI oraz uczenia się ze wzmocnieniem głębokim?
JR: Póki wykorzystujemy tę technologię do testowania gier, gracze nie mają z nią fizycznego kontaktu i nie ma powodu, by ktokolwiek niepokoił się tymi wszystkimi negatywnymi mitami, jakie narosły wokół SI. Niektórzy mogą się martwić, że teraz mniej osób będzie zaangażowanych w testowanie gier, ale nie jest to prawdą, ponieważ testy, które przeprowadzamy z wykorzystaniem botów znacząco różnią się od testów prowadzonych przez ludzi. Wkład czynnika ludzkiego nie ulega zmniejszeniu i ludzie nadal będą testowali co ciekawsze elementy gry, takie jak zadania czy inne mechanizmy rozgrywki.
Jeśli natomiast chodzi o umieszczanie w grach botów SI, to myślę, że bardzo ważna jest dla nas przejrzystość tego, co robimy. Myślę, że niektórzy obawiają się, że zaczną spotykać w grach boty i nieustannie będą zadawali sobie pytanie, czy mają do czynienia z botem czy z człowiekiem? Może to być dość kontrowersyjne zjawisko, dlatego uważam, że powinniśmy być w tych kwestiach transparentni i nie możemy wprowadzać graczy w błąd. Uważam też, że należy stosować sztuczną inteligencję w grach, bo jest to idealne dla niej, zamknięte środowisko; to doskonałe miejsce na sprawdzanie różnych pomysłów i obserwowanie, co się wydarzy, ale wszelkie niepożądane efekty, jakby co pozostaną w grze i nie będą miały wpływu na życie poza nią. Dlatego ludzie nie powinni się obwiać, że mój defensywnie usposobiony bot z For Honor przejmie władzę nad światem lub coś w tym rodzaju; on istnieje tylko w tej grze i to jest najfajniejsze.
Możecie zapoznać się z pełnym wykładem Joshuy z konferencji AIIDE 2021, aby zobaczyć jak w praktyce wygląda jego praca i dowiedzieć się więcej o sztucznej inteligencji oraz uczeniu się ze wzmocnieniem głębokim. Aby być na bieżąco z najnowszymi informacjami oraz aktualnościami przekazywanymi przez zespoły Ubisoft, bądźcie z nami w centrum Ubisoft News.