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) を受け取ります。
think が true に設定されている場合、APIレスポンスはモデルのthinkingプロセスを最終的なコンテンツから分離します。これにより、開発者はGUIでthinkingプロセスをアニメーション化したり、ゲームのNPCに「thinking bubbles」を作成したりするなど、カスタムユーザーインターフェースを構築できます。think が false に設定されている場合、モデルはthinkingプロセスをバイパスし、コンテンツを直接出力します。
Library Support
Ollamaは、新しいthinkingパラメータをサポートするために公式ライブラリを更新しました:
Python Library
ユーザーは chat 関数に think=True を渡すことで、thinkingを有効にできます。レスポンスオブジェクトには、個別の response.message.thinking と response.message.content フィールドが含まれます。
JavaScript Library
Pythonライブラリと同様に、JavaScriptライブラリは chat メソッドの think: true オプションをサポートしています。また、ストリーミングレスポンスもサポートしており、開発者はストリーム内の chunk.message.thinking と chunk.message.content フィールドを監視することで、モデルが thinking ステートから content ステートに切り替わるタイミングを検出できます。
Sources
- OriginalThinking
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch