Месяц назад я брал интервью у разработчиков Рыбки Аквариум, новой оболочки, созданной специально для Рыбки. Сегодня мы поговорим с двумя создателями собственно Рыбки - Васиком Райлихом и Ларри Кауфманом. Пока что они работают над совершенно новой версией, Рыбкой 3, которая разрабатывается уже почти год. В Рыбке 3 будут не только улучшены понимание позиций и общая сила игры по сравнению с Рыбкой 2.3.2а, но и добавлена поддержка шахмат Фишера (рандом) и постоянного хэша.
Q1: Необычно видеть, что два человека одновременно работают над одним и тем же шахматным движком. Когда вы впервые начали работать вместе и почему?
Ларри Кауфман Ларри: Хотя Васик использовал идеи из моей статьи "Об оценке позиций с нарушенным соотношением материала" (Chess Life, 1999 год) в Рыбке, наша совместная работа началась в конце 2006 года, а с начала 2007 я стал официальным членом команды. Я работаю в компьютерных шахматах с 1967 года, когда я еще был студентом Массачусетского технологического института. Я был "тренером" и автором дебютной книги для MacHack, первого компьютера, который принимал участие в турнирах среди людей. В конце 80х и начале 90х я работал вместе с Доном Дейли над несколькими шахматными программами, такими как RexChess и Socrate, показавших отличные результаты в различных соревнованиях против международных гроссмейстеров. Я не программист (лучшее, что я смог создать - крестики-нолики), но я знаю достаточно много о компьютерных шахматах и, в частности, о том, как оценить позицию в числовом формате. Моя работа в Рыбке достаточно проста по сравнению с той, которую я выполнял с Доном Дейли: в основном, определить значения всех переменных оценочной функции и найти новые. Двадцать лет назад вся наша работа основывалась лишь на предположениях, а сейчас любое изменение в программе тщательно тестируется. Это важный фактор, благодаря которму мы быстро наращиваем силу игры компьютеров.
Васик Райлих Васик: Я был хорошо знаком с работами Ларри еще до 2003 года, а формально мы начали работать вместе примерно с января 2007. Наше разделение труда довольно простое: Ларри отвечает за создание оценочной функции и балансировку ее параметров, я делаю все остальное. Ларри - это огромная поддержка для нашей команды, потому что у него есть солидный опыт работы в области компьютерной оценки позиции.
Q2: Также непривычно видеть двух сильных игроков, разрабатывающих шахматный движок, а ведь вы оба международные мастера. К тому же Ларри опытный тренер. Смогли бы вы с тем же успехом развивать Рыбку без этой поддержки?
Ларри: Моя работа в команде Рыбки сильно зависит от шахматного мастерства. С тех пор как я присоединился к команде, Васик сосредоточился на улучшении переборного алгоритма и почти не использует свои шахматные способности. Это понятно, т.к. его нынешняя работа требует только общего понимания того, как выбирать ходы. И даже до того, как я начал работать здесь, Васик все равно предпочитал доверять оценке компьютера, а не своему собственному, основанному на понимании шахмат, мнению.
Васик: Это очень интересный и сложный вопрос. Как обычный игрок, я никогда не пытался разделить игру на какие-то отдельные составные части. Я просто пытаюсь обыгрывать своих соперников (смеется). Я не имел четкого структурированного представления о шахматах до того, как начал работать над Рыбкой. Любой алгоритм в компьютерных шахматах, неважно, поисковый или оценочный, в какой-то степени основывается на человеческом понимании шахмат. В окончательной форме он выглядит совершенно по-другому, но это та самая связь между тем, как человек играет в шахматы и тем, как играет запрограммированный им движок. Разумеется, эта связь невероятно сложна.
Q3: Что вы скажете о влиянии Рыбки на вашу шахматную карьеру?Ларри: Похоже, помогает. Я достиг лучших результатов за много лет, несмотря на мой возраст (а мне уже 60), выиграв турнир в Мэриленде и чемпионат США среди ветеранов в течение одной недели.
Васик: Прошло очень много времени с тех пор, когда я имел какие-то амбиции или играл в турнирах. Шахматы - жестокий спорт.
Q4: Вы оба достаточно активны на Рыбкафоруме, и ваше участие очень важно для пользователей. Есть ли обратный эффект для развития Рыбки?Ларри: Примерно раз в месяц или около того я встречаю идею, которая помогает в моей работе.
Васик: Да, безусловно. Некоторые пользователи предлагают интересные идеи. Также полезно поддерживать контакт с экспертами на форуме, и знать, о чем они думают. И конечно, чтение дискуссий на форуме - отличный способ побездельничать (смеется).
Ивета и Васик Райлих Q5: Кто еще входит в команду Рыбки?Васик: Ивета наш главный тестер. Она использует последнюю (приватную) версию Рыбки по нескольку часов в день для анализа и постоянно сообщает мне о найденных мелких багах и ошибках.
Д. Нумен - автор нашей дебютной книги. Его книга используется Рыбкой в турнирах, и также включена в сборку программного обеспечения, предоставляя пользователям теоретическую поддержку.
Jeroen Noomen На эту тему может быть сказано очень многое. Я ограничусь только краткими комментариями.
Jeroen справляется со своей работой просто отлично; то, что он в команде - огромная поддержка для нас. Турнирный рекорд Jeroen невероятен: более чем в ста турнирных играх против лучших создателей дебютных книг со всего мира, невероятно глубокой и содержательной домашней подготовки, мы никогда не получали позиций, худших чем равные белыми и худших чем стартовая позиция черными. Добавьте к этому около дюжины побед по книге и десятки партий с большим перевесом при выходе из дебюта.
У Jeroen, как и у Ларри, за плечами большой опыт - около двадцати лет. Он выиграл несколько десятков высокорейтинговых турниров.
В турнирах среди шахматных программ значение дебютной части партии очень велико. Как правило, чем сильнее соперники, тем важнее дебютная подготовка. Так что неудивительно, что если вы хотите выигрывать партию против соперника с рейтингом 3000+ ЭЛО, то вы должны выигрывать прежде всего дебютное сражение.
Дебютные книги, доступные пользователям, - бесценный источник новейших достижений теории. Дебютная теория - это та часть шахмат, которую меняем именно мы. Конечно, какие-то книги представляют собой сборник хлама из баз партий движков и, возможно, это устраивает некоторых пользователей. Но действительно хорошие дебютные книги, как новая книга для Аквариума, содержат последние достижения дебютной теории из разных источников и также результаты некоторых собственных исследований. Хорошая книга также должна быть хорошо структурирована и удобна в использовании, чтобы пользователю с первых ходов было понятно, какой вариант сейчас предпочитают.
Felix Kling Также у нас работают два вебмастера, Феликс и Кристоф Клинг из немецкого Игельхейма. Кристоф разработал первую версию нашего сайта, используя собственные технологии, а Феликс с тех пор поддерживает и улучшает сайт.
Q6: Вы извлекли что-нибудь ценное из матчей Рыбки против гроссмейстеров? Можете ли вы применить это для улучшения ее игры?Ларри: Каждый матч дает нам что-то полезное. Обычно это не так уж много, один или два пункта ЭЛО, но я думаю, что в таких матчах намного важнее развитие чувства активной игры, умения избегать ничьих как части современной оценочной функции. Я надеюсь, что против Рыбки 3, где мы реализовали этот замысел, мы больше не увидим людей, которые станут перегораживать доску пешечными цепями и таким образом добиваться ничьи. Во всяком случае, сделать это будет намного сложнее.
Васик: Это работа Ларри. Несмотря на то, что он скажет, я думаю, это касается общей способности Рыбки играть активнее, в зависимости от настроек.
Q7: Работа над оценочной функцией Рыбки ведется только в определенном направлении или это полный пересмотр всех ее параметров?Ларри: Мы полностью пересмотрели ее. Изменены не только большинство параметров, но и добавлено множество новых, так что ее размер вырос примерно вдвое.
Васик: Работа над оценкой возложена на Ларри. Он работает очень последовательно, постоянно проводя небольшие, но существенные улучшения. После года такой работы он создал новую систему оценку позиции.
Q8: Что вы назовете самым существенным улучшением в оценочной функции новой Рыбки по сравнению со старой?Ларри: Активная игра, и все что с ней связано, очень важны в игре против людей, хотя против компьютеров эти улучшения не дали нам и 5 пунктов ЭЛО. Вот остальные изменения:
- Улучшена игра в эндшпиле;
- Пересмотрено определение смены стадии игры;
- Значительно улучшено понимание пешечных структур;
- Введены особые параметры для оценки расположения фигур по сравнению с неприятельскими;
- Более четкое определение мобильности фигур;
- Значительно улучшена защита короля;
- Повышено значение короля в эндшпиле.
Этот список исчерпывающий.
Васик: Это вопрос к Ларри. Там не будет одного большого изменения - скорее множество мелких. Мы наверняка подготовим список изменений ближе к релизу Рыбки 3, т.к. это будет интересно многим пользователям.
Q9: Основываясь на улучшении оценки и других изменениях, насколько новая Рыбка будет сильнее версии 2.3.2а?Ларри: Сложный вопрос по двум причинам. Прежде всего, улучшенная оценочная функция сильно замедлила программу. Если не брать в расчет скорость, усиление довольно значительно, около 100 пунктов; но все это не совсем верно. Когда я играл в пулю новой версией против мультипроцессорной 2.3.2а, я получил усиление в +50-60 пунктов. Поскольку я не занимаюсь работой над алгоритмом поиска, я не знаю, лучше он или хуже, чем в старой версии. Думаю, они примерно сопоставимы. Так что можно прикинуть прирост рейтинга в играх против прошлой версии. Я полагаю, что прирост ЭЛО только за счет этого фактора немного уменьшится в играх против других движков, и я оцениваю его примерно в +40 пунктов. В играх против людей он уменьшится еще значительнее, до +30. В целом, чем более непохожи друг на друга соперники, тем меньше прирост рейтинга от каждого отдельного улучшения.
Васик: Это снова вопрос к Ларри. Оценка значительно улучшилась - она стала более точной в большинстве позиций, хотя, конечно, далеко не в каждой. Параметры оценочной функции подобраны точнее, и то, как они взаимодействуют друг с другом, исследовано нами намного лучше, чем раньше.
Q10: Что скажете об улучшениях в алгоритме поиска?Васик: Мне сложно сказать что-либо конкретное по этому поводу. Во-первых, изменения в поиске вообще сложно описать, во-вторых, все, что я сделал, находится в разобранном состоянии, и я пока не видел, как это работает одновременно.
В общем, поиск будет более эффективным: подходящие варианты будут анализироваться глубже, а остальные быстрее отсекаться. Я особо подчеркиваю тактическую силу Рыбки и ее способность эффективно анализировать неясные, иррациональные позиции, которые до сих пор были слабым местом движка.
Q11: Мультипроцессорная Рыбка активно используется сильнейшими очными игроками, переписочниками, создателями дебютных книг и фристайлерами. Какое усиление дает движку игра на нескольких ядрах?Ларри: Вы уже знаете, что в версии, которая играла в Мехико, распараллеливание было улучшено, и последние 4 тура использовалась уже модифицированная программа. Я не знаю, работал ли с тех пор Васик в этом направлении.
Васик: Это было моей основной задачей весь прошлый год. Я потратил около шести недель только на это. Я пока не расскажу точно, но сейчас Рыбка распаллеливается намного лучше. Думаю, в финальной версии это будет самый эффективный многоядерный движок.
Зима 2005 года. Васик работает над бета-релизом Рыбки. Q12: Вы все еще рекомендуете 64-битные операционные системы для Рыбки?Ларри: Для Рыбки использование 64 бит равносильно использованию в 1.7 раза более быстрого процессора. Это даст около +50 ЭЛО в играх против старой версии, и чуть меньше в играх против других движков и людей.
Васик: Рыбка работает в 1.6-1.7 раза быстрее на 64-битных ОС по сравнению с 32-битными. Обновить версию с 32х- до 64х-битной ОС - самый простой и дешевый способ увеличить компьютерную мощь.
Q13: Рыбка предоставляет некоторые уникальные возможности, недоступные для остальных движков, такие как матчи разных версий Рыбки друг против друга (Randomizer match). Вы планируете улучшать процедуру проведения подобных матчей в Рыбке 3?Ларри: Да, мы доработаем эту возможность в Рыбке Аквариум. Без этого такие матчи почти не проводились большинством пользователей. Тем не менее, никаких крупных изменений не будет. В Рыбке 4 мы планируем реализовать что-то вроде метода Монте-Карло во время бесконечного анализа. Пользователи смогут оценить результаты нашей работы в этом направлении через два или три года.
Q14: Постоянный хэш - очень полезная опция в Рыбке 3. Расскажите о нем подробнее.Васик: Этот вид хэширования - обычная постоянная память программы. Он позволяет Рыбке помнить свой предыдущий анализ. Здесь у нас широкие планы. Например, мы хотели бы позволить пользователям распространять хэшированный анализ, работать с ним различными инструментами и т.д.
Q15: Команда "Установить позицию" (Set position) из UCI-протокола позволяет вручную установить оценку позиции в хэш, так чтобы Рыбка всегда использовала ее при дальнейшем анализе. Планируете ли вы развивать эту функцию в Рыбке 3, в связи с возможностью постоянного хэширования?Васик: Да. Прикрутить такую фичу - пара минут работы. Другой вопрос, будет ли поддерживать эту функцию оболочка, и найдут ли ее интересной пользователи.
Q16: Каково практическое применение Бесконечного анализа для пользователей?Васик: Постоянный хэш позволяет движку помнить свой предыдущий анализ. Он делает оценку более стабильной и позволяет избежать некоторых ошибок. Кроме пользы непосредственно в процессе анализа, он может быть использован авторами дебютных книг для точной оценки позиций на границе дебюта и миттельшпиля, чтобы окончательно решить, разрешить или запретить использовать той или иной вариант. Также существуют другие интересные и содержательные возможности использования постоянного хэша, о которых я не рассказывал в этом интервью. Вы можете изучить архивы Рыбкафорума для получения детальной информации.
Q17: Рыбка Аквариум сохраняет результаты бесконечного анализа на жестком диске. Эта оболочка также предлагает интерактивный анализ (IDeA) для более глубокого анализа определенной позиции. Интерактивный анализ может использовать результаты запущенного ранее бесконечного анализа. Результаты интерактивного анализа сохраняются в дереве вариантов, так что вы можете остановить его когда захотите и продолжить либо с точки окончания, либо с любой позиции созданного дерева. Пользователи могут обмениваться результатами интерактивного анализа и объединять созданные деревья. Также с помощью IDeA могут создаваться дебютные книги. Все это стало возможным благодаря постоянному хэшу. Эти возможности будут и дальше развиваться через интерактивный анализ?Васик: Я внимательно не изучал интерактивный анализ, так что это вопрос к разработчикам Конвекты. В целом, существует определенная разница между IDeA и постоянным хэшем, но я уверен, возможности интерактивного анализа будут развиваться и дальше.
Q18: Было несколько релизов Рыбки версии 2.х. Почему вы решили перейти в будущем к единственному, главному релизу?Сейчас мы работаем гораздо более профессионально. Каждая новая версия тщательно тестируется и дорабатывается. Мы предоставляем широкой общественности только ту версию, которой мы полностью удовлетворены.
Тем не менее, концепция создания WinFinder достаточно интересна, и в третьей версии вы увидите подобную модификацию Рыбки. Если я смогу выделить хотя бы две недели на разработку Rybka 3 WinFinder, то все будет сделано как следует.