LM Studio をコーディング用途で使うとき、大事なのはモデルの選択だけではありません。実際には、top_p、top_k、repeat_penalty といった 生成パラメータの設定 が結果の正確さ・安定性・創造性に大きく影響します。
もしモデルが同じ行を繰り返したり、意図しないコードを出力した経験があるなら、この3つのパラメータを理解することで改善できます。
🎯 top_k とは?
top_k は 候補数の制限 です。
通常モデルは数千のトークン候補に確率を割り当てますが、top_k を設定すると「上位K個の候補だけを考慮せよ」と制御できます。
top_k = 20→ 非常に集中、20個のみtop_k = 100→ 幅広く多様top_k = -1→ 制限なし
👉 コーディング向け: 20〜50 が安定した結果を出しやすいです。
🎯 top_p とは?
top_p は 確率のしきい値(nucleus sampling)です。候補数ではなく「合計確率がPに達するまでの候補」を選びます。
top_p = 0.9→ 合計確率90%に達するまでの候補を採用top_p = 0.8→ より狭い範囲、出力はより決定的top_p = 1.0→ 制限なし、すべての候補を利用
👉 コーディング向け: 0.85〜0.9 が推奨。柔軟性を保ちながら正確さを確保できます。
🎯 repeat_penalty とは?
モデルが print(print(print(...))) のように同じ行を繰り返すのを防ぐための仕組みです。
すでに出力されたトークンが再度選ばれる確率を下げます。
repeat_penalty = 1.0→ ペナルティなし(繰り返しやすい)repeat_penalty = 1.05→ 軽い抑制repeat_penalty = 1.2→ 強い抑制
👉 コーディング向け: 1.05 を基本に。必要に応じて少し上げます。
⚙️ 推奨コンフィグ例(コーディング用)
{
"temperature": 0.2,
"top_k": 40,
"top_p": 0.9,
"repeat_penalty": 1.05,
"max_tokens": 2048,
"seed": -1
}
- 低い temperature (0.2): 出力が安定しやすい
- top_k と top_p の組合せ: 無意味な出力を防止
- 軽い repeat_penalty: 無限ループを防ぐ
- seed = -1: ランダム性あり。固定値を設定すれば再現可能
🖼️ LM Studioでの設定フロー
┌───────────────────────────────┐
│ LM Studio UI │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ Model Config JSON │
│ │
│ { │
│ "temperature": 0.2, │
│ "top_k": 40, │
│ "top_p": 0.9, │
│ "repeat_penalty": 1.05, │
│ "max_tokens": 2048, │
│ "seed": -1 │
│ } │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ モデルの挙動 │
├───────────────────────────────┤
│ top_k → 候補数の制限 │
│ top_p → 確率のしきい値 │
│ repeat_penalty → 繰り返し抑制 │
│ temperature → 創造性の調整 │
└───────────────────────────────┘
✅ まとめ
top_k= 候補数の上限 → 20〜50top_p= 確率のしきい値 → 約0.9repeat_penalty= 繰り返し防止 → 1.05- temperatureは低め → 安定したコード生成
これらを調整することで、LM Studioは「ただの会話AI」ではなく、信頼できるコーディングパートナーになります 🚀
