Ollama Thinking Feature Release

Ollamaは、サポートされているAIモデルの「thinking」プロセスを有効または無効にできる新しい機能を紹介しました。このアップデートにより、モデルの情報処理方法に柔軟性がもたらされ、ユーザーは内部的な推論ステップ(thinking)を最終的な回答から分離して表示するか、推論のオーバーヘッドなしで直接的な回答を受け取るかを選択できるようになります。

Supported Models

Ollamaは、以下のモデルに対してこの機能を実装しました:

  • DeepSeek R1: 完全サポート。
  • Qwen 3: 完全サポート。
  • 追加のモデルは thinking models カテゴリに追加される予定です。

CLI Implementation and Usage

Ollama CLIでは、thinkingはデフォルトで有効になっています。ユーザーは特定のフラグやコマンドを使用して、この動作を制御できます:

Command Line Flags

  • Enable Thinking: --think フラグを使用します。
  • Disable Thinking: --think=false フラグを使用します。

Interactive Sessions

アクティブなチャットセッション内では、ユーザーは以下のスラッシュコマンドを使用してthinkingを切り替えることができます:

  • Enable: /set think
  • Disable: /set nothink

Scripting and Output Filtering

モデルに推論プロセスを実行させたいが、出力に推論テキストを表示させたくないユーザーのために、--hidethinking コマンドが利用可能です。例:

ollama run deepseek-r1:8b --hidethinking "is 9.9 bigger or 9.11?"

API Integration

/api/generate/api/chat の両方のエンドポイントが、新しい think パラメータを含めるように更新されました。このパラメータは、ブール値 (true または false) を受け取ります。

thinktrue に設定されている場合、APIレスポンスはモデルのthinkingプロセスを最終的なコンテンツから分離します。これにより、開発者はGUIでthinkingプロセスをアニメーション化したり、ゲームのNPCに「thinking bubbles」を作成したりするなど、カスタムユーザーインターフェースを構築できます。thinkfalse に設定されている場合、モデルはthinkingプロセスをバイパスし、コンテンツを直接出力します。

Library Support

Ollamaは、新しいthinkingパラメータをサポートするために公式ライブラリを更新しました:

Python Library

ユーザーは chat 関数に think=True を渡すことで、thinkingを有効にできます。レスポンスオブジェクトには、個別の response.message.thinkingresponse.message.content フィールドが含まれます。

JavaScript Library

Pythonライブラリと同様に、JavaScriptライブラリは chat メソッドの think: true オプションをサポートしています。また、ストリーミングレスポンスもサポートしており、開発者はストリーム内の chunk.message.thinkingchunk.message.content フィールドを監視することで、モデルが thinking ステートから content ステートに切り替わるタイミングを検出できます。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch