ローカルAIモデルで安定した結果を得る方法

同じプロンプトが毎回違う形を返すと、ローカルモデルは予測できないように感じます。あるときは箇条書き、あるときは作文、あるときは謝罪に作文が付きます。その大半は設定と、欠けた制約であり、壊れたインストールではありません。要約、抽出、小さなコード作業を、毎日の流れで使えるほど繰り返せるようにできます。

このページは、すでに明確なプロンプトを書いていることを前提にします。文言がまだ緩いなら、先に ローカルAIモデル向けに、より良いプロンプトを書く方法を読んでください。試験に耐える方法は 実際に効くことにまとめてあります。

答えが変わる理由

サンプリングは次のトークンを、いくらかの無作為で選びます。温度(temperature)が高いほど無作為は増えます。長いチャットでは、前のルールが最新の質問から遠くなります。開いたプロンプト(「役立つ何かを書いてください」)には妥当な完成が多く、サンプラーが迷う余地があります。その余地を縮めるとばらつきは減ります。より低い温度、本当の再実行が必要なときのシード(seed)、余地の少ない形式、短いコンテキスト、そして五つの仕事を頼まれていないモデル。

1. プロンプトを書き換える前に温度を下げる

繰り返したい作業では、温度を 0.1 から 0.3 のあいだにします。なぜ変えるか分からなければ、top-p はアプリの既定のままにしてください。それから同じプロンプトを三回実行します。

同じプロンプト、三つの意図:

共有フォルダのファイル名ルールをちょうど4つ列挙してください。 それぞれ一文。 前置きは付けないでください。
一覧が無作為に見えたので、プロンプト全体を書き換え、長いペルソナを足し、温度は 1.0 のままにしました。

変えすぎていて、入れ替えを起こす設定はそのままです。プロンプトを固定し、温度を下げ、形式がまだ違うときだけ一行を直してください。

2. プロンプトを比べるときはシードを使う

Ollama、LM Studio、その他いくつかの実行環境ではシードを設定できます。同じモデル、同じプロンプト、同じシード、同じサンプリング設定なら、ほぼ同一で戻るはずです。文言の変更が役立ったかは、そうして分かります。

実務的な比較:

  1. 温度を 0.2 に、シードを 42 にします。
  2. プロンプトAの出力を保存します。
  3. 一行を変えてプロンプトBを作ります。シードはそのままです。
  4. AとBを比べます。Bが良ければそれを残し、シード 43 で一度試して、形式がまだ保たれるか見ます。

アプリにシードの制御がなければ、ビット単位の反復は得られません。それでも形式と低い温度は要求でき、毎日の使用に必要なのはそれです。シードは試験のためであり、要約を読む利用者のためではありません。

3. 迷いにくい形式にする

形がきついほど、サンプラーにできることは減ります。ラベルは「これを整理してください」より良いです。

この顧客メールを、チームが使えるものに整理してもらえますか。
メールを、これらのラベルだけに書き換えてください。 依頼: 製品: 期限: 不足: ルール: - ラベルごとに一行 - 不明なら「記載なし」と書いてください - 推奨する返信は足さないでください メール: [貼り付け]

モデルがまだ推奨する返信を足すなら、禁止を最後の行に独立させてください。「返信を書かないでください。」最後の行のルールは、真ん中に埋もれたルールより守られることが多いです。

4. 壊れやすい形式には一行の点検を足す

JSON、表、正確な個数に使ってください。普通の散文には使わないでください。

キーが sku と qty の JSON を返してください。 qty は整数です。 欠けた値は null です。 キーが欠けていれば、答える前に JSON を直してください。 修正を説明しないでください。 本文: [貼り付け]

出力を読んでください。「JSON を確認しました」で始まる段落が見えたら、モデルは点検を見せています。「JSON だけを出力してください」を足すか、点検を外してキーの一覧に頼ってください。小さいモデルの一部は、静かな点検ができません。その場合は、キーの一覧だけのプロンプトの方が良いです。

作業を注意深く再確認し、端の場合を考え、思慮深い人がこの誕生日メッセージを誇りに思えるようにしてください。

確認するものがありません。硬いメッセージと、ときには品質についての段落が出ます。代わりに語数を上限にしてください。

5. コンテキストを短く保つ

十件前のメッセージのルールは、小さいモデルが落としやすいです。繰り返す仕事では、チャットを続けないでください。新しいセッションを始めるか、最新のメッセージの先頭にルールを再び貼ってください。

安定して残る型:

[入り混じった質問を15回したあと] 前と同じ形式です。言いたいことは分かりますよね。

しばしば分かりません。形式を再び貼ってください。「前と同じ」は形式ではありません。

6. モデルの大きさを作業に合わせる

狭いプロンプトの小さいモデルは、雑なプロンプトのより大きい汎用モデルより一貫することが多いです。ただし魔法ではありません。書き換え、抽出、あなたが渡したテキストの短い要約には小さいモデルを使ってください。より長いコードや複数段階の推論が必要なら、より大きいローカルモデルを使ってください。3B モデルに400行のファイルを見直させ、安定した見直しを期待しないでください。

形式が 7B モデルでは保たれ、3B モデルで崩れるなら、プロンプトは残してモデルを替えてください。小さいモデルが埋もれるまでルールを足し続けないでください。

繰り返せるチェックリスト

  1. 形式をラベル、個数、または JSON のキーとして書いてください。
  2. 原文はルールのあと、明確なラベルの後ろに置いてください。
  3. 信頼したいものには温度を 0.2 にしてください。
  4. 頼んだ答えより少し上に、最大トークンの上限を置いてください。
  5. 二回実行してください。形が違えば、新しいルールを足す前に最後の行を締めてください。
  6. 二つの文言を比べているなら、シードを設定してください。
  7. チャットが長ければ、やり直してルールを再び貼ってください。

一貫性とは言えないこと

プロンプトが安定したら保存してください。プロンプト集は、自分のものの隣に置ける出発点です。保存したプロンプトがコンテキストウィンドウに長すぎるか不安なら、大きいファイルを付ける前に トークンカウンターで推定してください。

関連するガイドとツール