추론 모델 (Reasoning Models)
추론 모델 (Reasoning Models)
단순한 답이 아니라, 문제를 풀어 가는 과정 자체를 모델이 보여 줬으면 좋을 때가 있죠. 추론(Reasoning) 모델은 복잡한 문제 해결에 특화된 고급 언어 모델로, 사고 과정(chain-of-thought)의 상세한 추론 단계를 생성해 분석적인 상황에서 답의 정확도를 높여 줘요.
개요
추론 모델은 복잡한 문제 해결 작업에 최적화된 고급 언어 모델이에요. 상세한 추론 단계(chain-of-thought)를 생성함으로써 수학이나 과학 추론 같은 분석적 시나리오에서 답의 정확도를 높여요.
대표적인 사용 사례
- 복잡한 문제 해결: 수학·과학 추론처럼 단계별 논리가 필요한 작업에 적합.
- 의사결정 지원 시스템: 상세한 추론 과정을 제공해 결론 뒤의 논리를 설명해 줌.
- 교육·훈련: 유도 과정을 명확히 보여 줘 학습자가 복잡한 개념을 이해하도록 도움.
설치·설정
추론 모델을 쓰기 전에 최신 OpenAI SDK가 설치돼 있는지 확인하세요.
pip install -U openai
API 사용법
추론 모델을 호출하려면 /chat/completions 엔드포인트를 사용해요.
요청 파라미터
max_tokens— 모델이 반환할 수 있는 최대 토큰 수.temperature— 창의성과 논리의 균형을 위해 0.5~0.7 권장(제안값 0.6).top_p— 권장값 0.95.
예제 코드
스트리밍 응답
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.novita.ai/openai")
messages = [
{"role": "user", "content": "Explain Newton's Second Law."}
]
response = client.chat.completions.create(
model="deepseek/deepseek-r1",
messages=messages,
stream=True,
max_tokens=4096
)
content = ""
reasoning_content = ""
for chunk in response:
if chunk.choices[0].delta.content:
content += chunk.choices[0].delta.content
if chunk.choices[0].delta.reasoning_content:
reasoning_content += chunk.choices[0].delta.reasoning_content
print("Final Answer:", content)
print("Reasoning Steps:", reasoning_content)
비스트리밍 응답
response = client.chat.completions.create(
model="deepseek/deepseek-r1",
messages=[
{"role": "user", "content": "What is the greenhouse effect? How can it be mitigated?"}
],
stream=False,
max_tokens=4096
)
content = response.choices[0].message.content
reasoning_content = response.choices[0].message.reasoning_content
print("Final Answer:", content)
print("Reasoning Steps:", reasoning_content)
컨텍스트 관리
추론 출력은 다음 대화 턴에 자동으로 이어지지 않아요. 메시지 히스토리를 직접 유지해야 해요.
messages.append({"role": "assistant", "content": content})
messages.append({"role": "user", "content": "Please continue explaining the solution."})
지원 모델
현재 Novita 플랫폼에서 지원하는 추론 모델 목록은 문서의 모델 섹션을 참고하면 돼요.
요금
- 입력·출력 토큰 수를 기준으로 요금이 계산돼요.
- 모델별 요금 규칙과 토큰 변환 세부 사항은 각 모델의 가격 페이지를 참고하세요.
참고·모범 사례
- 추론 지시를
system메시지에 넣지 말고, 의도를user메시지에 명확히 담으세요. - 수학 작업이라면 "step by step으로 추론하고 최종 답을 제시해 줘"처럼 명확히 지시하세요.
- 모델이 추론 단계를 건너뛰지 못하게 하려면 최종 답 앞에 줄바꿈을 요청하는 것도 고려해 보세요.