Sprzęt używany w meczu AlphaZero vs Sztokfisz

22

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?)
użytkownik1583209
źródło
Najwyraźniej rozmiar skrótu , a nie pamięć podręczna.
Federico Poloni,
2
I silnie sugerują pytaniem to na forum technicznym (jak AI Stos Exchange , być może pod tytułem „Sprawiedliwość ewaluacji w AlphaZero vs. Sztokfisz meczów”), bo tu odpowiedzi nie są dobre.
Veedrac,

Odpowiedzi:

20

Dlatego zastanawiam się, czy podjęto jakieś próby zapewnienia porównywalnego sprzętu do obu.

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 -

Szkolenie trwało 700 000 kroków (mini-partie o wielkości 4096), zaczynając od losowo zainicjowanych parametrów, z wykorzystaniem 5000 TPU pierwszej generacji (15) do generowania gier samoobsługowych i 64 TPU drugiej generacji do szkolenia sieci neuronowych

i sprzęt używany w grach -

AlphaZero i poprzednia AlphaGo Zero korzystały z jednej maszyny z 4 TPU. Sztokfisz i Elmo grali na swoich najwyższych umiejętnościach, używając 64 wątków i wielkości skrótu 1 GB.

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 -

TPU drugiej generacji zostało ogłoszone w maju 2017 r. Google stwierdził, że projekt TPU pierwszej generacji miał ograniczoną przepustowość pamięci, a użycie 16 GB pamięci wysokiej przepustowości w projekcie drugiej generacji zwiększyło przepustowość do 600 GB / si wydajność do 45 TFLOPS. TPU są następnie układane w 4-chipowe 180 modułów TFLOPS

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.

Brian Towers
źródło
1
FLOPS oznacza operacje zmiennoprzecinkowe na sekundę. Arytmetyka zmiennoprzecinkowa prawdopodobnie nie jest wcale używana w podstawowych algorytmach Sztokfisz i AlphaZero. Tak więc liczba FLOPS nie jest tak naprawdę miarą prędkości procesora istotną dla silnika szachowego.
René Pijl,
9
Przeciwnie, uważam, że sieci neuronowe dość intensywnie wykorzystują arytmetykę zmiennoprzecinkową. (Ale oczywiście twoja uwaga ma doskonały sens i dotyczy sztokfisza.)
Federico Poloni
3
O wiele bardziej trafne porównanie byłoby z GPU; NVIDIA Tesla V100 może wykonać 120 TFLOPS, w porównaniu z poprzednią generacją (P100), która zrobiła tylko około 20. Procesory są zoptymalizowane zupełnie inaczej niż procesory graficzne, które generują ogromne ilości liczb.
Nick T
12

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.

limit 1 min / ruch (w jaki sposób miałaby to niekorzystna cecha Sztokfisz?)

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ę:

Gra 1 w ruchu 11

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):

  • Na początku daje b4 jako optymalny ruch, gdy silnik pracuje przez około minutę. Następnie decyduje, że Be3 jest lepszy.
  • 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 :

wprowadź opis zdjęcia tutaj

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:

  • Sztokfisz zaczął od sugerowania pewnych ruchów, ale po 6 minutach na moim komputerze (co odpowiada 7,2 sekundy na Sztokfiszu w prawdziwej grze) wolał a4-a5, tak jak gra .

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.

ReZzT
źródło
1
Jeśli chodzi o limit czasowy, rysunek 2 w dokumencie AlphaZero pokazuje coś przeciwnego: Sztokfisz jest lepszy w niższym budżecie, ale skaluje się gorzej, gdy dostępna jest większa moc. arxiv.org/pdf/1712.01815.pdf
old-ufo
1
@ old-ufo Dziękujemy za zwrócenie na to uwagi. Jak powiedziałem, wydajność Sztokfiszka (i AlphaZero) zależy od sprzętu, a także od limitu czasu. Na przykład, jeśli damy Sztokfiszowi więcej sprzętu (i AlphaZero mniej) i zregenerujemy tę figurę, jego linia może zostać przekształcona tak, aby zawsze pozostawała powyżej linii AlphaZero. Sądzę więc, że to dobry punkt w porównaniu sprzętu dla obu systemów, który również odpowiada na główne pytanie.
ReZzT,
4

Jeden z oryginalnych autorów Sztokfisza odpowiada na konkretne skargi, o których tu wspomniałeś:

Tymczasem Chess.com otrzymało również długi komentarz od jednego z oryginalnych autorów Stockfisha, Torda Romstad, który w całości podamy:

Same wyniki meczów nie są szczególnie znaczące ze względu na dość dziwny wybór kontroli czasu i ustawień parametrów Sztokfisz: Gry były rozgrywane o ustalonym czasie 1 minuty / ruch, co oznacza, że ​​Sztokfisz nie korzysta z heurystyki zarządzania czasem ( włożono wiele wysiłku w to, aby Sztokfisz identyfikował krytyczne punkty w grze i decydował, kiedy poświęcić trochę czasu na ruch; w ustalonym czasie na ruch siła znacznie ucierpi). Użyta wersja Sztokfiszka ma rok, grała o wiele więcej wątków w wyszukiwaniu niż kiedykolwiek otrzymała znaczną liczbę testów i miała zbyt małe tabele skrótów dla liczby wątków. Wierzę, że odsetek remisów byłby znacznie wyższy w meczu z bardziej normalnymi warunkami.

Z drugiej strony nie ma wątpliwości, że AlphaZero grałby lepiej, gdyby włożono więcej pracy w projekt (chociaż wspomniane w artykule „4 godziny nauki” są bardzo mylące, jeśli wziąć pod uwagę ogromne zasoby sprzętowe wykorzystane w ciągu tych 4 godzin). Ale w każdym razie Sztokfisz kontra AlphaZero to bardzo porównanie jabłek do orangutanów. Jeden to konwencjonalny program szachowy działający na zwykłych komputerach, drugi wykorzystuje zasadniczo różne techniki i działa na specjalnie zaprojektowanym sprzęcie, który nie jest dostępny do zakupu (i byłby znacznie większy niż budżet zwykłych użytkowników, gdyby tak było).

Z innej perspektywy kąt jabłek w stosunku do orangutanów jest najbardziej ekscytujący w tym: mamy teraz dwie skrajnie różne (zarówno po stronie sprzętowej, jak i programowej) stworzone przez człowieka byty, które wykazują zdolności do gry w szachy nadludzkie. To o wiele bardziej interesujące niż kolejny program szachowy, który robi to samo co istniejące programy szachowe, tylko trochę lepiej. Ponadto możliwość dostosowania podejścia AlphaZero do nowych domen otwiera ekscytujące możliwości na przyszłość.

Dla szachistów, którzy używają komputerowych programów szachowych jako narzędzia, przełom ten raczej nie będzie miał wielkiego wpływu, przynajmniej w krótkim okresie, ze względu na brak odpowiedniego sprzętu w przystępnych cenach.

Dla programistów silników szachowych - i dla programistów z wielu innych interesujących dziedzin - pojawienie się technik uczenia maszynowego, które wymagają ogromnych zasobów sprzętowych, aby były skuteczne, jest nieco przygnębiające. Za kilka lat jest całkiem możliwe, że program szachowy podobny do AlphaZero może zostać uruchomiony na zwykłych komputerach, ale zasoby sprzętowe potrzebne do ich stworzenia nadal będą znacznie przekraczać budżet hobbystów lub firm średniej wielkości. Możliwe, że projekt open source z dużą rozproszoną siecią komputerów obsługiwanych przez wolontariuszy mógłby działać, ale dni setek unikatowych silników szachowych, każdy z osobnymi osobliwościami i osobowościami, przeminą.

Źródło: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author

Xonatron
źródło
2

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ć.

T Scherer
źródło
Dałem +1, ponieważ mam to samo uczucie.
SmallChess,
Wydaje się prawdopodobne, choć wątpię, by opublikowali go, gdyby Alphazero stracił jedynie niewielki margines (co oznacza, że ​​nadal miałby siłę porównywalną do sztokfisza).
user1583209,
@ user1583209 Prawdopodobnie uruchomili to wiele razy, aby obliczyć minimalny czas nauki potrzebny do zmiażdżenia Sztokfisz. Następnie wykonali ostatni bieg i opublikowali te wyniki.
T Scherer,
1

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.

Ludmiła Cwietkowa
źródło
5
Wydaje się, że wierzysz, że AlphaZero robi to samo co Sztokfisz, tylko 1000 razy szybciej, ponieważ używał 1000 razy mocniejszego sprzętu. To wcale nie jest prawda. Wykorzystuje zupełnie inne podejście, które wymaga dużych zasobów. W rzeczywistości podczas meczu AlphaZero oceniał 80 tysięcy pozycji na sekundę, podczas gdy Sztokfisz taktował z 70 milionami pozycji na sekundę. Powiedz mi teraz, że AlphaZero wygrał dzięki mocniejszemu sprzętowi. Oczywiście na 64 procesorach byłoby wolniej i kto wie, jak by to grał, ale chodzi o to, że AlphaZero robi to lepiej, aczkolwiek przy wyższych kosztach.
IA Petr Harasimovic,
3
Sprzęt SF kosztuje mniej niż 10 000 $, Alpha ponad 250 000 $. Wyciągnij wnioski sam. Nps są bez znaczenia i każdy programista szachowy o tym wie. Możesz wykonywać wszelkiego rodzaju sztuczki, aby np. Obniżyć punkty doświadczenia, ale to nie znaczy, że będziesz grać mocniej. Chciałbym zobaczyć, jak wdraża to podejście na sprzęcie SF, a SF na sprzęcie Alpha. Zgadnij wynik? +85 -0 = 15 dla SF. Jeśli są tak świetne, pozwól im opublikować swój kod.
Lyudmil Tsvetkov
3
„Alpha przeprowadziła symulację książki otwierającej, trenując w niezliczonej liczbie zwycięskich gier GM”. Symulowana książka otwierająca, tak, ale trenowała w grach GM? Czy masz na to źródło? Zrozumiałem, że Alpha była całkowicie przywiązana.
Akavall,
0

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.

Znani Jamei
źródło
-2

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.

Ezekal
źródło
Po prostu źle. AlphaZero wykonuje wyszukiwanie drzewa. Więcej sprzętu czyni go silniejszym. I potrzebuje mnóstwo sprzętu, aby grać lepiej niż sztokfisz.
BlindKungFuMaster,
Nic w tym poście nie jest poprawne ...
SmallChess,
Ten system jest oparty na 3 sieciach neuronowych i częściowym wyszukiwaniu drzew Monroe Carlo, więc masz rację, używając wyszukiwania drzew. Podczas zabawy wykorzystuje 2 zasady sieci neuronowej opracowane w oparciu o wartość i politykę. Go to gra, której nie można wykonać za pomocą mocy obliczeniowej, ponieważ jest astronomicznie bardziej złożona niż szachy. Więc jeśli uważam, że potrzebuje więcej mocy obliczeniowej niż algorytm brutalnej siły, masz złudzenia. Lub nie poinformowano. Trzecia sieć neuronowa służy do przyspieszania procesu uczenia się poprzez odgadywanie zmian propagacji wstecznej. Moc Alphazeros tkwi w sieciach, a nie mcts.
Ezekal