-
SF уже давно не развивается вручную (да и другие топовые движки тоже). Большинство коэффициентов тюняться в результате большого количество тренировочных партий между собой/другими движками. Прирост силы SF результат одного китйца, который предоставил большие мощности для наигрывания этих партий (плюс и для TCEC). Сейчас появиться возможность задействовать и Lc0 для обучения SF.
Гибридные системы не очень приживаются в живом мире и в технике. Например, бомбардировщик B-36 имел 6 винтовых и 4 реактивных двигателя, но удачным не был. Хотя ансамблевые модели сейчас дают прирост в несколько процентов в Deep Learning.
Lc0 немного останавливает общность концепции — один алгоритм для всех игр. Думаю, если завести на вход NN несколько дополнительных параметров, она играла бы сильнее. Например, я предлагал считать белопольных и чернопольных слонов разными фигурами.
Убрать детские болезни тоже непросто. Что считать детской болезнью? По сути нужна ещё одна NN сеть-гипервизор.
Опять же, железо разное, и сравнивать SF vs Lc0 нечестно. Надо проводить турнир в одинаковых условиях, например ограничить потребление энергии от блока питания в 1 kW. А там используюй что хочешь :)
-
> Опять же, железо разное, и сравнивать SF vs Lc0 нечестно. > Надо проводить турнир в одинаковых условиях, например ограничить > потребление энергии от блока питания в 1 kW. А там используюй > что хочешь :)
а lc0 на gpu играет? тогда может быть и так
-
> а lc0 на gpu играет? тогда может быть и так
На TCEC Lc0 Да, на GPU, причём достаточно топовая конфигурация. А так играет и на CPU, но очень слабо.
-
> А так играет и на CPU, но очень слабо
то есть фактически gpu vs cpu? И что больше энергии жрет?
-
> SF уже давно не развивается вручную (да и другие топовые > движки тоже). Большинство коэффициентов тюняться в результате > большого количество тренировочных партий между собой/другими > движками
не ну сам коэффициент вносится вручную же? а у lc0 динамически определяется
-
> не ну сам коэффициент вносится вручную же?
я так понимаю в sf реализовано что-то типа этого только больше коэффициентов https://habr.com/ru/post/305604/но вот чтобы иметь новый коэффициент - его нужно явно определить в lc0 динамическое определение коэффициентов и внесение в свою текущую сеть, я так понимаю их там может быть тысячи и тысячи, а у стокфиша только столько сколько определили разработчики в коде.
-
> то есть фактически gpu vs cpu? И что больше энергии жрет?
Нет, просто матричный вычиления лучше ложаться на GPU, вот и весь сказ. Ну и GPU жрёт больше энергии, но там тысячи ядер.
> не ну сам коэффициент вносится вручную же? > а у lc0 динамически определяется
Вот поэтому у SF коэффициентов тысячи, а у Lc0 миллионы. Но в целом аналогично SF, в случае надо ещё задать модель нейронной сети. Тут тоже возможны нюансы — неправильно задашь — не обучишь ничему.
Подход SF: давай подумаем какие коэффициенты и эвристики будут полезны. Запрограммируем их. Подход Lc0: создадим сеть с десятью миллионам коэффициентов, а сеть сама решит, какие из них чему надо присвоить.
-
> Подход SF: давай подумаем какие коэффициенты и эвристики > будут полезны. Запрограммируем их. > Подход Lc0: создадим сеть с десятью миллионам коэффициентов, > а сеть сама решит, какие из них чему надо присвоить.
вот я про то и говорю у sf человеческий фактор выбирает какие коэффициенты внести, и я думаю что есть вероятность пропустить что-то новое, lc0 же это новое усиленно ищет. Поэтому тут два варианта развития противостояния - либо lc0 найдет что-то новое и уйдет в отрыв, либо lc0 найдет, но стокфиш возьмет это найденное вовремя на вооружение и шансы сравняются...
-
когда вообще суперфинал начинается?
-
Закончится кубок, начнёться...
> и я думаю что есть вероятность пропустить что-то новое, > lc0 же это новое усиленно ищет.
Ну... это неправильный взгляд на вещи. Найти что-то новое это немного неправильно. Даже если Lc0 уйдёт в отрыв, то человек всё равно не сможет понять, что же именно нашла Lc0.
Повторяю, у SF 1000 коэффициентов, которые добавили люди исходя из понимания работы движка. У Lc0 миллионы коэффициентов, которые добавили исходя из понимания работы нейросети. Понятно, что миллион коэффициентов дадут более точное понимание позиции, но это дополнительное время на выбор хода.
Есть ещё интересный движок Komodo MCTS, который исползует технику случайных доигрываний Monte Carlo, как и Lc0, но у него ходы кандидаты выбираются исходя из анализа позиции по alpha-beta. Движок достаточно интересный, за год развития уже практически вошёл в TOP-5. В перспективе ставлю на него :)
-
> Есть ещё интересный движок Komodo MCTS, который исползует > технику случайных доигрываний Monte Carlo, как и Lc0, но > у него ходы кандидаты выбираются исходя из анализа позиции > по alpha-beta. Движок достаточно интересный, за год развития > уже практически вошёл в TOP-5. В перспективе ставлю на него
так вот получается что он гибридный :) А говорил что это плохо
-
> так вот получается что он гибридный
Гибридный, это когда мы берём два движка, которые играют одинаково сильно, и строим из них третий. Тут же alpha-beta специфический, его задача получить не только оценку, но и достоверность. Сам по себе этот alpha-beta хорошо играть не умеет.
-
> Гибридный, это когда мы берём два движка, которые играют > одинаково сильно, и строим из них третий
при чем здесь сила движков. Тут речь об идеях. Берем две идеи сильных движков и получаем третий движок. А как ты говоришь (я не знаю) KomodoMCST как раз использует и alpha-beta и mcst, это как раз две разные идеи, которые используются в современных движках...
-
MCTS состоит из двух частей. Первая — надо каждому ходу прописать начальные вероятности. Вторая — доигрывания. Собственно говоря, прописать вероятности можно при помощи разных техник, A0 делала это при помощи нейросети, и то, в общем от этого они отошли, поэтому их перебор сложно назвать MCTS сейчас. Можно прописывать вероятности рандомом (так я делал в шашках), можно при помощи alpha-beta можно ещё как. Это не гибридность, мотому что алгоритм MCTS мы не меняем. Мы просто изпользует разные запасные части.
Гибридность когда у нас есть два движка, и мы пытаемся их искусственно объединить. Например, у нас есть Lc0, и есть SF10. Мы пытаемся из объединить, оцениваем позицию двумя движками параллельно, а потом пытаемся принять решение. Например, выбираем ход нейросетью только из ходов, которые SF10 оценивает не более чем минус пешка от оптимального. Ну и тут куча вопросов, в ряде позиций это предотвратит зевки, в ряде позиций это заставит пройти мимо выигрыша...
-
> Mystic
не хочешь матч по шахматам устроить?
-
> не хочешь матч по шахматам устроить?
Между кем?
-
> Между кем?
как хочешь можно со мной блиц 1+5, 1+7 или 3+5. Можно адванс с движками тоже интересно будет.
-
Я больше 3+2, но сложно предугадать, когда бывает свободное время.
-
> сложно предугадать, когда бывает свободное время
ну ты дай знать, когда будешь готов у тебя скайп или телеграм есть?
-
Telegram: mustitz
|