😱

「まずはフォーマットを作りましょう」と言うTipsに潜む危険な罠

に公開

😱 「まずはフォーマットを作りましょう」と言うTipsに潜む危険な罠

こんにちは!AI活用とプロンプトエンジニアリングについて発信しています。

ChatGPTなどの生成AIを仕事で使う際、「まずフォーマット(テンプレート)をAIに作らせて、そこに情報を流し込む」というテクニックを耳にしたことはありませんか?

一見、非常に効率的で賢い使い方のように思えます。しかし、この「フォーマット先行」の手法には、使い方を誤ると深刻なハルシネーション(嘘)やコンテキスト汚染を引き起こすという危険な罠が潜んでいます。

今回は、私が実際に試してみて見事に(?)失敗した事例をご紹介します。AIがどのように間違った情報を生成してしまうのか、その恐ろしさと対策をぜひご覧ください。

失敗の前提:最悪の組み合わせを試す

今回、私は意図的に「最悪の組み合わせ」をAIにぶつけてみました。それは、

  1. ガチガチのフォーマット指示: 役員向けの完璧な報告書フォーマットという、非常に厳格な出力を要求。
  2. ラフすぎるインプット: その後、フォーマットに流し込む情報として、非常にラフで情報が欠落した「進捗メモ」を与える。

この「厳格な指示」と「ラフな(プロフェッショナルでない)インプット」のギャップが、AIを混乱させる最悪の組み合わせになると考えたからです。


ステップ1:完璧なフォーマット作成を指示する

まずは、ChatGPTに「完璧な報告書フォーマット」の作成を依頼しました。
読者の皆さんも、ぜひご自身のChatGPTに以下のプロンプトをそのまま貼り付けて試してみてください。

#役割 
あなたは自社の上司に提出する報告書を作成する担当者です。 

#文脈 
私は今、「プロジェクト・フェニックス」という開発案件の進捗報告書を役員向けに作成する必要があります。 

#ゴール 
役員向けに提出する、完璧でプロフェッショナルな「プロジェクト進捗報告書」のフォーマットを生成してください。 

#制約事項 
- 役員が一目で理解できるよう、重要な指標(KPI)を整理してください。 
- 結論ファーストでお願いします。 - 報告書はビジネス文書として適切な言葉遣いを用いること。 
- 結果や分析内容は、会議に不在の人でも理解できるように整理すること。 
- 改善策は、具体的なアクションや方向性が明確であること。 
- 不確定な情報や主観的表現は含めないこと。 
- 重要な事実のみにフォーカスすること。 

#出力形式 
報告書フォーマット

実行結果(フォーマット作成)

すると、ChatGPTは非常に優秀なフォーマットを提案してくれました。

承知しました。以下に、役員向けの「プロジェクト・フェニックス 進捗報告書」のフォーマットを作成しました。結論ファーストで重要指標を整理し、改善策まで具体的に示す形式です。


プロジェクト・フェニックス 進捗報告書

提出日:YYYY年MM月DD日
作成者:〇〇部 〇〇


1. 結論(Summary / Key Takeaways)

  • 現在のプロジェクト進捗は予定比 〇〇%
  • 主な成果:〇〇機能の開発完了、〇〇テストで合格判定。
  • 主な課題:〇〇工程でスケジュール遅延の兆候。
  • 改善策:リソース再配置、プロセス改善、リスク管理強化を実施予定。

2. 進捗状況(Progress Status)

項目 予定 実績 達成率 コメント
要件定義 100% 100% 100% 完了
基本設計 100% 100% 100% 完了
詳細設計 100% 90% 90% 調整中
開発 100% 80% 80% 一部遅延
テスト 50% 40% 80% 今週追加リソース投入予定

(中略)


このフォーマットに実際の数値や状況を埋めることで、役員が一目で現状を理解できるプロフェッショナルな報告書になります。

ここまでは完璧です。非常に「それらしい」フォーマットが生成されました。
しかし、注目すべきは、ChatGPTが「ダミーデータ」を自ら生成している点です(例:詳細設計90%、開発80%など)。これが後の「コンテキスト汚染」の火種となります。


ステップ2:ラフなメモを流し込む

次に、先ほど作成させたフォーマット(コンテキスト)が残っている同じチャットで、以下のラフな「進捗メモ」を流し込み、報告書の完成を指示しました。

ありがとうございます。 
では、先ほど生成したフォーマットを使い、以下の「進捗メモ(叩き)」の内容を流し込んで、報告書を完成させてください。 

#手順 
[C1] 以下の「進捗メモ(叩き)」をビジネス文書に修正する。 
[C2] 先ほどのフォーマットに従って、[C1]の内容を整形する。 

#進捗メモ(叩き) 
件名: プロジェクト・フェニックス進捗 
〇〇さんへ 
今週の進捗です。 
先週から開発チームが頑張って、要件定義はほぼ終わり。全体の進捗は60%くらいです。 
でも、予算がヤバくて、すでに全体の70%を使っちゃいました。 
理由は、外部委託したXX社の単価が思ったより高かったからです。 
決済モジュールのバグがまだ取れなくて、これが一番の課題です。 
来週までに対応しないと、全体のスケジュールが遅れるかも。 
以上、取り急ぎ。

衝撃の実行結果

なんと言うことでしょう。ハルシネーションだけでなくコンテキスト汚染の見本の様な結果が得られました。

承知しました。まず、進捗メモをビジネス文書として整え、その後に先ほどのフォーマットに沿って報告書を完成させます。

(中略)

[C2] 報告書フォーマットへの落とし込み(完成版)


プロジェクト・フェニックス 進捗報告書

(中略)

2. 進捗状況(Progress Status)

項目 予定 実績 達成率 コメント
要件定義 100% 95% 95% 開発チームの尽力でほぼ完了
基本設計 100% 60% 60% 進行中
詳細設計 100% 50% 50% 開発チームで調整中
開発 100% 40% 40% バグ対応優先で進行
テスト 50% 20% 40% 決済モジュールバグ対応中

3. KPI(重要指標)

  • 開発進捗率:60%(予定比-40%)
  • 予算消化率:70%(予算超過の懸念あり)
  • バグ件数:決済モジュールに重大バグ1件残存
  • リソース稼働率:開発チームフル稼働中

(以下略)

[疑わしいリンクは削除されました]


なぜこれが最悪なのか? 問題点の分析

この結果には、大きく分けて2つの深刻な問題が含まれています。

1. ハルシネーション(情報の捏造)

「進捗メモ(叩き)」には、以下の情報しか含まれていませんでした。

  • 要件定義はほぼ終わり
  • 全体の進捗は60%
  • 予算は70%使用
  • 決済モジュールのバグが課題

しかし、GPTが生成した報告書には、メモに一切書かれていない情報が大量に含まれています。

  • 基本設計 60%
  • 詳細設計 50%
  • 開発 40%
  • テスト 20%
  • リソース稼働率:開発チームフル稼働中
  • 決済モジュールに重大バグ1件残存 (「1件」とは言っていない)

これらはすべて、AIが「それらしく」見せるために捏造したハルシネーションです。

2. コンテキスト汚染

さらに悪質なのが「コンテキスト汚染」です。
なぜAIは、メモにない詳細な進捗率(基本設計60%など)を捏造したのでしょうか?

それは、ステップ1(フォーマット作成時)にAI自身が生成したダミーデータに影響されたからです。

  • ステップ1で、AIは「詳細設計90%」「開発80%」といったダミーデータを提示しました。
  • ステップ2で「全体の進捗は60%」という指示が来たため、AIは「なるほど、ステップ1のダミーデータより進捗が悪いんだな」と勝手に解釈しました。
  • その結果、ステップ1のダミーデータを基準に、全体が60%になるよう、それらしく数値を捏造して調整してしまったのです。

3. 機能しない制約事項

ここで、最初のプロンプトで設定した制約事項を思い出してみましょう。

#制約事項
- 不確定な情報や主観的表現は含めないこと。
- 重要な事実のみにフォーカスすること。

これらの制約は全く機能していません

なぜ機能しなかったのか? それは、AIにとっての「ゴール」が、これらの制約よりも優先されたためです。

  • AIが認識したゴール: 「完璧なフォーマット(ステップ1)」に「メモ(ステップ2)」を流し込んで「報告書を完成させる」こと。
  • AIの思考: 「完成させる」ためには、フォーマットの空欄をすべて埋める必要がある。しかし、メモの情報だけでは足りない。でも「完成させろ」と指示された。
  • AIの結論: 足りない情報は、ステップ1のコンテキスト(ダミーデータ)を参考に「推測」して補完しよう。そうすれば「完成」するから。

結果として、「不確定な情報(捏造した進捗率)」だらけの報告書が完成してしまいました。

■なぜ「捏造するな」だけではダメなのか?

そもそもAIは、「ハルシネーションを禁止する」や「捏造をするな」といった抽象的な命令を与えられても、具体的に何をすべきか、何を避けるべきかを判断することができません。

AIは、人間のように「常識的に考えて、これは嘘になるから書かないでおこう」とは判断しません。AIにとっての判断基準は、「与えられた指示(ゴール)に対して、最もそれらしい回答を生成すること」です。

今回の例では、「完成させろ」というゴールに対し、情報が不足していました。AIは「捏造するな」という制約よりも、「完成させる」ために不足した情報を推測して補完することを優先してしまったのです。

■コンテキスト汚染の影響

さらに、AIは履歴(メモリやコンテキストウィンドウと呼ばれます)に記載されている内容に強い影響を受けます。今回、ステップ1でAI自身がダミーデータ(例:開発80%)を生成しました。

ステップ2で「全体進捗60%」という情報が来ると、AIは履歴にあるダミーデータを参照し、「前回は80%だったが、今回は60%になるように調整すればいいんだな」と解釈してしまいました。

これが「コンテキスト汚染」です。過去の会話(たとえそれがダミーであっても)が、新しい回答を汚染し、ハルシネーションを誘発する原因となったのです。

🚀 失敗例のフルデータはこちら


改善策:抽象的な禁止ではなく「具体的な行動」を指示する

では、どうすればよかったのでしょうか?
対策は、抽象的な「禁止」ではなく、不足している場合にAIがとるべき「具体的な行動」を指示することです。

以下が、改善版のプロンプトです。(これもぜひ試してみてください)

#役割 
あなたは自社の上司に提出する報告書を作成する担当者です。 

#文脈 
私は今、「プロジェクト・フェニックス」という開発案件の進捗報告書を役員向けに作成する必要があります。 

#ゴール 
役員向けに提出する、完璧でプロフェッショナルな「プロジェクト進捗報告書」のフォーマットを生成してください。 

#制約事項 
- 役員が一目で理解できるよう、重要な指標(KPI)を整理してください。 
- 結論ファーストでお願いします。 
- 報告書はビジネス文書として適切な言葉遣いを用いること。 
- 結果や分析内容は、会議に不在の人でも理解できるように整理すること。 
- 改善策は、具体的なアクションや方向性が明確であること。 
- 「進捗メモ(叩き)」に含まれていない情報を、絶対に創作しないでください(ハルシネーションの禁止)。 
- **(ここが重要!)** 「進捗メモ(叩き)」の情報だけでは不足している箇所は、ダミーデータで埋めず、必ず「[要確認]」や「[分析中]」と明記してください。 

#出力形式 
報告書フォーマット 

#手順 
[C1] 以下の「進捗メモ(叩き)」をビジネス文書に修正する。 
  - ここで作るフォーマットには具体的な数値を入力せず、入力すべきデータのプレースホルダのみを記述すること 
[C2] 先ほどのフォーマットに従って、[C1]の内容を整形する。 
[C3] 先ほど生成したフォーマットを使い、以下の「進捗メモ(叩き)」の内容を流し込んで、報告書を完成させてください。 

#進捗メモ(叩き) 
件名: プロジェクト・フェニックス進捗 
〇〇さんへ 
今週の進捗です。 
先週から開発チームが頑張って、要件定義はほぼ終わり。全体の進捗は60%くらいです。 
でも、予算がヤバくて、すでに全体の70%を使っちゃいました。 
理由は、外部委託したXX社の単価が思ったより高かったからです。 
決済モジュールのバグがまだ取れなくて、これが一番の課題です。 
来週までに対応しないと、全体のスケジュールが遅れるかも。 
以上、取り急ぎ。

改善版の実行結果

承知しました。それでは、いただいた「進捗メモ(叩き)」をもとに、役員向けの「プロジェクト・フェニックス進捗報告書」を作成します。
まず、フォーマットを整えつつ[C1]〜[C3]の手順に沿って整理しました。


プロジェクト・フェニックス 進捗報告書

作成日:[作成日を入力]
作成者:[作成者名を入力]
対象期間:[対象期間を入力]


1. 結論(Executive Summary)

  • プロジェクト全体進捗:60%
  • 予算消化率:70%
  • 現状の最重要課題:決済モジュールのバグ対応
  • 今後の対応方針:来週中にバグ対応を完了させ、スケジュール遅延を回避する

※現状、予算超過のリスクが高く、外部委託コストの見直しも検討が必要。


2. 進捗状況(Status)

項目 状況 備考
要件定義 ほぼ完了 開発チームが順調に進めている
開発全体進捗 60% [要確認:各工程詳細]
決済モジュール バグ発生中 来週までに対応必要
外部委託コスト 高額 XX社の単価が想定より高い

3. 予算状況(Budget)

項目 消化率 コメント
総予算 70% 外部委託費が主な要因
内訳 [要確認] [分析中]

(以下略)

[改善版の実行結果デモはこちら(プレイスホルダー)]

ご覧ください。今回はAIが勝手に数値を捏造せず、メモにあった「全体進捗60%」という事実だけを記載し、不足している情報(各工程詳細や予算内訳)は、指示通り[要確認] [分析中] と明記してくれました。

これにより、ハルシネーションとコンテキスト汚染を防ぎ、事実に基づいた「叩き台」として安全に使える報告書が完成しました。

🚀 改善例のフルデータはこちら

まとめ

「フォーマット作成」は便利なテクニックですが、AIがダミーデータを含む「完璧すぎる」フォーマットを生成した時点で、「コンテキスト汚染」の土壌が完成してしまいます。

そこに情報の不十分なインプットを与えると、AIは「空欄を埋めて完成させる」ことを優先し、平気で嘘(ハルシネーション)をつきます。

AIに作業を依頼する際は、「捏造するな」といった抽象的な禁止ではなく、「知らないことは[要確認]と書け」という具体的な指示(不足している箇所をどう扱うか)を明確に課すことが、ビジネスで安全にAIを活用するための鍵となります。

皆さんも「完璧なフォーマット」の罠にはまらないよう、お気をつけください。

Discussion