前回は、ボートレースAIを毎日決まった時間に動かすための仕組みを作り始めた話を書きました。
毎朝、自動で起動して、その日のレース予定を取得するところまでは進みました。
ただ、実際に運用しようとすると、思ったほど簡単ではありませんでした。
今回は、自動化を始めて実際に起きた3つの失敗を紹介します。
失敗① 予定時刻になっても動かない
最初に困ったのは、
「設定したのに、予定時刻になっても処理が始まらない」
という問題でした。
自動化の設定自体はできています。
それでも、実際の時刻になると動かないことがありました。
AIの予想ロジックが間違っているわけではありません。
そもそも、予想処理のスタート地点までたどり着いていなかったのです。
ここで分かったのは、
「自動化の設定を作ること」と「本当に定刻で動くこと」は別
ということでした。
最終的には、Mac側で決めた時間に処理を起動する仕組みへ切り替えていきました。
失敗② Macの状態でも動き方が変わる
次に出てきたのが、Macの状態による問題です。
自動化はパソコンの上で動いています。
そのため、
- スリープしている
- 起動状態がいつもと違う
- 処理を実行できる状態になっていない
といったことも影響します。
人が使うときなら、
「動かなければ、もう一度実行する」
で済むかもしれません。
でも、Forward Testではそうはいきません。
決めた時刻に実行できなかったものを、あとからやり直すと、条件が変わってしまうからです。
自動化では、AIだけでなくパソコン側の状態も管理する必要がありました。
失敗③ 予想できたのに、数秒遅かった
一番印象に残ったのが、この失敗です。
実際のレースで、
- 直前情報の取得
- AIスコアの計算
- 予想順位の算出
までは正常に進みました。
ところが、最後に正式な判定を保存するところで、時間を少し超えてしまいました。
遅れは大きなものではありません。
ほんの数秒でした。
それでも、そのレースは正式な予想として扱いませんでした。
なぜ数秒くらいなら許さないのか
「数秒くらいなら、予想として残してもいいのでは?」
と思うかもしれません。
ただ、このAIでは予想する時間をあらかじめ決めています。
その時間を超えたあとに処理を続けると、
どこまでが事前情報で、どこからが後の情報なのか、
境界があいまいになってしまいます。
そのため、
決めた時間に間に合わなかったレースは、後から予想を作りません。
結果が分かったあとに、
「もし予想していたらこうだった」
という形で正式記録へ追加することもしません。
少し厳しいルールですが、長期間検証するなら必要だと考えています。
失敗したレースも、そのまま残す
AI開発というと、
的中したレースや成功した結果だけを見せたくなります。
でも、それでは実際の性能が分からなくなってしまいます。
今回のように、
- 起動できなかった
- 時間に間に合わなかった
- 予想を正式保存できなかった
というケースも開発記録として残しています。
失敗したこと自体も、AIを検証するためのデータです。
「当たったかどうか」だけではなく、
同じ条件で毎回きちんと動かせるかも確認しています。
数秒の遅れには原因があった
今回、時間に間に合わなかった原因を確認すると、
予想を保存する直前まで、
- データ取得
- AIスコア計算
を行っていました。
つまり、
必要な準備を始める時間が遅かった
ということです。
そこで、処理の流れを見直しました。
これまでは判定時刻になってから準備を進めていましたが、
先に直前情報を取得してAIの計算まで終わらせます。
そして、決めた時刻まで待って、
最後の判定だけを保存する形へ変更しました。
AIの予想方法は変えていない
ここは重要なところです。
今回変更したのは、
AIを動かすタイミングだけです。
予想の計算方法や、買う・見送るを決める基準は変えていません。
失敗したからといって、
結果に合わせてAIのルールを調整したわけではありません。
あくまで、
同じAIを、決めた時間に正しく動かすための修正
です。
自動化は「動けば完成」ではなかった
今回の失敗で、
自動化についてかなり考え方が変わりました。
最初は、
「設定して動けば完成」
くらいに考えていました。
実際には、
- 本当に予定時刻に起動するか
- パソコンの状態に左右されないか
- 処理に何秒かかるか
- 遅れた場合にどう扱うか
- 失敗をどう記録するか
まで決める必要があります。
AIを自動で動かすこと自体が、一つの開発でした。
まとめ
今回は、ボートレースAIの自動化で実際に起きた3つの失敗を紹介しました。
大きく分けると、
- 予定時刻に処理が始まらない
- Macの状態に左右される
- 数秒の遅れで正式予想にできない
という問題です。
特に最後の数秒の遅れは、実際に動かしてみなければ分からない問題でした。
ただ、原因が分かったことで、次の改善につなげることができました。
失敗したレースを後から作り直さず、そのまま失敗として残す。
このルールは、今後も守っていきます。
次回は、数秒の遅れをどう直し、実際に決めた時間内でAI予想を保存できるようになったのかを紹介します。
次回は、たった2秒では足りなかった。ボートレースAIの自動予想を直しましたで、時間内に判定するための改善を紹介します。


コメント