Я понимаю, что AlphaZero должен использовать другое оборудование, чем обычный Stockfish. Я ожидаю, что аппаратное обеспечение оказывает большое влияние на мощность двигателя. Вот почему мне интересно, были ли предприняты какие-либо попытки предоставить сопоставимое оборудование обоим. И что бы здесь означало «сопоставимый»?
В частности, я читал, что люди жалуются на:
- Stockfish предоставляется только 1 ГБ кеша, и
- ограничение по времени 1 мин / ход (Как бы этот недостаток Stockfish?)
Ответы:
Вы говорите об Google! Таким образом, ответ, очевидно, «Нет».
Из оригинального бумажного оборудования, используемого для инициализации и обучения -
и оборудование, используемое для игр -
Так, AlphaZero использовала специальное оборудование, разработанное Google. Он использовал специализированные процессоры Tensor Processor (TPU), а не общие центральные процессоры (CPU), которые имеются в продаже.
Вот как Википедия описывает TPU второго поколения, которые они использовали -
Они использовали 4 TPU для игр, таким образом, вычислительная мощность 180 TFLOPS. Примечание TFLOPS = 1000 миллиардов операций с плавающей запятой в секунду.
Для сравнения, новейшим самым мощным чипом Intel является процессор Core i9 Extreme Edition с тактовой частотой 1 TFLOP. Верхняя часть линии I7, которую вы найдете в игровом автомате, обычно составляет около 100 GFLOP (т. Е. Одну десятую часть TFLOP).
Я думаю, будет справедливо сказать, что AlphaZero использовал 800-фунтовую гориллу аппаратной конфигурации по сравнению с мышью Stockfishes.
источник
Я думаю, что было бы лучше, если бы я подробно остановился на вашем втором пункте с примером движения в игре 1 между AlphaZero и Stockfish, которое также помогло удовлетворить мое любопытство сегодня.
Производительность Stockfish зависит как от ограничения по времени, так и от конфигурации оборудования, поэтому просто подумайте, когда кто-то удваивает потоки ЦП, тогда Stockfish требуется меньше времени (не обязательно наполовину), чтобы найти решение, чем это было бы с первой конфигурацией.
В первом сообщении, опубликованном на Chess.com, кто-то утверждал, что Stockfish не играет оптимально, потому что он не может воспроизвести те же результаты, используя тот же Stockfish на своем компьютере. Он сказал, что в позиции ниже (игра 1 - ход 11) Stockfish сыграл Kg1-h1 (переместил своего короля), что не имело никакого смысла. С другой стороны, вяленая рыба на своем компьютере показала более развивающий ход, такой как Be3 (ход темного квадратного слона), давайте посмотрим на позицию:
Да, это был пассивный ход, и кажется, что Stockfish должен был сыграть более развивающий ход. Но он был неправ. Зачем? Поскольку он управлял Stockfish в течение 15 секунд, и если бы он управлял им в течение часа, он получил бы Kg1-h1 как лучший ход в этой позиции. Stockfish меняет свое решение, когда он анализирует все возможные ходы более глубоко. Вот что я изначально сказал в своем ответе :
Я запустил последнюю вьюшку на позиции (на 11-м ходу):
Но через 5 минут на моем оборудовании, которое работает на 1400k узлов / с, он решит перейти с Kh1 в качестве оптимального движения.
В статье говорится, что stockfish рассчитывает 70 000 тыс. Позиций в секунду и запускается в течение 1 минуты за ход, это примерно в 50 раз больше моего оборудования, поэтому я позволю моей работе в течение 50 минут ... Kg1-h1 по-прежнему Выбор для Stockfish.
Ограничение по времени является ключом
В приведенном выше случае, вероятно, не имело особого значения, если Stockfish побежал дважды, потому что решение было бы таким же, но на следующем шаге это определенно будет :
В этой позиции Stockfish решил переместить пешку на левую сторону ( a4-a5 ). Допустим, у меня есть компьютер, который запускает движок Stockfish со скоростью 1400 тыс. Узлов в секунду, что примерно в 50 раз ниже, чем у Stockfish в реальной игре ( в статье говорится, что 70 тыс. Кн / с). Таким образом, я могу смоделировать игру, если буду запускать ее по 50 минут на каждом ходу. Хорошо.
Я запустил анализ Stockfish в вышеуказанной позиции и получил следующие результаты:
Это хорошо, но я продолжал работать в течение полных 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 при каждом движении, и я хочу, чтобы они выпустили его, чтобы показать, насколько хорошо он работал.
источник
Один из первоначальных авторов Stockfish отвечает на конкретные жалобы, которые вы упомянули здесь:
Источник: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
источник
Запуск на сопоставимом оборудовании потребовался бы, если бы конечной целью Google было создание превосходного шахматного движка, но на самом деле это упражнение не касалось шахмат. Шахматы - это просто удобный способ продемонстрировать способность ИИ изучать сложные задачи с нуля. Если он может хорошо работать против какой-то неопределенно разумной конфигурации Stockfish, он будет установлен.
Я предсказываю, что команда Google не будет тратить намного больше усилий на шахматы; вместо этого они перейдут к другим проблемам, которые AI никогда не мог решить.
источник
Посетите форум Talkchess, чтобы узнать больше, там вы найдете около 3000 программистов. Это все было мошенничеством. Альфа играла на 30 раз большем оборудовании, чем SF, 4TPU против 64 ядер. 4TPU - это около 1000 ядер или даже больше. Альфа смоделировала дебютную книгу, обучаясь бесчисленным лучшим играм-победителям GM. У SF было очень мало хешей. TC был зафиксирован на 1 минуте за ход, что опять-таки вредно для SF, который имеет расширенное управление временем. ТПУ не хватает неэффективности SMP с большим количеством ядер, поэтому аппаратное преимущество было еще больше. И т. Д., И т. Д., В общем, это был просто огромный рекламный ход со стороны Google. В настоящее время Alpha составляет около 2800 на одноядерное, поэтому на 400 градусов ниже SF, и в будущем она не будет сильно улучшаться, поскольку с этого момента ей потребуется расширенная оценка, которую она не сможет обнаружить. Что касается 4-часового выпуска, ну, LOL, это было 48 часов назад, так что теперь Альфа на 5000 Эло? Давай.
источник
Stockfish ограничен процессорами, поэтому он никогда не сможет масштабироваться до уровня, на который способны графические процессоры.
Матричные вычисления Gor Математические процессоры масштабируются с n, а центральные процессоры масштабируются с n 3 , эти тензорные ядра дополнительно оптимизируются, так что, вероятно, при масштабировании производительность будет еще выше.
источник
Первый абзац более подробно, второй короткий и простой ответ, третий абзац мое мнение о ситуации
С AlphaZero аппаратное обеспечение влияет на силу игры. Это может занять больше времени, но не потому, что это мышление. Это нейронная сеть, которая означает, что вы передаёте информацию в векторе (таблица из одного столбца), она выполняет простое вычисление через гигантский тензор (3 или более размерную таблицу), а затем выдает ответ. Stockfish нужно время, чтобы быть хорошим, потому что он проверяет возможные позиции, чтобы увидеть, выгоден ли ход, поэтому чем дольше он смотрит на проблему, тем больше позиций / ходов он может проверить.
На самом деле нет сопоставимой аппаратной настройки. Поскольку у них разные потребности, Stockfish нужно проанализировать больше позиций, а AlphaZero просто сделать ход. И люди расстроены, потому что компьютер AlphaZero технически намного мощнее, и они думают, что должны быть равны в этом отношении. Но AlphaZero не нужен этот суперкомпьютер после тренировки.
По моему мнению, не имеет значения, что они дают какой-либо из сторон, если у Stockfish не будет разумного количества времени, он, вероятно, свяжет еще несколько игр, но в целом аналогичный эффект произойдет. Вот почему я думаю, что Stockfish изначально оценивает по частям и их значениям, в то время как Alpha разыграла (возможно) миллионы игр, чтобы понять, что стратегически важно. Вот почему Alpha имеет гораздо больше, чем Stockfish, но получает огромные позиционные преимущества.
источник