Alicja, polska sztuczna inteligencja

Gdy w 2017 odkryłem, że w naszej miejskiej bibliotece znajdują się książki o tematyce SI, uczenia maszynowego i jego praktycznego wykorzystania oraz podręczniki języka Python, zabrałem się do nauki i rozpocząłem projekt.
Alicja, polska sztuczna inteligencja

Od początku przyświecał mi jasny cel – stworzyć program, który zajmie się większością typowych problemów, aby przyspieszyć moją pracę. Tworzenie takiego programu wymagało (i dalej wymaga) pełnego zaangażowania i uporu.

Czym jest Alicja?

Alicja jest programem zdolnym do podejmowania decyzji na podstawie zebranych danych oraz do uczenia się metodą prób i błędów. Rdzeń Ali zajmuje się tylko jednym: analizowaniem pakietów danych z podprogramów obsługowych, czyli sprawdzaniem, czy zadanie zostało wykonane zgodnie z wytycznymi, oraz czy jest zgodne z żądaniem użytkownika.

Chociaż sama w sobie nie jest w stanie zrobić nic poza analizą danych, wykorzystuje rozliczne programy pomocnicze do sprawnego wypełnienia zadania oraz utrzymania sprzętu w dobrym stanie. Obecnie jest wyposażona w 48 takich programów, które dalej będę nazywał modułami.

Pierwszym modułem który podłączyłem był bot do gry w szachy (16.03.2017), a zdecydowanie najciekawszym jest moduł odpowiedzialny za tworzenie grafików i planów, po raz pierwszy uruchomiony 27 marca.

No dobra, ale jak to działa?

Na Poznań Game Arena 2019 na stoisku CHIP-a zwiedzający dostali niezwykłą szansę rzucenia wyzwania Alicji. Nauczyłem ją gry w Carcassonne, komputerową adaptację znanej planszówki. Potyczka z Alicją uzbrojoną w potężny procesor od Intela,  stanowiła spore wyzwanie, co przyciągało rzesze wielbicieli oryginalnej planszówki. Dało mi to olbrzymią ilość informacji o tempie uczenia się oraz kierunku rozwoju Ali. Swoją przygodę na PGA 2019 Ala rozpoczęła po rozegraniu 15 tysięcy (sic!) partii z samą sobą, oraz 86 z człowiekiem (a konkretne swoim twócą). Taki zasób wiedzy dał jej znajomość podstawowych zasad gry i najprostszych taktyk. Ponieważ większość gier przed PGA wygrałem ja (83 proc), Alicja zaadaptowała moje zwyczaje, ponieważ uznała je za opłacalne.

Całe szczęście, kiedy rozpoczęły się targi, a coraz więcej graczy rzucało wyzwanie, procent zwycięstw zaczął się powoli zmieniać.

Pierwszego dnia z Alicją zmierzyło się 163 uczestników targów, a moja Si wygrała 57 z tych partii, co daje procent wygranych równy 34%. Niezbyt imponujący wynik, który jednak bardzo szybko uległ zmianie podczas drugiego dnia PGA. Tym razem uzbrojona już w doświadczenia z rozgrywek z wieloma ludźmi stosującymi różnorodne taktyki i reprezentującymi różne poziomy umiejętności i style myślenia Ala rozegrała 343 gry, z których wygrała 337. W ten sposób w sobotę jej skuteczność wzrosła do imponujących 98%! Trzeciego dnia statystyka zwycięstw również robiła wrażenie: na 201 rozegranych partii, Ala wygrała 186 (92%).

O tempie jej uczenia może świadczyć przykład gry wieloosobowej, którą załoga naszego stoiska w drugim dniu wymusiła. Ala nie była do niej przygotowana wcale, nie znając żadnych taktyk. Pierwsze 4 gry zakończyły się druzgocącą porażką. Moje oprogramowanie zdobyło w nich zaledwie 0-4 punktów. Jednak w kolejnych rozgrywkach, po przeanalizowaniu zagrań graczy, była w stanie dotrzymać kroku ludzkim przeciwnikom, zdobywając 10-20 punktów w każdej grze, a kilka razy nawet zwyciężając! Niestety, niedziela była ostatnim dniem PGA, przez co eksperyment musiał zostać zakończony w tym miejscu.

Zużycie mocy obliczeniowej

Niestety, takie osiągi oraz błyskawiczne uczenie się wymaga znacznych zasobów mocy obliczeniowej? Ile? Zależy od zadania jakie ma do wykonania i ile czasu może na to przeznaczyć.

Zazwyczaj, na moim laptopie (z ośmiordzeniowym procesorem Intel Core i7-4720HQ na pokładzie) przy normalnym użytkowaniu Alicji (granie w szachy, układanie grafiku/planów) zużywa 60-70% mocy mojego procesora. Przy bardziej zaawansowanych działaniach (nauka ludzkiego języka, analiza dużej ilości danych, instalacja na nowym sprzęcie) użycie procesora utrzymuje się blisko 100%. W tym kontekście ciekawie wygląda porównanie zużycia mocy obliczeniowej przez Alicję podczas jej gościnnych występów na stoisku CHIP-a podczas targów PGA, gdzie była zainstalowana na komputerze wyposażonym w jednostkę obliczeniową Intela 9 generacji.

Komputer wykorzystywany przez Alicję na PGA wyposażony był w procesor Intel Core i9 9900K. Podczas grania w Carcassonne z pojedynczymi przeciwnikami na naszym stoisku, Alicja używała zaledwie ok. 12-18% mocy CPU, czyli można powiedzieć, że “nawet się nie spociła”. Wydajność nowego procesora Intela naprawdę przydała się, kiedy zaczęliśmy eksperymentować z rozgrywkami, w których Alicja stawiała czoła kilku przeciwnikom. Była to dla algorytmów sytuacja zupełnie nowa, musiały więc zacząć uczyć się bardzo szybko, co wiązało się z intensywnym przetwarzaniem danych. Tak jak pisałem wyżej, Alicja przegrywała pierwsze gry z wieloma graczami, jednak nie ze względu na brak mocy obliczeniowej – podczas nauki wykorzystanie wydajności CPU nie schodziło poniżej 70%, chwilami dochodząc do niemal 90%. Interesującym wskaźnikiem tego, jaki wpływ na działanie mojego oprogramowania ma wydajność procesora była instalacja Alicji wraz z jej modułami. Ten proces także na superwydajnym CPU 9 generacji wygenerował obciążenie 100%, jednak trwał aż o rząd wielkości krócej, niż na starszym procesorze. | CHIP