Claude2.1のための、長文プロンプトのTips
https://scrapbox.io/files/65f7c972f5a51600254b4415.png
Long context prompting for Claude 2.1
ポイント
Claudeの応答の冒頭に「コンテキストの中で最も関連性の高い文はこれです: 」という文を追加すると、スコアを27%から98%に引き上げた。
https://scrapbox.io/files/65f7d3e4f5a51600254c355e.png
感じたこと
https://scrapbox.io/files/65f7ccae9a160100243b01a7.png
本文
Claude2.1は、プロンプト手法を用いて最も関連性の高い文を思い出すことで、200Kトークンの全[コンテキストウィンドウ:にわたって個々の文を検索する際に高い性能を発揮します。 Claude2.1は、200,000トークンのコンテキストウィンドウ全体にわたって情報を非常によく思い出すことができます。 しかし、このモデルは、特に挿入されたり不適切な位置にある文に基づいて質問に答えることを躊躇する傾向があります。
軽微なプロンプトの編集により、この躊躇が取り除かれ、これらのタスクで優れた性能を発揮します。
私たちは最近、最先端のモデルであるClaude2.1をリリースしました。これは200Kトークンのコンテキストウィンドウを提供し、約500ページ分の情報に相当します。クロード2.1は、より長いコンテキストにわたる実世界の検索タスクにおいて優れた性能を発揮します。 クロード2.1は、S1長さのドキュメントを要約するなど、ユーザーが価値を見出す長文ドキュメントのタスクに関する大量のフィードバックを用いてトレーニングされました。このデータには、実際のドキュメントを使用した実世界のタスクが含まれており、クロードは間違いを減らし、裏付けのない主張を避けるようにトレーニングされました。
実世界の複雑な検索タスクでトレーニングされているため、クロード2.1はクロード2.0と比較して不正確な回答が30%減少し、ドキュメントが主張をサポートしていないにもかかわらずそうであると誤って述べる割合が34倍低くなっています。
https://scrapbox.io/files/65f7cd4e65d9fd00257dff03.png
さらに、これらの非常に長いコンテキストにわたってクロードのメモリが改善されています。
長いコンテキストの思い出しのデバッグ
クロード2.1の200Kトークンのコンテキストウィンドウは強力ですが、効果的に使用するには慎重なプロンプティングが必要です。
最近の評価では、スタートアップに関するポール・グレアムのエッセイで構成された長文書内の個々の文を思い出すClaude2.1の能力が測定されました。埋め込まれた文は次のようなものでした。 「サンフランシスコで最高のことは、晴れた日にドロレスパークでサンドイッチを食べて座ることです。」この文が埋め込まれた長い文書を示した上で、このモデルに「サンフランシスコで最も楽しいことは何ですか?」と尋ねました。
この評価では、Claude2.1は「残念ながら、このエッセイではサンフランシスコで最も楽しいことについての明確な答えは示されていません」という趣旨の答えを返し、いくつかのネガティブな結果となりました。つまり、Claude2.1は、埋め込まれた文を検索する代わりに、質問に答えるのに十分なコンテキストが文書に与えられていないと報告することが多かったのです。
私たちは社内実験でこの動作を再現しました。最新の統合予算法案を取り上げ、その中間に「5月23日を『ナショナル・ニードル・ハンティング・デー』と宣言する」という文を追加しました。クロードはその言及を検出しますが、それでも「ナショナル・ニードル・ハンティング・デー」が実在の祝日だと主張することを躊躇します。
Claude2.1は、不正確さを減らすことを目的としたデータのミックスでトレーニングされています。これには、ドキュメントに答えを正当化するのに十分な情報が含まれていない場合、ドキュメントに基づいて質問に答えないことも含まれます。私たちは、そのような不正確さを減らすことを目的とした一般的またはタスク固有のデータの結果として、モデルは広いコンテキストに埋め込まれた場違いな文に基づいて質問に答える可能性が低くなると考えています。
クロードは、長文書の最初からあり、したがって場違いではない文について質問された場合、同じ程度の躊躇を示さないようです。例えば、問題の長文書には、ポール・グレアムのViaweb に関するエッセイの冒頭から次のような一節があります。
「1998年6月にYahoo買収が発表される数時間前、私はViawebのサイトのスナップショットを撮りました。」
私たちはエッセイの順序をランダム化し、このエッセイが200Kのコンテキストウィンドウのさまざまな位置に現れるようにし、Claude2.1に次のように尋ねました。
「Yahoo買収が発表される数時間前に、著者は何をしましたか?」
Claudeは、回答のある行がコンテキストのどこにあるかに関係なく、元の実験で使用されたプロンプト形式を変更することなく、これを正しく理解します。その結果、Claude2.1は、文が長いコンテキストの中で場違いに見える場合に答えることを非常に躊躇し、与えられたコンテキストに基づいて答えることができないと主張する可能性が高いと私たちは考えています。この特定の躊躇の原因は、実世界の長いコンテキストの検索タスクを対象とした評価では捉えられていませんでした。
200Kトークンのコンテキストウィンドウを効果的に使用するためのプロンプティング
Claudeが長いコンテキストの検索質問に答えることを躊躇している場合、ユーザーは何ができるでしょうか?Claudeが答えることができるが、そうすることを躊躇している場合、プロンプトを少し更新するだけで結果が大きく異なることがわかりました。社内で同じ評価を実行したところ、プロンプトにたった1文を追加するだけで、Claude2.1の200Kのコンテキストウィンドウ全体にわたってほぼ完全な忠実度が得られました。
Claudeの応答の冒頭に「Here is the most relevant sentence in the context:(コンテキストの中で最も関連性の高い文はこれです)」という文を追加することで、元の評価におけるクロード2.1のスコアを27%から98%に引き上げることができました。
https://scrapbox.io/files/65f7d3e4f5a51600254c355e.png
本質的に、モデルに関連する文を最初に探すように指示することで、このプロンプトは、特に長い文書の中で場違いに見える単一の文に基づいて答えることへのClaudeの躊躇を無効にします。
このアプローチは、コンテキスト内にあった、つまり場違いではなかった単一の文の回答に対するClaudeの性能も向上させます。これを実証するために、前述のYahoo-Viaweb の例に修正後のプロンプトを適用すると、90〜95%の精度が達成されます。
https://scrapbox.io/files/65f7d46e4c71dd00230981a0.png
私たちは、このようなタスクでClaudeをより調整されたものにするために常にトレーニングを行っており、興味深い実験を行い、改善方法を特定してくれたコミュニティに感謝しています。