🤖

プロンプトエンジニアリングの基本

に公開

今回の想定読者

今回のネタは、プロンプトエンジニアリングについてです。本記事を読んでいただけると、プロンプトエンジニアリングのいくつかの代表的な手法について、知ることができます。

以下の様な方が想定読者です。

  • プロンプトは自己流で使っているけど、代表的な手法に何があるかを知りたい

ログビーの勉強会について

ログビー(Logbii)では、月一回オンラインの社内勉強会をしています。直近のものと、2025年以降のアーカイブを順次公開していきます。

ざっくりと、以下のルールで運用をしています。

  • 月イチで、ランチタイムにオンライン開催(1時間)
  • テーマ自由
  • 持ち回りで開催
  • ランチ代支給(2000円まで)、飲食可
  • 業務時間扱いでOK(業務時間を削る形でよい)

今回の勉強会について

今回は、2025年3月の勉強会アーカイブです。

AIエンジニアのHasebeさんが発表しました!
それでは、以下本編です。

プロンプトエンジニアリングの基本

プロンプトエンジニアリングとは、生成AI(人工知能)に対して適切な指示(プロンプト)を設計・最適化し、望ましい出力を得るための技術です。

例えば、以下のようなフォーマットでプロンプトを記載します。

# 目的

# 背景

# 出力フォーマット

プロンプトエンジニアリングの重要性

生成AIの性能は、入力されるプロンプトの質に大きく依存します。適切なプロンプトを設計することで、AIから質の高い、精度の高い回答を得ることが可能となります。これにより、AIの使用用途が広がり、ユーザーエクスペリエンスの向上にも寄与します。

プロンプトの主な構成要素

プロンプトは以下の3つの要素で構成されます:

  1. 指示:AIに実行させたい具体的なタスクや命令。
  2. コンテキスト:タスクに関連する背景情報や追加の文脈。
  3. 出力インジケータ:期待する出力の形式やスタイル。

これらの要素を適切に組み合わせることで、AIから望ましい結果を得やすくなります。

プロンプト設計のコツ

効果的なプロンプトを設計するためのポイントは以下の通りです:

  • 背景情報の提供:タスクに必要なコンテキストや詳細情報を含める。
  • オープンクエスチョンの活用:AIが柔軟に応答できるような質問形式を用いる。
  • 適切な長さの維持:過度に長いプロンプトは避け、必要な情報だけを簡潔に伝える。
  • 段階的な質問:複雑なタスクは、小さなステップに分けて指示を出す。

プロンプトエンジニアリングの代表的な手法

以下は、プロンプトエンジニアリングで用いられる主な手法です:

  • Zero-shot Prompting:AIに対して、事前の例示なしにタスクを実行させる手法。
1+1=
  • Few-shot Prompting:少数の例を提供し、AIにタスクを学習させる手法。
1+1=2
上記は足し算の例です
2+1=
  • Chain-of-thought Prompting:思考の過程を段階的に示すことで、AIの推論能力を高める手法。
次の問題を解いてください。答えに至るまでの考え方を「ステップ1」「ステップ2」…のように段階的に書き、最後に「最終回答:」で答えだけを書いてください。

【問題】
ある商品は1個120円です。Aさんはこの商品を3個買い、500円を支払いました。おつりはいくらですか?

【出力フォーマット】
- ステップ1: 与えられた情報を整理
- ステップ2: 合計金額を計算
- ステップ3: 支払額との差を計算
- 最終回答: (おつり)

これらの手法を適切に活用することで、生成AIからより精度の高い出力を得ることが可能となります。

Chain of Density

Chain of Density(CoD)は、生成AI、特にGPT-4の要約性能を向上させるためのプロンプトエンジニアリング手法です。

Chain of Densityの概要

CoDは、要約の情報密度を段階的に高めるプロンプト手法で、以下のステップで構成されます:

  1. 初期要約の生成:元の記事から主要なポイントを抽出し、簡潔な要約を作成します。
  2. 重要エンティティの特定:初期要約に含まれていない重要なエンティティ(固有名詞や専門用語)を洗い出します。
  3. エンティティの追加:特定したエンティティを要約に組み込み、情報密度を高めます。
  4. 要約の改善:追加したエンティティを反映させつつ、要約の簡潔さと明瞭さを保つように調整します。
  5. プロセスの繰り返し:上記のステップを数回繰り返し、要約を段階的に詳細化していきます。

この手法により、要約の長さを維持しつつ、重要な情報を効果的に盛り込むことが可能となります。

Chain of Densityの利点

  • 情報密度の最適化:要約に必要な情報を過不足なく含めることで、読者にとって有益な内容を提供します。
  • リードバイアスの低減:文章の冒頭部分だけに偏らず、全体から均等に情報を抽出することで、バランスの取れた要約を実現します。
  • 自動化と効率化:一連のプロンプトを通じて、AIが自動的に要約を改善していくため、手動での編集作業を削減できます。

注意点

CoDは強力な手法ですが、以下の点に留意する必要があります:

  • 初期要約の質:最初の要約が不十分だと、プロセス全体の効果が限定的になります。
  • エンティティの選定:関連性の高いエンティティを選ばないと、要約が冗長になったり、重要な情報が抜け落ちたりする可能性があります。
  • 反復回数の調整:繰り返しすぎると、要約が過度に詳細になりすぎることがあるため、適切な回数での実施が求められます。

これらを考慮しつつ、Chain of Densityを活用することで、質の高い要約を効率的に生成することが可能となります。

Chain of Density(CoD)を活用して、生成AIによる要約の情報密度を高めるプロンプトの例を以下に示します。

**Chain of Density(CoD)要約プロセス**

1. **初期要約の作成**:
   - 以下のテキストを約80語で簡潔に要約してください。

2. **エンティティの特定と追加**:
   - 初期要約を確認し、欠落している重要なエンティティ(固有名詞、専門用語など)を1~3つ特定してください。
   - 特定したエンティティを含める形で、情報密度を高めた新しい要約を作成してください。

3. **プロセスの繰り返し**:
   - 上記のエンティティ特定と追加のステップを5回繰り返し、要約の詳細度と情報密度を段階的に向上させてください。

**注意点:**
- 各ステップで、前回の要約に新たなエンティティや詳細を追加し、情報の網羅性を高めてください。
- 要約の長さは維持しつつ、内容の充実度を向上させることを目指してください。

使用方法:

  1. 要約したいテキストを用意し、上記プロンプトの「初期要約の作成」部分に貼り付けます。
  2. AIにプロンプトを実行させ、生成された初期要約を確認します。
  3. AIが自動的にエンティティの特定と追加を行い、要約を改善していきます。
  4. 必要に応じて、プロセスを追加で実行し、要約の質を高めます。

このプロンプトを使用することで、生成AIによる要約の情報密度を効果的に向上させることができます。

Chain of Verification

Chain of Verification(CoVe)は、生成AIが出力する情報の正確性を高め、ハルシネーション(事実と異なる情報の生成)を減少させるプロンプト・エンジニアリングの手法です。

Chain of Verificationのプロセス

CoVeは以下の4つのステップで構成されます:

  1. 初期応答の生成:ユーザーからの質問に対して、AIが最初の回答を生成します。
  2. 検証計画の立案:生成した回答の正確性を確認するための検証質問を計画します。
  3. 検証質問への回答:計画した検証質問に対して、AIが回答します。
  4. 最終応答の生成:検証結果を基に、初期応答を修正・改善し、最終的な回答を提供します。

Chain of Verificationの利点

  • ハルシネーションの低減:自己検証のプロセスを通じて、AIの出力の正確性を向上させます。
  • 透明性の向上:思考過程や検証プロセスを明示化することで、AIの判断基準を理解しやすくします。
  • 信頼性の向上:検証を重ねることで、ユーザーに対してより信頼性の高い情報を提供します。

プロンプト例

以下に、Chain of Verificationを活用したプロンプトの例を示します:

**質問**:「ニューヨーク出身の著名な政治家を教えてください。」

**ステップ1:初期応答の生成**
- AIに対して、ニューヨーク出身の著名な政治家をリストアップするよう指示します。

**ステップ2:検証計画の立案**
- 生成したリストが正確であるかを確認するため、各人物の出身地や政治活動歴に関する検証質問を作成します。

**ステップ3:検証質問への回答**
- 各検証質問に対して、AIが回答します。

**ステップ4:最終応答の生成**
- 検証結果を基に、初期応答を修正・補足し、最終的な回答を提供します。

注意点

Chain of Verificationは、AIの出力の正確性を高める効果的な手法ですが、以下の点に留意する必要があります:

  • 検証プロセスの設計:適切な検証質問を設定し、効果的な自己チェックを行うことが重要です。
  • リソースの消費:複数回の検証プロセスを経るため、計算資源や時間が多く必要となる場合があります。
  • 限界の理解:AIの知識ベースやデータソースの限界を理解し、過信しないことが重要です。

これらを考慮しつつ、Chain of Verificationを適用することで、生成AIの出力の信頼性と正確性を向上させることができます。

以下の質問にたいして、1. ~ 5. までを5回あなた自身でかんがえ、最終回答「のみ」を提示してください。

**質問**:「ニューヨーク出身の著名な政治家を教えてください。」

**ステップ1:初期応答の生成**
- AIに対して、ニューヨーク出身の著名な政治家をリストアップするよう指示します。

**ステップ2:検証計画の立案**
- 生成したリストが正確であるかを確認するため、各人物の出身地や政治活動歴に関する検証質問を作成します。

**ステップ3:検証質問への回答**
- 各検証質問に対して、AIが回答します。
- もしもAIの回答が、不正解だった場合、1に戻り再度検証してください。

**ステップ4:最終応答の生成**
- 検証結果を基に、初期応答を修正・補足し、最終的な回答を提供します。

質問:「ニューヨーク出身の著名な政治家を教えてください。」

ステップ1:初期応答の生成

  • AIに対して、ニューヨーク出身の著名な政治家をリストアップするよう指示します。

ステップ2:検証計画の立案

  • 生成したリストが正確であるかを確認するため、各人物の出身地や政治活動歴に関する検証質問を作成します。

ステップ3:検証質問への回答

  • 各検証質問に対して、AIが回答します。

ステップ4:最終応答の生成

  • 検証結果を基に、初期応答を修正・補足し、最終的な回答を提供します。
株式会社ログビー(Logbii, Inc.)

Discussion