AlphaZero. Нейронная сеть играет в шахматы

Тема в разделе "Машинное отделение", создана пользователем grizly, 6 дек 2017.

  1. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.499
    Симпатии:
    1.222
    Репутация:
    29
    Адрес:
    Киев
    Оффлайн
    Скорее повторение результата от Deep Mind и Alpha Zero. В целом есть метод, которые хорошо решает многие игры. Почему бы не попробовать?

    Я сильно не вникал, но у меня такое ощущение, что поначалу цель состояла не просто в написании сильного шахматного двиджка, но и в попытке универсального подхода, чтобы можно было утверждать, что человек дал только структуру нейросети, остальному программа научилась сама. В пользу этого (1) отказ от использования таблиц Налимова (2) на вход нейросети не заводятся специфические шахматные параметры, которые могли бы ей помочь (особенности структуры, такие как сдвоенные пешки, проходная, наличие двух слонов, ...). Всё это нейросеть должна определить сама.
  2. Rom Старожил

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    644
    Симпатии:
    275
    Репутация:
    27
    Оффлайн
    Так ведь нынешняя реализация MCTS не использует симуляции до конца партии. Она использует только оценки нейросети. Возможно именно поэтому АльфаГо Зеро и играла только на 4 TPU.

    Вот, кстати и crem не уверен, что можно набрать нужное количество позиций для параллельной оценки:
    http://forchess.ru/showpost.php?p=74722&postcount=274
  3. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.499
    Симпатии:
    1.222
    Репутация:
    29
    Адрес:
    Киев
    Оффлайн
    Я не вижу, что это меняет принципиальным образом. Да, у нас две нейросети, одна ответственна за выбор ходов, другая за оценку позиции. Да, возможно их синхронизация — узкое место: вроде как надо считать оценку, а данных недостаточно для полной загрузки. Но всё равно нам ничто не мешает запустить ещё одну симуляцию/оценку при наличии дополнительного железа/компа. Как раз будут набираться быстрее батчи для оценок :)

    Опять же, когда я писал драйвера для красненьких, было 64 АЛУ на один вычислительный блок, каждый из которых вполне мог работать независимо. Но основная проблема производительности всегда упиралась в память.

    Скорее всего проблема в том, что более 4 TPU не подключить к одной машине. Или ещё где всплыл боттленек. Но и так хватило победить Stockfish, написать статью, поэтому их никто не решал :)

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

    • Участник
    • Старожил
    Рег.:
    12.02.2012
    Сообщения:
    644
    Симпатии:
    275
    Репутация:
    27
    Оффлайн
    Чтобы расширить дерево перебора вы должны сначала пройтись по существующему дереву, отобрать пакет перспективных позиций основываясь на статистике предыдущих оценок, оценить позиции на видеокарте, исправить статистику по узлам на основании этих оценок и только тогда повторить процедуру.

    Таким образом весь процесс получается последовательным. Единственное, что мы можем делать параллельно это расширить пакет позиций, добавляя туда всё более бестолковые варианты.
    Undying нравится это.
  5. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
  6. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.470
    Симпатии:
    3.066
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Путём хитрых пересчётов и масштабирований фанаты Лилы уже насчитали ей 3600 и больше. Всем прочим программам следует просто сдаться без игры. А то ещё обыграют случайно, получится неловко.
  7. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    В 13-ом сезоне TCEC вышла с 4-го дивизиона с 1-го места.
    В 3-ем сезоне и в дополнительных играх она играла полностью на уровне Этериала, топового движка 1-го дивизиона. Когда криворукие одмены TCEC наконец-то смогли нормализовать работу железа.

    На тестах CCCC полноценная версия не играла, там CPU было, набрало что-то совсем мало (ну это примерно 2600 движок).


    Думаю, на 4-ех V100 GPU рейтинг нынешних нейросетей Лейлы будет в районе 3375-3425. Ниже стока, примерно наравне Комодо и Гудини, чуть лучше Этериала и других движков.
  8. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    350
    Симпатии:
    83
    Репутация:
    7
    Оффлайн
    Где это Вы такое прочитали...? Я что то нигде не видел, что б кто так говорил
    На сссс все таки есть надежда, что выйдет в 8 -ку для второго этапа
    Лила пока еще весьма экспериментальная, основное обучение ещё даже не запущено, разве что к концу сентября запустят и тогда может нормальная Лила к концу этого года будет
    (если не найдут новых ошибок и текущее оборудование останется)
  9. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    Энивей CCCC - это идеальный вариант для Лейлы показать свое лицо, вряд ли до конца года будет еще какое-то значимое соревнование движков.
  10. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    350
    Симпатии:
    83
    Репутация:
    7
    Оффлайн
    А разве TCEC 14 не планируется?

    Лила вполне может ещё немного прибавить после нормального обучения (и когда научат с TB играть), но все равно выбиваться в лидеры она будет только соревнования типа TCEC, а на оборудовании большинства шахматистов вряд ли превысит Fire.
  11. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.470
    Симпатии:
    3.066
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    https://groups.google.com/forum/m/#!topic/lczero/kEZrOemKZ9U
  12. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    Премьер-дивизион 13-го сезона начинается, судя по расписанию, аж 23 ноября. Суперфинал - 3 декабря
    http://tcec.chessdom.com/archive.php

    TCEC 14 будет ну явно после Нового года.
    —- добавлено: 29 авг 2018 —-
    Хз, я вижу, что нынешний уровень Лейлы - это Этериал, с которым она свела на обычном железе все партии вничью. Кстати, были в TCEC и 2 бонусные игры Лейлы со стоком, и ничего, пару ничьих сделала.

    Вы пытаетесь зачем-то принижать реально мощный уровень развития Лейлы. Непонятно зачем...
    —- добавлено: 29 авг 2018, опубликовано: 29 авг 2018 —-
    Мой предикт: к концу года Лейла обгонит Стокфиш. Может и раньше на месяц-полтора.


    P.S беру рейтинги движков и регламент у TCEC. По мне так они +- оптимальные
  13. svoitsl Учаcтник

    • Участник
    Рег.:
    06.01.2018
    Сообщения:
    350
    Симпатии:
    83
    Репутация:
    7
    Оффлайн
    а при чем тут расписание?
    уже половина 1-го дивизиона прошло, а по расписанию до него больше месяца
    Не понятно только с чего бы это случилось, уже сейчас не видно что Lc0 существенно быстрее A0, скорее наоборот
    Возможно на хорошем железе (4xV100) и выйдет уровень 9-го Стока (на 43 потоках,что наверное хуже ,чем у Гугла играл 8-й Сток (64 потока)) к концу года, нов целом сеть 20х256 больших перспектив скорее всего не имеет.
    Выигрывать у актуального Стока LC0 сможет только на сильно перекошенном оборудовании.
    (например GTX 1080Ti vs C2D 3Ггц ) и уж ни как не в блице
  14. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    Ну, с составом премьер-дивизиона уже все ясно.
  15. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Дело не столько в регламенте сколько в соперниках. Против движков послабее Чесбрайн хорош. А против превосходящих его в классе Эзериаля и Чирона ничего сделать не может. Во втором дивизионе в первой половине турнира Эзериалю еще и удивительно не перло (всего 2 партии из 14 выиграл), но в третьем круге он набрал 6.5 из 7 и все встало на свои места.
  16. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Undying и Rom нравится это.
  17. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    В V100 5120 CUDA ядер, заявленная производительность 120 ТФлопс для тензорных вычислений. Я правильно понимаю, что чтобы получить полную производительность нужно параллелить вычисления на 5120 потоков? А с этим есть сложности, поэтому Лила на GTX 950 с 768 ядрами и производительностью 1.6 ТФлопс считает 1.5 кнод/с, а на номинально в 75 раз более производительной V100 только в 20 раз больше (порядка 30 кнод/с).

    А в чем тогда смысл использования 4xV100? Если Лила не может полностью загрузить 5000 ядер, то 20000 ядер не сможет тем более.
  18. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    А вот гугловский 4xTPU выдает 180 ТФлопс всего лишь на 8 ядрах. Насколько понял у TPU процессоры работают не с числами, а сразу с матрицами 256x256. Судя по Альфа Зеро отношение ноды/тфлопс у TPU равно 445 (80000/180). Что почти в два раза лучше, чем у V100, для которой это отношение равно 250. Но в два раза хуже чем у GTX 950, для которой отношение равно 940 (1500/1.6).
    —- добавлено: 31 авг 2018, опубликовано: 31 авг 2018 —-
    Вообще возникает вопрос. Почему Лила производительность V100 использует настолько не эффективно? Для сравнения с GTX 1080 Ti, имеющей 3584 CUDA-ядра и номинальную производительность 11 ТФлопс, Лила считает 9 кнод/c. То есть 800 нод на ТФлопс. А для V100 получается 250 нод на ТФлопс. Из-за чего такая разница?

    ps
    По идее неправильно понимал. Основную производительность у V100 дают не CUDA-ядра, а 640 тензорных ядер. А походу с их эффективным использованием у Лилы пока проблемы. Возможно просто из-за того, что этим еще толком не занимались.
  19. pavelgttfj8 Учаcтник

    • Участник
    Рег.:
    07.12.2017
    Сообщения:
    287
    Симпатии:
    89
    Репутация:
    3
    Оффлайн
    У лилы в текущей партии была возможность перейти вот в такой эндшпиль. Отдать слона за 3 пешки. Это было бы эпично. Выигрывается ли это за белых?

    8/8/1bp3k1/p3R3/8/4P1P1/P4PKP/3r4 b - - 0 33
  20. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Ничья, похоже. Но движки не идеальны и, возможно, 12-фигурных эндшпильных таблицах будет выигрыш белых))
  21. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Не надо путать потоки CPU и GPU. Они совершенно по-разному устроены и служат разным целям.
    Я полный деталей, как работает TPU, не знаю. Но известно, что он работает с числами 8-битной точности. К сравнению, 1080Ti использует 32-битную точность для представляения вещественных чисел. Повышенная точность требует больше ресурсов. Судя по-всему, для нейронных сетей высокая точность не так уж и нужна. Поэтому, только за счёт этого, TPU получает очень много преимущества.
    В следующих поколениях карт от NVIDIA это учли, и V100 уже умеет работать с числами 16-битной точности, и при этом имеет так называемые Tensor Cores. Tensor Cores - это всего лишь название для операций быстрого умножения и сложения матриц размера 4x4. Дело в том, что в нейронных сетях практически все операции сводятся к умножению матриц, которые в свою очередь сводятся к умножению и сложению небольших блоков, например, размера 4x4. Соответсвенно, если научиться умножать быстро эти небольшие блоки, можно получить существенный прирост в операциях связанных с нейронными сетями.
    Тут надо сказать, что 1080ti тоже формально умеет работать с 16-битными числами, но на практике это не даёт прирост. Возможно, в NVIDIA специально ограничили производительность, чтобы люди покупали на тот момент более дорогие видеокарты для нейронных сетей.
    Подводя итог, у V100 имеется как минимум сразу 2 преимущества, по сравнению с 1080ti (не считая числа ядер и общей мощности): это пониженная точность и Tensor Cores. Но при этом, TPU вообще работает с 8-битными числами, и возможно имеет какие-то ещё оптимизации, о которых мне неизвестно.
  22. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Софт безобразный у TCEC. В таблице стоит один результат, кликаешь на партию результат другой. Чему верить не понятно.
  23. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Насколько понял на вход видеокарты подается матрица и указывается в сколько потоков ее обрабатывать. Поэтому особых проблем с полной загрузкой тысяч CUDA-ядер быть не должно

    Пониженная точность достаточная для нейронных сетей позволяет использовать более простые процессоры, которые при том же энергопотреблении и числе транзисторов имеют более высокую производительность. Такие процессоры и называются тензорными. На видеокарте тензорных процессоров нет, поэтому снижение точности не дает прироста производительности. 32 битному процессору видеокарты без разницы считать 32 битные числа, 16 битные или 8 битные.

    V100 дает двухкратный прирост производительности для чисел однократной точности. По видимому используемые в V100 CUDA ядра умеют обрабатывать за раз два float вместо одного double. Но это все равно скромные 15 ТФлопс производительности. А сумасшедшая (120 ТФлопс) там производительность у тензорных ядер. Но похоже Лила использует их крайне неэффективно. Или даже вообще не использует. Возможно CUDA ядра V100 оптимизированы и под под работу с 8 битными числами, что дает 30 ТФлопс производительности. Поэтому мы и видим скорость в 25-30 кнод/с. А тензорные процессоры вообще Лилой не задействуются.

    Отличие TPU что в нем ядер мало, но работают процессоры с матрицами 256 на 256. Возможно это преимущество, под 256 на 256 проще оптимизировать код, чем под 4 на 4.
  24. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Нормальный результат. Против слабачков 4.5 из 5. Это перфоманс 3400+. А Ксифос явно не на свой рейтинг играет. В дивизионе 2 TCEC предыдущая версия Ксифоса подняла рейтинг до 2277 и это возможно не предел. Движок очень быстрый, даже быстрее Эзереаля ноды перебирает.
  25. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.470
    Симпатии:
    3.066
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Минус два из десятка с чем-то игр, без единой победы (вроде, один дисконнект у Стокфиша в самой последней партии на первых же ходах). Ждём объяснений, что это на самом деле блестящий результат :)
  26. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.470
    Симпатии:
    3.066
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    "Здесь играем, здесь не играем, здесь рыбу заворачивали..."
  27. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Там непонятно, что вообще в сводной таблице показывается. Например, ткните в 4 партию. По тексту партии победа Лилы в 26 ходов. А по таблице ничья в 51 ход. В TCEC программистами походу эпические криворуки работают.
  28. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    Наверное, всем этим занимаются студенты на коленке, и может даже не за еду.
  29. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    А вы чего от Лилы ждали? В дивизионе 4 TCEC Лила играла на 3200. У новой версии разработчики заявляли прирост силы +150 пунктов. Плюс в CCCC Лила играет на двухкратно более производительном железе, что еще +50 пунктов должно дать. Т.е. где-то сила 3400 должна быть. Примерно столько и показывает по результатам.
  30. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Если вам принципиально новые вещи не интересны, то это ваши личные проблемы. А мне получить представление о возможностях нейронных сетей интересно. Все-таки новая технология, заметно расширяющая возможности человечества в сравнении с классическим алгоритмически переборным подходом.
  31. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    Двачую, нейросети - это совершенно шикарная вещь, которая сейчас работает не теоретически, а во всю мощь, и показывает реальные, хорошие результаты.

    И хоть я с нейросетями разминулся по работе (бэкенд веб), но просто интересно за этим даже наблюдать.
  32. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    А разработчики Лилы просто вызывают уважение. Одно дело Альфа Зеро сделанная Гуглом с его безграничными денежными и техническими возможностями. И другое дело энтузиасты, которые на коленке за считанные месяцы сделали конкурентоспособный продукт. Это очень круто.
  33. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Да, кроме классического алгоритмически переборного подхода теперь появился еще и новый нейронно переборный.

    Такого особо нет. Больше хейтеры Лилы сначала приписывают ей какую-то мифическую силу, а когда она ее не показывает, то начинают глумится.
    —- добавлено: 31 авг 2018 —-
    Году в 2008 может и энтузиасты Стокфиша были круты. Но в алгоритмическо переборных движках давно уж никаких революций нет.
    sovaz1997 нравится это.
  34. Neo94 Учаcтник

    • Участник
    Рег.:
    15.11.2014
    Сообщения:
    434
    Симпатии:
    144
    Репутация:
    -10
    Оффлайн
    Такие древние времена уже и не помнють)
  35. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Если смотреть по партиям, а не по таблице, то у Лилы +1 против Стокфиша в 14 партиях. В 4 туре победа, остальные ничьи. А что показывается в таблице непонятно, то ли они еще какие-то партии играли, то ли вообще не то показывается.

Поделиться этой страницей