В прошлом месяце покерный бот, написанный учёными из университета Карнеги – Меллон, обыграл четырёх игроков, входящих в элиту безлимитного холдема один на один. Винрейт машины превысил 14 больших блайндов на 100 раздач на дистанции 120,000 рук, что составило почти 90 бай-инов.
По словам одного из создателей программы, аспиранта университета Карнеги – Меллон Ноама Брауна, Либратус – «священный Грааль покерного искусственного интеллекта». Ранее программам не удавалось побеждать игроков в покер мирового уровня.
Журналист Card Player Брайан Пемпус поговорил с Брауном о главных отличиях Либратуса от Клодико – предыдущей версии бота тех же авторов, возможных путях дальнейшего улучшения программы и о том, когда компьютеры смогут побеждать сильнейших представителей человечества в 6-макс.
– Удивил ли вас итог матча?
– Да, меня удивило, насколько большим оказалось преимущество ИИ. Перед матчем мы тестировали его против предыдущих версий бота. У Клодико Либратус выигрывал примерно 10-12 бб/100 – результат, очень близкий к показанному командой во главе с Дугласом Полком в матче 2015 года. Поэтому в новом матче мы рассчитывали всего лишь на небольшой перевес. Но Либратус превзошёл наши ожидания!
– То есть до матча вы не ожидали, что компьютер уже готов громить людей с винрейтом 14 бб/100?
– Просто мы недооценили, насколько сильно повлияло на исход матча с Клодико применение соперниками резких эксплуатирующих линий. В частности, очень эффективными оказались рэйзы лимпов машины – именно эти банки составили значительную часть выигрыша Полка и компании. Либратус же, играя против Клодико, не пытался использовать эксплуатирующие стратегии, и то, что он всё равно выигрывал 10-12 бб/100, должно было подсказать нам, что он значительно сильнее людей. Конечно, в том случае, если у него не было столь же явных слабостей, как у его предшественника. Именно это и стало причиной победы Либратуса в новом матче – соперники не сумели найти дыры в его стратегии.
– Не было ли ощущения, что дыры всё же нашлись, когда люди сумели после стартовых неудач почти сравнять счёт?
– Действительно, к концу первой недели счёт почти сравнялся. Наши соперники искали сильные и слабые места ИИ, а также пытались понять, как именно он подстраивается под их действия. Они не всегда делились с нами своими идеями, но та часть, которую я слышал, большой тревоги не вызвала. Одни из найденных ими слабостей машины были подлинными, другие – мнимыми. Например, в какой-то день они начали играть с 3-бетом 80%, так как посчитали, что ИИ неправильно реагирует на один из сайзингов 3-бета. На самом деле никакой ошибки не было – игроков ввёл в заблуждение шум, возникший из-за малых размеров выборки.
Были и удачные находки – в частности, не лучшая реакция Либратуса на некоторые размеры префлоп-рэйза. Перед соревнованием мы не считали слабость серьёзной, но на дистанции утечка оказалась довольно существенной. К счастью, мы готовили программу к подобной ситуации, и по ночам, когда соперники спали, она тренировалась, устраняя пробелы в подготовке. Именно поэтому со второй недели игра пошла в одни ворота.
– Значит, решающее значение приобрела тонкая настройка бота после сессий? Из каких соображений это делалось – потому что соперники могли обсуждать стратегию между собой?
– Нет-нет, мы не занимались тонкой настройкой, не предписывали Либратусу чаще 4-бетить или фолдить. Всё было немного иначе. Смотрите: перед матчем мы запрограммировали несколько сайзингов рэйза. Либратус знал, как реагировать на рэйзы в 2 бб, 2.5 бб, 3 бб... Но если соперники открывались 2.75 бб, машина округляла это число до трёх и отвечала по стратегии для рэйзов в 3 бб, что, разумеется, не может быть оптимальным. Однако между сессиями Либратус начинал тренироваться, играя сам с собой рэйзами 2.75 бб или другими (не только на префлопе, но и на флопе), которые выбирались алгоритмом, учитывавшим частоту действий соперников и «удалённость» их сайзингов от посчитанных ранее. Этот процесс – единственная подстройка, которая использовалась искусственным интеллектом во время матча. Его значение, конечно, огромно – машина не позволяла оппонентам использовать одни и те же эксплуатирующие приёмы. Сама программа не менялась, она лишь училась работать с новыми сайзингами.
– Подстройка на префлопе и флопе важнее, чем на тёрне и ривере?
– Просто она требует значительно больше времени. Тёрн и ривер Либратус рассчитывал в реальном времени прямо по ходу раздач. Каждый раз, когда соперники делали ставку на тёрне или ривере, ИИ пересчитывал свою стратегию в зависимости от сайзинга.
– Отличался ли он в этом от Клодико? Или у Клодико был такой же модуль, но менее совершенный?
– У Клодико был аналогичный модуль для ривера, но намного менее совершенный. Самое главное – он вообще не учитывал блокеры. Чтобы ускорить расчёты, мы группировали похожие руки в категории и строили для них одинаковую стратегию. Но туз-хай с тузом пик на доске с тремя пиками – совсем не то же самое, что туз-хай с тузом треф. Также солвер Клодико не строил стратегию в зависимости от ставки соперника, а считал несколько разных сайзингов. Думаю, переход на уникальные карты и расчёт тёрна и ривера в реальном времени дали Либратусу решающее преимущество. Конечно, это потребовало очень серьёзной работы над алгоритмом, ведь при подсчётах на тёрне машина должна рассмотреть почти полсотни вариантов ривера – дерево расчёта растёт по экспоненте!
– Насколько далёк Либратус от совершенной GTO-стратегии? Сколько ещё версий этой программы вы планируете выпустить?
– Насколько наша стратегия слабее оптимальной, не скажет никто. Мы в принципе знаем, как это посчитать, но такие расчёты стоят слишком дорого, поэтому ими пока не занимались. Может быть, попробуем в будущем году. Предположил бы, что идеальный GTO-бот выиграет у Либратуса 15 бб/100 – вернее, от 5 до 50 бб/100.
– Ого, неужели программа так далека от совершенства?
– Сложно сказать наверняка. ИИ предыдущих поколений не принимали в расчёт блокеры, а это крайне важная концепция для игры на высоком уровне. У Либратуса нет этой проблемы. Также он научился пересчитывать тёрн и ривер в реальном времени. На этих направлениях двигаться дальше уже некуда. Подозреваю, что усилить игру можно более грамотным выбором сайзингов, а вот насколько...
– Много говорилось о том, как агрессивно играет Либратус, как часто ставит овербеты на тёрне и ривере. Достигла ли программа совершенства в балансировке диапазонов в таких ситуациях или её тоже можно улучшить?
– Овербеты ИИ стали для нас одним из сюрпризов. При обучении Либратус не использовал ни одной раздачи, сыгранной людьми, поэтому стратегия, которую он счёл оптимальной, оказалась настолько нетипичной и непривычной для людей: огромные овербеты и донкбеты! Очень волнующе и приятно было наблюдать, как ИИ использует линии, по большому счёту не встречавшиеся в практике покерных профессионалов.
Клодико тоже пришёл к чему-то похожему – помните его дикие олл-ины в крошечных банках? Но в этой части его стратегии встречались ошибки, она не была сбалансированной. Либратус же продемонстрировал сбалансированную агрессию, что и стало ключом к победе.
– В свете результата матча многих беспокоит будущее онлайн-покера. Можно ли использовать вашу программу для нечестной игры?
– Уверяю, что мы не играем с Либратусом в интернете и не планируем делать это в будущем. Но очевидно, что это не остановит людей, готовых использовать описанные нами технологические идеи для усиления собственных ботов. Не готов рассуждать на тему онлайн-покера, потому что не слишком в нём разбираюсь. Знаю только, что ботов активно применяют при игре в онлайне, а покерные румы ведут с ними борьбу, но кто из них побеждает, мне неизвестно.
– Если бы глубина стеков в вашем матче была выше или ниже, чем 200 блайндов, как это повлияло бы на его исход? Смогла бы машина справиться со стеком в 500 или 1,000 блайндов?
– Мы выбрали 200 блайндов, потому что именно такая глубина используется в ежегодном чемпионате по покерному программированию. Компьютерам тяжело работать с таким глубоким стеком из-за разрастания дерева вариантов. Также, насколько мне известно, 200 бб являются предельной заявкой на большинстве столов для кэш-игры. Считаю, что мы выбрали подходящие условия – честные и сложные для машины. В стеках 100 бб она бы точно показала винрейт не хуже, а то и лучше. Что же касается стека в 500-1,000 блайндов... Честно говоря, думаю, что результат компьютера бы улучшился, но в основном за счёт слабости соперников, почти не имеющих опыта игры в такой глубине. Овербеты Либратуса стали бы ещё выгоднее.
– Куда двинется покерный ИИ дальше? За пределы хэдз-апа?
– Кое-какие исследования игры в формате 3-макс уже проводились. В целом методы, которые мы использовали при создании Либратуса, годятся и за пределами хэдз-апа. Правда, появляется новая проблема – оценки полученного результата. Когда за столом больше двух человек, вы можете играть по оптимальной стратегии, но проигрывать, потому что соперники сотрудничают, вольно или невольно. Поэтому если посадить ИИ за стол к пятерым игрокам – людям, непонятно, как корректно посчитать результат.
Думаю, сейчас 6-макс находится слегка за пределами того, что может Либратус и другие похожие на него боты. Однако ежегодный чемпионат среди покерных программ вводит лигу для игры за коротким столом, и несложно предположить, что активность программистов возрастёт и наука будет продвигаться весьма быстро. Думаю, после внесения незначительных изменений в Либратус мы смогли бы научить его обыгрывать людей в 6-макс через два года. Но пока не вполне ясно, стоит ли играть по GTO или идеально подстраиваться и максимально эксплуатировать слабых игроков. Первое – прерогатива компьютера, но второе люди пока умеют делать лучше машин.
В оффлайне играли недавно, знакомый "уважаемый игрок" высказался очень интересно относительно игры в интернете: "А я играл на покердоме, но вы бля читали новости? Написали программу которая даже самых крутых про обыгрывает, в рот ебать этот онлайн".
Раньше они только предполагали что гсч подкручен, а теперь - уверены на 100% что их обыгрывают боты.
Даже сам факт информационного шума вокруг этого события - уже портит поляну.
все понятно, покеру осталось 2 года(с)
- и я сразу успокоился
Некогда объяснять, скажите, где можно скачать рабочую версию бота?
А где можно взглянуть на ники и графики четырёх игроков, входящих в элиту безлимитного холдема один на один?
------------
Самое главное – он вообще не учитывал блокеры. Чтобы ускорить расчёты, мы группировали похожие руки в категории и строили для них одинаковую стратегию. Но туз-хай с тузом пик на доске с тремя пиками – совсем не то же самое, что туз-хай с тузом треф. Также солвер Клодико не строил стратегию в зависимости от ставки соперника, а считал несколько разных сайзингов.
-------
Пипец, клодико был школьной поделкой для нл100, не вишу, и то вполне вменяемо сопротивлялся Полку и Ко.