最初に
今回は社内から、「同じプロンプトでも回答にばらつきがある」とリクエストもらったので、生成AIにおいて、同一プロンプトでも回答がブレる原因の解説及び、求めている回答を出力するための、プロンプトのコツをまとめていきます
前提
なぜ同じプロンプトなのに回答がバラけるのか、そこには明確な理由があります
前回の【超入門③】でハルシネーションの解説をした時に、
【次に来る確率が最も高い単語を予測して文章を作っている】
と解説しました、ここまた詳しく説明していきます
前回の記事
まずブレる原因は?
第一に、そもそも生成AIは「正解を1つ返す仕組み」ではないということを認識してください
多くの方々が勘違いしているのが、生成AIサービスはネット検索の延長線と考えていることが多いでしょう
だからこそ、同じプロンプトなのに回答がブレることに違和感を覚えていると思います
上でも述べましたが生成AIはあくまで
確率を予測して、文章を自然になるように生成する仕組み
ということを覚えてください
私たち人間でも、「〇〇について教えてください」と聞かれたときには
- 初心者向けに説明する
- 技術者向けに説明する
- 数学的に説明する
- 一言で短く説明する
と表現する方法はいくつもあります、生成AIもこれに近く、答えが一つに固定されているというより、複数の妥当な表現候補の中から文章を組み立てているというイメージを持ちましょう
確率で選ぶってどういうことか
確率で選ぶと聞いてもイメージはつかみにくいので、実例でわかりやすくしていきます
例えば
生成AIは
というプロンプトが来た際、
- 「文章を」
- 「入力に基づいて」
- 「確率的に」
- 「大量のデータから」
と続く候補が複数思い浮かぶと思います
このとき、内部ではそれぞれに「どれくらいそれらしいか」という確率がついています
毎回必ず1位の候補だけを機械的に選ぶのではなく、設定や状況によっては2位や3位の候補が選ばれることもあります
すると、最初の数語が少し変わるだけで、その後の文全体も変わっていきます
文章生成は前の単語に引っ張られるため、最初の小さな違いが、後半では大きな差になるのです
表現が少し変わるだけで、AIは全く別物として認識する
これは人間が見るのと、AIが見るので視点が変わってくるという意味です
以下3つの言葉を見てみましょう
- AIとは何ですか?
- AIについて教えてください
- AIを初心者向けに説明してください
これらは人間がみても全部「AIの説明を求めている」と理解しますが、AI的には
- 定義を求めているのか
- 概要説明を求めているのか
- 読者レベルを指定しているのか
それぞれ理解が異なります
生成AIは単語そのものだけでなく、
命令の意図・対象読者・期待される粒度まで推定しながら答えています
そのため、ユーザーが「ほぼ同じ質問をしたつもり」でも、AI側では少し違うタスクとして処理され、結果として回答が変わります
会話の前後関係によって答えが変わる
生成AIは、直前の会話内容を踏まえて回答します
これがいわゆるコンテキスト依存です
例えば同じ
AIとは何ですか?
という質問でも、その前に
- 機械学習の話をしていた
- 画像生成AIの話をしていた
- 会社の業務効率化の話をしていた
なら、回答の方向性が変わってきます
これは人間の会話でも同じです、突然「それって危ないの?」と言われても、何の話をしていたかで意味が変わります
生成AIも同様に、今この会話で何が話題になっているかを強く参照します
そのため、同じ一文だけを切り出して比較しても、前後の文脈が違えば回答は変わります
モデル内部には「揺れやすい問い」と「揺れにくい問い」がある
すべての質問が同じ程度にぶれるわけではありません
例えば
- 1+1は?
- 日本の首都は?
のような、答えが短く明確なものは比較的安定しやすいですが、一方
- AIの未来についてどう思いますか
- 良いエンジニアとは何ですか
- Deep Learningの本質をわかりやすく説明して
のような問いは、表現の自由度が高く、答え方が複数成立します
このような質問は、もともと唯一の正答が存在しにくいため、回答も揺れやすくなります
実際に回答はブレるのか
では実際に全く同じプロンプト
AIとは何ですか?
回答2

と、この様に簡単なもので回答のブレが発生します
ではこれをなるべく防ぐ様にプロンプトのコツを掴みましょう
回答のブレを少なくするために
回答のブレを少なくするためには、プロンプトに
- AIの役割を指定する
- 対象を指定する
- 出力形式を指定する
- 前提条件を明示する
- 以上プロンプトをまとめる
以上のコツがあります、全部を実演すると長いので、プロンプトのコツをまとめて、最後に結果を見てみます
①AIの役割を指定する
あなたはAI研究者です。
専門家としてAIとは何かを説明してください
専門家としての視点をもたせることで、専門家視点の説明をシてくれる確率が高くなります
②対象を指定する
AIとは何かを
IT初心者向けにわかりやすく説明してください
この様に対象を指定することで
- 用語の難易度
- 説明の深さ
- 例の出し方
が安定します
③出力形式を指定する
AIとは何かを次の形式で説明してください
1. 概要
2. 仕組み
3. 活用例
このようにすると、
- 回答の構造
- 説明の順序
が固定されるため、回答の揺れが少なくなります
④前提条件を明示する
AIとは何かを説明してください
次の条件を守ってください
・事実ベースで説明する
・推測は行わない
・不明な場合は不明と回答する
AIに不用意な推測を禁止することで、ハルシネーションの予防にも繋がります
⑤プロンプトをまとめる
あなたはAI研究者です
IT初心者向けにAIとは何かを説明してください
次の形式で回答してください
1. 概要
2. AIの仕組み
3. 活用例
条件
・事実ベースで説明する
・推測は行わない
このように、
- 役割
- 対象読者
- 出力形式
- 条件
を指定することで、AIの回答の方向性が固定され、回答のブレを抑えることができます
最後に、⑤のプロンプトで改めて実験して結果を見てみます
回答1

最後に
今回は生成AIの回答を安定させるコツを紹介しました
最後の実験を見てもらえば分かる通り、出力の形式などはそろっていますが、中身まで一言一句合わせるということは確率予測が入ってくるため、理論上不可能です
が、なるべく自分が知りたい情報などをちゃんと出してほしい場合などは、プロンプトにしっかりと条件などを追加して、出力を安定させる様なプロンプトエンジニアリングをして行きましょう
株式会社ONE WEDGE
【Serverlessで世の中をもっと楽しく】
ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。

