Недавно компьютерные шахматы пережили серьёзную революцию после выхода шахматного движка AlphaZero на основе нейронной сети. Сегодня Японские программисты представили новую технологию нейронных сетей, которая позволяет достичь максимальной производительности на обычном центральном процессоре.
Она впервые была реализована в Stockfish 12, но теперь работает и в новом шахматном движке Fat Fritz 2.
Все мы знаем, насколько сильна нейронная сеть AlphaZero и движки, которые пошли по этому пути развития (например Leela и Fat Fritz). Но у них есть один большой недостаток, чтобы использовать по максимуму данные движки нужна мощная видеокарта, т.к. на обычном процессоре их скорость замедляется более чем в тысячу раз, по сравнению с такими монстрами как Stockfish и Komodo.
Но несмотря на этот факт, движки на нейронных сетях успешно конкурируют на шахматной арене, что еще раз подчеркивает силу данной технологии.
Однако, нейронные сети не идеальны. Они опираются на усреднение различных результатов, но если возникают технические окончание или позиции, где требуется хирургическая точность, то у них возникают проблемы. Поэтому объединение большой и мощной нейронной сети со скоростью и точностью поиска Stockfish казалась просто мечтой.
И тут появился NNUE
Мы шахматисты, когда слышим об AlphaZero, то в первую очередь думаем о новом шахматном движке. Однако хочу напомнить, что его создателем была игра Go. А также, практически нигде не пишется, что в статье про AlphaZero описывается не две, а ТРИ стратегических игры. Третья это японская шахматная игра Сёги.
Поэтому, мир Сёги, статья про AlphaZero не меньше потрясла. Но вместо того, чтобы просто попытаться воспроизвести данную технологию, Японский программист Ю Насу (Yu Nasu) разработал и опубликовал доклад о другой архитектуре нейронной сети, известной как NNUE. Данная технология позволяет использовать в полную силу нейронную сеть на центральном процессоре без необходимости в видеокарте.
Так же, как AlphaZero и первое издание Fat Fritz, NNUE накапливает свои шахматные знания, изучая шахматные позиции и оценки.
NNUE полностью произвёл революцию в программах сёги, что привело к резкому скачку более чем на 100 Эло! Именно эти разработчики поделились своими наработками с шахматным миром, адаптировав свой открытый исходный код в Stockfish.
Опираясь на успех Stockfish 12 - первого шахматного движка, использующего NNUE, другие авторы также стали применять NNUE. Например, недавно выпущен «Dragon» командой Komodo.
Fat Fritz 2 обучается и развивается с использованием технологии NNUE, работающей внутри двоичного кода Stockfish с открытым исходным кодом, но с совершенно новой и другой нейронной сетью, которая значительно отличается от Stockfish по нескольким ключевым моментам:
Итак, какой практический результат у Fat Fritz 2?
Вы провели большой тест с контролем времени 1 минута плюс секунда на ход и Fat Fritz 2 набрал +42 Эло по сравнению со Stockfish 12. По этой ссылке вы можете загрузить все партии из этого теста в формате PGN.
Счёт Fat Fritz 2 vs Stockfish 12:
286 побед / 99 поражений / 1167 ничьих
Изменение в Эло: 42,1 +/- 8,5, LOS: 100,0%, коэффициент ничьих: 75,2%
Завершено 1552 игры из 1552.
Кроме того, есть основания полагать, что Fat Fritz 2 превосходно справляется с эндшпилем*. Вот несколько примеров:
* Возможно, в будущем найдутся исключения, но это можно сказать про любой движок.
Очень часто данная позиция вызывала сложности у движков, даже несмотря на подключенные эндшпильные базы. Мы оценили данную позиции с помощью движков Stockfish 12 и Fat Fritz 2 использовав средние компьютеры на 6-ти ядрах и вот результаты:
Анализ Stockfish 12
Stockfish 12 потребовалось 37 секунд, чтобы найти решение. Хотя это может показаться незначительным, но большинство людей не будет так долго анализировать позицию, если она будет казаться равной.
Анализ Fat Fritz 2
Пять секунд! Правда, это всего лишь одна позиция, но данный ход Широва не просто так включен в современные задачники.
Ещё один пример, который показывает, насколько новые движки могут стать ценным инструментом в сложных окончаниях.
Петросян - Фишер (1971) Кандидаты в SF, партия 6
Позиция после 53-го хода
Здесь Fat Fritz 2 дал выигрышную линию, которая начинается ходом 52...Be7.
Эта же позиция была затем показана Stockfish 12, который использовал 30 потоков и 7-фигурные эндшпильные базы и после 9-ти миллиардов проверенных позиций он выдал, что ход 52.Bd6 выигрывает.
Такая высокая оценка не вызывает сомнений, не так ли?
Был ли это случай, когда в этой позиции выигрывает более, чем одно продолжение?
Ход 52. Bd6 был проанализирован Fat Fritz 2 и он показал, что это линия ничейная! Выясняется, что Stockfish допусти ошибку на глубине 50 полуходов!
Вместо 56.h3? как показано выше, Fat Fritz 2 ходом 56.Nb4! спасает партию. Конечно, приведённые примеры не являются абсолютным доказательством, но подобные вещи были достаточно обычными, поэтому так выделились.
Тем не менее, Fat Fritz 2 - это огромный шаг вперёд, и он предложит фантастический анализ и удовольствие всем, кто его будет использовать. Любой, кто чувствовал себя обделённым из-за необходимости использовать мощную видеокарту, чтобы воспользоваться преимуществами нейронной сети мирового класса, теперь может радоваться, поскольку это больше не требуется.