重要なポイント
- ローカル7Bモデルは、GPT-5.5より明示的なガイダンスが必要です。より長いプロンプト、より明確な指示。
- 思考の連鎖(「ステップバイステップで考えさせる」)は、推論精度を10~20%向上させます。
- 常に出力形式を指定してください(JSON、Markdown、プレーンテキスト)。構造化されていない出力は予測不可能です。
- Few-Shotサンプル(1~3個)はローカルモデルでZero-Shotより優れています。サンプル数が多いほど一貫性が向上します。
- ロール定義(「Pythonのエキスパートです」)は、ドメイン固有の応答を改善します。
重要な事実
- CoTによる精度向上: 推論タスクで10~20%の改善
- Few-Shot要件: ローカル7Bは3~5個の例が必要 vs クラウドAPIは1~2個
- コンテキスト消費: 各サンプルは50~200トークンを消費
- 温度の影響: 0.8から0.3に低下させると、事実の精度が15~25%向上
- モデルサイズの違い: 7Bモデルは70Bモデルより明示的なガイダンスが必要
- 出力形式の一貫性: JSON仕様は信頼性を30~40%向上させます
ローカルモデルはどのように異なりますか?
| アスペクト | GPT-5.2 (ChatGPT Plus) | ローカル7B (Llama 3.3 8B) | ローカル70B (Llama 3.3) |
|---|---|---|---|
| コンテキストウィンドウ | 128Kトークン | 4K~128Kトークン | 128Kトークン |
| 指示の遵守 | 優秀 | 明示的なプロンプトで良好 | 非常に良好 |
| Few-Shot学習 | 1~2例 | 3~5例が必要 | 2~3例 |
| 推論 | マルチステップ暗黙的 | ステップバイステップ明示的に必要 | 中程度の暗黙的 |
| システムプロンプト | APIで処理 | ツール別に設定 | ツール別に設定 |
| デフォルト温度 | 1.0 (API) | 0.8 (Ollamaデフォルト) | 0.8 (Ollamaデフォルト) |
思考の連鎖によるプロンプティングは精度をどのように改善しますか?
思考の連鎖(CoT)プロンプティングは、LLMに回答する前にステップバイステップで推論を示すよう求めます。 このテクニックは、より大きなクラウドモデルの暗黙的な推論能力が不足しているローカルの7B~13Bモデルに特に効果的です。「17 × 24」のような数学的問題の場合、CoTのないローカルモデルはしばしば間違った推測をします。明示的なステップバイステップの推論があれば、問題を部分に分解して精度を10~20%向上させます。
CoTなし: 「17 × 24は何ですか?」→ モデルが直接回答、多くの場合間違い。
CoTあり: 「ステップバイステップで解いてください:17 × 24」→ モデルが表示:17 × 20 = 340、17 × 4 = 68、合計= 408。より正確です。
📍 一文で説明
思考の連鎖プロンプティングは、回答する前に推論を明示的なステップに分解するようモデルに指示し、複雑なタスクで精度を10~20%向上させます。
# Prompt with CoT
prompt = """
You will answer a question by thinking step-by-step.
Let me think about this:
Question: Why do local LLMs require more explicit prompting than cloud APIs?
Thinking:
1. First, consider the differences in model size...
2. Then, think about training data and fine-tuning...
3. Finally, consider the architecture and inference optimization...
Answer:
"""
# This guides the model to reason through the problem•💡: プロのヒント:CoTは部分的な推論で出力をプライミングするときに最も効果的です。例:「これをステップバイステップで分解しましょう。まず、私は注目します...」
ローカルモデルでは出力形式の指定が重要なのはなぜですか?
正確な出力形式(JSON、Markdown、プレーンテキスト)を指定することは、ローカルモデルが明示的な指示なしに予測不可能な出力を生成するため、ローカルモデルにとって重要です。 GPT-5.5のようなクラウドモデルは、あいまいなリクエストから意図を推測できます。ローカル7B~13Bモデルはそうできません。構造化されたドキュメント抽出が必要なローカルRAGシステムでは、JSON形式の仕様がパースエラーを防ぎ、抽出精度を30~40%向上させます。
例: 「テキストからエンティティを抽出する」はリストではなくナラティブテキストを返す可能性があります。
より良い: 「エンティティをJSONで抽出します。キー:person、location、organization」。
# Bad: ambiguous output
prompt = "Summarize this text"
# Good: explicit format
prompt = """
Summarize the text in EXACTLY 3 bullet points.
Format as a JSON list:
{
"summary": [
"- Point 1",
"- Point 2",
"- Point 3"
]
}
"""•⚠️: 一般的な問題:ローカルモデルは時々生のJSONの出力を拒否します。これをバイパスするために、プロンプトに「出力はJSONのみ、マークダウンフェンスなし」を追加してください。
ロール割り当てはローカルモデルの応答をどのように改善しますか?
特定のロール(「10年の経験を持つPythonエキスパート」)を割り当てることは、一般的なプロンプトと比較してドメイン固有の応答を劇的に改善します。 ペルソナプロンプティングと呼ばれるこのテクニックは、モデルの応答生成を特定の専門知識ドメインに固定することで機能します。ローカルモデルはクラウドモデルよりもロール定義に15~25%良く応答します。これは、一般的なプロンプトが機能することを可能にする堅牢なRLHFアラインメントが不足しているためです。例:
- 「Pythonエキスパートです」→ より優れたコード説明
- 「医学研究者です」→ より詳細なバイオメディカル応答
- 「懐疑的なアナリストです」→ より批判的思考
ドメインアライメントを強化するためのファインチューニングと組み合わせて、多くのユースケースをデプロイしている場合。
💬 簡潔に説明
簡単に言えば、ペルソナプロンプティングはモデルに回答するときにどの「帽子」をかぶるかを伝えます。Pythonエキスパート帽子は一般的なアシスタント帽子とは異なる(そしてより良い)コードを生成します。
•🎯: ベストプラクティス:具体性が重要です。「エキスパートです」は弱い;「10年のバックエンド経験を持つPythonエキスパート、Async/Awaitパターンに焦点を当てている」は強い。
Ollama、LM Studio、llama.cppでシステムプロンプトを設定するにはどうすればよいですか?
システムプロンプトは、ユーザーのメッセージの前にモデルのロールと制約を定義し、各ツール(Ollama、LM Studio、llama.cpp)はそれを設定するために異なる形式を必要とします。
# Ollama (Modelfile)
FROM llama3.1:8b
SYSTEM """You are a Python expert with 10 years experience. Answer only Python questions. Provide code examples. Use type hints."""
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.1
# Ollama (API / OpenAI SDK)
response = client.chat.completions.create(
model="llama3.1:8b",
messages=[
{"role": "system", "content": "You are a Python expert..."},
{"role": "user", "content": "Write a FastAPI endpoint"}
],
temperature=0.7
)
# LM Studio (GUI)
# Settings → System Prompt field (paste your prompt)
# Or via API at localhost:1234 — identical format to Ollama
# llama.cpp (CLI)
./main -m llama-3.1-8b.gguf \
--system-prompt "You are a Python expert..." \
--temp 0.7 --top-p 0.9 --repeat-penalty 1.1 \
-p "Write a FastAPI endpoint"温度とサンプリングパラメータは出力品質にどのように影響しますか?
温度、top_p、repeat_penaltyのチューニングは、プロンプト表現だけより、ローカル7B出力品質に大きな影響を与え、ローカルモデルはクラウドAPIとは異なるデフォルトが必要です。
ローカルモデルの重要な洞察: Ollamaのデフォルト温度(0.8)はOpenAIのAPIデフォルト(ヌクレウスサンプリング付き1.0)より高い。温度を0.3~0.5に低下させることは、ローカル7Bモデルの事実精度を劇的に改善します。コーディングタスクの場合、温度を0.1~0.2に、repeat_penaltyを1.0に設定します(コードはインポートや関数呼び出しのような繰り返しパターンが必要)。
| パラメータ | 何を制御するか | デフォルト (Ollama) | 推奨 |
|---|---|---|---|
| temperature | ランダム性 | 0.8 | 事実は0.3~0.5、創造的は0.7~0.9 |
| top_p | 語彙の多様性 | 0.9 | 一貫性は0.8、変動は0.95 |
| repeat_penalty | 繰り返し回避 | 1.1 | チャットは1.1~1.2、コードは1.0 |
•📌: 重要ポイント:温度はロジットの乗数です。0.0では常に最も可能性の高いトークンを選択します。1.0+では、ランダム性が増加します。ローカルモデルは1.5温度以上で飽和します。
ローカルモデルはクラウドAPIより多くのFew-Shotサンプルが必要なのはなぜですか?
3~5個のサンプル(Few-Shot学習)をローカルモデルに提供することは、Zero-Shotより出力一貫性を15~25%向上させ、クラウドモデルは1~2個のサンプルのみ必要です。
ローカルモデルはパラメータが少なく、トレーニングデータが多様でないため、より多くのサンプルから恩恵を受けます。Few-Shot学習は、モデルに実際のタスクを解くよう求める前に、予想される入出力パターンを示す文脈内学習テクニックです。
# Few-shot prompt
prompt = """
Classify sentiment. Examples:
"I love this product!" → positive
"Worst experience ever" → negative
"It's okay, nothing special" → neutral
Now classify: "This is amazing!"
Answer: """
# Model learns format and style from examples•🛠️: 実装のヒント:3つの類似例より、サンプルを変動させます(1つ簡単、1つ中程度、1つ難しい)。多様性は一般化を改善し、特定のパターンへの過学習を防止します。
プロンプトエンジニアリングの一般的なエラー
- 構造のない冗長なプロンプト。 ダラダラとした指示はローカルモデルを混乱させます。簡潔で明示的にしてください。
- 思考の連鎖を使用しない。 CoTは精度を10~20%向上させます。推論タスクでは常に含めてください。
- 1つのプロンプトがすべてに対応すると仮定する。 反復してテストしてください。わずかな単語の変更で大きな出力の変化が発生します。
- 出力形式を無視する。 明示的な形式指定なしでは、出力は予測不可能です。
- あいまいなロール定義を使用する。 「エキスパートです」はあいまい。「10年の経験を持つPythonエキスパート」がより優れています。
•📍: ご存知ですか?最も効果的なプロンプトは3~5バージョンを反復処理します。ローカルモデルのプロンプティングは「セットして忘れる」ではありません—小さな改善は重大な精度向上に複合します。
プロンプトエンジニアリングの地域別の考慮事項
日本(METI AI Governance 2024): エンタープライズAIデプロイメント用に、METI AI Governance 2024フレームワークを遵守してください。ローカルLLMは、日本の企業が規制要件を満たしながらプロンプトエンジニアリングを実行するのに役立ちます。プロンプト品質は、エンタープライズ展開における精度と信頼性に直結します。
東アジア/APAC(データ局所化): データ境界フレームワークに準拠する東南アジアとAPAC地域では、ローカルLLMが最適です。プロンプトエンジニアリングは、ローカルサーバーで反復処理でき、データを地域外に移動させません。
エンタープライズ展開(信頼性と監査): 金融機関、医療機関、法務機関では、完全な監査ログと説明可能性のために、プロンプトエンジニアリングはローカルで文書化する必要があります。すべてのプロンプト反復とモデル出力は、内部アーカイブに記録してください。
ローカルLLMプロンプティングについてよくある質問
ローカルLLMがGPT-5.5より明示的なプロンプトを必要とするのはなぜですか?
ローカル7B~13Bモデルはパラメータが少なく、GPT-5.5よりトレーニングデータが多様(推定1.8Tパラメータ)です。彼らはあいまいな意図を推測できません。明示的な指示(形式、ロール、ステップバイステップの推論)がこのギャップを補償します。思考の連鎖プロンプティングは、推論タスクでローカルモデルの精度を10~20%向上させます。
ローカルLLMのプロンプトに何個のFew-Shotサンプルを含める必要がありますか?
ローカル7Bモデルでは3~5個のサンプルが最適です。GPT-5.5は通常1~2個のサンプルのみが必要です。より多くのサンプルは一貫性を改善しますが、コンテキストウィンドウトークンを消費します(モデルによって4K~32Kトークン)。4Kコンテキストウィンドウを持つLlama 3.2 8Bの場合、3つのサンプル+タスクに制限してください。32K+コンテキストを持つモデルの場合、5個のサンプルは安全です。
すべてのローカルモデルで思考の連鎖プロンプティングが機能しますか?
思考の連鎖は、指示調整されたモデル(Llama 3.x、Qwen 3、Mistral Small)で機能します。ベースモデル(指示調整なし)は「ステップバイステップで考える」という指示に確実に従いません。ローカルモデルでは、「ステップバイステップで解く:」または「推論:」のようなCoTフレーズが期待される出力の開始に最適に機能します。
ローカルLLMではどの出力形式が最も信頼性がありますか?
JSONはローカルLLMの最も信頼性の高い構造化出力フォーマットです。プロンプトで正確なJSONスキーマを指定してください:「回答はJSONオブジェクトのみで、キー:名前、スコア、推論」。Markdownヘッダー(##)はセクションに対して信頼性があります。XMLまたはカスタム形式を要求することを避けてください—ローカルモデルは一貫性のないのに対応します。
ローカルLLMがトピックから外れないようにするにはどうすればよいですか?
システムまたはインストラクションプロンプトに明示的な制約を追加してください:「[トピック]についてのみ回答してください。別のことを聞かれた場合は、「[トピック]についてのみ手伝えます」と言ってください。」Ollamaの場合、システムプロンプトフィールドを使用してください。llama.cppの場合、システムメッセージとして前に置いてください。この境界設定は、強いRLHFアラインメントを持つクラウドモデルよりローカル7Bモデルで大幅に優れています。
ローカルモデルのZero-ShotとFew-Shotプロンプティングの違いは何ですか?
Zero-Shotは例がありません:「このメールをスパムまたはスパム以外に分類してください」。Few-Shotはタスクの前に2~5個のラベル付き例を提供します。ローカル7Bモデルでは、Few-Shotは分類とキャッシング・キャッシング・キャッシングのタスクで、15~25%の精度でZero-Shotを一貫して上回ります。Zero-Shotは生成タスク(要約、翻訳)に対して機能します。ここで形式は重要ではありません。
ローカルモデルのプロンプトをテストして反復するにはどうすればよいですか?
5~10個の異なる例でテストしてください。一度に1つの変数(ロール、形式、またはCoT指示)を変更してください。変更前/後に精度または一貫性を測定してください。単純なテストセットを使用してください:2~3個の簡単な例、2~3個の難しい例。どのプロンプトバージョンが最適に機能するかを追跡してください。3~5プロンプト変動のサイクルで反復してください。プロンプトライブラリで機能するプロンプトをドキュメント化してください。
特定のタスクに対してプロンプトエンジニアリングを実行する必要がありますか、またはファインチューニングを実行する必要がありますか?
まずプロンプトエンジニアリングを実行してください(高速、無料、反復可能)。20以上のプロンプト変動の後に精度がプラトーに達した場合、ファインチューニングを実行してください。ファインチューニングには500以上のタスク固有の例と1~4時間のトレーニング時間が必要です。汎用タスクの場合、プロンプトエンジニアリングは通常十分です。ドメイン固有のタスク(医療、法務、コーディング)の場合、ファインチューニングは永続的な改善をもたらします。
ローカルLLMではシステムプロンプトとユーザー指示はどのように異なりますか?
システムプロンプトは、ユーザーメッセージの前にモデルのロールと制約を定義し、リクエスト構造の一部です(Ollama、LM Studio、またはAPI経由)。ユーザー指示は会話の一部です。システムプロンプトは基本的な動作を設定し、ユーザーテキストに指示を埋め込むより信頼性があります。ローカルモデルの場合、よく書かれたシステムプロンプトは、モデルがシステムレベルの制約を優先するため、一貫性を15~25%向上させます。
異なるローカルモデル間で同じプロンプトを使用できますか?
部分的に。基本的なCoT構造とロール定義はモデル(Llama、Qwen、Mistral)間で転送されます。ただし、各モデルは最適な結果を得るためにプロンプト調整が必要です。Llamaモデルは「ステップバイステップで考えさせる」に応答し、Qwenモデルは「最初に、私は...」を好みます。デプロイする正確なモデルでプロンプトをテストしてください。大きなモデル(70B)はプロンプト変動に対して小さなモデル(7B)より許容性があります。
ソース
- Chain-of-Thought Prompting Paper (Wei et al.) -- ステップバイステップの指示による推論に関する基礎的な研究。
- Prompt Engineering Guide (DAIR-AI) -- プロンプティングテクニックとベストプラクティスの包括的なコレクション。
- Ollama Modelfile Reference -- システムプロンプト、パラメータ(温度、top_p、repeat_penalty)、カスタムモデル作成の公式ドキュメント。