生成AI「Claude」のプロンプトエンジニアリング入門⑩ 〜長いコンテキストウィンドウを活用〜

ここでは全10回に渡って、生成AI「Claude」を使いこなすためのプロンプトエンジニアリングのコツを紹介しています。前回の第9回目は、「リライトで完璧な応答を引き出す」について解説してきました。

最終回の第10回目は「長いコンテキストウィンドウを活用する」というテクニックを中心に解説していきます。

コンテキストウィンドウとは

AIモデルが一度に処理できるテキストデータの最大量のことです。AIは与えられた情報の中だけで動作するので、このウィンドウサイズが大きいほど、より多くの文脈を理解し、複雑なタスクを処理できます。例えば、長い文章の要約や、関連性のある情報の抽出などです。

目次

Claudeの拡張コンテキストウィンドウとは?

Claudeの拡張コンテキストウィンドウ、特にClaude 3モデルの20万トークンの窓は、大量の情報を処理する複雑なタスクを扱うことを可能にします。これにより、以前は短いコンテキストウィンドウに合わせるために入力を分割する必要があったワークフローを簡素化できるんです。

例えば、以前のアプリケーションで長いドキュメントを複数の部分に分割して個別に処理する必要があった場合、今では1つのプロンプトでClaudeに全体のドキュメントを提供できます。これはコードを簡素化するだけでなく、Claudeにより包括的な文脈の理解を与え、より良い結果につながる可能性があります。

長いドキュメントの構造化

長いドキュメント、特に3万トークン以上のドキュメントを扱う際は、入力データと指示を明確に区別するようにプロンプトを構造化することが不可欠です。各ドキュメントをXMLタグでカプセル化することをおすすめします。この構造は、Claudeが長いドキュメントを受け取るようにトレーニングされた方法であり、Claudeにとって最も馴染みのある構造なのです。

プロンプト
以下は、参考にするドキュメントです: 
<documents> 
<document index="1"> 
<source> (この項目の一意の識別ソース - URL、ファイル名、ハッシュなど) </source> 
<document_content> (ドキュメントのテキストコンテンツ - 一節、ウェブページ、記事など) </document_content> 
</document> 
<document index="2"> 
<source> (この項目の一意の識別ソース - URL、ファイル名、ハッシュなど) </source> 
<document_content> (ドキュメントのテキストコンテンツ - 一節、ウェブページ、記事など) </document_content> 
</document> 
... 
</documents> 
[プロンプトの残りの部分] 

この構造により、プロンプトのどの部分が入力データで、どの部分が指示なのかがClaudeにはっきりと示され、情報を正確に処理する能力が向上します。また、<title>や<author>などの他のメタデータを格納するタグを追加することもできます。

ドキュメントと質問の配置

長いドキュメントのプロンプト構造の例では、ドキュメントが先に来て、プロンプトの残りの部分がその後に来ていることに注目してください。長いドキュメントや追加の背景情報が多い状況では、ドキュメントや追加の素材をユーザーの詳細な指示の上に配置すると、Claudeのパフォーマンスが著しく向上することが分かっています。

これは、レガシーモデルからClaude 3ファミリーまで、すべてのClaudeモデルに当てはまります。

ドキュメントの質問応答タスクのヒント

Claudeをドキュメントの質問応答タスクに使用する際は、以下のヒントを心に留めておきましょう。

  • 先に述べたように、質問を入力データの後のプロンプトの最後に配置すると、Claudeの応答の質が大幅に向上することが示されています。
  • 回答する前に質問に関連する引用を見つけ、関連する引用が見つかった場合にのみ回答するようClaudeに依頼します。これにより、Claudeは提供された文脈に基づいて応答を行うようになり、幻覚のリスクが軽減されます。
  • 後で質問されることを念頭に置いて、ドキュメントを注意深く読むようClaudeに指示します。これにより、Claudeは実行を求められるタスクを意識して入力データに細心の注意を払うようになります。

以下は、これらのヒントを取り入れたプロンプトの例です。

プロンプト
これからドキュメントをお渡しします。後で質問をする予定なので、ドキュメントを注意深く読んでください。

ドキュメントはこちらです:
<document>
ハイキングの準備
ハイキングに行く前に、以下の準備をしましょう。

1. コースの確認
ハイキングコースの難易度、所要時間、注意点などを事前に確認します。初心者は簡単なコースから始めましょう。

2. 装備の準備
リュックサック、トレッキングシューズ、雨具、防寒着、帽子、手袋、マップ、コンパス、ヘッドランプ、予備の電池などを用意します。

3. 食料と水の用意
行動食、非常食、飲料水を十分に用意します。水は1人1日あたり2リットルを目安に用意しましょう。

4. 体調管理
ハイキング前は十分な睡眠をとり、当日は朝食をしっかり食べましょう。体調が優れない場合は無理せず中止しましょう。

5. 計画書の作成
ハイキングの日程、コース、メンバー、緊急連絡先などを記載した計画書を作成し、家族や知人に渡しておきましょう。

以上の準備を整えることで、安全で楽しいハイキングが楽しめます。
</document>

まず、質問に答えるのに最も関連性の高い引用をドキュメントから見つけ、<quotes></quotes>タグ内に番号順に印刷してください。
引用は比較的短くしてください。関連する引用がない場合は、「関連する引用はありません」と書いてください。

次に、<answer></answer>タグ内で質問に答えてください。引用された内容を回答に逐語的に含めたり言及したりしないでください。
答える際に「引用[1]によると」などと言わないでください。
代わりに、回答の各セクションに関連する引用の番号を角括弧で文末に付けるだけにしてください。

したがって、全体の応答のフォーマットは、<examples></examples>タグの間に示されているようなものになります。
フォーマットと間隔を正確に守るようにしてください。

<examples>
Q: ハイキング中に体調が悪くなったらどうすればよいですか?
<quotes>
1. 体調が優れない場合は無理せず中止しましょう。
</quotes>
<answer>
ハイキング中に体調が悪くなったら、無理せず休憩を取るか、場合によってはハイキングを中止するのが賢明です[1]。
体調不良を我慢してハイキングを続けると、症状が悪化したり事故のリスクが高まったりする可能性があります。
</answer>
</examples>

質問にドキュメントで答えられない場合は、その旨を伝えてください。

最初の質問はこちらです:ハイキングに行く前に最も重要な準備は何ですか? 
出力結果
<quotes>
1. コースの確認 ハイキングコースの難易度、所要時間、注意点などを事前に確認します。初心者は簡単なコースから始めましょう。
2. 装備の準備 リュックサック、トレッキングシューズ、雨具、防寒着、帽子、手袋、マップ、コンパス、ヘッドランプ、予備の電池などを用意します。
3. 食料と水の用意 行動食、非常食、飲料水を十分に用意します。水は1人1日あたり2リットルを目安に用意しましょう。
</quotes>

<answer>
ハイキングに行く前の最も重要な準備は、コースの確認、装備の準備、食料と水の用意の3つです。
コースの難易度や所要時間を事前に把握し、自分の体力に合ったコースを選ぶことが大切です[1]。
また、天候の変化に備えて適切な装備を揃え[2]、十分な食料と水を用意することが欠かせません[3]。
これらの準備を怠ると、ハイキング中のトラブルやけがのリスクが高まります。
</answer>

以下は、複数選択式の質問生成のためのプロンプトの例です。

プロンプト
以下のドキュメントの内容に基づいて多肢選択式の質問を作成するのがあなたのタスクです:
<document>
ハイキングの準備 
ハイキングに行く前に、以下の準備をしましょう。

1. コースの確認
ハイキングコースの難易度、所要時間、注意点などを事前に確認します。初心者は簡単なコースから始めましょう。

2. 装備の準備 
リュックサック、トレッキングシューズ、雨具、防寒着、帽子、手袋、マップ、コンパス、ヘッドランプ、予備の電池などを用意します。

3. 食料と水の用意
行動食、非常食、飲料水を十分に用意します。水は1人1日あたり2リットルを目安に用意しましょう。

4. 体調管理
ハイキング前は十分な睡眠をとり、当日は朝食をしっかり食べましょう。体調が優れない場合は無理せず中止しましょう。

5. 計画書の作成
ハイキングの日程、コース、メンバー、緊急連絡先などを記載した計画書を作成し、家族や知人に渡しておきましょう。

以上の準備を整えることで、安全で楽しいハイキングが楽しめます。  
</document>

テキストの他の部分に基づいた質問と回答の例を以下に示します:
<examples>
Q1: ハイキング前に十分な睡眠をとり、当日は朝食をしっかり食べることが大切なのはなぜですか?
A. 体調管理のため
B. 装備の準備のため 
C. コースの確認のため
D. 計画書の作成のため
答え: A

Q2: ハイキングの計画書に記載すべき内容として適切でないものはどれですか?
A. ハイキングの日程
B. ハイキングのコース
C. ハイキングのメンバー
D. ハイキングの予算
答え: D  
</examples>

指示:
1. 提供されたテキストに基づいて5つの多肢選択式の質問を作成してください。
2. 各質問には4つの回答選択肢(A, B, C, D)が必要です。
3. 各質問の正解を示してください。
4. 質問がテキストに関連していること、回答選択肢がすべて妥当であることを確認してください。
出力結果
Q1: ハイキング初心者にとって最も適切なコース選択の方法は次のうちどれ?
A. 難易度の高いコースから始める
B. 簡単なコースから始める
C. 所要時間の長いコースから始める 
D. 注意点の多いコースから始める
答え: B

Q2: ハイキングに必要な装備として含まれていないものは次のうちどれ?
A. リュックサック
B. トレッキングシューズ
C. 雨具
D. 寝袋
答え: D

Q3: ハイキング中の水の用意について、1人1日あたりの目安はどのくらい?
A. 500ミリリットル
B. 1リットル
C. 2リットル
D. 3リットル
答え: C

Q4: 体調管理のためにハイキング前に気をつけるべきこととして最も適切なものは?
A. 十分な睡眠をとり、当日は朝食をしっかり食べる
B. 前日は夜更かしをして、当日は朝食を抜く
C. 前日は徹夜をして、当日は昼食を抜く
D. 十分な睡眠をとり、当日は朝食を抜く
答え: A

Q5: ハイキングの計画書に記載すべき内容として最も重要なものは次のうちどれ? 
A. ハイキングの予算
B. ハイキングの持ち物リスト
C. ハイキングの緊急連絡先
D. ハイキングのおやつリスト
答え: C

同じテキストからの質問と回答の例を提供することで、Claudeに望ましい出力形式と与えられたコンテンツから生成可能な質問の種類をより理解させることができるのです。

以上、Claudeの拡張コンテキストウィンドウを最大限に活用するためのヒントやテクニックについて解説しました。プロンプトの構造化やドキュメントの配置、具体的なタスクに応じたプロンプトの設計などに注意することで、Claudeの性能を引き出せることがお分かりいただけたでしょうか。

ぜひ、これらのテクニックを試してみてください。Claudeの真の能力を体験できるはずです。

以上で「Claude」のプロンプトエンジニアリング入門の連載を終了します。最後までお付き合いいただきありがとうございました!

よかったらシェアしてね!
  • URLをコピーしました!
目次