プロンプトエンジニアリングは、入力テキスト(すなわち「プロンプト」)を最適化することにより、大規模言語モデル(LLM)の出力の品質と制御を改善するための中核となる技術である。この包括的なガイドでは、プロンプトエンジニアリングと組み合わせて使用されるテクニックを体系的に紹介しています。 Claude
基本的な準備から高度な応用までを網羅した、各モデル相互作用に関する一連のベストプラクティス。 Claude
可能性がある。
始める前に:成功の基礎
具体的なプロンプト・エンジニアリングのテクニックを掘り下げる前に、しっかりとした基礎を築かなければならない。これには以下が含まれる:
- 明確な成功基準ユースケースの成功基準を明確にする。
- 効果的なテスト方法モデルの出力がこれらの基準を満たしているかどうかを客観的かつ定量的に評価できる手法を確立する。
- 初稿プロンプトあなたが改善したいと思う初期バージョンのヒントがある。
これらの準備が完了していない場合は、まずその準備に時間を費やすことを強くお勧めする。
いつキュープロジェクトを選ぶか?(コントラスト微調整)
すべての問題がキューエンジニアリングによって解決されるとは限らない。例えば、レイテンシーやコストの問題は、別のモデルを選択することでより簡単に改善できる場合がある。キュー・エンジニアリングとファインチューニングは、モデルの挙動を制御するための2つの主要なツールですが、ここでは、さまざまなシナリオにおいて、キュー・エンジニアリングの方がファインチューニングよりも優れている理由を説明します:
- 資源効率ファインチューニングには膨大な計算資源(ハイエンドGPUなど)とメモリーが必要だが、キューエンジニアリングはテキスト入力だけで済み、資源に優しい。
- 費用対効果クラウドベースのAIサービスを使ったシナリオでは、微調整に多大なトレーニングコストがかかる。ティップ・エンジニアリングでは、ベースモデルを直接利用するため、通常はコストがかからない。
- モデルアップデートの互換性モデル提供者がベースモデルを更新すると、微調整されたバージョンは再トレーニングが必要になる。一方、よく設計されたキューは、通常、バージョンを超えて機能し続けることができる。
- 時間効率微調整には数時間から数日かかることもある。対照的に、キュー・エンジニアリングはほぼ瞬時にフィードバックを提供し、反復と問題解決のスピードを劇的に加速させる。
- 極めて低いデータ要件ファインチューニングには、タスクに特化した大規模なラベル付きデータセットが必要であるが、その入手は困難であったり、コストがかかったりする。キューエンジニアリングは、数ショット、あるいはゼロショットのシナリオでも効果的に機能する。
- 柔軟性と迅速な反復開発者は複数のアプローチを素早く試し、キューを調整し、すぐに結果を観察することができる。このような迅速な実験のための敏捷性は、微調整では実現が難しい。
- ドメイン適応ヒントでドメイン固有のコンテキストを提供することで、再トレーニングすることなく、モデルを新しいドメインに簡単に適応させることができます。
- 理解力強化キュー・エンジニアリングは、モデルが外部コンテンツ(例えばRAG経由で検索された文書)をよりよく理解し、利用できるようにする上で、微調整よりもはるかに効果的である。
- 一般知識の保持ファインチューニングには「壊滅的な忘却」のリスクが伴う。つまり、モデルは新しい知識を学習するにつれて、元の一般化された能力を失う可能性がある。キューエンジニアリングは、モデルの幅広い知識ベースを維持します。
- 透明性と解釈可能性ヒントは人間が読むことができ、モデルが受け取った正確な情報を明確に示します。この透明性は、モデルの動作を理解し、デバッグするのに役立ちます。
Claude 4
エンジニアリング・コア・プリンシプルのヒント
Claude 4
シリーズモデル(Opus 4.1、Opus 4、Sonnet 4を含む)は、より正確に指示に従うよう最適化されています。最良の結果を得るためには、以下の基本原則に従ってください。
1.明確で直接的な指示
モデルは明確で具体的な指示に最もよく反応する。望ましいアウトプットを明示することで、結果の質を大幅に向上させることができる。もしモデルが昔の Claude
過剰なパフォーマンス」と同様、これらの行動は現在、より明確に要求される必要がある。
例:分析ダッシュボードの作成
- あまり効果的でないヒント::
创建一个分析仪表盘。
- より良い結果を得るためのヒント::
创建一个分析仪表盘。请包含尽可能多的相关功能和交互细节,超越基础功能,实现一个功能完备的设计。
2.パフォーマンスを向上させる文脈の補足
指示の背景にある文脈や動機を、例えば以下のように示す。 Claude
特定の行動がなぜ重要なのかを説明することは、モデルがターゲットをよりよく理解し、より的を絞った対応をするのに役立つ。
例:書式設定
- あまり効果的でないヒント::
绝不使用省略号。
- より良い結果を得るためのヒント::
你的回答将被文本转语音引擎朗读,所以绝不使用省略号,因为引擎不知道如何发音。
このモデルは、そのような説明から一般化するのに十分な知性を持っている。
3.例と詳細の慎重な使用
Claude 4
モデルは、指示の中のすべての詳細と例を真摯に受け止めます。提供する例が、奨励されることが期待される行動と一致し、避けたい行動を最小限に抑えるようにしてください。
コア・ヒント エンジニアリング・テクニック
以下のテクニックは、最も一般的なものからより専門的なものへと順番に整理されている。パフォーマンスの問題を解決する際には、この順番で試してみることをお勧めする。
- 明確で直接的な指示 前述
- 使用例(マルチサンプルチップ)
- 誘導モデリング(思考の連鎖)
- XMLタグの使用
- システム・プロンプトを通じてキャラクターに力を与える
- 事前に入力されたモデル回答
- 連鎖する複雑なヒント
- ロング・コンテクスト・キュー・テクニック
- チップ・ジェネレーターの使用
これらのテクニックのうち、最も重要なものを以下に詳述する。
XMLタグを使用して構造化プロンプトを構築する
プロンプトに複数のコンポーネント (背景情報、指示、例、入力データなど) が含まれている場合、XML タグを使用することで Claude
精度の高い狙撃手の解析。
- XMLタグを使用するメリット::
- クラリティキューを構成する各パートを明確に分ける。
- 精度指示と文脈の混同によるモデルエラーを減らす。
- 熟練プロンプトの特定部分の検索、追加、削除、修正が容易。
- 解決可能性出力にXMLタグを使うことをモデルに義務づけると、プログラムが回答の特定の部分を抽出しやすくなる。
- ベストプラクティス::
- 一貫性の維持: プロンプトでは常に同じタグ名を使用し、コマンドではそれを参照する(例えば、「Use the
<contract>
タブ内の契約...")。 - ネストラベル階層化されたコンテンツには、次のような入れ子のタグを使用できます。
<outer><inner></inner></outer>
.
- 一貫性の維持: プロンプトでは常に同じタグ名を使用し、コマンドではそれを参照する(例えば、「Use the
例:法的契約分析
XMLタグを使わないためのヒント::
分析这份软件许可协议的潜在风险和责任:{{CONTRACT}}。关注赔偿、责任限制和知识产权所有权条款。同时,注意任何不寻常或令人担忧的条款。这是我们的标准合同以供参考:{{STANDARD_CONTRACT}}。给出调查结果摘要和给我们法律团队的建议。
結局分析は厄介で、重要なポイントを見逃しやすい。
XMLタグの使い方::
分析这份软件许可协议的法律风险和责任。
我们是一家跨国企业,正在考虑将此协议用于我们的核心数据基础设施。
<agreement>
{{CONTRACT}}
</agreement>
这是我们的标准合同以供参考:
<standard_contract>
{{STANDARD_CONTRACT}}
</standard_contract>
<instructions>
1. 分析以下条款:
- 赔偿 (Indemnification)
- 责任限制 (Limitation of liability)
- 知识产权所有权 (IP ownership)
2. 指出不寻常或令人担忧的条款。
3. 与我们的标准合同进行比较。
4. 在 <findings> 标签中总结发现。
5. 在 <recommendations> 标签中列出可行的建议。
</instructions>
結局モデルは構造化されたものを出力する。 <findings>
歌で応える <recommendations>
詳細かつ論理的で、法務チームが直接採用しやすい。
役割プロンプティング
利用する system
パラメーター Claude
キャラクターを設定することは、そのパフォーマンスを高める最も強力な方法の一つである。適切なキャラクターは Claude
ジェネラリストアシスタントからバーチャルドメインのエキスパートへ。
- システム・プロンプトを使ってキャラクターを設定するメリット::
- 精度の向上法律分析や財務モデリングなどの複雑なシナリオでは、ロールプロンプトを使用することで大幅に改善することができます。
Claude
パフォーマンスだ。 - カスタマイズされた声のトーンCFOに簡潔さを求めるか、コピーライターに活気を求めるか、役割プロンプトは調整可能である。
Claude
コミュニケーション・スタイル。 - 集中力を高める役割設定後
Claude
の方が、タスクの具体的な要求に限定することができるだろう。
- 精度の向上法律分析や財務モデリングなどの複雑なシナリオでは、ロールプロンプトを使用することで大幅に改善することができます。
- どのように実現するか::
メッセージAPIコールでは、ロールの説明をsystem
パラメータ。特定のタスクの指示をuser
メッセージimport anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-3-opus-20240229", max_tokens=2048, system="你是一家高增长B2B SaaS公司的CFO。我们的投资者希望实现积极增长,但对我们的烧钱率保持警惕。", # <-- 赋予角色 messages=[ {"role": "user", "content": "在董事会议上,请分析我们Q2的财务数据,指出关键趋势,标记关注点,并推荐战略行动:\n\n{{FINANCIALS}}"} ] ) print(response.content)
専門家のアドバイスロールを変えてみてください!同じデータで数据科学家
そして市场营销策略师
もしかしたら 专为财富500强公司提供客户洞察分析的数据科学家
まったく異なる洞察が得られるかもしれない。
誘導モデル思考(思考の連鎖、思考の連鎖)
調査、分析、問題解決など、複雑な仕事に直面したとき。 Claude
考えるスペースを与えることで、パフォーマンスを劇的に向上させることができる。このテクニックは、思考の連鎖(CoT)プロンプティングとして知られており、次のようなことを促す。 Claude
問題を段階的に分解することで、より正確で洗練されたアウトプットが得られる。
- 思考連鎖はいつ使うのか?
- 考えるべき課題複雑な数学的計算、多段階の分析、複雑な文書の作成、複数の要素を秤量する必要がある意思決定など、人間も考える必要がある作業に使用される。
- 精度の向上段階的な問題解決は、論理的、数学的、分析的な作業におけるミスを減らす。
- テスト中にコンポーネントを調整する観察
Claude
この思考プロセスは、プロンプトの不明瞭な部分を見つけるのに役立つ。
- どのように思考を導くのか?
シンプルなものから複雑なものまで、複数のナビゲート方法があるClaude
考える。コア・スキルとは常にクロードに彼の思考プロセスを輸出させる。そうでなければ、考えることは起こらない。- 基本的な心得プロンプトに "一歩一歩考える "を加える。
- 入門のヒントに対して
Claude
思考プロセスは具体的なステップを概説している。 - 構造化されたヒント使用
<thinking>
歌で応える<answer>
などのXMLタグは、推論プロセスと最終的な答えを分離します。
例:財務分析
使われていない思考回路の分析::
用户
オプションAは年率12%だがボラティリティの高い株式、オプションBは年率6%の債券である。顧客はこの資金を5年後の頭金に充てる必要があります。どちらがお勧めですか?模型
理由は、確実性が高いこと、リスク回避、時間軸が短いこと。結論は妥当と思われるが、深みに欠ける。
思考の連鎖を利用した分析::
用户
ただし、最後に "Please think step by step "と付け加えてある。模型
::<thinking> 1. 理解客户目标和时间线:目标是房屋首付,时间线5年。结论:这是一个短期的、高优先级的财务目标,客户可能无法承受重大风险。 2. 分析选项A(股票): - 优点:历史回报率高(12%)。 - 缺点:波动性大。 - 计算潜在的5年回报: - 最佳情况(年化12%):$10,000 * (1.12)^5 ≈ $17,623.42 - 最差情况(市场崩盘):可能损失惨重,例如50%的崩盘 = $5,000 3. 分析选项B(债券): - 优点:保证回报率(6%)。 - 缺点:回报率低于股票的历史表现。 - 计算5年回报: - 保证:$10,000 * (1.06)^5 ≈ $13,382.25 4. 考虑风险承受能力:目标是房屋首付(必需品,非可有可无),时间短,无法承受市场低迷。结论:客户风险承受能力可能较低。 ... </thinking> <answer> 我推荐选项B,即保证年回报率为6%的债券。虽然股票的历史回报率很诱人,但债券能确保您在5年后拥有$13,382.25用于房屋首付。考虑到您目标的重要性和短暂的时间线,股票的波动性构成了不可接受的风险。 </answer>
この分析では、定量的データとより厳密な論理が提供され、結論はより説得力のあるものとなっている。
クロードの返答(プレフィリング)
プレポピュレーションは、APIコールを assistant
最初のテキストはメッセージに記載されている。Claude
はそのテキストの終わりから生成され続けます。これにより、特定のフォーマット(JSONなど)を強制したり、長いオープニングをスキップしたり、ロールプレイにおけるキャラクターの一貫性を強化したりすることができます。
銘記するプレフィルド・コンテンツは、末尾のスペースで終わることはできません。この機能は現在、拡張思考モードではサポートされていません。
- 事前充填の方法::
import anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-3-opus-20240229", max_tokens=1024, messages=[ {"role": "user", "content": "你最喜欢的颜色是什么?"}, {"role": "assistant", "content": "作为一个AI助手,我没有最喜欢的颜色,但如果我必须选一个,那会是绿色,因为"} # 在此预填充 ] )
例:出力フォーマットの制御とプリアンブルのスキップ
プレフィルは使用しないJSONを抽出するように要求された場合、コードブロックを与える前に「JSONフォーマットで必要な情報はこちらです。
プレフィルの使用::
用户
商品説明から名前、サイズ、価格、色をJSONオブジェクトとして抽出する。助手 (预填充)
::{
Claude 的回应
::"name": "SmartHome Mini", "size": "5 inches wide", "price": "$49.99", "colors": ["black", "white"] }
これによって
Claude
JSONコンテンツの直接出力は、クリーンでプログラムによる解析が容易である。
シナリオ別ガイダンス
- 制御応答フォーマット::
- 肯定的な指示は否定的な指示より優れている回答にマークダウンを使うな」と言う代わりに、「回答は流れるような散文の段落で構成されるべきだ」と言いなさい。
- XMLフォーマット・インジケータの使用試してみてください。
<smoothly_flowing_prose_paragraphs>
タグ付き" - キューのスタイルを希望する出力に合わせるプロンプトで使用している書式スタイルが
Claude
応答スタイル。
- 並列ツール呼び出しの最適化::
Claude 4
モデルはツールの並列実行を得意とする。ヒントなしでも並列ツール呼び出しの成功率は高いが、ちょっとしたヒントで成功率を100%近くまで引き上げることができる。このヒントが最も効果的であることが証明された。「最大の効率を得るためには、複数の独立した操作を実行する必要がある場合は、関連するすべてのツールを順次ではなく、同時に呼び出すべきである。" - コード生成時のファイル作成を削減::
Claude 4
モデルはテストや反復のために新しいファイルを作成することがあります。新しいファイルの作成を最小限に抑えたい場合はClaude
自分でクリーンアップする:"イテレーションのために一時的に新しいファイル、スクリプト、ヘルパーファイルを作成した場合は、タスクの終了時にそれらを削除してクリーンアップしてください。" - ビジュアルおよびフロントエンド・コード生成の強化フロントエンドのコード生成については、次のような明示的な奨励によって導くことができる。
Claude 4
複雑で詳細かつインタラクティブなデザインのモデリング。
アラートの自動生成と管理
チップ・ジェネレーターの使用
AIモデルを使う上で最も難しいのは、効果的なキューを出す方法を見つけることだ。Anthropic
プロンプト生成ツールが用意されている。 Claude
特定のタスクのための高品質なリマインダーテンプレートを生成します。これらのテンプレートは、多くのプロンプトエンジニアリングのベストプラクティスに従っており、特に「白紙ページ問題」を解決するのに便利です。これらのテンプレートは Anthropic Console
ヒントジェネレーターを
プロンプトテンプレートと変数の使用
LLMベースのアプリケーションをデプロイする場合、APIコールには通常2種類のコンテンツが含まれる:
- 修正内容静的な指示や文脈のこと。
- 可変コンテンツユーザー入力、RAGが取得したコンテンツ、対話履歴など、リクエストや対話ごとに変化する動的要素。
先端テンプレート これらの固定セクションと可変セクションを組み合わせて、動的コンテンツ用のプレースホルダーを使用します。固定セクションの Anthropic Console
これらのプレースホルダーは {{双花括号}}
と言った。
プロンプト・テンプレートを使うメリット
- 一貫性複数のインタラクションにおいて、プロンプトが一貫して構成されていることを確認する。
- 効率プロンプト全体を書き換えることなく、変数の内容を簡単に置き換えることができます。
- テスタビリティー変数部分のみを変更することで、異なる入力ケースやエッジケースを素早くテストできます。
- スケーラビリティアプリケーションの複雑化に伴うチップ管理の簡素化。
- バージョン管理プロンプトのコア部分とダイナミック入力を分離することで、プロンプト構造の変更を簡単に追跡できる。
ソネット3.7からクロード4への移行の注意点
- 望ましい行動の指定出力で何を見たいか、正確に記述することを検討してください。
- 修飾語を使った指示の組み立て励ましを加える
Claude
アウトプットのクオリティとディテールを向上させるモディファイアは、より良い形を作るのに役立つ。Claude
パフォーマンスだ。 - 特定の機能に対する明示的な要求アニメーションやインタラクティブな要素が必要な場合は、明示的にリクエストしてください。
次のステップと学習リソース
模範となる事例をもっと知りたい開発者は、以下のリソースを参照してください:
- GitHub Tips エンジニア・チュートリアル: ドキュメントにあるTipsの工学的概念をカバーする、豊富な例によるチュートリアル。
- Google Sheets Tips エンジニアリング・チュートリアルインタラクティブなスプレッドシートで提供されるTips Projectチュートリアルの軽量版。
このガイドに書かれているテクニックを体系的に学び、応用することで、より正確で効率的なナビゲートが可能になる。 Claude
よりスマートで信頼性の高いアプリケーションを構築するための強力な能力です。