1ページ目から読む
18/24ページ目

 詳しい原因自体はやねうら王のブログに書いたんですが……あれは将棋ソフトの開発者向けに書いたものですし、とにかく今回のバグは原因が複雑で……。

──技術的な部分についてはそちらのブログを読んでいただくということで、ここではバグが発生した背景について書いていきたいと……あの、もうバグは修正されてるんですよね?

磯崎:
 そうですね。結果的には修正しても強さに変わりはなかったし、dlshogiも特にこのバグを突くように成長したわけではなかったみたいです。再現性も低いから、プロ棋士の研究に影響を与えたということもないでしょう。

ADVERTISEMENT

 『合法手のチェックが甘かったんじゃないか?』という指摘があるかと思うんですが……ただ、今回のバグを修正した方法って、合法手のチェックを強化したわけじゃないんです。

──そもそもなぜ後手の飛車が自陣で『竜』に成ってしまったのでしょうか?

磯崎:
 現象としては『先手の指し手と後手の指し手を間違えてしまった』というバグでございましてね。やねうら王の置換表には……。

──『置換表』というのは、ソフトが調べた局面情報を記憶しておく表のことですね。対するディープラーニング系のソフトは局面情報を全て記憶しておく必要があるからメモリの使用量が莫大になると。

磯崎:
 そうです。置換表は固定サイズのメモリが割り当ててあるので、古いエントリーを上書きしないと、足りなくなってくるんですわ。

 たとえば100局面分しか憶えられないのに、1000局面分記録しなさいと言われたら、900局面分はどっかに溢れちゃう。だから、要らないとおぼしきところから上書きしていくような感じなんですが……。

──なるほど。

磯崎:
 で、今回のバグは、長時間思考させたことでこの置換表が溢れてしまった時にのみ起きるバグだったんです。だからポンと局面だけを与えられて『ここでバグが出るからやってみ?』と言われても、再現することはできなかったんです。