あるユーザーが、推論中に反復トークンサイクルを特定して断ち切るために設計された実験的なループ検出サンプラーを搭載したllama.cppのフォークをリリースしました。この新しいコンポーザブルサンプラーは生成されたトークンストリームをリアルタイムで監視し、正確な繰り返しパターンを検出し、一時的にサンプリング温度を上昇させてループを断ち切ります。

  • サンプラーは検出感度を定義するためにlast_n(デフォルト64)、min_pattern_len(デフォルト3)、min_reps(デフォルト3)などのパラメータを使用します。
  • ループが検出されると、ランダム性を高めるために温度乗数(temp_factor)を適用し、モデルをサイクルから押し出します。
  • 設定はCLIフラグ、llama-serverのJSON API、またはC APIサンプラーチェーンを通じてプログラム的に利用可能です。
  • この実装により、ループを早期に検出することと正当な反復句での誤検知を避けることのバランスを取るためにチューニングすることができます。