Rozumiem, że AlphaZero musi używać innego sprzętu niż zwykły sztokfisz. Spodziewałbym się, że sprzęt ma duży wpływ na wytrzymałość silnika. Dlatego zastanawiam się, czy podjęto jakieś próby zapewnienia porównywalnego sprzętu do obu. Co też znaczyłoby tutaj „porównywalne”?
W szczególności czytam, że ludzie narzekają na:
- Sztokfisz otrzymuje tylko 1 GB pamięci podręcznej, oraz
- limit 1 min / ruch (w jaki sposób miałaby to niekorzystna cecha Sztokfisz?)
Odpowiedzi:
To jest Google, o którym mówisz! Więc odpowiedź brzmi oczywiście „nie”.
Z oryginalnego sprzętu papierowego używanego do inicjalizacji i szkolenia -
i sprzęt używany w grach -
AlphaZero użył więc specjalnego sprzętu opracowanego przez Google. Wykorzystano wyspecjalizowane jednostki procesorów Tensor (TPU), a nie ogólne jednostki centralne (CPU), które są dostępne na rynku.
W ten sposób Wikipedia opisuje TPU drugiej generacji, z którego korzystali -
Użyli 4 TPU do gier, więc moc obliczeniowa wynosi 180 TFLOPS. Uwaga TFLOPS = 1000 miliardów operacji zmiennoprzecinkowych na sekundę.
Dla porównania najnowszym najmocniejszym układem Intela jest procesor Core i9 Extreme Edition, który taktuje 1 TFLOP. Górna część linii I7, którą można znaleźć w automacie do gier, zwykle wynosi około 100 GFLOP (tj. Jedna dziesiąta TFLOP).
Myślę, że można śmiało powiedzieć, że AlphaZero używał 800-kilogramowego goryla o konfiguracji sprzętowej w porównaniu do myszy Stockfishes.
źródło
Myślę, że najlepiej będzie, jeśli rozwiążę twój drugi punkt, przykładowym ruchem w grze 1 między AlphaZero i Sztokfiszem, który również zaspokoił moją ciekawość dzisiaj.
Wydajność Sztokfiszu zależy zarówno od limitu czasowego, jak i konfiguracji sprzętowej, więc pomyśl tylko, kiedy ktoś podwaja wątki procesora, wtedy Sztokfisz potrzebuje mniej czasu (niekoniecznie o połowę), aby znaleźć rozwiązanie, niż w przypadku pierwszej konfiguracji.
W pierwszym raporcie opublikowanym na Chess.com ktoś twierdził, że Sztokfisz nie gra optymalnie, ponieważ nie może odtworzyć tych samych wyników przy użyciu tego samego Sztokfisza na swoim komputerze. Powiedział, że na poniższej pozycji (gra 1 - ruch 11) Sztokfisz zagrał Kg1-h1 (przesunął swojego króla), co nie miało żadnego sensu. Z drugiej strony sztokfisz na swoim komputerze pokazał bardziej rozwijający się ruch jak Be3 (ruch ciemnego kwadratu biskupa), spójrzmy na pozycję:
Tak, był to ruch pasywny i wydaje się, że Sztokfisz powinien był grać bardziej rozwijający się ruch. Ale się mylił. Czemu? Ponieważ prowadził Sztokfisz przez 15 sekund, a gdyby uruchomił go przez godzinę, otrzymałby Kg1-h1 jako najlepszy ruch w tej pozycji. Sztokfisz zmienia swoją decyzję, analizując głębiej wszystkie możliwe ruchy. Oto, co pierwotnie powiedziałem w mojej odpowiedzi :
Uruchomiłem najnowszego sztokfisza na pozycji (w ruchu 11):
Ale po 5 minutach na moim sprzęcie, który działa na 1400k węzłów / s, zdecyduje się na Kh1 jako optymalny ruch.
W artykule jest powiedziane, że sztokfisz oblicza 70 000 000 pozycji na sekundę i jest uruchamiany przez 1 minutę na ruch, czyli około 50 razy więcej niż mój sprzęt, więc pozwolę mojej kopać przez 50 minut ... Kg1-h1 wciąż jest wybór dla Sztokfisz.
Kluczem jest limit czasu
W powyższym przypadku prawdopodobnie nie miało większego znaczenia, jeśli Sztokfisz biegał dwa razy, ponieważ decyzja byłaby taka sama, ale przy następnym ruchu zdecydowanie :
W tej pozycji Sztokfisz postanowił przesunąć pionka po lewej stronie ( a4-a5 ). Załóżmy, że mam komputer z silnikiem Sztokfisz z prędkością 1400 tys. Węzłów na sekundę, czyli około 50 razy mniej niż Sztokfisz w prawdziwej grze ( w gazecie napisano 70 000kn / s). Mogę więc symulować grę, jeśli uruchamiam ją przez 50 minut przy każdym ruchu. W porządku.
Przeprowadziłem analizę Sztokfisz na powyższej pozycji i uzyskałem następujące wyniki:
To dobrze, ale utrzymywałem go przez pełne 50 minut, aby dotrzeć do obliczeń Sztokfisz w grze, która była dozwolona przez 1 minutę:
Smutna prawda jest taka, że uważam, że Sztokfisz przegrał wszystkie swoje gry z powodu limitu czasu. Sztokfisz staje się coraz bardziej dogłębnie wyszukiwany i oceniany w miarę upływu czasu, aw grze nie wolno było używać książki otwierającej, co powoduje, że rozważa wiele ruchów na płytkich głębokościach. Zauważ, że w rzeczywistej grze rozegrano a4-a5, co pokazuje, że (zakładając, że może ona ocenić 70 milionów pozycji na sekundę) Sztokfisz w grze nie spędził więcej niż 21,6 sekundy w ruchu. W przeciwnym razie zmieniłby decyzję na te trzy inne ruchy w grze. Powód tego jest wciąż dla mnie niejasny, ponieważ mój Sztokfisz również zużywał mniej pamięci (około ~ 130 MB pamięci RAM w porównaniu z 1 GB wspomnianym w oryginalnym artykule , zakładając, że wszystko to trafia do tabel skrótów).
Wniosek
Sprzęt, na którym działał Sztokfisz, jak wskazałem, był co najwyżej 18 razy szybszy niż mój (aktualizacja: na jednym rdzeniu) w oparciu o analizowany przeze mnie ruch. Nie jestem pewien, czy AlphaZero naprawdę mógłby wykorzystać taki sprzęt do szkolenia swoich sieci w ciągu 4 godzin, mogę tylko założyć, że jest zbyt niski dla gry takiej jak szachy. Poza tym AlphaZero spędził te godziny na nauce, która obejmuje także budowanie solidnych otworów (i jak wskazuje dokument, preferencje w stosunku do niektórych otworów). Z drugiej strony Sztokfisz był upośledzony w otworach i nie oceniał 70 milionów pozycji na sekundę przez 60 sekund przy każdym ruchu.
Na koniec, wszystko, co powiedziałem, opierało się na moich założeniach. Oczywiście wyniki AlphaZero i gier były dla mnie bardzo interesujące. Chciałbym jednak zobaczyć grę, w której gra Stockfish była taka sama, jak na moim komputerze. Oznacza to, że dozwolony jest więcej czasu i książka otwierająca. Łatwo jest również uzyskać wyniki analizy Sztokfisz przy każdym ruchu i chciałbym, aby ją wypuścili, aby pokazać, jak dobrze się spisała.
źródło
Jeden z oryginalnych autorów Sztokfisza odpowiada na konkretne skargi, o których tu wspomniałeś:
Źródło: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
źródło
Gdyby celem końcowym Google'a było zbudowanie lepszego silnika szachowego, wymagane byłoby prowadzenie na porównywalnym sprzęcie, ale tak naprawdę nie chodziło o szachy. Szachy to tylko wygodny sposób na zademonstrowanie zdolności AI do uczenia się skomplikowanych zadań od zera. Jeśli może on działać dobrze w stosunku do jakiejś niejasnej konfiguracji Sztokfisz, zaznacza to pole.
Przewiduję, że zespół Google nie włoży dużo więcej wysiłku w szachy; zamiast tego przejdą do innych problemów, których AI nigdy nie była w stanie rozwiązać.
źródło
Odwiedź Forum Talkchess, aby dowiedzieć się więcej, tam znajdziesz około 3000 programistów. To wszystko było oszustwem. Alpha grała na 30-krotnie większym sprzęcie niż SF, 4TPU vs 64 rdzenie. 4TPU to około 1000 rdzeni lub nawet więcej. Alpha przeprowadziła symulację książki otwierającej, trenując niezliczoną liczbę najlepszych gier GM. SF miał bardzo mało skrótów. TC został ustalony na 1 minutę na ruch, co znów jest szkodliwe dla SF, która ma zaawansowane zarządzanie czasem. TPU nie mają nieefektywności SMP z większą liczbą rdzeni, więc przewaga sprzętowa była jeszcze większa. Itd, itp., Więc w zasadzie był to po prostu wielki wyczyn reklamowy ze strony Google. Obecnie Alpha ma około 2800 jednostek na jednym rdzeniu, a więc 400 elos poniżej SF i nie będzie się znacznie rozwijać w przyszłości, ponieważ od teraz będzie wymagała zaawansowanej oceny, której nie będzie w stanie odkryć. Jeśli chodzi o wydanie 4-godzinne, LOL, to było 48 godzin temu, więc teraz Alpha ma 5000 elo? Daj spokój.
źródło
Sztokfisz jest ograniczony do procesorów, więc nigdy nie będzie mógł skalować się do poziomu, który są w stanie zapewnić GPU.
Obliczenia Gor Matrix GPU skalują się za pomocą n, podczas gdy procesory skalują się za pomocą n 3 , te rdzenie tensorowe są dalej optymalizowane, więc prawdopodobnie będzie jeszcze lepsza wydajność podczas skalowania.
źródło
Pierwszy akapit bardziej szczegółowo, drugi krótki i prosta odpowiedź trzeci akapit moje opinie na temat sytuacji
Z AlphaZero sprzęt ma 0 wpływ na siłę jego gry. Może to potrwać dłużej, ale nie dlatego, że myśli. Jest to sieć neuronowa, co oznacza, że podajesz informacje w wektorze (tabela z jedną kolumną), robi prostą matematykę przez gigantyczny tensor (3 lub więcej wymiarów tabeli), a następnie wyrzuca odpowiedź. Sztokfisz potrzebuje czasu, aby być dobrym, ponieważ sprawdza możliwe pozycje, aby sprawdzić, czy ruch jest korzystny, więc im dłużej patrzy na problem, tym więcej pozycji / ruchów może sprawdzić.
Tak naprawdę nie ma porównywalnej konfiguracji sprzętowej. Ponieważ mają różne potrzeby, Sztokfisz musi przeanalizować więcej pozycji, a AlphaZero po prostu musi wykonać ruch. Ludzie są zdenerwowani, ponieważ komputer AlphaZero jest technicznie znacznie potężniejszy i myślą, że powinni być równi pod tym względem. Ale AlphaZero nie potrzebuje tego superkomputera po treningu.
Moim zdaniem nie ma znaczenia, co dadzą którejkolwiek ze stron, chyba że Sztokfisz ma nieuzasadniony czas, prawdopodobnie zwiąże jeszcze kilka gier, ale generalnie podobny efekt się pojawi. Dlatego myślę, że Sztokfisz początkowo ocenia sztukami i ich wartościami, podczas gdy Alpha grała (prawdopodobnie) miliony gier, aby zrozumieć, co jest ważne strategicznie. Właśnie dlatego Alpha poświęca znacznie więcej niż Sztokfisz, ale zyskuje ogromne zalety pozycjonowania.
źródło