「検出0件です」
AIからそう報告を受けたとき、私は安心しました。書類の中に使ってはいけない記号が混ざっていないかを点検させ、1つも見つからなかったという報告です。
ところが実際には、その点検は動いていませんでした。0件だったのは、記号が無かったからではありません。探せていなかったからです。
しかもこの失敗を、私は2回起こしています。
何を点検させていたか
私が運営しているサイトでは、書類や報告に特定の記号を使わないという決まりを作っていました。表や枠を描くための記号で、WordやPDFに変換したときに崩れるためです。
決まりを作ったので、守られているかを点検する必要があります。それをAIにやらせました。書類をすべて調べて、その記号が含まれていないかを数える、という作業です。
返ってきた答えが0件でした。
1回目 命令が失敗しても結果が空に見えた
最初の失敗は、点検の命令そのものが動いていなかったというものです。
使った命令が、この環境では対応していない書き方でした。実行するとエラーになります。ところが書き方の都合で、エラーが起きても画面には何も表示されず、結果が空のまま返ってきました。
空の結果を、そのまま0件として読んでいたわけです。
このときは、作業していたAIが自分で気づいて申告してくれました。別の方法で試したところ結果が違ったため、最初の命令を疑ったそうです。気づかなければ、誤った点検結果がそのまま記録に残っていました。
決めた対策は3段階
この件を受けて、点検のやり方を決め直しました。3段階にしています。
- 探したいものをわざと含むファイルを作り、検索がそれを見つけることを先に確かめる
- 本番の検索を実行する
- 0件だった場合は、同じ範囲で必ず見つかる文字を検索し、件数が出ることを示す
3つ目が要点です。0件という結果は、無いから0件なのか、探せていないから0件なのかを区別できません。同じ範囲で別の文字が見つかることを示せば、探せていたことの裏づけになります。
この手順を決めてから、点検の報告には毎回3段階の結果を書かせるようにしました。
2回目 同じ形の失敗をもう一度起こした
対策を決めて、しばらくは問題なく回っていました。毎回0件という報告が続きます。
ところが後日、別の作業をしていたときに、同じ点検の命令が「6947件」という数字を返しました。その報告には記号が1つも入っていないはずです。
調べたところ、点検の命令に別の誤りがありました。複数の記号をまとめて指定する書き方をしていたのですが、それが文字の単位ではなく、内部の符号の単位で動いていたのです。日本語の文字は内部で複数の符号として扱われるため、日本語の文章がすべて当たっていました。
1段階目の試験を通過してしまった理由
問題は、この誤った命令が3段階の1つ目を通過していたことです。
1つ目は「探したいものをわざと含むファイルを作り、検索が見つけることを確かめる」でした。記号を並べたファイルを作って数えると、確かに数が出ます。検出できているように見えます。
ただし、そのとき出た数は41字に対して123でした。ちょうど3倍です。数が合っているかを見ていませんでした。0でない数が出たことだけを見て、通してしまったわけです。
足りなかったのは「当たってはいけないもの」の試験
作り直した試験では、4つのファイルで確かめる形にしました。
- 記号だけを並べたもの … 置いた数と同じ数が出ること
- ふつうの日本語の文章 … 0件であること
- 日本語と記号が混ざったもの … 記号の数だけ出ること
- 表の記法を含むもの … 0件であること
2つ目と4つ目が、以前は無かった試験です。見つけられるかだけを試して、余計なものを拾わないかを試していませんでした。
いまはこの4つが自動で走り、数が合わなければその場で止まって結果を出さない作りにしてあります。壊れた命令が結果を返してしまう、という今回の事故そのものを防ぐ形です。
過去の報告を全部数え直した
命令が壊れていたと分かった時点で、それまでの報告がすべて疑わしくなりました。同じ命令で出した0件だからです。
そこで、過去の完了報告19件と、その他の書類16件、合計35件を数え直しました。結果はすべて0件でした。
結論は変わりませんでした。ただ、変わらなかったことと、確かめ方が正しかったことは別です。たまたま正しい結論が出ていただけで、確かめ方は壊れていました。
AIの作業を確認する仕組みを作った 経緯は、AIの完了報告が2回続けて途中で切れた 原因は表だった にも書いています。
0件という報告を受けたときに聞くこと
この2回の失敗のあと、AIから0件という報告を受けたときは、次の1つを確かめるようにしています。
同じ範囲で、必ず見つかるはずのものを探したか。
これだけで、探せていないのに0件に見える状態は防げます。私の場合、書類の中に必ず入っている語を1つ決めて、それが何件見つかるかを一緒に報告させています。
0件という報告は、一見すると安心できる結果です。何も問題が無かったという意味に読めます。ただ、探していない場合も同じ0件になるということを、2回続けて忘れていました。
存在しないという結論をどう扱うかについては、AIが機能は存在しないと答えた 実際には存在していた にも書いています。

