将棋のプロ棋士である広瀬章人八段向けに「最強の将棋AIマシン」を組むべく奔走する本連載。前回は、プロ棋士の間でコンピュータを使った研究が本格化していること、必要な演算装置には多コアCPUである米AMDの「Ryzen Threadripper」や並列計算の多いAI処理に向いたGPUがあることを紹介した。
今回注目するのは、「CPU計算による将棋ソフト」と「GPU計算による将棋ソフト」のいまの実力と、それにつながる技術的な変遷についてだ。
コンピュータ将棋がプロに勝った日 その技術は“AIブーム”にあらず
コンピュータ将棋の歴史は長く、コンピュータ将棋協会が主催する「世界コンピュータ将棋選手権」の第1回は1990年に開催されている。連綿と紡がれた歴史を全て振り返るのは1本の記事では難しく、ここでは公式戦でコンピュータが現役プロ棋士に初めて、平手で勝利を収めたところから始めたい。
2013年3月から4月にかけて行われた、ドワンゴと日本将棋連盟主催の「第2回将棋電王戦」。5人のプロ棋士と5つのコンピュータ将棋ソフトが平手で勝負というコンセプトで、結果はプロ棋士側が1勝、コンピュータ側が3勝、1引き分け。この第2局で、佐藤慎一四段(当時)に勝ったのが将棋ソフト「Ponanza」(ポナンザ)だ。これが「コンピュータ将棋による現役プロ棋士に対する初めての公式戦勝利」といわれる。
もっとも、この後の第3局では「ツツカナ」が船江恒平五段(当時)に、第5局では「GPS将棋」が三浦弘行八段(当時)に勝利を収めている。Ponanzaが特に有名ではあるが、コンピュータ将棋全体の積み重ねが一つのマイルストーンに到達したと見るのがいいだろう。
ここでまず指摘したいのは、勝利した将棋ソフトはいずれもCPUで計算していることだ。近年のAIの特徴や、英DeepMindの囲碁AI「AlphaGo」のイメージから「人間に勝ったAIはディープラーニングなんでしょ?」という印象を持つこともありそうだが、AlphaGoが頭角を現したのは2015年。いわゆる第3次AIブームの火付け役となった論文が出たのは12年。米NVIDIAのGPUプログラミング環境である「CUDA」の提供開始も07年で、コンピュータ将棋の歴史から見れば“新しい技術”といえる。
コンピュータ将棋は、現在の「GPU+ディープラーニング」的なAIブームとは独立した研究の中で育まれてきたのだ。
DL系「AlphaZero」が強豪将棋ソフト「elmo」に圧倒
コンピュータ将棋にニューラルネットワークを持ち込む考え方も、なかったわけではない。先の第2回将棋電王戦の第1局で敗北した「習甦」(しゅうそ)は評価関数に3層のニューラルネットワークを採用していた。
最強の名をほしいままにしていたPonanzaは、2017年5月の第27回世界コンピュータ将棋選手権に、プリファード・ネットワークスのライブラリ「Chainer」でディープラーニングを実装した「Ponanza Chainer」として参加した。Intel Xeon22台、グラフィックスカード「GeForce GTX Titan X」128枚、総メモリ4.8TBという文字通りの化け物スペックも用意したが、同大会の優勝ソフト「elmo」(Xeon E5-2686 v4、メモリ256GB)に敗北を喫することになる。
そんなelmoに勝ったとして話題になったのが、DeepMindの「AlphaZero」だ。人間の対局データを使わずに以前のAlphaGoより強くなった「AlphaGo Zero」の汎用バージョンで、たった2時間の学習でelmoに対し90勝8敗2分という成果を上げたと、同社が17年12月に発表した。
ただし、将棋ソフト「やねうら王」作者であるやねうらお(磯崎元洋)さんは自身のブログで「従来の将棋ソフトを圧倒的に追い抜いたのかについては若干の疑念がある」と指摘。AlphaZeroの学習には米Googleの専用計算ハードウェア「TPU」が大規模に使われていることから「教師を作るのに使用している計算資源がわれわれより2桁くらい多いように思う」としていた。
いずれにしても、ディープラーニングで実装されたAIが、従来の将棋ソフトのトップに勝ったのはやはり一つの区切りといえそうだ。そしてこの頃から、21年時点の“CPU最強”と“GPU最強”が胎動を始める。
CPUで高速動作するニューラルネットワーク評価関数「NNUE」
elmoを含め、18年までの将棋ソフトの多くは王と任意の2駒の配置を評価する「三駒関係」(KPP)、あるいはそれに手番を加えた「KPPT」という評価関数を使ってきた。これは線形和(すごくざっくり言うと単純な足し算)で評価値を表せることから、局面と局面の差分を計算するのが簡単で、局面をたくさん計算するのに長けていた。
ただ現実には、駒同士の特定の位置関係が常に同じ価値を持つとは限らない。こうした三駒関係の表現力の課題に目を付けて開発されたニューラルネットワーク型評価関数が「NNUE」だ。
NNUEは、医療機器ソフトウェア開発メーカーのザイオソフト(東京都港区)のコンピュータ将棋サークルメンバー、那須悠さんが開発した評価関数で、将棋ソフト「the end of genesis T.N.K.evolution turbo type D」に実装の上で第28回世界コンピュータ将棋選手権(18年5月)に参加。優勝こそ逃したが、5位という好成績で独創賞も受賞。この後、elmoや“CPU最強”「水匠」(すいしょう)などがNNUEをベースにした評価関数を実装していくことになる。
那須さんが同大会に向けて書いたアピール文書によれば、NNUEは非線形なニューラルネットワークを扱いながらも、ある局面と次の局面の差分計算を処理の一部で利用したり、効率的なメモリアクセスパターンを採用したりすることで高速性を実現したという。さらに、CPUが実行できる並列処理命令の一つである「SIMD」演算で高速に計算できるように設計したとしている。
NNUE登場以後について、ブログ「現代振り飛車ナビ」管理人の二歩千金さんは自身のブログで「複数のプログラマーさんの手によって非常に目まぐるしい早さで発展している」と驚きを見せる。18年5月にはやねうらおさんがやねうら王にNNUEをマージ。8月には水匠開発者のたややん(杉村達也)さんが「NNUEkai」という水匠向けのNNUE評価関数を公開した。
たややんさんは第29回世界コンピュータ将棋選手権(19年5月)に向けたアピール文書の中で、自身を「学会などに出没するといわれている、素人を名乗る者ではなく、ガチ素人です」と紹介。本業は弁護士であることから「日常業務も計算や機械とかけ離れた、文系職業の最たるもの」として自身を“異世界転生ものの主人公”に例える。
「現実はそう甘くないのか、それとも何かしらの爪痕を残せるのか、ご期待ください……ではなく、全く期待せず見守ってください」と文書を締めていたが、ふたを開ければ同大会では7位に、翌年の第30回(コロナ禍によりオンライン開催)では優勝を果たした。
この第30回大会の際の、水匠の実行環境が「Ryzen Threadripper 3990X」とメモリ64GBというマシン構成だった。
AlphaGoを参考に生まれた「dlshogi」 元同僚の協力を得て進化
一方の“GPU最強”といわれる「dlshogi」は、システムエンジニアの山岡忠夫さんがAlphaGoから刺激を受け、2017年ごろから開発を進めてきた、ディープラーニングによる将棋ソフトだ。
AlphaGoやAlphaZeroの仕組みをひも解きながら、Googleのような大規模な計算資源を使わず、ディープラーニングで個人レベルでも強い将棋AIを動かすことを目指している。
しかしdlshogiは初めから強かったわけではない。初出場した第5回電王トーナメント(17年)では一次予選で敗退。GPU環境を強化するも、18年の第28回世界コンピュータ将棋選手権では二次予選で敗退した。
dlshogiの進化のきっかけは、ライトノベル「りゅうおうのおしごと!」作者の白鳥士郎さんによるインタビューによれば、山岡さんのかつての同僚である加納邦彦さんが山岡さんに触発されて、dlshogiを参考に「GCT」という将棋ソフトの開発を始めたことにある。
dlshogiは「やねうら王の技術は使わない」という信念で山岡さんが開発を続けていた一方、GCTは学習データにそれほどのこだわりを持っていなかった。Ponanzaの参考元になった将棋ソフト「Bonanza」開発者の保木邦仁さんなどが関わるディープラーニング系将棋ソフト「AobaZero」の棋譜を学習し、序盤を強くした他、やねうら王系である水匠を仮想敵としてGCTをチューニングした。
「学習は無料の『Google Colab』環境で、本番はAWSのインスタンスで」とGCTを運用していたのも功を奏した。AWSの従来のインスタンスで借りられるGPUは「NVIDIA V100」だったが、新しいインスタンスでは最新GPU「A100」を使えることに。
「私は過去にAWSを借りた実績があったので、すんなりA100を借りることができました。けれど山岡さんは審査に落ちてしまって(苦笑)」
「じゃあチームになりましょうと。『こっちはA100の環境を提供するので、山岡さんはdlshogiの教師データをくださいよ』と……これがチームdlshogi結成のきっかけです」
(最強CPU将棋ソフト『水匠』VS最強GPU将棋ソフト『dlshogi』長時間マッチ観戦記 第三譜『GCT』加納邦彦の自信より)
こうして生まれた「チームdlshogi」によるGCTは、20年11月に開かれた「第一回電竜戦」でやねうら王系を抑えて優勝を勝ち取る。dlshogiでも6位の成績を収めた。GCTでの成果の一部はdlshogiにも反映したという。
21年7月の第二回電竜戦TSEC(TSECは「相居飛車」など特定の局面から戦いを始める方式)では水匠が優勝を収めた一方で、B級リーグでは並み居るNNUE系に対しdlshogiが圧倒的な戦績を収め、B級の総合優勝に。
当時の心境を杉村はこう語る。
「B級リーグではdlshogiが圧倒的な強さで優勝していました。だから思ったんです。長時間の対局で戦ってみたいと」
(最強CPU将棋ソフト『水匠』VS最強GPU将棋ソフト『dlshogi』長時間マッチ観戦記 第一譜『水匠』杉村達也の挑戦より)
インタビューの中でたややん(杉村)さんは「通常、将棋ソフトは2倍の時間を使って読ませると、レーティング(強さ)が100〜150ほど上がるといわれています」「持ち時間をとっても長くしてみたら、レーティングが500〜1000も上がった状態になる。そのとき、どんな棋譜が生まれるのか、見てみたかったんです」と語っている。
電竜戦プロジェクトの監事でもあるたややんさんは、ここから「CPU最強ソフトとGPU最強ソフトの長時間マッチ」の発想に至った。
「CPU最強 vs. GPU最強」の結果は
こうして実現したのが、21年8月に行われた「電竜戦長時間マッチ」だ。第二回電竜戦TSECの優勝プログラムである水匠と、同大会B級優勝プログラムのdlshogiの対局であることから「CPU最強 vs. GPU最強」となるわけだが、ここまでの流れを振り返れば、連綿と続いてきたCPU計算によるコンピュータ将棋にニューラルネットワークを取り入れたソフトと、AlphaGo以来のディープラーニング系GPUソフトの頂上戦、という見方もできそうだ。
その対局の様子はYouTubeの電竜戦公式チャンネルに上がっている他、前述で引用していた「りゅうおうのおしごと!」作者である白鳥士郎さんの全4回にわたるインタビューが詳しい。
結果から言えば、第1局は水匠のバグに起因する投了でdlshogiの勝利、第2局は水匠の勝利、第3局はdlshogiの勝利だった。第2局は終盤の読み合いで水匠が千日手を打開し勝利、第3局は序盤からdlshogiが水匠に比べ高い評価値を付け、終始優勢ムードで勝利。
「DL系は序盤に強く、一方で(NNUE系に比べれば)終盤に弱い」という特徴がよく現れた対局だったともいえる。
同格に見えるがマシンの価格に差 研究にはCPUとGPUどちらも必要か
バグをノーカウントとすれば1勝1敗で同格とも取れるが、この連載としては「プロ棋士が研究に使えるか」に注目したい。それぞれの実行環境を見てみると、水匠は引き続き「Ryzen Threadripper 3990X」で臨んだ一方で、dlshogiはAWSのインスタンスによってNVIDIA A100×8基を用意していた。
Threadripperも単体で約50万円と、CPUの最高峰に似つかわしい価格をしているが、仮にA100を8基購入しようとすると1000万円はかかる。インスタンスを契約するにしても、当初の山岡さんのように審査に落ちる場合もある。必然的に、個人で実行する場合には「GeForce RTX 3090」など個人が購入できるグラフィックスカードで実行することになるが、A100×8に比べれば当然棋力は下がる。
それでも、RTX 3090などでdlshogiを動かして研究する意義はある。「DL系は序盤に強い」という特徴があるから、棋力が下がっても手筋の読み方がNNUE系とは微妙に変わってくる。逆に、終盤についてdlshogiでうまく評価できない部分は水匠などNNUE系の評価や候補手を参考にすればいい。
つまり、いま将棋AIで研究をするのなら「CPUとGPU、どちらの環境も持っていた方がいい」といって差し支えなさそうだ。
ちなみに長時間マッチの後、21年11月に開催された第二回電竜戦本戦では1位をGCT電竜、2位をdlshogiが独占。4位までDL系が占めた。興味深いのは3位に入った、みざーさんとやねうらおさんが開発した「ふかうら王」で、決勝こそA100×8で挑んだが初日のリーグは「Ryzen Threadripper 3970X」+「GeForce RTX 3090」×2+メモリ256GBという、デスクトップPCで実現可能なスペックで勝負に出た。
初日の順位は2位で、水匠とdlshogiには白星をあげていた。ふかうら王は評価関数にdlshogiを取り込みながら、探索部にはやねうら王の知見を生かす方針としているようだ。
そうであれば、なおさら“強いCPU”と“強いGPU”を両立した環境を用意したいもの。そこで筆者は、ある自作PC専門家に協力を仰いだ──。
関連記事
2022-03-28 08:00:00Z
https://news.google.com/__i/rss/rd/articles/CBMiPGh0dHBzOi8vd3d3Lml0bWVkaWEuY28uanAvbmV3cy9hcnRpY2xlcy8yMjAzLzI4L25ld3MxNDQuaHRtbNIBAA?oc=5
No comments:
Post a Comment