このページの本文へ

さくらの熱量チャレンジ ― 第31回

ジャイアンツがひしめく囲碁プログラムに個人でチャレンジ

「強さ=リソース」の脱却を目指す囲碁プログラム「AQ」と高火力コンピューティング

2019年03月06日 07時00分更新

文● 大谷イビサ/TECH.ASCII.jp 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

 世界で名だたる企業が開発に心血を注ぐ囲碁プログラムの世界。そんな中、確実に上位を脅かす囲碁プログラムとして成長しているのが、山口祐氏が開発する「AQ」だ。山口氏にAQ開発にかける想い、研究や学習で利用するさくらの高火力コンピューティングについて話を聞いた。

「AQ」開発者の山口祐氏

Facebookチームのプログラムに勝利した「AQ」のすごさ

 囲碁プログラム「AQ」を開発している山口 祐氏は大学院卒業後、産業技術総合研究所(AIST)の研究員として7年勤務した後、2018年8月に退職し、フリーランスとして独立した。「研究では応用物理学をやっていて、趣味で囲碁や将棋のプログラムを作っていたが、機械学習やプログラミングの方が面白くなってしまった」(山口氏)が独立のきっかけだ。

 山口氏が将棋や囲碁のプログラムに興味を持ったのは、AIST在籍時に読んだ「AlphaGo」の論文だ。後にGoogleに買収されるDeepMindが開発したAlphaGoは、2015年に人間のプロ棋士をハンディキャップなしに破った囲碁プログラムとして知られている。「強くするのに画像分類とディープラーニングを採用したこと、学習に用いた計算機リソースが膨大だったことが衝撃でした。とはいえ、当時は荒削りでしたし、方法自体は難しくないので、僕にもできると思いました」と山口氏は振り返る。

 そんな山口氏が自力で開発した囲碁プログラムが「AQ」だ。2018年2月、日本棋院ネット対局「幽玄の間」に導入され、プロ棋士の練習相手を務めたが、最初の1週間で「118勝8敗」。1ヶ月の間で「420勝23敗」という成績を残した。きら星のように現れたAQはその後、Facebookチームが開発したELFOpenGoにも勝利。チーム開発が主流の将棋や囲碁のプログラムの世界において、個人の開発者というだけでも珍しいのに、圧倒的に強いというのも特筆すべきポイントだ。

 そんな強い囲碁のプログラムを作るのだから、山口氏もさぞ凄腕のプレイヤーなのだろうと思ったら、まったくそんなことはないという。「プログラムに実装しなければならないので、ルールに関しては詳しいですけど、私自身が囲碁が強いわけじゃないです(笑)」(山口氏)とのことだ。

借りられなかったら、開発は止めていた

 AlphaGoでは、自分同士で多数の自己対局を行い、その結果を元にパラメータを更新することを繰り返すという強化学習をニューラルネットワークに展開している。山口氏もAWSと自宅PCを用いて、AQに5万局以上の棋譜を学習させ、前述したような戦歴を残してきた。しかし、これ以上多くの学習を行なうとなると、膨大なリソースが必要になるという。

 そんな山口氏がさくらの高火力コンピューティングに相談したのは、2017年の5月のことだった。「AWSでは安価なスポットインスタンスを複数台借りて動かしていたのですが、価格が高騰してしまい、学習を続けるのが難しくなったんです。そこで、高火力コンピューティングを利用できないかと思い、さくらさんに相談させていただきました。借りられなかったら、開発を辞めていた可能性が高かったです」(山口氏)。

 さくらのメンバーとのミーティングを経て、20枚のGPUが提供された。高火力コンピューティングを使った感想は、「安定して使えるのがよかったし、リソース的にも十分。強化学習のみならず、さまざまな実験もできるようになり、プログラムを作るにあたってもよい知見を得られました」とのことだ。

 最近では、パブリッククラウドでも機械学習に向けたさまざまなマネージドサービスやアルゴリズムが展開されているが、さくらの高火力コンピューティングはリソースをフルに使い切れる物理サーバーである点がメリットだという。「クラウド上の仮想サーバーに比べ、高火力コンピューティングはハードウェアそのものなので、実験環境の再現性も高い。CUDA(NVIDIAが開発・提供している、GPU向けの汎用並列コンピューティングプラットフォーム)で直接GPUプログラミングしようとすると、マネージドサービスだとむしろ難しいことも多いんです」と山口氏は指摘する。

 山口氏が高火力コンピューティングのリソースで進めているのが、仮説に基づいた試行錯誤だ。「リソースやコスト面の制限があると、継続的な実験が難しい。仮説に基づいた実験も、うまく行けばいいけど、失敗することも多い。ですから、予備実験を系統立てて繰り返せたのは、高火力コンピューティングのおかげです」(山口氏)。

学習の効率性を追求するパートナーこそ高火力コンピューティング

 山口氏がさくらの高火力コンピューティングで目指すのは、「強さ=リソース」からの脱却だ。

 将棋や囲碁のプログラム開発は、アルファ碁の登場以降、個人から企業に主体が移っている。FacebookやGoogleのほか、中国のテンセントや清華大学、KAIST(韓国科学技術院)などが、専門のエンジニアや研究者でチームを組み、自前データセンターを活用して開発を進めている。「彼らは余剰資源だけでも1000GPUくらいのリソースを使っています。逆に言えば、それくらいのリソースが確保できないと強くできないとも言えます」ということで、やはり強さ=リソースというのはある意味、間違いないのだ。

 現状、コンピューターによる将棋や囲碁の大会では、リソースのキャッピングはかけられていない。「基本的には無差別級。使えるのであれば、どれだけリソースはいくら投入しても問題ない」(山口氏)。その意味では、リソースこそがゲームの勝敗を決めてしまうと言っても過言ではない世界だった。

 そんな中、山口氏は少ないリソースで強いプログラムを作れないかを考えている。特に囲碁プログラムの場合は、強化学習をいかに効率化できるのかが鍵だという。「さくらの方には、少ないマシンリソースで強くなければならない、効率性が重要であるとお話ししました。確かにAlphaGoは強いですけど、マシンリソースを使いすぎます。効率化が実現できれば、その手法はディープラーニング全般にも応用できるはずです」と山口氏は語る。

 さくらインターネットの長谷川猛氏は、「山口さんが戦っている相手は、ある意味1000枚単位でGPUを出せる会社さんです。そんな相手に向け、『高火力コンピューティング』という手元の持ち駒で、いかにレバレッジを効かせられるかチャレンジしているところが面白いと思いました。また、Tesla GPUの付加機能をいかに活かすか、といった取り組みもされているなど、取り組み内容を興味深く拝見しています」と語る。「やりたいことを、できるに変える」というコーポレートメッセージの通り、チャレンジする人をコンピューティングの分野で応援していくのが、今のさくらインターネットの方向性だという。

さくらインターネットの長谷川猛氏

強いプログラムを作り、その知見を人間に還元する

 実は山口氏は囲碁だけではなく、将棋のプログラムも作っている。ルールもマス目も全然違うが、「先を読んだ方が勝つ」という点で強化方法はおおむね似通っているという。「結局、局面をどれだけいっぱい読むか、正確に読むかが、プログラムの実装上は重要なので、囲碁も将棋も本質はあまり変わらない」と山口氏は語る。

 山口氏は、まず「強いプログラムを作る」という目標を掲げている。将棋はすでに人が勝てないレベルに到達しており、囲碁はさらに差が開いている状態だが、プログラムの開発競争はまだ終わらない。「『相手に勝ちたい』という人間の根源的な欲求があるからだと思います。AlphaGoはいまだに強いし、私も早くそのレベルに追いつきたいです」と抱負を語る。

 また「コンピューターが得た知見を共有する」ということも目指している。すでに人間よりはるかに強くなった囲碁プログラムは、人間に対してもさまざまな知見を還元できるはずだ。「人間だって、うまい人の真似をしたり、対戦を繰り返して、徐々に強くなっていきますよね。これはコンピューターも同じなんです。現時点では、一足飛びに上手になる方法はないけど、囲碁プログラムと訓練することはできます」と山口氏は語る。実際、AQはオープンソースとして公開されており、誰でもPC上で遊べるほか、日本棋院ネット対局でも人間の相手をしている。「囲碁を打つ多くの人に、AQで得たノウハウを共有したい」と山口氏は語る。

■関連サイト

(提供:さくらインターネット)

カテゴリートップへ

この特集の記事

灯油タンクで残量検知を実現!北海道の生活を守るIoTとは【熱量IoT】#3

動画一覧はこちら!