• Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Discord Chat
    • Зарегистрироваться
    • Войти

    Движки

    Запланировано Прикреплена Закрыта Перенесена Компьютеры
    60 Сообщения 4 Posters 21.4k Просмотры 1 Watching
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • BulldozerB
      Bulldozer T
      отредактировано Bulldozer

      Пост, в общем-то, посвящается @Комс.

      Меня не устраивает ширина поиска в Лиле и я играюсь с настройками с целью сделать так, чтобы слабые ходы получали больше времени.

      В Лиле используется алгоритм UCT, и есть такая формула (1):

      Cpuct' = Cpuct + CpuctFactor * ln((Nodes + CpuctBase)/CpuctBase)
      

      Это была основная формула. Можно, если нужно, выразить Nodes. Формула (2):

      Nodes = CpuctBase * (e^((Cpuct' - Cpuct)/CpuctFactor) - 1)
      

      Или выразить CpuctBase. Формула (3):

      CpuctBase = Nodes / (e^((Cpuct' - Cpuct)/CpuctFactor) - 1)
      

      Объясню формулу (1). Это всё конфигурационные параметры движка, кроме Cpuct' (это вычисляемый) и Nodes (сколько просмотрено узлов на данный момент при анализе ДАННОГО узла).
      Из описания алгоритма известно, что баланс exploitation - exploration сдвигается вправо тем больше, чем больше Cpuct'. Т.е., чтобы поиск сделать шире, нужно увеличивать Cpuct', чего можно достичь увеличением Cpuct, или CpuctFactor, или уменьшением CpuctBase. И, само собой, при увеличении Nodes поиск расширяется автоматически.
      Для каждого хода-кандидата вычисляется его приоритетность, а именно Cpuct' плюс некоторое слагаемое, с которым я особо не разбирался пока (оно зависит от оценки хода), и выбирается тот ход-кандидат, у которого сумма больше. Т.е., приоритетность хода-кандидата зависит от нодесов, просмотренных во время анализа этого хода ранее, от оценки хода и от конфигурационных параметров.

      По дефолту такие значения:

      ? = 3 + 2 * ln((Nodes + 19652)/19652)
      

      При дефолтных значениях динамика получается следующая.
      Когда Nodes = 0 (т.е., свежий ход), то Cpuct' = 3.
      Когда Nodes = 33K, то Cpuct' = 5.
      и т.д., вот таблица:

      Nodes Time* Cpuct'
      0 0 3
      33K 3 sec 5
      125K 12 sec 7
      375K 37 sec 9
      1M 100 sec 11
      3M 5 min 13
      8M 13 min 15
      22M 37 min 17
      59M 98 min 19

      *Время указано на моей текущей конфигурации железа и софта. Может отличаться для разных видеокарт и нейросетей. Для справки: на RTX 2060 с нейросетью T40B.4-260 скорость расчёта примерно 10K nodes/sec = 600 Knodes/min = 36M nodes/hr.
      Указано потраченное время только на обдумывание этого хода, но не других ходов-кандидатов.

      Если я держу движок уже 13 минут на ходе (причём, это означает общее время анализа уже намного больше, если этот ход не на первой линии!), то мне кажется, это значит, что я хочу уже широкого анализа, а не додрачивания оценки лучшего хода. Меня как-то не очень устраивает, что Cpuct' для 5 минут и 13 минут отличается так мало. Временно снимается - пока не понимаю полностью, как это всё работает.

      Можно крутить CpuctBase. Я ещё буду дописывать этот пост.

      1 ответ Последний ответ
      Ответить Цитировать 1
      • КомсК
        Комс
        отредактировано

        Братка, спасибо за посвящение, но тебе надо связаться с автором СREM напрямую...
        Он не отдуплился, чего мы от него хотим, а заходит туда редко
        https://forchess.ru/showpost.php?p=109623&postcount=4739

        Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

        1 ответ Последний ответ
        Ответить Цитировать 0
        • BulldozerB
          Bulldozer T
          отредактировано

          Мы пока сами попробуем покрутить. Будут конкретные вопросы - зададим.

          1 ответ Последний ответ
          Ответить Цитировать 0
          • КомсК
            Комс
            отредактировано

            А остальные писатели там это чайники, они нагонят щас тонну флуда... и Крем не заметит моё уточнение

            Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

            1 ответ Последний ответ
            Ответить Цитировать 0
            • BulldozerB
              Bulldozer T @Комс
              отредактировано Bulldozer

              Участник @комс написал в Движки:

              поищи в инете тест "ночной кошмар II", не помню, как по-английски
              Там есть даже поза из Полугаевский - Торре, 1982

              Или завтра скину
              Но оболочка Фритц будет нужна, как ни крути

              Запустил в пакетном режиме (помнишь, для тебя делал? - пригодился) все 30 задач оттуда, по 7 минут на каждую. Когда отработает, проверю сколько правильных решений. Потом будем и другие сетки так проверять, и другие настройки.

              1 ответ Последний ответ
              Ответить Цитировать 1
              • BulldozerB
                Bulldozer T
                отредактировано Bulldozer

                Updated
                Есть тесты Кошмар-2 (по наводке @Комс), которые якобы плохо решаются движками. Давайте посмотрим.
                Прогнал эти тесты на четырёх движках: LC0 с тремя разными нейросетями и Stockfish 10.
                Сетки, начинающиеся на J, больше по размеру, чем на T, и работают медленнее. Теоретически должны давать оценку лучше.
                На решение отводилось 5 минут на каждую задачу. В таблице отмечено, кто решил или не решил соответствующие задачи. Если стоит смайлик, значит движок выбился из общей тенденции в хорошую либо плохую сторону.

                Position # LC0: T40B.4-260 LC0: J13-410 LC0: J13B.2-136 Stockfish 10
                1 + + + - 👎
                2 - - - -
                3 - - - -
                4 + + + +
                5 + + + +
                6 + + + +
                7 + + + - 👎
                8 - - - -
                9 + - + -
                10 - - - -
                11 - - +👍 -
                12 - - - +👍
                13 - - - -
                14 + + + +
                15 - - - -
                16 - - - +👍
                17 + + + -👎
                18 - - - -
                19 - + + -
                20 + + + +
                21 - - - -
                22 - - - -
                23 - - - -
                24 - - - +👍
                25 + + + +
                26 + + + +
                27 + + + -👎
                28 - - - -
                29 + + + +
                30 + + + -👎
                Sum 14 14 16 11

                Победу одержала сеть J13B.2-136.

                Примечания

                Задачи эти надо ещё проверять. Далеко не во всех я уверен. Впрочем, это, наверное, не так важно.

                Интересно будет ещё Стокфиш прогнать. Прогнал.

                Железо: RTX 2060 для LC0 и Core i7-9750H для Stockfish.
                Для Stockfish включал 10 процессорных тредов из 12.
                Подключены таблицы окончаний на SSD.

                КомсК 1 ответ Последний ответ
                Ответить Цитировать 2
                • BulldozerB
                  Bulldozer T
                  отредактировано Bulldozer

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

                  В первом эксперименте NNCacheSize установлен по умолчанию (200K).
                  Во втором эксперименте он увеличен в 100 раз и равен 20M.

                  В первом эксперименте кэш быстро заполнился (синяя линия), после чего скорость перебора позиций (красная линия) расти перестала, т.е., многие позиции идут на расчёт в видеокарту. Жёлтая линия - общее число просмотренных позиций - за час поднялась до 26K.

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

                  Вот так только настройкой кэша ускорили движок в 2.5 раза.

                  0_1570966820751_Screenshot from 2019-10-13 22-39-56.png

                  0_1570966613065_Screenshot from 2019-10-13 22-34-05.png

                  1 ответ Последний ответ
                  Ответить Цитировать 1
                  • BulldozerB
                    Bulldozer T
                    отредактировано Bulldozer

                    Внёс изменения в сравнительный тест движков/сеток на задачах Кошмар-2.
                    Добавлен Стокфиш. Он проиграл.

                    1 ответ Последний ответ
                    Ответить Цитировать 1
                    • BulldozerB
                      Bulldozer T
                      отредактировано

                      Сейчас понял, что задачи, где Стокфиш всех нагнул, имеют небольшое кол-во фигур. Примерно понятно - лучше перемалывает варианты, а в позиционных факторах менее силён.

                      1 ответ Последний ответ
                      Ответить Цитировать 0
                      • BulldozerB
                        Bulldozer T
                        отредактировано

                        Позиция ближе к концу моей партии в клубе, сыгранной вчера. Не знаю, почему чёрные не сдаются, но не в этом суть, а в том, что я не очень понял анализ Лилы, см. вторую линию. А, точнее, совсем не понял.

                        0_1572320143494_Screenshot from 2019-10-29 14-29-05.png

                        24... Bxh3 25. gxh3 Bd8 26. Bxd8 - это зачем так? Что может сподвигнуть движок на такой кооператив?

                        1 ответ Последний ответ
                        Ответить Цитировать 0
                        • КомсК
                          Комс
                          отредактировано

                          желание закончить мучения...
                          Всё-таки искусственный интеллект ))

                          Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                          1 ответ Последний ответ
                          Ответить Цитировать 1
                          • КомсК
                            Комс @Bulldozer
                            отредактировано

                            Участник @bulldozer написал в Движки:

                            Есть тесты Кошмар-2 (по наводке @Комс), которые якобы плохо решаются движками. Давайте посмотрим.
                            Прогнал эти тесты на четырёх движках: LC0 с тремя разными нейросетями и Stockfish 10.
                            Сетки, начинающиеся на J, больше по размеру, чем на T, и работают медленнее. Теоретически должны давать оценку лучше.
                            На решение отводилось 5 минут на каждую задачу.

                            Решаю: Eman 4.60 64-bit POPCNT c0:
                            Максимальное время = 300s.

                            1. Nightmare II-01 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.
                            2. Nightmare II-02 - Springerumw, Nightmare 2 - (W.Eigenmann) > 300s.
                            3. Nightmare II-03 - Initiative, Nightmare 2 - (W.Eigenmann) Решен в 223.96s/37; Решен: 1
                            4. Nightmare II-04 - Springeropf, Nightmare 2 - (W.Eigenmann) Решен в 23.73s/27; Решен: 2
                            5. Nightmare II-05 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 0.84s/16; Решен: 3
                            6. Nightmare II-06 - Endspiel D, Nightmare 2 - (W.Eigenmann) Решен в 60.34s/37; Решен: 4
                            7. Nightmare II-07 - Festung, Nightmare 2 - (W.Eigenmann) > 300s.
                            8. Nightmare II-08 - Offene Lini, Nightmare 2 - (W.Eigenmann) > 300s.
                            9. Nightmare II-09 - Patt, Nightmare 2 - (W.Eigenmann) Решен в 215.08s/32; Решен: 5
                            10. Nightmare II-10 - Endspiel T&, Nightmare 2 - (W.Eigenmann) > 300s.
                            11. Nightmare II-11 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.
                            12. Nightmare II-12 - Endspiel D&, Nightmare 2 - (W.Eigenmann) > 300s.
                            13. Nightmare II-13 - Koenigsangr, Nightmare 2 - (W.Eigenmann) Решен в 242.02s/39; Решен: 6
                            14. Nightmare II-14 - Damenopfer, Nightmare 2 - (W.Eigenmann) Решен в 56.79s/36; Решен: 7
                            15. Nightmare II-15 - Endspiel L, Nightmare 2 - (W.Eigenmann) > 300s.
                            16. Nightmare II-16 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 73.29s/33; Решен: 8
                            17. Nightmare II-17 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 49.42s/46; Решен: 9
                            18. Nightmare II-18 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.
                            19. Nightmare II-19 - Springeropf, Nightmare 2 - (W.Eigenmann) > 300s.
                            20. Nightmare II-20 - Starke Feld, Nightmare 2 - (W.Eigenmann) Решен в 39.55s/32; Решен: 10
                            21. Nightmare II-21 - Endspiel T, Nightmare 2 - (W.Eigenmann) > 300s.
                            22. Nightmare II-22 - Bauernopfer, Nightmare 2 - (W.Eigenmann) > 300s.
                            23. Nightmare II-23 - Zugzwang, Nightmare 2 - (W.Eigenmann) > 300s.
                            24. Nightmare II-24 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 2.84s/25; Решен: 11
                            25. Nightmare II-25 - Linienoeffn, Nightmare 2 - (W.Eigenmann) Решен в 28.61s/27; Решен: 12
                            26. Nightmare II-26 - Raeumung, Nightmare 2 - (W.Eigenmann) > 300s.
                            27. Nightmare II-27 - Initiative, Nightmare 2 - (W.Eigenmann) > 300s.
                            28. Nightmare II-28 - Endspiel D&, Nightmare 2 - (W.Eigenmann) > 300s.
                            29. Nightmare II-29 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 0.58s/14; Решен: 13
                            30. Nightmare II-30 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.

                            Результат: 13 из 30 = 43.3%. Среднее время = 78.23s / 30.84

                            Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                            КомсК 2 ответов Последний ответ
                            Ответить Цитировать 0
                            • КомсК
                              Комс @Комс
                              отредактировано

                              Участник @комс написал в Движки:

                              Eman 4.60 64-bit POPCNT c0

                              контемпт нулевой, сейчас сделаю дефолтный 24

                              Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                              1 ответ Последний ответ
                              Ответить Цитировать 0
                              • КомсК
                                Комс @Комс
                                отредактировано

                                Участник @комс написал в Движки:

                                Nightmare II-29 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 0.58s/14; Решен: 13

                                у меня моментально, а у Буля не решил alt text

                                Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                                BulldozerB 1 ответ Последний ответ
                                Ответить Цитировать 0
                                • КомсК
                                  Комс
                                  отредактировано

                                  Решаю: Eman 4.60 64-bit POPCNT dc24:
                                  Максимальное время = 300s.

                                  1. Nightmare II-01 - Koenigsangr, Nightmare 2 - (W.Eigenmann) Решен в 231.19s/37; Решен: 1
                                  2. Nightmare II-02 - Springerumw, Nightmare 2 - (W.Eigenmann) > 300s.
                                  3. Nightmare II-03 - Initiative, Nightmare 2 - (W.Eigenmann) > 300s.
                                  4. Nightmare II-04 - Springeropf, Nightmare 2 - (W.Eigenmann) Решен в 14.84s/26; Решен: 2
                                  5. Nightmare II-05 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 0.48s/14; Решен: 3
                                  6. Nightmare II-06 - Endspiel D, Nightmare 2 - (W.Eigenmann) Решен в 231.02s/36; Решен: 4
                                  7. Nightmare II-07 - Festung, Nightmare 2 - (W.Eigenmann) > 300s.
                                  8. Nightmare II-08 - Offene Lini, Nightmare 2 - (W.Eigenmann) > 300s.
                                  9. Nightmare II-09 - Patt, Nightmare 2 - (W.Eigenmann) > 300s.
                                  10. Nightmare II-10 - Endspiel T&, Nightmare 2 - (W.Eigenmann) > 300s.
                                  11. Nightmare II-11 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.
                                  12. Nightmare II-12 - Endspiel D&, Nightmare 2 - (W.Eigenmann) > 300s.
                                  13. Nightmare II-13 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.
                                  14. Nightmare II-14 - Damenopfer, Nightmare 2 - (W.Eigenmann) Решен в 196.81s/37; Решен: 5
                                  15. Nightmare II-15 - Endspiel L, Nightmare 2 - (W.Eigenmann) > 300s.
                                  16. Nightmare II-16 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 37.66s/30; Решен: 6
                                  17. Nightmare II-17 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 228.96s/54; Решен: 7
                                  18. Nightmare II-18 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.
                                  19. Nightmare II-19 - Springeropf, Nightmare 2 - (W.Eigenmann) > 300s.
                                  20. Nightmare II-20 - Starke Feld, Nightmare 2 - (W.Eigenmann) Решен в 104.30s/36; Решен: 8
                                  21. Nightmare II-21 - Endspiel T, Nightmare 2 - (W.Eigenmann) > 300s.
                                  22. Nightmare II-22 - Bauernopfer, Nightmare 2 - (W.Eigenmann) Решен в 204.39s/35; Решен: 9
                                  23. Nightmare II-23 - Zugzwang, Nightmare 2 - (W.Eigenmann) > 300s.
                                  24. Nightmare II-24 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 2.89s/23; Решен: 10
                                  25. Nightmare II-25 - Linienoeffn, Nightmare 2 - (W.Eigenmann) Решен в 35.38s/29; Решен: 11
                                  26. Nightmare II-26 - Raeumung, Nightmare 2 - (W.Eigenmann) Решен в 80.65s/34; Решен: 12
                                  27. Nightmare II-27 - Initiative, Nightmare 2 - (W.Eigenmann) Решен в 181.52s/41; Решен: 13
                                  28. Nightmare II-28 - Endspiel D&, Nightmare 2 - (W.Eigenmann) > 300s.
                                  29. Nightmare II-29 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 1.09s/15; Решен: 14
                                  30. Nightmare II-30 - Koenigsangr, Nightmare 2 - (W.Eigenmann) > 300s.

                                  Результат: 14 из 30 = 46.6%. Среднее время = 110.79s / 31.92

                                  Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                                  1 ответ Последний ответ
                                  Ответить Цитировать 0
                                  • КомсК
                                    Комс
                                    отредактировано

                                    один и тот же движок с разным контемптом решал разные (пусть и не совсем) кошмары, бггг
                                    Влад, в таблицу не заноси... есть у меня подозрение, что второй круг теста даст другие результаты

                                    Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                                    1 ответ Последний ответ
                                    Ответить Цитировать 0
                                    • КомсК
                                      Комс @Комс
                                      отредактировано

                                      Участник @комс написал в Движки:

                                      тест "ночной кошмар II", не помню, как по-английски
                                      Там есть даже поза из Полугаевский - Торре, 1982

                                      27 поза, Эман с контемптом решил, о-О
                                      Редкий А-В движок способен на такое!

                                      Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                                      1 ответ Последний ответ
                                      Ответить Цитировать 0
                                      • BulldozerB
                                        Bulldozer T @Комс
                                        отредактировано

                                        Участник @комс написал в Движки:

                                        Участник @комс написал в Движки:

                                        Nightmare II-29 - Endspiel T&, Nightmare 2 - (W.Eigenmann) Решен в 0.58s/14; Решен: 13

                                        у меня моментально, а у Буля не решил alt text

                                        У нас разные методики. Мой скрипт решает 5 минут, после чего пишет лучший ход, и я сравниваю его с ответом. У тебя решает, видимо, только до момента, когда правильный ответ впервые проскочит в анализе.

                                        1 ответ Последний ответ
                                        Ответить Цитировать 0
                                        • КомсК
                                          Комс
                                          отредактировано

                                          именно так

                                          Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                                          1 ответ Последний ответ
                                          Ответить Цитировать 0
                                          • КомсК
                                            Комс
                                            отредактировано

                                            Оставлю памятку о позициях, решаемых чёрными в Ночном кошмаре - 2

                                            7
                                            11
                                            13
                                            20
                                            21
                                            26

                                            чуть позже объясню зачем

                                            Я - толерантный мизантроп. Одинаково не люблю людей вне зависимости от национальности, вероисповедания и знака зодиака

                                            1 ответ Последний ответ
                                            Ответить Цитировать 0

                                            Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.

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

                                            С вашими комментариями этот пост может стать ещё лучше 💗

                                            Зарегистрироваться Войти
                                            • 1
                                            • 2
                                            • 3
                                            • 2 / 3
                                            • Первое сообщение
                                              Последнее сообщение
                                            Zugzwang Club © 2021 | контакты: support@zugzwang.club или Discord