Оборудование, используемое в матче AlphaZero против Stockfish


23

Я понимаю, что AlphaZero должен использовать другое оборудование, чем обычный Stockfish. Я ожидаю, что аппаратное обеспечение оказывает большое влияние на мощность двигателя. Вот почему мне интересно, были ли предприняты какие-либо попытки предоставить сопоставимое оборудование обоим. И что бы здесь означало «сопоставимый»?

В частности, я читал, что люди жалуются на:

  • Stockfish предоставляется только 1 ГБ кеша, и
  • ограничение по времени 1 мин / ход (Как бы этот недостаток Stockfish?)

Размер хэша , а не кеша, видимо.
Федерико Полони,

2
Я настоятельно рекомендую задать это на техническом форуме (например, на AI Stack Exchange , возможно, под названием «Справедливость оценки в матчах AlphaZero и Stockfish»), потому что ответы здесь не очень хорошие.
Veedrac

Ответы:


20

Вот почему мне интересно, были ли предприняты какие-либо попытки предоставить сопоставимое оборудование обоим.

Вы говорите об Google! Таким образом, ответ, очевидно, «Нет».

Из оригинального бумажного оборудования, используемого для инициализации и обучения -

Обучение проходило 700 000 шагов (мини-пакетов размером 4096), начиная со случайно инициализированных параметров, с использованием 5000 TPU первого поколения (15) для создания игр с самостоятельным воспроизведением и 64 TPU второго поколения для обучения нейронных сетей.

и оборудование, используемое для игр -

AlphaZero и предыдущий AlphaGo Zero использовали одну машину с 4 TPU Stockfish, а Elmo играли на самом высоком уровне квалификации, используя 64 потока и размер хеша 1 ГБ.

Так, AlphaZero использовала специальное оборудование, разработанное Google. Он использовал специализированные процессоры Tensor Processor (TPU), а не общие центральные процессоры (CPU), которые имеются в продаже.

Вот как Википедия описывает TPU второго поколения, которые они использовали -

Второе поколение TPU было объявлено в мае 2017 года. Google заявил, что первое поколение TPU было ограничено по пропускной способности памяти, а использование 16 ГБ памяти с высокой пропускной способностью во втором поколении увеличило пропускную способность до 600 ГБ / с и производительность до 45 TFLOPS. Затем TPU объединяются в 4-чиповые 180 TFLOPS-модулей.

Они использовали 4 TPU для игр, таким образом, вычислительная мощность 180 TFLOPS. Примечание TFLOPS = 1000 миллиардов операций с плавающей запятой в секунду.

Для сравнения, новейшим самым мощным чипом Intel является процессор Core i9 Extreme Edition с тактовой частотой 1 TFLOP. Верхняя часть линии I7, которую вы найдете в игровом автомате, обычно составляет около 100 GFLOP (т. Е. Одну десятую часть TFLOP).

Я думаю, будет справедливо сказать, что AlphaZero использовал 800-фунтовую гориллу аппаратной конфигурации по сравнению с мышью Stockfishes.


1
FLOPS обозначает операции с плавающей запятой в секунду. Арифметика с плавающей точкой, вероятно, вообще не используется в основных алгоритмах Stockfish и AlphaZero. Таким образом, число FLOPS на самом деле не является значимым показателем скорости процессора, относящимся к шахматному движку.
Рене Пейл

9
Наоборот, я считаю, что нейронные сети довольно интенсивно используют арифметику с плавающей запятой. (Но, конечно, ваше замечание имеет смысл и относится к Stockfish.)
Федерико Полони

3
Гораздо более подходящее сравнение будет с графическим процессором; NVIDIA Tesla V100 может делать 120 TFLOPS, по сравнению с предыдущим поколением (P100), в котором было всего около 20. Процессоры оптимизированы совсем иначе, чем графические процессоры, которые выполняют большие объемы чисел.
Ник Т

12

Я думаю, что было бы лучше, если бы я подробно остановился на вашем втором пункте с примером движения в игре 1 между AlphaZero и Stockfish, которое также помогло удовлетворить мое любопытство сегодня.

ограничение по времени 1 мин / ход (Как бы этот недостаток Stockfish?)

Производительность Stockfish зависит как от ограничения по времени, так и от конфигурации оборудования, поэтому просто подумайте, когда кто-то удваивает потоки ЦП, тогда Stockfish требуется меньше времени (не обязательно наполовину), чтобы найти решение, чем это было бы с первой конфигурацией.

В первом сообщении, опубликованном на Chess.com, кто-то утверждал, что Stockfish не играет оптимально, потому что он не может воспроизвести те же результаты, используя тот же Stockfish на своем компьютере. Он сказал, что в позиции ниже (игра 1 - ход 11) Stockfish сыграл Kg1-h1 (переместил своего короля), что не имело никакого смысла. С другой стороны, вяленая рыба на своем компьютере показала более развивающий ход, такой как Be3 (ход темного квадратного слона), давайте посмотрим на позицию:

Игра 1 на 11-м ходу

Да, это был пассивный ход, и кажется, что Stockfish должен был сыграть более развивающий ход. Но он был неправ. Зачем? Поскольку он управлял Stockfish в течение 15 секунд, и если бы он управлял им в течение часа, он получил бы Kg1-h1 как лучший ход в этой позиции. Stockfish меняет свое решение, когда он анализирует все возможные ходы более глубоко. Вот что я изначально сказал в своем ответе :

Я запустил последнюю вьюшку на позиции (на 11-м ходу):

  • Во-первых, это дает b4 как оптимальный ход, когда двигатель работает около минуты. После этого он решает, что Be3 лучше.
  • Но через 5 минут на моем оборудовании, которое работает на 1400k узлов / с, он решит перейти с Kh1 в качестве оптимального движения.

  • В статье говорится, что stockfish рассчитывает 70 000 тыс. Позиций в секунду и запускается в течение 1 минуты за ход, это примерно в 50 раз больше моего оборудования, поэтому я позволю моей работе в течение 50 минут ... Kg1-h1 по-прежнему Выбор для Stockfish.

Ограничение по времени является ключом

В приведенном выше случае, вероятно, не имело особого значения, если Stockfish побежал дважды, потому что решение было бы таким же, но на следующем шаге это определенно будет :

введите описание изображения здесь

В этой позиции Stockfish решил переместить пешку на левую сторону ( a4-a5 ). Допустим, у меня есть компьютер, который запускает движок Stockfish со скоростью 1400 тыс. Узлов в секунду, что примерно в 50 раз ниже, чем у Stockfish в реальной игре ( в статье говорится, что 70 тыс. Кн / с). Таким образом, я могу смоделировать игру, если буду запускать ее по 50 минут на каждом ходу. Хорошо.

Я запустил анализ Stockfish в вышеуказанной позиции и получил следующие результаты:

  • Stockfish начал предлагать некоторые ходы, но через 6 минут на моем компьютере (соответствует 7,2 секунды на Stockfish в реальной игре) он предпочел a4-a5, как только игра пошла .

Это хорошо, но я продолжал работать в течение полных 50 минут, чтобы достичь вычислений Stockfish в игре, которая была разрешена за 1 минуту:

Печальная правда в том, что я считаю, что Stockfish проиграл все свои игры из-за ограничения по времени. Stockfish получает более глубокий поиск и оценку с течением времени, и в игре не было разрешено использовать вводную книгу, которая заставляет его рассматривать много ходов на малой глубине. Обратите внимание, что в реальной игре играли a4-a5, что показывает, что (предполагая, что он может оценивать 70 миллионов позиций в секунду), Stockfish в игре не тратил больше 21,6 секунд на ход. В противном случае он бы изменил свое решение на эти три других хода в реальной игре. Причина этого до сих пор неясна для меня, поскольку мой Stockfish также потреблял меньше памяти (около ~ 130 МБ ОЗУ по сравнению с 1 ГБ, упомянутым в оригинальной статье , при условии, что все это идет в хеш-таблицы).


Вывод

Как я указывал, аппаратное обеспечение, на котором работала Stockfish, в лучшем случае было в 18 раз быстрее моего (обновление: на одном ядре), основываясь на анализе, который я проанализировал. Я не уверен, что AlphaZero действительно сможет использовать такое оборудование для обучения своих сетей за 4 часа, я могу только предположить, что он слишком низок для такой игры, как шахматы. Кроме того, AlphaZero потратил эти часы на обучение, которое также включает в себя создание прочных отверстий (и, как отмечается в документе, предпочтения по сравнению с определенными открытиями). С другой стороны, Stockfish был инвалидом на дебютах, и он не оценивал 70 миллионов позиций в секунду в течение 60 секунд на каждый ход.

В заключение, все, что я сказал, было основано на моих предположениях. Конечно, итоги AlphaZero и игр были для меня супер интересными. Тем не менее, я бы хотел увидеть игру, в которой игра Stockfish была такой же, как и у меня на компьютере. То есть больше времени и вводная книга позволены. Также легко получить результаты анализа Stockfish при каждом движении, и я хочу, чтобы они выпустили его, чтобы показать, насколько хорошо он работал.


1
Что касается ограничения по времени, рисунок 2 в статье AlphaZero показывает противоположное: Stockfish лучше при меньшем бюджете, но масштабируется хуже, когда доступно больше энергии. arxiv.org/pdf/1712.01815.pdf
old-ufo

1
@ old-ufo Спасибо за указание на это. Как я уже сказал, производительность Stockfish (и AlphaZero) зависит от аппаратного обеспечения, а также от ограничения по времени. Например, если бы мы дали Stockfish больше оборудования (и меньше AlphaZero) и регенерировали эту цифру, ее линия могла бы быть трансформирована таким образом, чтобы она всегда оставалась выше линии AlphaZero. Так что я думаю, что это хороший момент при сравнении аппаратного обеспечения для обеих систем, что также отвечает на главный вопрос.
ReZzT

4

Один из первоначальных авторов Stockfish отвечает на конкретные жалобы, которые вы упомянули здесь:

Тем временем Chess.com также получил длинный комментарий от одного из оригинальных авторов Stockfish, Tord Romstad, который мы дадим полностью:

Сами по себе результаты матча не имеют особого смысла из-за довольно странного выбора элементов управления временем и настроек параметров Stockfish: в игры играли с фиксированным временем 1 минута / ход, что означает, что Stockfish не использует свою эвристику управления временем ( много усилий было потрачено на то, чтобы Stockfish выявлял критические точки в игре и решал, когда провести дополнительное время на ходу; при фиксированном времени на ход сила сильно пострадает). Используемая версия Stockfish - один год, она играла с гораздо большим количеством поисковых потоков, чем когда-либо подверглась значительному тестированию, и имела слишком маленькие хеш-таблицы для количества потоков. Я считаю, что процент ничьих был бы намного выше в матче с более нормальными условиями.

С другой стороны, нет никаких сомнений в том, что AlphaZero мог бы сыграть лучше, если бы в проект было вложено больше работы (хотя «4 часа обучения», упомянутые в документе, сильно вводят в заблуждение, если принять во внимание огромные используемые аппаратные ресурсы). в течение этих 4 часов). Но в любом случае, Stockfish против AlphaZero - это скорее сравнение яблок с орангутангами. Одна - это обычная шахматная программа, работающая на обычных компьютерах, другая использует принципиально иные методы и работает на специально разработанном оборудовании, которое недоступно для покупки (и было бы выходом из бюджета обычных пользователей, если бы оно было).

С другой стороны, наиболее интересной является точка зрения «яблоки против орангутанга»: теперь у нас есть две чрезвычайно разные (как в аппаратной, так и в программной части) искусственные сущности, которые обе демонстрируют сверхчеловеческие игровые способности. Это гораздо интереснее, чем еще одна шахматная программа, которая делает то же самое, что и существующие шахматные программы, только немного лучше. Кроме того, адаптивность подхода AlphaZero к новым доменам открывает захватывающие возможности для будущего.

Для шахматистов, использующих компьютерные шахматные программы в качестве инструмента, этот прорыв вряд ли окажет большое влияние, по крайней мере, в краткосрочной перспективе, из-за отсутствия подходящего оборудования по доступным ценам.

Для программистов шахматного движка - и для программистов во многих других интересных областях - появление методов машинного обучения, которые требуют огромных аппаратных ресурсов, чтобы быть эффективными, немного разочаровывает. Через несколько лет вполне возможно, что шахматная программа, подобная AlphaZero, может быть запущена на обычных компьютерах, но аппаратные ресурсы, необходимые для их создания, все равно будут намного превышать бюджет любителей и средних компаний. Возможно, что проект с открытым исходным кодом с большой распределенной сетью компьютеров, управляемый добровольцами, мог бы работать, но дни сотен уникальных шахматных движков, каждый со своими индивидуальными особенностями и характерами, уйдут.

Источник: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author


2

Запуск на сопоставимом оборудовании потребовался бы, если бы конечной целью Google было создание превосходного шахматного движка, но на самом деле это упражнение не касалось шахмат. Шахматы - это просто удобный способ продемонстрировать способность ИИ изучать сложные задачи с нуля. Если он может хорошо работать против какой-то неопределенно разумной конфигурации Stockfish, он будет установлен.

Я предсказываю, что команда Google не будет тратить намного больше усилий на шахматы; вместо этого они перейдут к другим проблемам, которые AI никогда не мог решить.


Я дал +1, потому что у меня такое же чувство.
SmallChess

Звучит правдоподобно, хотя я сомневаюсь, что они опубликовали бы его, если бы Альфазеро проиграл лишь с небольшим отрывом (это означает, что он все еще будет сопоставим по силе с вяленой рыбой).
user1583209

@ user1583209 Вероятно, они запускали его много раз, чтобы выяснить минимальное время обучения, необходимое для того, чтобы сокрушить Stockfish. Затем они сделали последний прогон и опубликовали эти результаты.
T Scherer

1

Посетите форум Talkchess, чтобы узнать больше, там вы найдете около 3000 программистов. Это все было мошенничеством. Альфа играла на 30 раз большем оборудовании, чем SF, 4TPU против 64 ядер. 4TPU - это около 1000 ядер или даже больше. Альфа смоделировала дебютную книгу, обучаясь бесчисленным лучшим играм-победителям GM. У SF было очень мало хешей. TC был зафиксирован на 1 минуте за ход, что опять-таки вредно для SF, который имеет расширенное управление временем. ТПУ не хватает неэффективности SMP с большим количеством ядер, поэтому аппаратное преимущество было еще больше. И т. Д., И т. Д., В общем, это был просто огромный рекламный ход со стороны Google. В настоящее время Alpha составляет около 2800 на одноядерное, поэтому на 400 градусов ниже SF, и в будущем она не будет сильно улучшаться, поскольку с этого момента ей потребуется расширенная оценка, которую она не сможет обнаружить. Что касается 4-часового выпуска, ну, LOL, это было 48 часов назад, так что теперь Альфа на 5000 Эло? Давай.


5
Похоже, вы верите, что AlphaZero делает то же самое, что и Stockfish, только в 1000 раз быстрее, потому что он использовал в 1000 раз более мощное оборудование. Это совсем не так. Он использует совсем другой подход, и этот подход очень ресурсоемкий. Фактически, во время матча AlphaZero оценивал 80 тысяч позиций в секунду, в то время как Stockfish работал со скоростью 70 миллионов позиций в секунду. Теперь скажите мне, что AlphaZero выиграл из-за более сильного оборудования. Конечно, на 64 процессорах он будет медленнее, и кто знает, как он будет играть, но дело в том, что AlphaZero делает это лучше, хотя и с более высокой стоимостью.
И.А. Петр

3
Аппаратные средства SF стоят менее 10 тысяч долларов, Alpha One - более 250 тысяч долларов. Сделай выводы сам. NPS бессмысленны, и каждый шахматный программист знает это. Вы можете делать всевозможные трюки, чтобы nps становилось ниже, но это не значит, что вы будете играть сильнее. Я хотел бы увидеть, как он реализует этот подход на оборудовании SF, а SF - на оборудовании Alpha. Угадай результат? +85 -0 = 15 для SF. Если они такие классные, пусть публикуют свой код.
Людмил Цветков

3
«Альфа смоделировала вступительную книгу, обученную бесчисленным лучшим играм, выигравшим GM». Имитация открытия книги, да, но она тренировалась на GM играх? У вас есть источник для этого? Насколько я понимаю, Альфа была полностью загружена.
Akavall

0

Stockfish ограничен процессорами, поэтому он никогда не сможет масштабироваться до уровня, на который способны графические процессоры.

Матричные вычисления Gor Математические процессоры масштабируются с n, а центральные процессоры масштабируются с n 3 , эти тензорные ядра дополнительно оптимизируются, так что, вероятно, при масштабировании производительность будет еще выше.


-2

Первый абзац более подробно, второй короткий и простой ответ, третий абзац мое мнение о ситуации

С AlphaZero аппаратное обеспечение влияет на силу игры. Это может занять больше времени, но не потому, что это мышление. Это нейронная сеть, которая означает, что вы передаёте информацию в векторе (таблица из одного столбца), она выполняет простое вычисление через гигантский тензор (3 или более размерную таблицу), а затем выдает ответ. Stockfish нужно время, чтобы быть хорошим, потому что он проверяет возможные позиции, чтобы увидеть, выгоден ли ход, поэтому чем дольше он смотрит на проблему, тем больше позиций / ходов он может проверить.

На самом деле нет сопоставимой аппаратной настройки. Поскольку у них разные потребности, Stockfish нужно проанализировать больше позиций, а AlphaZero просто сделать ход. И люди расстроены, потому что компьютер AlphaZero технически намного мощнее, и они думают, что должны быть равны в этом отношении. Но AlphaZero не нужен этот суперкомпьютер после тренировки.

По моему мнению, не имеет значения, что они дают какой-либо из сторон, если у Stockfish не будет разумного количества времени, он, вероятно, свяжет еще несколько игр, но в целом аналогичный эффект произойдет. Вот почему я думаю, что Stockfish изначально оценивает по частям и их значениям, в то время как Alpha разыграла (возможно) миллионы игр, чтобы понять, что стратегически важно. Вот почему Alpha имеет гораздо больше, чем Stockfish, но получает огромные позиционные преимущества.


Это просто неправильно. AlphaZero выполняет поиск по дереву. Больше оборудования делает его сильнее. А для игры лучше, чем вяленая рыба, нужна тонна оборудования.
BlindKungFuMaster

Ничто в этом сообщении не является правильным ...
SmallChess

Эта система основана на 3 нейронных сетях и частичном поиске по дереву Монро-Карло, поэтому вы правы, используя поиск по дереву. Во время игры он использует 2 принципа нейронной сети, разработанных с учетом ценности и политики. Го - это игра, которую нельзя сделать с помощью вычислительной мощности, потому что она астрономически сложнее шахмат. Так что, если я считаю, что ему требуется больше вычислительной мощности, чем алгоритму перебора, то вы заблуждаетесь. Или скучаю в курсе. Третья нейронная сеть используется, чтобы попытаться ускорить процесс обучения, угадав изменения в обратном распространении. Сила Alphazeros находится в сетях, а не mcts.
Ezecal
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.