Hetman na beznadziejnej pozycji
fot. Long Zheng / CC BY-SA 2.0

15 minut czytania

/ Media

Hetman na beznadziejnej pozycji

Paweł Kozioł

Najnowsze programy szachowe uczą się grać, rozgrywając ze sobą miliony partii. Żaden człowiek im nie mówi, że hetman jest więcej wart niż pionek. W sumie nikt nie wie, czego właściwie się uczą

Jeszcze 4 minuty czytania

Jak ja mam bez holajzy lochbajtel kryptować? Żeby trychter był na szoner robiony, to tak. Ale on jest krajcowany i we flanszy culajtungu nie ma, to na sam abszperwentyl nie zrobię.
Julian Tuwim, „Ślusarz”

Mam hobby, które coraz trudniej uprawiać. Gdzieś w latach 2018–2021 nastąpiła zmiana, za sprawą której nie sposób jednoosobowo napisać grającego w szachy programu komputerowego, który byłby w stanie zmierzyć się ze światową czołówką tego osobliwego e-sportu. Przez jakiś czas próbowałem, dlatego mogę teraz opisać, co się zmieniło. Mam nadzieję, że dla postronnego czytelnika nie zabrzmi to jak rozważania ślusarza z humoreski Juliana Tuwima.

Niedawno wydany „Ostatni bastion umysłu” Garriego Kasparowa opisuje punkt wyjścia tej historii. W 1997 roku mistrz świata został pokonany przez maszynę, która prawdopodobnie nie była od niego lepsza, ale jej gra nie zależała od ludzkich lęków ani wątpliwości. Dziewięć lat później Władimir Kramnik przegrał podobny mecz z programem Fritz, do czego wydatnie przyczyniła się pechowa druga partia, w której arcymistrz w dużo lepszej pozycji podstawił mata w jednym posunięciu. Mecz był dowodem postępu technicznego. O ile Deep Blue, który pokonał Kasparowa, istniał tylko w jednym fizycznym egzemplarzu wielkości szafy, dziwnie szybko po meczu rozmontowanym, o tyle Fritz to komercyjny program, który można uruchomić na domowym komputerze. Zwycięstwo Fritza w kilkugodzinnych partiach, dokładnie takich, jakie gra się na turniejach, stanowiło niebagatelne osiągnięcie; pokazało, że zmyślny algorytm może osiągnąć to samo co kosztowna inżynieria stojąca za Deep Blue. Dzisiaj programów lepszych niż Deep Blue jest co najmniej setka, szaf grających w szachy już się nie buduje, a twórcy programu Komodo od paru lat starają się sprawdzić, przeciw jak dobremu zawodnikowi ich program mógłby wygrać bez skoczka.

Przełom nastąpił także w treningu światowej czołówki (tej ludzkiej), a następnie objął niemal wszystkich, którzy grają w turniejach szachowych. Dzięki komputerom można nie tylko rozegrać dowolną liczbę gier ze znacznie silniejszym i nieskończenie cierpliwym przeciwnikiem czy błyskawicznie zauważyć błędy we własnych partiach (co w takim samym stopniu pomaga, jak rozleniwia), lecz także obejrzeć, jak grają przeciwnicy. Nie trzeba przy tym zdobywać papierowych biuletynów turniejowych, a zapisy partii dostępne są nie tylko na poziomie najlepszych, lecz także, powiedzmy, ligi mazowieckiej. Kasparow pisze, że szczęśliwie był dość młody, aby wskoczyć na grzbiet tej fali postępu (tak, jego książka napisana jest kwiecistym stylem). Podobne przygotowanie jest bardzo pomocne nawet na poziomie lokalnych turniejów. Na tyle, że zaczęło to komuś przeszkadzać i w ostatnich latach kilka baz z zapisami partii zniknęło z internetu, bo rzekomo naruszały RODO.

Garri Kasparow w 2017 roku, fot. re:publica, Jan Zappner / CC BY-SA 2.0Garri Kasparow w 2017 roku, fot. re:publica, Jan Zappner / CC BY-SA 2.0

Książka Kasparowa to częściowo autobiografia, skupiona na historii szachów i komputerów, a częściowo rozważania o przyszłości przypominające „Sapiens” albo „21 lekcji na XXI wiek” Yuvala Harariego. Część biograficzna jest bardziej przekonująca, część filozoficzna – potrzebna raczej autorowi, próbującemu zrozumieć zmianę technologiczną i budującemu swoją pozycję wykładowcy i konsultanta. Kasparow jest obecnie obywatelem Chorwacji, a działa na skalę międzynarodową. Rosję opuścił z obawy przed prześladowaniami politycznymi, które w roku 2012 przyjęły malowniczą postać oskarżenia o pogryzienie policjanta interweniującego podczas manifestacji. Do tej pory przestrzega przed zagrożeniami, jakie niesie ze sobą reżim Putina, angażował się również przeciw Donaldowi Trumpowi.

Garri Kasparow, „Ostatni bastion umysłu”. Przeł. Michał Romanek, Insignis, 220 stron, w księgarniach od marca 2021Garri Kasparow, „Ostatni bastion umysłu”. Przeł. Michał Romanek, Insignis, 220 stron, w księgarniach od marca 2021

„Ostatni bastion umysłu” przeznaczony jest dla szerokiego grona czytelników. Świadczy o tym intensywna kampania reklamowa oraz decyzja, by nie zamieszczać w książce zapisów komentowanych w niej partii szachowych. Gdybym sam postanowił naśladować Harariego, musiałbym się przyznać, że czytając, wspomagałem się laptopem wyświetlającym rozgrywki z 1997 roku. A potem wysnułbym z tego teorię, że rozwój internetu skłania do tworzenia tekstów, które nie są samowystarczalne. Ten zresztą będzie taki sam – będę potrzebował coraz więcej linków.

*

Następny link będzie stanowił tzw. prywatę. Mój program szachowy Rodent w najlepszym momencie był trzydziesty na świecie, niedawno wypadł poza pierwszą pięćdziesiątkę. Za chwilę wyprzedzi go dosłownie każdy, kto zaimplementuje obsługę sieci neuronowych. Odnotuje to utrzymywana przez ochotników lista rankingowa CCRL, w ramach której programy rozgrywają ze sobą tysiące partii; odnotuje to bliźniacza i konkurencyjna lista CEGT, a potem liczba chętnych do testowania się zmniejszy. Dla poszukiwaczy najsilniejszego programu szachowego na świecie Rodent od dawna nie jest interesujący.

Ma on za to inną zaletę – najbardziej obecnie rozbudowane narzędzia do regulacji stylu gry. Pisząc po ludzku: przy odrobinie wysiłku można go skonfigurować tak, by grał jak dowolny z dawniejszych mistrzów. Dawno temu, jeszcze w latach 90., podobne możliwości obiecywały kolejne wersje programu Chessmaster, jednak zdaje się, że jego „osobowości” różniły się od siebie za mało. Rodent, śmiem twierdzić, robi to lepiej, niemalże na poziomie karykatury. Jako sztuczny Kasparow oddaje pionki za aktywność, jako sztuczny Tal poświęca w jednej partii kilka figur, jako symulowany Petrosjan buduje skomplikowane zasieki obronne...

Szczerze mówiąc, gdybym tylko zdecydował się zrezygnować z tego naśladownictwa, to mam na laptopie nieupublicznioną wersję wykorzystującą cud cudzej inżynierii, który nazywa się NNUE. Czytane wspak oznacza to „efficiently updated neural network”, czyli sieć neuronową, która w szybki i efektywny sposób aktualizuje wynik swoich obliczeń. NNUE łamie co najmniej dwa branżowe tabu. Po pierwsze, zaprzecza powtarzanemu przez wiele lat zdaniu, że ta technologia jest zbyt powolna do gry w szachy. Po drugie, stawia pod znakiem zapytania wysiłek setek pojedynczych programistów, przez lata ulepszających sposoby, na jakie ich programy oceniają pozycję. Można w tym widzieć zwycięstwo wolnego oprogramowania, a w obrębie tego nurtu jako dowód przewagi – by użyć terminologii z klasycznego eseju Erica Raymonda – „bazaru” (modelu, w którym kod programu modyfikują wszyscy chętni) nad „katedrą” (gdzie program rozwija kilku specjalistów, którzy co prawda dzielą się swoim kodem, ale nie są zainteresowani pomocą osób z zewnątrz).

Finał ostatniej partii meczu Deep Blue (białe) vs. Garri Kasparow (czarne) w 1997 rokuFinał ostatniej partii meczu Deep Blue (białe) vs. Garri Kasparow (czarne) w 1997 roku

Historia NNUE to modelowy przykład „bazarowej” współpracy. Najpierw zespół japońskich programistów pracujących nad podobną do szachów grą w shogi „pożyczył sobie” z programu Stockfish funkcję przeszukującą drzewo gry, czyli taki, idąc za Tuwimem, trychter na schoner robiony, któremu w ludzkiej grze w szachy odpowiada myślenie „ja pójdę tu, on tam, a wtedy ja...”. Potem, głównie dzięki pracy Yu Nasu, zespół stworzył nowatorską funkcję oceniającą (to z kolei taki trychter oceniający, który z graczy ma lepszą pozycję). W końcu Japończycy odezwali się do programistów Stockfisha, proponując zastosowanie tej samej technologii w szachach.

*

Cofnijmy się jeszcze trochę w czasie. Najważniejszą swoją partię Rodent przegrał w sierpniu 2018 roku. Startował wtedy w najniższej grupie internetowego turnieju TCEC, na który został zaproszony kolejny rok z rzędu. Dzięki temu miał okazję skonfrontować się z programem Leela w momencie, gdy jeszcze nie było wiadomo, co ten sobą reprezentuje. Leela naśladowała z kolei rozwiązania zastosowane w programie AlphaZero, stworzonym przez przejętą przez Google’a spółkę Deep Mind (widzicie podobieństwo do nazwy Deep Blue?).

Pierwszym osiągnięciem zespołu Deep Mind było stworzenie programu grającego w azjatycką grę go – na poziomie wystarczającym do pobicia jednego z najlepszych graczy na świecie w stosunku 4 do 1. Nakręcono o tym film, do którego muszę odesłać po szczegóły, bo technologia, która pozwoliła na to osiągnięcie, była niesamowicie skomplikowana, i nie był tam w użyciu żaden trychter ani holajza, z których zdarzyło mi się korzystać. Hasło do wpisania w przeglądarkę brzmi: „Monte Carlo Tree Search”.

Następnie ten sam zespół zrobił rzecz z naukowego punktu widzenia najlepszą: zaczął upraszczać swój algorytm. O ile „pierwsze” AlphaGo uczyło się jeszcze na ludzkich rozgrywkach, o tyle późniejsze AlphaZero zaczynało jedynie od znajomości zasad gry. Sztukę tę udało się powtórzyć na grach takich jak go, szachy, shogi, a nawet StarCraft – klasycznej strategii czasu rzeczywistego. Aby porównać strategiczne umiejętności programu z ludzkimi, ograniczono mu pole widzenia i prędkość wydawania komend – bo przecież człowiek nie klika myszką z nieskończoną prędkością. Podobno AlphaStar zachowywał się w sposób, który stanowił zaskoczenie nawet dla doświadczonych, profesjonalnych graczy, demonstrując strategie, o których istnieniu ludzie jak dotąd nie mieli pojęcia.

W szachach było podobnie. Wśród gier AlphaZero znalazła się i taka, w której program poświęcił figurę za długoterminowy atak, a potem, jak gdyby nigdy nic, ustawił swojego hetmana na pozornie beznadziejnej pozycji w rogu szachownicy. Ani jedno, ani drugie z tych rozwiązań nie jawi się jako niemożliwe – ale połączenie, w takiej właśnie kolejności, ryzykownego ataku i cierpliwej manewrowej gry w stylu Arona Nimzowitscha jest czymś niesamowitym. Po ludzku powiedzielibyśmy: twórczym.

Spółka Deep Mind miała wybitnych fachowców, doświadczenie, pieniądze i sprzęt. W materiałach promocyjnych chwaliła się, że „nauka” ich programu szachowego trwała cztery godziny, lecz w przeliczeniu na moc obliczeniową mojego laptopa był to odpowiednik 200 lat. I choć przy okazji tych sukcesów podjęto kilka nie najszczęśliwszych decyzji promocyjnych (np. mecz ze Stockfishem, w tamtych czasach jeszcze pozbawionym sieci neuronowej, przeprowadzono w warunkach dających z góry przewagę AlphaZero), ale swoją tezę udowodniła: nowa technologia z powodzeniem radziła sobie ze standardowymi technikami.

Zamiast gotowego kodu Deep Mind udostępniło artykuł opisujący cały algorytm. I dopiero tu wkroczył zespół tworzący Leelę. Miał on do dyspozycji ten opis, dużo czasu oraz tłum ochotników udostępniających moce obliczeniowe swoich komputerów. Celem projektu nie było stworzenie czegoś nowego, lecz weryfikacja wcześniejszego eksperymentu. I to się udało. Co więcej – cały proces przebiegał na oczach użytkowników. Pierwsze wersje programu były boleśnie łatwe do ogrania, wersja końcowa okazała się niepokonana.

Leela uczyła się grać w szachy, rozgrywając sama ze sobą miliony partii. Żaden człowiek jej nie powiedział, że hetman jest więcej wart niż pionek, że skoczek w centrum szachownicy stoi lepiej niż na jej krawędzi, że wieża lubi zajmować linie, gdzie nie przeszkadzają jej pionki tego samego koloru. W sumie nikt nie wie, czego Leela się nauczyła. Sieci neuronowe zachowują się jak czarna skrzynka: zwracają jakiś wynik, ale nie pozwalają ustalić, z czego on wynika. W przypadku gry nie ma to większego znaczenia. W przypadku diagnozy medycznej albo uzasadnienia decyzji autonomicznego samochodu (co powinno być wykonalne niedługo) problem jest zasadniczy, bo dotyczy odpowiedzialności: karnej, odszkodowawczej, moralnej, jakiejkolwiek.

Samą rozgrywkę Rodenta z Leelą, i to skomentowaną, można obejrzeć na YouTube. Uważam, że w konfrontacji z nową technologią, której siła stanowiła wtedy wielką niewiadomą, mój program spisał się nieźle. W niewygodnej pozycji oddał piona, licząc na to, że aktywność jego figur skompensuje niewielki deficyt materialny. A potem Leela zaczęła robić cuda. Pozycja jej skoczków przez długi czas wyglądała dziwnie, plątały się one z tyłu, pozornie bezużyteczne. Po kilkudziesięciu ruchach okazało się jednak, że pozycję białych można powoli poprawiać, a czarne nie mają jak się temu przeciwstawić. Moje prywatne spekulacje przegrały w ten sposób z dobrze zdefiniowanymi metodami statystycznymi. Eksperyment się powiódł i cieszę się, że dane mi było w nim uczestniczyć.

*

Technologicznie Leela wzorowała się na AlphaZero, socjologicznie natomiast – na zespole tworzącym program Stockfish. O ile bowiem open source ma w programowaniu szachów długą i piękną tradycję, o tyle Stockfish wprowadził nową jakość – efekt skali. I nie chodzi już nawet o „bazar” z eseju Raymonda.

Po pierwsze, współautorów Stockfisha jest niemal dwustu. Po drugie, podobnie jak w projekcie SETI@home, który miał na celu wyszukiwanie sygnałów radiowych wysyłanych przez istoty pozaziemskie, ciężar testowania kolejnych modyfikacji programu został przerzucony na komputery ochotników. Brzmi skromnie? Nic z tych rzeczy! Możliwość przetestowania w dziesiątkach tysięcy partii, czy jakiś parametr powinien przyjąć wartość 12 czy może 13, z punktu widzenia programisty jest supermocą.


Efekt wygląda tak, jakby autorzy Stockfisha dysponowali nie tylko sprawnie działającym bazarem, ale przy okazji stworzyli własny bank i walutę. Jakby byli zupełnie samowystarczalni. I to w takiej sytuacji pojawił się ktoś z zewnątrz, kto pokazał, że wszystko można zrobić zupełnie inaczej.

*

Programowanie szachów czy innych podobnych gier znajduje się dziś w ciekawym momencie. Po wielu latach, gdy posługiwano się dobrze zdefiniowanym zbiorem algorytmów, ta dziedzina znowu stała się przestrzenią konfrontacji idei. Nie nastąpiło to jednak bez kosztów. Stosowanie nowych, wciąż rozwijających się technologii wymaga dostępu do coraz większych mocy obliczeniowych. Zasoby Google Deep Mind to nie jest coś, czym może dysponować byle firma czy byle uczelnia, o indywidualnych programistach nie mówiąc. Pocieszający jest natomiast fakt, że te wymagania zdają się maleć. Pojedynczy użytkownik nie byłby w stanie „wyhodować” programu w rodzaju AlphaZero, w ciągu paru tygodni miałby natomiast szansę wytrenować całkiem przyzwoitą sieć NNUE. Fakt ten wygląda jednak na wyjątek od trendu. Dostęp do danych i do możliwości ich przetwarzania nie jest równy i tylko częściowo mogą temu zaradzić oparte na współpracy systemy rozproszone. Jedyne, co by mogło odwrócić tę tendencję, to jakiś kolejny przełom.

Dlatego ciekaw jestem, czy technologiczne zamieszanie ostatnich kilku lat okrężną drogą doprowadzi znów do sytuacji, w której pisanie dobrego programu szachowego będzie osiągalne dla jednostki pracującej na średniej jakości laptopie, czy też ta akurat perspektywa nieodwołalnie się oddala. Co oznacza jedna lub druga możliwość i czy sytuacja na jednej wąskiej, wyspecjalizowanej działce ludzkiej aktywności uprawnia do snucia ogólnych rozważań o świecie i kulturze – tego nie wiem. Spytajcie Kasparowa, spytajcie Harariego. Pierwszy zapewne po raz kolejny wyrazi swój niewzruszony optymizm na temat postępu i komputerów wspomagających ludzki umysł. Opowieść drugiego będzie bardziej pesymistyczna, a postęp w dziedzinie gier dokonujący się przez ograniczanie wpływu informacji pochodzącej od ludzi będzie dla niego ostrzeżeniem przed dyktaturą przyszłości.

Zanim ich spór się rozstrzygnie, idę zmienić trzy linijki kodu. Następnie uruchomię mecz między dwiema wersjami programu. Przez noc rozegrają półtora, może dwa tysiące partii. Jak dobrze pójdzie, to wystarczy, aby stwierdzić, która wersja jest lepsza.

Tekst dostępny na licencji Creative Commons BY-NC-ND 3.0 PL (Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych).