視聴者からのおたよりコーナー
GPWで講演した後いろいろ皆さんからつっこまれたり議論したり、またニコ動にもコメントがついたり、と色々ありました。今回はそうした講演へのフィードバックやGPWのこぼれ話等について書いてみます。
まずニコ動コメントへのレスから。ニコ動上でコメント返ししようかとも思いましたが、1行しか書けないっぽいのでブログで書くことにします。ってこのブログ見てるのかなぁ。まあ見てるんですよね、きっと。
では最初は、山形県の匿名希望さん16才のコメントから。
…すいません、県名、年齢は適当に作ってます
「大駒の移動可能数は評価されてないんでしょうか?」
えーと、今もいちおう評価してはいます。ただ今は重みのチューンができてないのでほとんどカウントされてない、というのが現状です。この辺は今見直し中。
次は長崎県の…ごふ(<蹴りを入れられてる)
「ソートせずとも並列処理だからトーナメントでOKってこと?」
えー何と言うのかな、トーナメントってのは要は「1位を見つける」なので、ソートと役割は同じです。2位以下の順位はどうでもよくて、1位だけわかればよい。1位の手を選んでそれを探索に行くとき、その手にマスクをセットします。探索が終わってまた同じノードでトーナメントをやると、さっきの1位は今はマスクされているので、残りの手の中からまた新たに1位を選びます。という具合に進んでいきます。
「何手ぐらい読めるんでしょうか?」
今は9手弱くらい。名人に追いつくには+7(=1400/200)手で16手弱必要、と考えてます。
「ハッシュはKiller MoveとかHistory Heuristicで代用出来るかもしれませんね」
そうですね。ハッシュの役目は要は最善手の推測なので、ハッシュ以外の手法で手の推測が充分うまくいけばよいわけです。今のAリーグはKiller Moveはなくて、History(もどき)と、あとは前回反復深化の最善手を最初にやる、というくらいで、正直「充分うまく」までは行ってないと思います。ただ、クラスタ並列になるとどのみちハッシュの効果は少なくなるので、並列を視野に入れるならまあなくてもいいかな、と思ってます。
「詰め将棋をホストプログラムでやるってのはどうなんでしょう?」
「詰め将棋はルートで呼ぶだけで充分とすれば、ホストでやってもよいかも」
ルートだけならばたしかにホストでやれるでしょうね。ただ詰め将棋の意義は、ルートで詰めを見つけることよりも、「この手を指すと詰まされるから、これは候補から除外」という使い方の方が多いのではないですかね?だとすると、これをやるにはホストとFPGAの通信が必要で、これは面倒そうです。
今のところは実は詰め将棋やる気はまるでないんですが、詰め将棋の有無でレーティングどのくらい違う、とかいうデータどっかにないですかね?大きく利くなら考えるかもしれませんが。
「何言ってんだかききとれねーよ」
申し訳ない。私も動画見直しましたが、めちゃくちゃしゃべるの速いですね。これだけでプレゼンターとしては失格ものです。GPW招待講演の谷岡先生はしゃべるのめっちゃうまかったです。話聞き取りやすいしわかりやすいし。おまけに一人ボケツッコミを駆使していて、まさに大阪人でした。まそれはともかく。ダイナミック回路の説明のとこですね。まあダイナミック回路ってどういうものか、はあまり話の本筋に関係ないので気にしなくてよいです。「設計大変だけど高性能」くらいに思っておけば充分。詳しく知りたいぞ、という方は、「ダイナミック回路とは」「ドミノ回路とは」とかでググればあっさりわかるでしょう。たとえば これ(URL長いな)
「公式ブログから来ました」
いやこれ一瞬意味がわからなかったですが…公式ブログって、もしかしてこのブログのこと?自分的にはおもいっきしアンオフィシャル、アンダーグラウンドなブログのつもりだったので、すごい意外。あでもやっぱ違うのかな…
「ありがとうございました」
べ、別にあんたのために動画投稿したわけじゃないんだからねッ!
…いや私が言ってもしょうがないんですが。最近は何かお礼とか言われて「どういたしまして」とか返すような場面では、これがデフォのリアクションになってます。
* * *
ニコ動コメントはこんなとこですか。次、GPW会場での会話から。未来予測のところでいくつか仮定を置いてたんで、他の人はどう思ってるのかは実は私としても興味ありました。
1)トップソフトと名人のレーティング差が600
2)N並列で性能向上はNの0.75乗
特にこの2点について他の方の意見を聞きたかったんですが、あまり聞けなかったです。私もわからないですが、他の人もわからないんでしょうね。1)については棚瀬さんが「600も差ないでしょう。今将棋倶楽部24でコン将はレーティング3000越えてますから、400もないくらいですよ」と言ってたくらい。なるほど、早指しならたしかにそのくらいかもしれません。ただ早指しはやっぱコン将に有利でしょうから、時間充分あるなら600差というのはいい線なのかな、と逆に思ってました。
2)に関してはまったく誰もわからず。激指の横山さんがいちばん詳しそうと思われたんですが、彼も「いやーデータないんでわかりません」とのこと。まそりゃそうなのか。ここは今後の実験結果を期待したいところです。
最近sspさんがMPIのサンプルコードと実験結果を公開してます。かなりシンプルな作りですが、これでも4コアで2倍行ってるので、ちゃんと作ればルートNよりは行きそうな感じがしてるんですが、どうでしょう。
あと、「ハードじゃなくて、今の激指なり棚瀬将棋なりをベースに、ソフトを並列化すれば、もっと簡単に名人に勝てるのでは?」という質問がありました。ここはたぶん皆さんそう思われるだろうし、私としても興味あるところなので、ちょっとまじめに考えてみました。
私の予想は、結論から言うと「ソフトベースで名人に勝つのは、たしかに技術的には可能。しかしそのコストは、ハードでやるより多くかかるだろう」です。
講演のときと同じ仮定を置きましょう。上記の1)、2)に加え、
「性能5倍向上=深さ1深く読める=レーティング+200」、です。
すると、名人に追いつく、つまりレーティング600上げるには、
5**(600/200) = 125 倍、の性能向上が必要、となります。
ここ数年、CPUの周波数はほとんど向上してません。この状況は今後もしばらく続くと仮定して、並列度の向上だけで125倍を目指すとしましょう。(パラメタ調整等も考慮してません。純粋に並列度のみ。)すると、並列度を 125**(1/0.75) = 625 倍上げないといけない。今トップソフトは8コア使ってるので、8*625 = 5000コアいるわけです。
5000コアのマシンってできるのか?はい、もちろんできます。世界のスーパーコンピュータの一覧が top500.org というとこで見れます。日本だとたしか、東大、筑波大、京大(合わせて"T2K")と東工大(TSUBAME)が5000コア超あるかと思います。これらのどれかを占有して使えれば、クラスタ並列のソフトを開発することで名人に勝てるでしょう。並列ソフトの開発でどのくらいでしょうか、3年くらい?まじめにやれば3年で名人に勝てる可能性は「技術的には」十分あると思います。
しかしながら、5000コア使うのってえらく大変なのですよ。仮に使えたところで、1か月占有すれば数千万はかかるはずです。数十億のものを数年で償却するんで。またそもそも、よほどの国家的重要プロジェクトでなければ、5000コア占有はさせてもらえないそうです。(これも横山さん談。)占有でなく共有ならもっと安価で可能でしょうが、制限時間のある対局では占有は必須でしょう。囲碁でMogoTitanが3200コアのスーパーコンのうちの800コアを使ってましたが、あれもたぶん800しか使わせてもらえなかったんでしょうね(or 金が出せなかったか)。しかも半日だけで。
スーパーコンでなく、自前で5000コア揃えるのはどうか?これも横山さん情報ですが、ひと声「1000万円で100コア」だそうです。100コアでは名人には遠く及ばない。5000コアだと、5億?10万/コアはちょっと高めの気もしますが、それでも億はかかりそうですね。(たしか棚瀬さんは「8コアサーバが55万」と言ってた気が…うろ覚えなので間違ってるかも。)しかもこれは初期費用でしょうから、これに建屋代や電気代がかかる。月数百万でしょう。
以上を考えると、ひいき目でなく「ASICの方がよっぽど安そう」と思えてしまいます。
もちろん以上は「並列度だけ」で向上する場合です。何かソフト上のブレークスルーとかがあって突然強くなる、とかいうことがないとも限りませんが。ただ、現状の延長線上で考えるとすると、上のような結論になりそうです。
* * *
その他、聞いた話で面白かったの:世界最強の将棋システムを作る、という話があるんだとさ。そのシステムは、複数の思考エンジン - たとえば棚○将棋と激○とY○S、とか - を搭載していて、同じ局面に対してその複数エンジンで探索する。で、各エンジンが返した手のうちから多数決で選ぶ、んだとか。
それを聞いた私の感想:
マギっすか!?
…すいません、これが言いたかったんです。
あと、講演の質疑で私は「序盤をOSL化するのと、評価を作りなおすのが次のAI」と言ったんですが、前者はその後断念してます。というのは、あの後金子さんにいろいろ聞いたところ、CSA大会で使えるのは"osl for CSA"というやつで、snapshotは使えない。で、for CSAの方は、PiecePair(OSLの序盤の評価)はオールゼロで、駒割しか評価がない、とのこと。これではさすがに使えません。また「PiecePairだけあれば、序盤はそこそこまともに指してくれますよ」とのことなので、元々評価の作りなおしでPiecePair相当の機能は入れようと思ってたので、それならハードでも序盤指せるかなー、と思い直しました。
ということで、今は評価の作り直しに着手したところです。この話はまた次回に。
« 動画騒動顛末記 | トップページ | ほな評価でもやりまひょうか~ »
「将棋プロセサ」カテゴリの記事
- ボンクラーズの開発過程について書いた記事が掲載されました(2019.03.07)
- 「浅い評価値を深い評価値に近づける学習法」誕生の背景(2016.10.06)
- 塚田九段の対ボンクラーズ練習棋譜を公開します(2013.09.07)
- Puella α ソース公開(2013.08.28)
- クラスタ並列の解説記事を公開します(2013.08.22)
私が最近組んだPCだと、4コアで20万前後でした(PC本体のみ。OS・ディスプレイやキーボード抜きで)。
ただ、それでも5000コアだと2億5千万ですね。
自分の手でブレークスルーを起こせられれば嬉しいですが、現状では望み薄です。
投稿: 森岡@GA将!!! | 2008年12月 9日 (火) 20時27分
前(「Niosを倒す鬼」、2008年1月)にも書きましたが、将棋専用ならディスクレスクライアントでLinuxでいいですよね。ケース、電源、マザボ(w/イーサ)、CPU、メモリ、だけでいいと思います。4コアで8万もあれば十分では、という気もするのですが。まそれでも5000コアで1億しますけど。
投稿: 伊藤 | 2008年12月11日 (木) 10時06分