0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

画像にない十字をAIに説明させていた:プロンプトを直しても認識精度は上がらなかった話

0
Posted at

はじめに

画像を見て操作対象を説明するAIを作っていたところ、画像にはない「十字マーカー」を根拠にした回答が出てきました。

確認すると、モデルに渡す画像からは十字線を取り除いていたのに、プロンプトには「リング+十字マーカー」という説明が残っていました。さらに、等倍で切り出した画像を「拡大クロップ画像」と説明していました。

この2箇所を直すと、19ケース中11ケースに出ていた十字への言及は0になりました。しかし、対象認識の判定が改善したケースはなく、1ケースではラベルが欠けました。

今回は、この検証から分かった「説明の整合性」と「対象認識」を分けて評価する必要性をまとめます。

検証の背景

私が個人開発している Local Manual Maker(LMM)は、Windowsの操作を記録し、スクリーンショット付きの手順書へ出力するアプリです。任意のローカルAI処理で、操作対象の説明を補助する機能も開発しています。

今回扱うのは、2026年10月初旬の開発版で行った検証です。現在配布している製品の認識精度を示すベンチマークではありません。

当時の処理では、AIに次の画像を渡していました。

  • 操作画面の全体画像
  • クリック位置を中心とした480×480ピクセルの切り出し画像

どちらにもクリック位置を示すリングがありました。一方、十字線は画像側の変更で既に廃止していました。

つまり、目印がすべて存在しなかったのではありません。リングはあるが、プロンプトに書かれた十字線はないという不整合です。

1. 画像とプロンプトの前提がずれていた

確認した不整合は2つでした。

項目 修正前の説明 実際の画像に合わせた説明
クリック位置の目印 リング+十字マーカー リング
切り出し画像 拡大クロップ画像 等倍の切り出し画像

表は変更した語句の抜粋であり、プロンプト全文ではありません。

今回は、この2箇所を同時に修正しました。画像生成、マーカーの形状、画像の順序、モデル、ランタイム、推論設定、回答形式、UI Automationのヒントは変更しない条件で比較しています。

そのため、結果を「十字という単語を消した効果」だけに分解することはできません。「拡大」から「等倍」への修正も含めた比較です。

2. 既存15ケースと追加4ケースを分けて比較した

比較対象は19ケースです。

  • 既存の実画面由来:10ケース
  • 既存の合成画面:5ケース
  • 追加の実画面由来:4ケース

既存15ケースは、それまでの比較や原因調査にも使っていました。すべてを未見の評価データとして扱うことはできません。

追加4ケースは修正文面を固定した後に用意し、正解を推論前に保存したうえで比較しました。この結果を見て文面をさらに調整することはしていません。

また、比較には画像・プロンプト・設定の一致を確認した過去の回答を一部再利用しています。全ケースを同じタイミングで取り直した実験ではありません。

3. 十字への言及は消えたが、対象認識は改善しなかった

まず、存在しない十字への言及を数えました。

評価項目 修正前 修正後
十字への言及があったケース 11 / 19 0 / 19

ここだけを見ると、修正はうまくいったように見えます。

一方、対象認識の判定は次のとおりでした。

対象 修正前:○ / △ / × 修正後:○ / △ / ×
既存の実画面由来10ケース 7 / 1 / 2 7 / 0 / 3
既存の合成画面5ケース 3 / 0 / 2 3 / 0 / 2
追加の実画面由来4ケース 4 / 0 / 0 4 / 0 / 0

○・△・×は、当時の検証で用いた正解・部分的に正しい・誤りの分類です。△には、ラベルは読めていてもコントロールの種類を誤っていたケースが含まれます。

分類が改善したのは0ケース、悪化したのは1ケース、不変は18ケースでした。

また、○でも、画面上の「X」を読めたことと、その機能を「閉じる」と理解できたことは同じではありません。どこまでを正解とみなすかにも注意が必要です。

4. 架空の根拠が消えても、正しい対象にたどり着くとは限らない

分かりやすかったのは、小さな「●」ボタンを対象にした合成画面です。

修正前には、次の回答がありました。

  • 対象ラベル:十字マーカー
  • 根拠:リングと内部の十字マークが表示されており

実際には十字線を描いていないのに、プロンプトにある目印を回答へ持ち込んでいました。

修正後、この回答は消えました。ただし、正しい「●」になったわけではなく、対象ラベルは「X」でした。

「●」を「X」と読み違えたのか、別の位置を見ていたのかは、この比較では確定していません。

少なくとも、画像にない十字を根拠にする説明が消えたことだけでは、クリック対象を正しく認識できたとは判断できませんでした。

5. 回答全体ではなく、アプリが使うフィールドを見る

悪化したケースでは、本来のラベルが「行1、列1」でした。

回答フィールド 修正前 修正後
対象ラベル 行1、列1 行
コントロールの種類 button button

種類は修正前から誤っていましたが、修正後はラベルの一部まで欠けました。

さらに、修正後の根拠説明には「行1、列1」という文字列が含まれていました。しかし、当時のアプリは手順の説明に対象ラベルのフィールドを使うため、実際に採用される内容は「行」になってしまいます。

回答のどこかに正しい文字列があることと、利用者へ渡る説明が正しいことは別でした。

構造化された回答を使う場合は、回答全体を眺めるだけでなく、アプリがどのフィールドを取り出して、どう表示するかまで確認する必要があります。

6. プロンプトだけでなく、入力画像との整合性を確認する

今回の修正後、画像生成の条件を確認する回帰テストも追加しました。たとえば、切り出しが等倍であることや、中心がクリック位置に対応することを確認するものです。

ここで確認する対象は、AIの回答だけではありません。

  1. 実際にモデルへ渡す画像
  2. その画像を説明するプロンプト
  3. モデルの回答
  4. アプリが採用・表示するフィールド

画像側の処理を変更しても、プロンプトに古い説明が残ることがあります。逆に、プロンプトを直して回答が自然になっても、最終的な操作説明が改善するとは限りません。

次のように評価を分けておくと、変更の効果を取り違えにくくなります。

  • 画像にないものを根拠にしていないか
  • 正しい位置の対象を見ているか
  • 対象の名前と種類が合っているか
  • アプリが使うフィールドに必要な情報が入っているか

この検証の限界

今回の結果は、小規模な開発中の比較です。

  • 既存15ケースは、既に調査に使っていたデータです。
  • 既存の実画面由来10ケースは2枚のスクリーンショットに由来し、画面の多様性は限られます。
  • 追加4ケースだけでは、幅広い画面への適用を判断できません。
  • 2つの語句を同時に変更しており、それぞれの効果を分離していません。
  • 過去回答を一部再利用しており、全件を新規実行した比較ではありません。

したがって、「この書き方ならハルシネーションを防げる」「認識精度が上がる」と一般化する結果ではありません。

まとめ

画像側で廃止した十字線の説明が、プロンプトに残っていました。実際の画像に合わせて文面を修正すると、19ケース中11ケースにあった十字への言及は0になりました。

一方、対象認識の分類は改善0件、悪化1件でした。

今回の検証で学んだのは、プロンプトを入力画像に合わせることに加えて、根拠説明・対象認識・最終的な表示を別々に確認することです。

AIの説明がもっともらしく整ったときこそ、アプリが利用者へ渡す内容まで見て評価したいと思います。


開発中の検証対象は、Windows操作からWord・Excelの手順書を作る Local Manual Maker(LMM) です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?