Python(オセロ08_入力を変えての比較3)

■max_output_tokensを1000、5000にして50回の試行。
前回、ある程度短い時間でオセロの手を打つ指示内容を設定できた。まとまった数として50回ゲームを実施する。出力トークンを制限するmax_output_tokensという設定値があるので、この調整により結果にどういう影響があるか見たい。そのため、1000と5000の設定で行った。

結果が下。
コードの不具合でエラーになることもあったけど、何とか50回分最後までゲームを行うことができた。

今まで見てきたものは、試行の回数が少なかったので概ねAI側が勝ちとなってきたけど、今回50回実施して、ランダムに対して80%ぐらいの勝率となっている。単純な勝率比較はできないかもしれないけど、四方の隅を優先的に置くようにしたロジックと同じくらいの勝率となる。

max_output_tokensでは出力トークンを制限するため、合計トークンの値を見ると1000に設定した方が値は抑えられており、1回の問い合わせで1000程度となっている。モデルはgemini-3-flash-previewであり、1ゲームでも20円弱程度。これに対して、5000に設定した方は、5000一杯までトークンを使用しており合計トークンは4、5倍になっている(時間は3倍ほどかかっている)。結果は5000の方がやや優秀と言えるか微妙なところ。勝ちが38と40なので誤差の範囲かもしれない。普通に考えると、5000にした方が考えることが多くより良い手を打つように思えるけど、この結果からでは予想もできない。もう少し少ない値、多い値で追加のデータがほしい。何となくだけど生成AIを対戦相手とする場合、現状では80%の勝率ぐらいが限度な気がする(そもそもオセロに特化したものでもないし、この結果も置くことができる位置を指定するなど下準備を行っている)。

max_output_tokensの調整はもう少し行うとして、あとは少し強いロジックと対戦させて勝てない(又は勝率が悪い)ことを見てみたい。生成AIでオセロの対戦相手を作るのはそのくらいかなー。