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 파라미터를 포함하도록 업데이트되었습니다. 이 파라미터는 불리언(boolean) 값(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