レガシーモデルガイド
Claude 3ファミリーのモデルへのアップグレードを強くお勧めしますが(優れたパフォーマンス、ビジョン機能、全体的なインテリジェンスについては、モデルの概要ページを参照してください)、移行には時間がかかり、一部のユーザーはしばらくの間、引き続きレガシーモデルを使用する必要があることを理解しています。
このガイドは、レガシーモデルの使用に関するヒントを提供し、OpenAIのGPTなどの他のモデルからレガシーモデルへのプロンプトの移行に関するヒントを提供することを目的としています(最先端のモデルへの移行については、メインの移行ガイドを参照してください)。
Anthropicのレガシーモデル
レガシーモデルには、Claude Instant 1.2、Claude 2.0、Claude 2.1が含まれます。これらのレガシーモデルの中で、Claude 2.1のみがシステムプロンプトをサポートしています(すべてのClaude 3モデルは、完全なシステムプロンプトサポートを備えています)。
これらのモデルには、Claude 3ファミリーのビジョン機能はなく、一般的にパフォーマンスとインテリジェンスが低くなっています。ただし、Claude 3モデルの高度な機能を必要としない特定のアプリケーションでは、引き続き役立つ場合があります。完全な概要については、モデルの概要ページを参照してください。
レガシーモデルは時間の経過とともに廃止される可能性があり、新しいモデルほどサポートされていないことに注意してください。可能であれば、Claude 3ファミリーへの移行を計画することをお勧めします。
OpenAI/ChatGPTからレガシーClaudeモデルへのプロンプトの移行
OpenAIのGPTモデルやChatGPTからClaude 2ファミリーのモデルまたはそれ以前のモデルに移行する場合は、最適なパフォーマンスを確保するために、プロンプトにいくつかの調整を加える必要がある可能性があります。Claude 3ファミリーははるかに操作しやすく、一般的に修正の必要なくプロンプトの移行を処理できますが、レガシーモデルでは追加のプロンプトの調整が必要になる場合があります。(とはいえ、必須ではありませんが、これらの同じテクニックや他のプロンプトエンジニアリング戦略は、ベースラインを超えてClaude 3モデルのパフォーマンスを向上させるのにも役立つ場合があります。)
レガシーClaudeモデルでより良い結果を得るためにGPTプロンプトを変換するためのヒントを以下に示します。
1. XMLタグを追加する
XMLタグ(例:<tag></tag>
)を使用して、プロンプトの異なるサブセクションを区切ることができます。これにより、Claudeはプロンプトを異なる部分に区分化できます。たとえば、ドキュメントからテキストをプロンプトに追加するには、ドキュメントを<doc></doc>
タグで囲みます。
<doc>
テキストの一部...
</doc>
Claudeは、JSONやMarkdownなどの他の構造化された形式も認識できますが、トレーニング中の露出のため、XMLが最も優れたパフォーマンスにつながる傾向があります。タグ名は<>
と</ >
の形式に従っていれば、任意のタグ名を使用できます(ただし、タグ名をある程度意味のあるものにし、区切っているコンテンツと意味的に関連付けることをお勧めします)。詳細については、XMLタグの使用に関するガイドを参照してください。
2. 明確で明白な指示を提供する
Claudeは、明確で直接的な指示によく反応します。暗黙の仮定の余地を残すのではなく、プロンプト内でできるだけ詳細にClaudeに明示的に指示して、Claudeが仕様に従ってタスクを完全に実行できるようにします。例えば、以下の代わりに:
役割 | 内容 |
---|---|
User | コンテキストと質問を使用して回答を作成してください。 |
以下を試してください:
役割 | 内容 |
---|---|
User | <question>タグ内に提供されているユーザーの質問を読んでください。次に、上記の<context>タグ内に提供されているコンテキスト情報のみを使用して、質問への回答を生成し、<answer>タグ内に出力してください。 |
Claudeのプロンプトを作成する際は、Claudeはタスクに不慣れで、プロンプトに記載されている内容以外の事前のコンテキストがないと考えてください。詳細で明確な説明を提供することで、Claudeはより良い応答を生成できます。詳細については、明確で直接的であることを参照してください。
3. Claudeの応答を事前に入力する
Claudeのプロンプトを拡張して、Assistant
ターンを事前に入力できます。Claudeは、Assistant
メッセージの最後のトークンから会話を続けます。これにより、Claudeのおしゃべりな傾向を回避し、目的の出力形式が提供されるようにすることができます。例:
役割 | 内容 |
---|---|
User | 次の指示を使用して、次の段落を書き直してください:” {{INSTRUCTIONS}}“. 段落は次のとおりです: <text>“{{PARAGRAPH}}”</text> 書き直した内容を<rewrite></rewrite>タグ内に出力してください。 |
Assistant (Prefill) | <rewrite> |
このアプローチを使用する場合は、APIコールでストップシーケンスとして</rewrite>
を渡すようにしてください。詳細については、Claudeの応答の事前入力に関するガイドを参照してください。
4. Claudeのキャラクターを維持する
ロールプレイシナリオでClaudeがキャラクターを維持できるようにするための戦略については、Claudeのキャラクターを維持するを参照してください。Claude 2.1(およびすべてのClaude 3モデル)の場合、システムプロンプトを使用して、Claudeがよりよくキャラクターを維持できるようにすることもできます。
5. 指示の前にドキュメントを配置する
Claudeの長いコンテキストウィンドウ(モデルによって100K〜200K異なります)により、長いドキュメントやテキスト文字列の解析と分析に優れています。長いドキュメントやテキストは、指示やユーザー入力の前に提供するのが最善です。Claudeはプロンプトの下部近くのテキストに特に注意を払います。プロンプトの最後に重要な指示を強調するようにしてください。
詳細については、長いコンテキストウィンドウのヒントを参照してください。
6. 多くの例を追加する(少なくとも3つ)
Claudeは、応答方法と形式の例を通じてよく学習します。プロンプトに少なくとも3つの例を追加することをお勧めしますが、より多いほうがよいでしょう。例は、一貫性のある信頼できる構造化された出力を必要とするタスクに特に有益です。統一された例は、Claudeに毎回同じ方法で応答するように教えます。詳細については、例を使用したプロンプトのガイドをご覧ください。
レガシーモデルの機能
Claudeはアスタリスクアクションを出力する
ロールプレイングプロンプトやシステムプロンプトが与えられると、レガシーClaudeモデルは、*smiles*
や*waves*
などのステージの指示を書くことで、応答をクリエイティブに表現することがあります。これが望ましくない場合は、出力を後処理して、アスタリスクの間の単語を削除できます。
Pythonでの実行例:
import re
text = "Hello. *My name is Claude. *I am an AI assistant."
cleaned = re.sub(r'\*.*?\*', '', text)
print(cleaned)
> Hello. I am an AI assistant.