ローカルでモデルを実行する開発者に向けて、Ollamaの今回の試験版は、モデル切り替え時に残った推論設定でリクエストが失敗する問題と、ドラフトモデルの種類の判定方法を見直した。決められた選択肢にスコアを付ける判定モデルもサポートされ、導入する開発者は別途ファイルと指示文を用意する必要がある。リリース

1. Responsesでの推論設定の扱い

Responses APIを使うクライアントは、推論機能に対応しないモデルに切り替えても、以前のreasoning.effortの値を次のリクエストに送ることがある。回答前の推論段階をどの程度実行するかを決める値が新しいモデルにも残り、リクエストが拒否されていた。今回の変更で、thinkを直接指定していなければ残った推論設定を無視し、推論非対応モデルでもリクエストを処理する。PR #19010

		if req.Think == nil {
			c.Set("relax_thinking", true)
		}

緩和処理はユーザーがthinkを直接指定していない場合に適用される。直接指定した値の優先順位と検証は維持され、不正な推論段階名も引き続きエラーになる。推論が必須のリクエストでは、thinkを明示的に有効にして対応の有無を確認するほうがよい。PR #19010

ウェブ検索後に内部で続く後続リクエストでも、先に解釈した設定を再利用する。検索に成功しても次の回答で推論非対応エラーが発生する問題も併せて修正した。PR #19010

2. ドラフトモデルの種類は可能な場合に自動判定

推論を高速化する補助モデルであるドラフトモデルは、実行サーバーが大半の種類を自動判定するようになった。通常のドラフトモデルでは、Ollamaがファイルパスと予測トークン数を渡し、タイプの選択をllama-serverに任せる。ユーザーが直接指定する項目が変わったというより、2つの構成要素間の役割が変わったものだ。PR #19064

MTP補助ファイルとEagle3は自動判定の例外で、種類を指定して渡す。複数の部分に分割されたモデルでは、後方のファイルの判定マーカーも調べる。PR #19064

予測トークン数が0以下の場合、ドラフトモデルの引数を追加せず推論高速化を無効にする従来の動作は維持される。PR #19064

3. PPLX Decider v1.2のサポートと準備条件

モデルの実行基盤であるMLXにPPLX Decider v1.2のサポートが追加された。質問の選択肢にスコアを付けるこの判定モデルは、画像入力も処理する。PR #19072

このモデルの非因果的アテンションは、前方の入力だけでなく後方の入力も参照する。そのため、質問や状態が変わると前半部分の計算結果もそのまま使えず、実装では入力の前半部分の計算を保存したキャッシュを再利用しない。後方の情報まで反映する代わりに、キャッシュの再利用を諦めるトレードオフだ。PR #19072

原文では、モデルはライブラリに登録されたものの、配布対象をまとめるマニフェストの一覧はまだ作成されておらず、最小バージョンは0.40.7を前提とすると案内している。

インポートには、別途、判定用の重みファイルreadout.safetensorsと、判定・質問の結合設定ファイルが必要になる。判定用の重みは数値精度形式のBF16を維持する必要がある。PR #19072

実行するには、モデルの実行指示を記述する設定ファイルModelfileに発行元のシステムプロンプトが必要で、なければリクエストは拒否される。PR #19072

リクエスト当たりの質問数は1~64個で、一度に処理できる入力長であるコンテキストの上限を超えると質問リストを分割する。1つの質問に共通入力を付けた長さだけでも上限を超える場合は、エラーとして処理する。PR #19072

4. 利便性と運用負担のバランス

利点は、モデルの切り替え時に引き継がれた設定で対話が止まる事態を減らし、ドラフトモデルの種類の選択を実行サーバーの判定能力に合わせることにある。一方、判定モデルは長いリクエストを分割する際、共通入力である状態と画像を各部分に再度入れるため、入力の処理量が増える可能性がある。PR #19072 速度向上やリソース使用量を比較した測定結果は示されていない。

今回の試験版の要点は、リクエストの互換性を改善し、サポートするモデルの範囲を広げることにある。