DeepSeek-R1の公式論文に基づき、その推論LLM(大規模言語モデル)に適したプロンプトの書き方について、以下の点に注意する必要があります。
1. 問題と出力フォーマットを直接記述(ゼロショット設定)
- 簡潔で明確に: DeepSeek-R1はプロンプトに対して非常に敏感であり、余計な情報がノイズとなって出力の品質に影響を与える可能性があります。したがって、問題を直接かつ明確に記述し、期待する出力フォーマットを指定することが推奨されます。
- 例を避ける: 実験結果によると、少ショット(few-shot)プロンプティングはむしろ性能を低下させるため、プロンプトに例を含めることは推奨されていません。つまり、複数の例を提供してモデルを誘導するのではなく、タスクの内容と出力要件をシンプルに記述する方が適しています。
2. 推論LLMのプロンプトの書き方と一般的なLLMのプロンプトの書き方(CRISPEフレームワーク)の違い
CRISPEフレームワークは、Context(上下文)、Role(役割)、Instruction(指示)、Statement(要求)、Point(注意点)、Example(例) など複数の要素で構成されることが多く、豊富なコンテキストや例を提示することで、LLMの出力を望ましいものに導く設計となっています。CRISPEの特徴としては、以下が挙げられます。
- 文脈や背景情報の提供: タスクの背景を詳しく説明し、モデルが問題をより深く理解できるようにする。
- 役割の設定: モデルの役割を明示し、特定のキャラクターや専門家の視点で出力を生成させる。
- 詳細な指示: 明確な手順や回答要件を指定する。
- 例を示して誘導: 期待する出力形式や思考プロセスを例を通じて示す。
これに対して、DeepSeek-R1向けのプロンプトの書き方には以下のような違いがあります。
- 冗長な情報のリスク: DeepSeek-R1はプロンプト内の余計な情報に非常に敏感であり、過剰なコンテキストや役割設定、例示がかえってモデルの出力を誤らせたり、性能を低下させたりする可能性がある。
- ゼロショット戦略: CRISPEでは例示がモデルの理解を助ける手段として活用されるが、DeepSeek-R1では例示がむしろ悪影響を及ぼすため、ゼロショット(zero-shot)方式——すなわち、タスクの説明と出力形式のみを記述する方法——のほうが高い推論性能を発揮しやすい。
- 指示の正確性: DeepSeek-R1では、タスクの意図を明確かつ直接的に表現する必要があり、曖昧な説明や冗長な記述は避けるべき。一方で、CRISPEフレームワークを使う一般的なLLMでは、より多くの情報を与えることでモデルが意図を「推測」しやすくなる。
まとめ
- DeepSeek-R1(推論LLM): ゼロショットプロンプティングが推奨される。問題を直接記述し、出力フォーマットを明確に指定することが重要。追加の例や複雑な文脈情報は不要であり、むしろ性能低下の原因になり得る。
- 一般的なLLM(CRISPEフレームワーク): 豊富なコンテキスト、役割設定、詳細な指示、例示を活用し、モデルの出力を望ましい方向に誘導する戦略が適用可能。
この違いは、モデルごとのプロンプトに対する感受性の違いを反映しており、最適な推論結果を得るためには、それぞれのLLMの特性に応じたプロンプト設計を行う必要があります。