【プロンプトエンジニアリング超入門】07.生成AIの性能を引き出す『情報提供』の極意|提供した情報をもとに回答、引用を含めて回答

プロンプトエンジニアリング

プロンプトエンジニアリング超入門の第7回目です。
この動画では、「効果的なプロンプトを作る4つのポイント」の中の2つめ「情報を提供する」について説明します。
この動画では、次のような疑問を解消します。

・情報の引用を含めて回答してもらう方法はあるの?
・提供した情報を活用してAIが回答できるようにするには?

この動画では、これらの疑問を解消します。
信頼できる情報をAIに提供し、正確な回答を得る方法を具体的にご紹介します。
生成AIを効果的に活用し、より質の高い結果を得たい方は必見です。

ITやDXについての学びを発信する「キノコード」です。
私は紀貫之の子孫で、文章ではなくコードを書いているので「キノコード」と名乗っています。
ぜひ、チャンネル登録をお願いします。

情報を提供する

例えば、テスト中に教科書を見ても良いのであれば、テストの点数が良くなりますよね。
それと同じで、AIにもテキスト情報を提供すると、良い結果が返ってきます。

情報を提供するためのポイントは、2つあります。

  1. 提供した情報をもとに質問に答えてもらう方法
  2. 回答に引用を含める手法

順番にみていきましょう。

提供した情報をもとに質問に答えてもらう方法

信頼できる情報がある場合、それを元に生成AIに回答してもらいたいですよね。
具体的には、社内の就業規則があるなら。それを入力データとして渡して回答してもらいたいです。
就業規則の情報を提供した上で、「入社3年目の社員は何日間の有給休暇がもらえますか?」という質問を生成AIに答えてもらいましょう。
ここに、会社の就業規則をここに貼り付けます。
ちなみに、就業規則を確認をすると、入社3年目の有給休暇は12日ですよね。
実行します。

"""
# 就業規則

当社の有給休暇制度は、入社初年度に10日間の有給休暇が付与されます。以降、勤務年数に応じて日数が増加します。

- 入社2年目:11日
- 入社3年目:12日
- 入社4年目以降:14日
"""
質問:入社3年目の社員は何日間の有給休暇がもらえますか?

出力:
入社3年目の社員は、12日間の有給休暇が付与されます。

「入社3年目の社員は、12日間の有給休暇が付与されます。」とのことです。
就業規則通りに回答してくれましたよね。
今回は、就業規則が短いケースで紹介しました。
しかし、就業規則が膨大な場合が多いですよね。
その場合、生成AIに回答してもらえると非常に楽です。

もう1つ例をあげます。
新製品のリリースを控えていたとします。
プロジェクト計画書を情報を提供した上で、「新製品のリリース日はいつか」回答をしてもらいましょう。
ここにプロジェクト計画書を貼り付けます。
ちなみに、プロジェクト計画書によると、リリース日は、2023年12月1日です。
実行します。

# 指示
次の三重引用符で囲まれたプロジェクト計画書を使って、質問に回答してください。計画書内に答えが見つからない場合は、『回答が見つかりませんでした』と記入してください。

"""
# プロジェクト計画書

新製品リリーススケジュール

- デザイン完了:2023年8月31日
- 試作機完成:2023年10月15日
- テスト期間:2023年10月16日〜11月30日
- リリース日:2023年12月1日
"""

質問:新製品のリリース日はいつですか?

出力:
新製品のリリース日は、2023年12月1日です。

「新製品のリリース日は、2023年12月1日です」と回答が返ってきました。
とっても便利ですよね。

このように、信頼できる情報がある場合、それを提供してAIに回答させると効果的です。
就業規則のように文章量が多い場合、RAGという技術を活用するとよいです。
RAGとは、事前に用意されたデータベースや文書から必要な情報を取り出し、答えを作る仕組みです。
RAGは、Pythonで実装することが可能です。

提供した情報をもとに引用を含めて質問に答えてもらう方法

AIに回答してもらう際に、引用を含めてほしいことがありますよね。
そのような場合は、ドキュメントを提供し、生成結果に引用を含めるよう指示しましょう。

桃太郎の文章で検証してみましょう。
「桃太郎が取り戻したものは何ですか?」と指示をだします。
そして、出力条件の部分で
・提供された文書以外の情報や知識を用いないでください。
・関連する文章を引用する際は、{"引用": ...}という形式を使用してください。
・文書に必要な情報が含まれていない場合は、「情報不足」とだけ書いてください。
と条件を付け足しましょう。
なお、桃太郎が取り戻したものは、財宝でしたよね。
実行します。

# 指示
桃太郎が取り戻したものは何ですか?

# 出力条件
・提供された文書以外の情報や知識を用いないでください。
・関連する文章を引用する際は、{"引用": ...}という形式を使用してください。
・文書に必要な情報が含まれていない場合は、「情報不足」とだけ書いてください。

# 提供するドキュメント
"""
昔々、ある村におじいさんとおばあさんが住んでいました。おじいさんは山へ柴刈りに、おばあさんは川へ洗濯に行きました。すると、川から大きな桃が流れてきました。おばあさんはその桃を家に持ち帰り、二人で切ってみると、中から元気な男の子が出てきました。
二人はその男の子を「桃太郎」と名付け、愛情を込めて育てました。桃太郎は成長するにつれて、とても強く、賢い若者になりました。ある日、鬼が島に住む鬼たちが村を襲い、村人たちの財宝を奪いました。桃太郎は村を救うために鬼を退治する決意をします。
おじいさんとおばあさんは、桃太郎にきびだんごを持たせ、旅の無事を祈って送り出しました。旅の途中で、犬、猿、キジに出会います。桃太郎はそれぞれにきびだんごをあげ、仲間に加えました。
ついに鬼が島に到着した桃太郎たちは、力を合わせて鬼たちと戦いました。犬が噛みつき、猿が引っかき、キジが空から攻撃し、桃太郎はその力をもって鬼のボスを打ち負かしました。鬼たちは降参し、奪った財宝をすべて返しました。
桃太郎は仲間たちと共に村に戻り、村人たちに財宝を返しました。村は再び平和になり、桃太郎は英雄として村人たちに称えられました。
めでたし、めでたし。
"""

出力:
桃太郎が取り戻したものは、鬼たちに奪われた「財宝」です{"引用": "ついに鬼が島に到着した桃太郎たちは、力を合わせて鬼たちと戦いました。…鬼たちは降参し、奪った財宝をすべて返しました。"}。

「桃太郎が取り戻したものは、鬼たちに奪われた「財宝」です」と回答してくれました。
そして、引用として「ついに鬼が島に到着した桃太郎たちは、力を合わせて鬼たちと戦いました。…鬼たちは降参し、奪った財宝をすべて返しました。」と結果を返してくれました。
]

結果が返ってきました。
桃太郎が取り戻したものは、鬼たちに奪われた「財宝」です、と正しい答えを返してくれました。
また、答えにつかった引用も提示してくれています。
引用があると安心ですよね。

次に、提供したドキュメントにない質問をしてみましょう。
桃太郎ではなく、梅太郎が取り戻したものは何ですか?と聞いてみます。

# 指示
梅太郎が取り戻したものは何ですか?

# 出力条件
・提供された文書以外の情報や知識を用いないでください。
・関連する文章を引用する際は、{"引用": ...}という形式を使用してください。
・  必要な情報が含まれていない場合は、「情報不足」とだけ書いてください。

# 提供するドキュメント
"""
昔々、ある村におじいさんとおばあさんが住んでいました。おじいさんは山へ柴刈りに、おばあさんは川へ洗濯に行きました。すると、川から大きな桃が流れてきました。おばあさんはその桃を家に持ち帰り、二人で切ってみると、中から元気な男の子が出てきました。
二人はその男の子を「桃太郎」と名付け、愛情を込めて育てました。桃太郎は成長するにつれて、とても強く、賢い若者になりました。ある日、鬼が島に住む鬼たちが村を襲い、村人たちの財宝を奪いました。桃太郎は村を救うために鬼を退治する決意をします。
おじいさんとおばあさんは、桃太郎にきびだんごを持たせ、旅の無事を祈って送り出しました。旅の途中で、犬、猿、キジに出会います。桃太郎はそれぞれにきびだんごをあげ、仲間に加えました。
ついに鬼が島に到着した桃太郎たちは、力を合わせて鬼たちと戦いました。犬が噛みつき、猿が引っかき、キジが空から攻撃し、桃太郎はその力をもって鬼のボスを打ち負かしました。鬼たちは降参し、奪った財宝をすべて返しました。
桃太郎は仲間たちと共に村に戻り、村人たちに財宝を返しました。村は再び平和になり、桃太郎は英雄として村人たちに称えられました。
めでたし、めでたし。
"""

出力:
情報不足

「情報不足」と返ってきて、期待通りの結果ですね。
この方法を用いると、AIは提供された文書のみを参照して回答し、どの部分を引用したのかを明示してくれます。
引用は、生成AIの回答の信頼性をさらに高めることができます。

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

まとめ

この動画で学んだことをまとめます。

・信頼できる情報をAIに提供することで、正確な回答を得られる
・提供した情報をもとに質問に答えてもらう方法がある
・回答に引用を含めて信頼性を高める手法がある

明日から、ぜひこれらの方法を活用して、生成AIとの対話を深めてみてください。

個人の学習も法人のお客様もキノクエスト

個人のお客様向けのキノクエストでは、生成AIの活用事例の講座、無料で簡単に生成AIアプリを作れるDifyの講座が学べます。 また、Pythonを使ったRAGやファインチューニングや、企業オリジナルなLLMを構築できる学習コンテンツもあります。Pythonを使った高度な機械学習も学習可能です。幅広いコンテンツであなたの学習をサポートします。 動画で学んだ内容の確認問題やキノクエスト限定の認定試験で、知識の定着もバッチリです。
詳しくはYouTube動画の概要欄にあるURLからご確認ください。

法人のお客様には「キノクエストforBiz」がおすすめです。
企業向けサービス「キノクエストforBiz」でDX推進に必要な人材育成をサポートします。YouTubeで培った多様なコンテンツを基に、DXを加速させる人材を育成するeラーニングサービス「キノクエストforBiz」を提供。 キノコードの動画を著作権や利用規約を気にすることなく安心して学習することができます。 今ならリスキリング助成金の申請・確定通知を受けられれば、キノクエストの料金の60~75%が国から助成されます。 弊社の提携社労士事務所が申請などをまるっとサポート。 高い費用対効果と助成金の活用で、DX人材の育成をサポートします。

キノクエストforBizサービス内容について

初回相談は無料です。下記フォームから、お気軽にご相談ください。
https://kino-code.com/contact-form/

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト