Claude3の長いコンテキストウィンドウに関するTips
hiroya_iizuka.icon 2024年8月時点で、上の公式ドキュメントの内容は若干変わってる(文量が減ってる)
hiroya_iizuka.icon が内容としては同じのため、こちらをUdemyで紹介する。
ポイント
長いコンテキストの場合、以下のXMLタグ使うと効果的
<document></document>
<source></source>
<content><content>
長いドキュメントや、多くの追加の背景コンテンツがある場合、先にコンテキストを書く。
code:プロンプト
以下のドキュメントを読んで、質問に答えてください。
<documents>
<document index="1">
<source></source>
<content></content>
<document>
<document index="2">
<source></source>
<content></content>
</document>
</documents>
質問: <残りのプロンプトをここに書く>
ハルシネーション(幻覚)を軽減するために、関連する引用が見つかった場合にのみ回答するように依頼する。
code:プロンプト
以下のドキュメントを読んで、質問に答えてください。
<document>
<source></source>
<content></content>
<document>
- 最初に、質問に回答するのに最も関連性の高い文書からの引用を見つけてください。
- それらを番号順に<quotes></quotes>タグ内に記載してください。
- 関連する引用がない場合は、代わりに「関連する引用なし」と書いてください。
- その後、<answer></answer>タグ内で質問に答えてください
後で質問に答えるから、注意深く読んでね!と指示すると効果的
https://scrapbox.io/files/65f4446c59e16a0025b8246b.png
関連
概要
Claudeの拡張されたコンテキストウィンドウ(Claude 3モデルでは200Kトークン)により、大量の情報を処理する必要がある複雑なタスクを処理することができます。Claudeの拡張されたコンテキストウィンドウにより、以前は短いコンテキストウィンドウに収まるようにインプットを分割する必要があったワークフローを簡素化することもできます。インプットを1つのプロンプトに結合することで、プロセスを合理化し、Claudeの機能を最大限に活用することができます。 例えば、以前のアプリケーションで長いドキュメントを複数の部分に分割し、各部分を個別に処理する必要があった場合、今では1つのプロンプトでドキュメント全体をClaudeに提供できます。これにより、コードが簡素化されるだけでなく、文脈をより包括的に理解できるようになり、より良い結果につながる可能性があります。
長いドキュメントの構造化
長いドキュメント(特に30K以上のトークン)を扱う際は、インプットデータと指示を明確に分離するようにプロンプトを構造化することが重要です。各ドキュメントをカプセル化するためにXMLタグを使用することをお勧めします。
この構造は、Claudeが長いドキュメントを受け取るようにトレーニングされた方法であり、したがって、Claudeが最も慣れ親しんでいる構造です。
code:xml
Here are some documents for you to reference for your task:
<documents>
<document index="1">
<source>
(a unique identifying source for this item - could be a URL, file name, hash, etc)
</source>
<document_content>
(the text content of the document - could be a passage, web page, article, etc)
</document_content>
</document>
<document index="2">
<source>
(a unique identifying source for this item - could be a URL, file name, hash, etc)
</source>
<document_content>
(the text content of the document - could be a passage, web page, article, etc)
</document_content>
</document>
...
</documents>
この構造により、プロンプトのどの部分がインプットデータで、どの部分が指示であるかがClaudeに明確になり、情報を正確に処理する能力が向上します。<title>や<author>などの他のメタデータを格納するタグを追加することもできます。
ドキュメントとクエリの配置
上記の長いドキュメントプロンプト構造の例では、ドキュメントが最初に来て、プロンプトの残りの部分がその後に来ることに注意してください。長いドキュメントや多くの追加の背景コンテンツがある場合、ドキュメントと追加の資料を詳細な指示やユーザークエリの上に配置すると、Claudeのパフォーマンスが明らかに向上します。
これは、レガシーモデルからClaude 3ファミリーまで、すべてのClaudeモデルに当てはまります。
hiroya_iizuka.icon 回答品質を最大30%向上させることができるみたい...。
ドキュメントQ&Aのヒント
ドキュメント質問応答タスクにClaudeを使用する場合は、以下のヒントを心に留めておいてください。
質問をプロンプトの最後、インプットデータの後に配置します。前述のように、これはClaudeの応答の質を大幅に向上させることが示されています。
Claudeに、回答に関連する引用を見つけてから回答し、関連する引用が見つかった場合にのみ回答するように依頼します。これにより、Claudeは提供されたコンテキストに基づいて応答を行うことが奨励され、幻覚のリスクが軽減されます。
後で質問されることになるので、ドキュメントを注意深く読むようClaudeに指示します。これにより、Claudeは実行を求められるタスクを念頭に置いて、インプットデータに細心の注意を払うようになります。
これらのヒントを取り入れたプロンプトの例を以下に示します。
code:xml
I'm going to give you a document. Read the document carefully, because I'm going to ask you a question about it. Here is the document: <document>{{TEXT}}</document>
First, find the quotes from the document that are most relevant to answering the question, and then print them in numbered order in <quotes></quotes> tags. Quotes should be relatively short. If there are no relevant quotes, write "No relevant quotes" instead.
Then, answer the question in <answer></answer> tags. Do not include or reference quoted content verbatim in the answer. Don't say "According to Quote 1" when answering. Instead make references to quotes relevant to each section of the answer solely by adding their bracketed numbers at the end of relevant sentences. Thus, the format of your overall response should look like what's shown between the <examples></examples> tags. Make sure to follow the formatting and spacing exactly.
<examples>
</examples>
If the question cannot be answered by the document, say so.
Here is the first question: {{QUESTION}}
多肢選択式問題の生成
特定のテキストに基づいて多肢選択式の問題を生成するためにClaudeを使用する場合、同じテキストの他の部分から例となる問題と回答のペアを提供すると、生成される問題の質が大幅に向上します。外部の知識に基づく一般的な多肢選択の例や、無関係のドキュメントから生成された例は、それほど効果的ではないことに注意することが重要です。
多肢選択式問題生成のプロンプトの例を以下に示します。
code:xml
Your task is to generate multiple choice questions based on content from the following document:
<document>
{{DOCUMENT}}
</document>
Here are some example multiple choice questions and answers based on other parts of the text:
<examples>
</examples>
Instructions:
1. Generate 5 multiple choice questions based on the provided text.
2. Each question should have 4 answer options (A, B, C, D).
3. Indicate the correct answer for each question.
4. Make sure the questions are relevant to the text and the answer options are all plausible.
同じテキストから例となる質問と回答を提供することにより、望ましい出力形式と、特定のコンテンツから生成できる質問の種類をClaudeにより理解させることができます。