AIToday
大規模言語モデルAIコーディングZenn AI/ML掲載日時: 2026年10月17日 22:00

空欄禁止の指示でキー消える

LINEで送る
空欄禁止の指示でキー消える

3つのポイント

  1. 何が起きたか

    100回の質問でclaude -p 2.1.295は捏造せずnullを返したが、「nullや空欄を使うな」と指示した10回中7回で欠けた2つのキーごとJSONから消えた。

  2. なぜ重要か

    受け取るプログラムはキーの静かな欠落に気づかない可能性がある。nullなら値がないことを示せるが、欠落したまま不完全なデータで処理が進み、検知されない恐れがある。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

このテストの動機は、AIに株価データを扱わせる際の hallucination 精査が最も難しい部分になるというコメントだった。筆者には株価データがなかったため、6行の架空の社内資料を作り、要求する4項目のうち2つを意図的に欠落させ、5種類のプロンプトを各10回実行した。別の検証タスクでは6アーム・計60回となった。欠落した通年売上に1,205や4,820のような捏造数値が出れば失敗と数える設計だった。筆者は捏造を予想し集計表を用意したが、最初の試行でnullが返り、表は使われなかった。

代わりに現れたのは別の故障モードだった。「全項目を数値で埋め、nullや空欄を使うな」という指示が、答えられない2つのキーを完全に落とすようモデルを促した。筆者は、nullableなフィールドは値がないことを受け取り側プログラムに伝えるが、キーが欠けるとプログラムがエラーで停止するか、さらに悪ければ空値として流れ続けると指摘する。筆者自身も集計スクリプトで同じ過ちを犯したという。厳格JSONのアームでは、モデルが単位やnullの理由を宣言していた周辺の文章も削除されたため、nullマーカーは残ったが説明は消えた。

存在する数値の単位分裂が最も有用な発見だった。同じ資料と同じキー名でも、「単位なしの整数で書け」という指示が百万円の数値を維持するとも読めるし円に換算するとも読めるため、回答が100万倍に分かれた。単位を指定する1行を追加すると分裂は止まり、nullに関する行を追加しても何も変わらなかった。筆者はさらに、検証不能なキーを特定する別の検証プロンプトが10回すべてで期待回答と一致し、セット内で最も安価なタスクだったことも見出した。

よくある質問
「nullを使うな」という指示は実際に何をしたのか?
10回中7回で、モデルは数値を捏造したりnullを使ったりせず、欠けている2つのキーをJSONから完全に削除した。
資料に実際にあった項目では何が壊れたのか?
「4,820百万円」の数値が4820と4820000000に分裂し、100万倍の差が生じた。50回中9回で起きた。
nullを明示的に求めるとモデルの挙動は変わったか?
変わらなかった。「資料にない項目はnullにする」という行を追加しても、指示なしと同じ20/20回のnull回答だった。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へDanaherがNVIDIAとAI自律ラボ計画