Turing Tech Talk 特別版:Ponanzaはいかにしてオープンソースに敗れたか
はじめに
この対談では、将棋AI「Ponanza」の開発秘話を通じて、最先端のAI開発における「トップランナーの苦悩」「パイを大きくする責務」や「一度勝つことと勝ち続けることのメンタルモデルの違い」といった本質的な課題が浮き彫りになります。また、人間が技術の進歩に驚くほど速く順応していくという興味深い洞察も得られます。
チューリングでは、人類未到のグランドチャレンジ「完全自動運転」を実現し、共に世界を変える仲間を求めています。本対談が、皆様の新たな挑戦へのインスピレーションとなれば幸いです。
Ponanzaはいかにしてオープンソースに敗れたか
一成 : こんにちは。今日は、将棋ソフト「Ponanza」について、少し変わったお話をしたいと思います。私が10年ほど開発してきたPonanzaは、最終的に名人を倒す前後に、「elmo」というオープンソースのプログラムに敗北しました。表面的な話だけでなく、当時の開発体制や雰囲気、そしてその構造的な背景についてお話しすることで、皆さんに役立つ知見を共有したいと思います。

一成 : 今回、対談相手として山口さんを呼んだのは、田中さん(COO)が呼んでも仕方なさそうな顔をしてたからというのもあったんですけど・・・(笑)山口さんもまた私が将棋AIから引退した直後から将棋AIの世界に参入した経緯があるんですよね。
山口 : そうですね。一成さんが引退した翌年に、私はコンピューター将棋の開発を始めました。
一成 : 当時のPonanzaは非常に強かったですね。
山口 : まさに私は、OSSを活用した「追いかける側」で将棋AIに参入しました。
一成 : そう、直接対決はなかったんですよね。ちなみに、山口さんと私は東京大学の将棋部で、私の方が将棋強かったです。ここは主張しておきたい(笑)。
山口 : はい、それは間違い無いです。
一同:(笑)
一成 : 当時の開発環境についてお話ししましょう。当時、私はさくらインターネットさんの協力を得て、最終的には1000 CPUと128 GPUという大規模な計算リソースを使用していました。これは2017年当時の話ですが、現在の価値に換算すると10000CPU相当、10倍の破壊力があったと言えます。
山口 : 2017年のこの規模のリソースは、当時としては本当に強力に感じられましたよね。今でこそ一般的になった分散学習や分散処理は、当時は珍しい技術でした。
一成 : 私は当時、仮想的な共有メモリーを自作し、Redisなどのツールを活用しながら、通信上で並列システムを構築していました。この規模のクラスターでの開発は、当時将棋AIを開発していた約50チームにとって絶望的な状況だったと記憶しています。
山口 : 彼らは「今回の大会はぺんぺん草も残らない。Ponanzaに蹂躙される」と噂していましたね(笑)。
一成 : Ponanzaがなぜ強かったかというと、膨大な計算機パワーもさることながら、「強化学習」を成功させたことが大きいです。

強化学習、具体的には自己対戦を通じて、人間が知らない戦法を次々と確立していきました。当時の他の将棋AIが人間のプロの棋譜から学習していたのに対し、Ponanzaから見れば彼らの戦術は「1000年前に通過した」ようなレベルで、勝負になっていませんでした。この莫大な計算リソースがあるからこそ、強化学習ができていると皆が感じていたようです。
面白いことに、皆が勝手に「権威性」を感じ始めるんですよ。つまり、「もう勝てない」と。私がそう言ったわけでもないのに、自分たちでそう言い始め、私は「しめしめ」と思っていました。人間は負ける理由を勝手に発見するものですからね。これは、今の私たちがOpenAIに対して抱いている感情と酷似しているのではないでしょうか。「OpenAIの計算機ってどれくらいあるんだろう?絶望的に思えるな」と。
山口 : その通りですね。
一成 : そこまで激しいかどうかは別として、本当にそういう雰囲気でした。権威性も確かにありましたし、その結果、多くのチームが「Ponanzaには強化で勝てないから、別の道を探ろう」と、多大なコストをかけて模索していました。
田中 : 具体的にどのような道だったの?
一成 : 人によって様々でしたね。技術的には、「差し手の高速化」、つまり手を高速で生成する遊びが流行っていました。ある局面で大量の差し手を生成するのはボトルネックになるため、皆がそこをベンチマークとして競っていましたが、これはあまり全体最適からずれた取り組みだったと言えます。テンプレート最適化や引き合い最適化といったテクニックも使われていました。
山口 : コンピューター将棋は、たくさん読めば読むほど強くなるので、差し手を読むスピードが速いほど強いということですよね。皆がその高速化に注力していたわけですが、本質はそこではなかったと。

一成 : ええ、明らかにオーバーエンジニアリングでしたね。人間の棋譜からデータを多く取り出すための学習ハックも多用されていましたが、Ponanzaではむしろ計算機をひたすら回し、そうした細かい工夫を減らすことを意識的に行っていました。よりピュアな状態で開発を進めようとしたんです。
先頭を走るコスト、語られないその真なるコスト
一成 : 多くの人には絶望的に見えたかもしれませんが、実は「トップを走る人って苦しい」ということはあまり共有されていません。これが今日の本題です。莫大な計算リソースがあるとはいえ、トップを走るということは、既存のものを少し改善するのではなく、「新しいパラダイムを切り開いていく」ことに他なりません。ChatGPTシリーズやSora、Gemini Diffusionといった画像生成モデルが新しいパラダイムを生み出しているように。
つまり、莫大な計算リソースは、そのほとんどが「無駄」になっています。もし最初から正解が分かっていれば、これほど多くの試行錯誤は不要だったはずです。私の感覚では、コンピューターの計算の95%から99%は捨てられていると思っています。1000 CPUがあったとしても、実質990 CPUくらいは無駄に使われていたわけです。しかし、これは追いかける側からはほとんど見えていません。

山口 : まさにその通りだと感じます。最近私が取り組んでいるKaggleでも同じような話があります。外から見える強さと、中で苦しんでいる部分が全く比例しないんですよね。Ponanzaの強さは表に出ていましたが、そこに至るまでの膨大な試行錯誤は外からはほとんど理解されません。Kaggleでも、異常に良いスコアを出しているチームの裏には、各チームの様々な工夫と積み重ねがあるのですが、そこがやはり理解されにくいと感じています。

開発の「狂気性」とパイを広げる責務
一成 : 当時の開発の「狂気性」についてお話ししましょう。まず自己対戦を行います。メインブランチに対して新しいブランチを作成し、勝率が向上しているかを確認します。具体的には、500試合中270勝ほどすると、99.何%以上の確率で改善されていると判断できます。テスト用のブランチが作られると、CIツールが自動でメインと対戦を開始します。
将棋プログラムは主にCPUを使うので、1000 CPUで対戦するのですが、500試合のテストが1日に3セット組めるんです。つまり、1日に意味のある改善を3つ作成し、ブランチを出す必要がありました。これは本当に辛くて、最もひどい時にはカフェインを飲みすぎて眠れなくなり、胃痛でソルマックを飲んで寝てました(笑)。皆さんにはよく言ってるんですけど、うちの計算機が余っていても、無理に改良せず休んでいいからね(笑)。本当に体を壊します(笑)。

山口 : 1日3ブランチだと、計算が終わるのが朝4時とかになり、その時間に起きてまた次のブランチをやる、というようなこともあったと。
一成 : 自動化はしていましたが、それでも気になって起きてしまうんですよね。
山口 : それはよく分かります。
一成 : もう一つの視点として、「トップに立つ者の責務」があります。つまり、トッププレイヤーはパイを盛り上げる役割を担うべきだと考えています。野球界全体を押し上げた長嶋さんのように、私もできる限りの範囲で情報産業のパイを大きくする活動をしていました。

Preferred Networks(以下、PFN)さんと一緒に将棋プログラムを開発しようとしていた時、このままでは名人に勝ってしまうという状況でしたが、日本の情報産業を盛り上げるためには、PFNが勝った形にした方が良いと考え、強引にディープラーニングも使う方向性にしたりもしました。
山口 : Ponanzaは2013年か2014年には既に最強のプログラムとして認識されていましたが、この「パイを大きくする」意識はいつ頃から持ち始めたのですか?
一成 : 2016年頃からですね。競争だけでなく、将棋界全体を盛り上げるという意識がありました。他の開発者にはあまりそうした意識が見られませんでしたね。私たちも「勝てるようになったら同じようになる」と考えています。皆さんに覚えておいてほしいのは、「一度勝つことと、勝ち続けることではメンタルモデルが大きく異なる」ということです。勝ち続けるための方法を語れるようになったら、それは素晴らしいことです。まずは勝ちましょう。

敗北前夜
山口 : 2017年に引退されたという話がありましたが、名人戦で勝利されたのも2017年ですよね。その頃には既に人間よりもはるかに強くなっていたということでしょうか?その時系列がよく分からない方もいると思います。
一成 : プログラム開発を2009年頃から始め、2014年から2015年頃には人間と競り合うようになり、2016年には「人間はもう勝てない」と感じていました。決定的な要因はやはり強化学習です。人間が知らない戦法を繰り出し始め、序盤の知識の差で既に勝負になっていなかったのです。名人でさえ、将棋の経験値において万倍もの差がある状態で戦っていたため、勝負になっていないと感じました。
山口 : 将棋で言うと、駒がぶつかった瞬間には既に勝負が決まっているような力の差があったと。
一成 : その通りです。駒がぶつかるのは中盤以降ですが、戦う前から既に差がついていましたね。そして、人間には理解できない棋譜がどんどん増えていきました。
一成 : 再度強調したいのですが、やはり「パイを大きくしなければならない」という考えは重要です。OpenAIも注目を集め、新しいパラダイムを築くためにリソースを投入していますが、前を走る負荷は計り知れません。本当に大変なことです。
2017年、名人を倒す直前のコンピューター将棋大会で、Ponanzaは2位に終わりました。最も辛かった戦略は、OSSでした。他のチームがソースコードをすべて公開し始めたのです。昔はそうした文化はなかったのですが、皆でソースを持ち寄り、どんどんレベルを高めていく状況になりました。これは困りましたね。なにせ「頭の数が50倍違う」わけですから。
最終的に、強化学習を導入したelmoが成功し、Ponanzaが発見したのとほぼ同じ強化学習の枠組みを使って、Ponanzaに勝利しました。elmoは32 CPUという手元のリソースでPonanzaを破ったのです。将棋は運の要素もありますが、他の将棋ソフトに対して勝率9割以上を誇っていたPonanzaが、この時は6割、7割程度しかなく、追いつかれてしまったと感じました。
一成 : 現在の将棋ソフトは非常に高いレベルにありますが、先手か後手かで勝率が決まるような状況で、「先を走るのが難しくなってきた」というのも一因です。将棋というものの限界、海の深さが先に見えてしまい、その後はOSSによって一気に追いつかれたという感覚です。これはOpenAIにも近い状況かもしれませんね。現在、ベンチマークの改善が難しくなっていて、わずかな差しか感じられなくなっています。一方で、オープンソースのプレイヤーやChatGPTを追いかけるプレイヤーが猛烈な勢いで迫ってきています。
山口 : 皆さん向けに一応OSSの説明をした方が良いかもしれません。
一成 : OSSはオープンソースソフトウェアの略ですね。オープンソースにすることで、皆が仲良く開発し、他の人のコードを見たりコピーしたりしやすくなります。イメージとしては「俺 vs みんな」という感じです。先頭を走るプレイヤーの大変さや、OSSのメリットは意外と見えていないのですが。OpenAIもいくつかのブレークスルーを持っていますが、そのうちのいくつかはOSSによって発見されるでしょう。
山口 : Open AIとLLM開発において、ライブラリやモデルがオープンに公開されてますが、それによって、実は同じ構図がかなり再現されつつあるっていう感じですかね。

一成 : その通りです。自動運転の世界でも、テスラのような内製技術を持つ企業からすれば、オープンソースや追いかける側の動きは脅威だと捉えているはずです。
最後に結論ですが、「追いかけましょう」。先を走るプレイヤーは確かにすごいように見えますが、新しいパラダイムを生み出したり、パイを大きくする責務を負ったり、多くの視線にさらされ批判されたりするなど、非常に大変なことが多いです。テスラの事故の話もよく挙げられますが、最先端を走るからこその大変さがあります。それに比べて、私たちは追いかけるだけで良いのだから、自信を持って追いかけていきましょう。

物を開発する際、あらゆる面で差別化を図らなければならないと考えがちですが、車のタイヤがすべて4本であるように、本当に細かい部分での差が重要です。全てを自社で開発し、独自性を出す必要はありません。タイヤが4本だからといって、全ての車が同じではないように。つまり、きちんと追いかけていけば、独自性は生まれるということです。チューリングの日々の業務や行動は、何一つ偽物ではありません。自信を持って追いかけていきましょう。
フリートーク
山口 : 一成さんのコンピューター将棋開発のきっかけは、あまり知られていないと思いますが、どのような経緯だったのでしょうか?プロ棋士に勝つ、名人に勝つというフェーズを経て、情報科学の発展に貢献するという視点にどう変化していったのか、今後の会社成長の参考になるかと思います。
一成 : あまり参考にならないかもしれませんが、山口さんもご存じの通り、私たちは東京大学の将棋部でした。私は大学を留年しまして。。。これからの時代をどうしようかと考えていた時に、「AIやソフトウェアが良さそうだ」と漠然と思い、将棋ソフトを作ると将棋部の前で宣言したところ、皆に馬鹿にされました。最初に作ったソフトは本当に弱くて、皆から「めちゃくちゃ弱い」と散々言われました。
8枚落ちでも負けてましたね。将棋の駒をほとんどなくした状態のハンデでも、私のソフトはボロボロでした。
山口 :あの、 10枚落ちで結構ボコボコにされてましたよ(笑)。 しかし、そこから積み重ねて、どんどん強くなっていったんですよね。

一成 : そうですね。最初は「ソフトウェアをやるといいだろう」くらいの気持ちで、特に「みんなが信じていない未来に賭けよう」と思っていました。当時、AIやソフトウェアはムーアの法則によって確実に伸びていくと分かっていたのに、ソフトウェア開発をする人が驚くほど少なかったです。山口さんには「こいつは終わったな」と言われていましたね。

山口 : いや、直接は言っていません。心の中で思ってました(笑)。「俺、明日からプログラミングで生きていくんだ。」って言われた時にこれはもうダメだなと思って(笑)。

一成 : 当時は渋谷のマックでαβ法がどうしても理解できず、深夜4時に突然分かって、、、。ちなみにαβ法は基本アルゴリズムなのですが、当時は良い資料もソースコードも少なく、理解に苦しみました。それに比べると、今は勉強しやすくなり、プログラミングを始める敷居が非常に下がったと感じます。私はC言語から始めましたが、全角と半角の区別がどうしてもつかずにコンパイルエラーで苦戦するなど、正直プログラミングには向いていなかったかもしれません。
しかし、成長する過程で多くの課題に直面し、様々な出会いから「勝負とは何か」を学びました。開発の最終段階では、1日3本ブランチを出す中で、もはや「コンピューター将棋の女神に祈る」しかありませんでした。改造したからといって強くなる確証は全くなく、ただひたすらやり続けるしかなかったのです。正しい方向性が分からず、最終的には統計的な方法と計算機パワーを頼りに進めていきました。
山口 : 将棋という分野で人間を倒すということを成し遂げてこられた一成さんのお話は、今後AI、特にLLMや自動運転といった文脈でも再現されると思いますか?
一成 : そうですね。2014年に初めて現役のプロ棋士を破ったのですが、当時は人間が負けるはずがないと皆が思っていました。対局後の記者会見は葬式のような雰囲気でしたね。プロ棋士という神聖な存在が破られたという意味で、本当に葬式だったのだと思います。
しかし面白いのは、その翌年もPonanzaが強く、人間が負けても、2度目の記者会見では皆が笑顔で「もう仕方ないね」という雰囲気になっていたことです。人間は非常に順応性が高いということです。衝撃的な出来事もすぐに受け入れ、手のひらを返すかのように考えを柔軟に変えることができます。LLMが今では当たり前のように考えられていますが、5年前から見ればAGI(汎用人工知能)のようなものです。あっという間に慣れてしまった。
名人を倒した頃には、将棋界では意外と盛り上がらず、「こんなものか」という反応でした。最も衝撃が大きかったのは、やはりプロ棋士を初めて倒した時です。「あっという間に人は慣れる」という点は非常に興味深く、「絶対にプロ棋士は負けない」と言っていた人が、同じ口で「コンピューターには勝てない」と言うようになる。これは人間の柔軟さの良い面だと感じました。
山口 : なるほど。そう考えると、チューリングが目指す「完全自動運転」も運転というタスクで人間を完全に置き換えるということだと思いますけど、今はまだ誰も想像できない領域ですが、それが実現すれば受け入れられるということですね。
一成 : そうです。今は「そんなのできるわけがない」「安全性はどうなんだ」と言う人がいますが、一度できてしまえば、間違いなく「人間が運転するなんておかしくないですか?」と言う人が増えるでしょう。「コンピューターは危険だ」と言っていた人が、同じ口で「人間が運転するのは危険だ」と言うようになります。皆さんはそれに対して怒らずに、「良かったね」と思えるようになりましょう。
我々はそういう未来を作っていきましょう。


【イベント概要】
PonanzaはどうやってOSSに負けたか / チューリング株式会社
https://www.youtube.com/watch?v=0NkTbmxR02k