OpenAI o1 API 추론 기능 사용법 및 사용 제한
인공지능 기술의 발전은 놀라운 속도로 이루어지고 있습니다. 특히 OpenAI의 새로운 o1 API는 기존 모델들의 한계를 뛰어넘는 추론 능력을 보여주고 있어 많은 개발자들의 관심을 받고 있습니다. 이 글에서는 OpenAI o1 API의 추론 기능 사용법과 현재의 사용 제한에 대해 자세히 알아보겠습니다.
OpenAI o1 API 소개
OpenAI o1 는 기존 모델들보다 더 깊이 있는 사고와 추론을 할 수 있도록 설계된 새로운 모델 시리즈입니다. 이 모델은 복잡한 과제를 해결하고 과학, 코딩, 수학 분야에서 더 어려운 문제들을 풀 수 있는 능력을 갖추고 있습니다.
OpenAI o1 시리즈 모델
현재 API를 통해 사용 가능한 두 가지 추론 모델이 있습니다:
- o1-preview: 광범위한 일반 지식을 활용하여 어려운 문제를 추론하도록 설계된 o1 모델의 초기 버전입니다.
- o1-mini: o1의 더 빠르고 저렴한 버전으로, 특히 광범위한 일반 지식이 필요하지 않은 코딩, 수학, 과학 과제에 능숙합니다.
o1 모델은 추론 능력에 있어 중요한 진전을 보여주지만, 모든 사용 사례에서 GPT-4o를 대체하기 위한 것은 아닙니다. 이미지 입력, 함수 호출 또는 일관되게 빠른 응답 시간이 필요한 애플리케이션의 경우 GPT-4o와 GPT-4o mini 모델이 계속해서 적합한 선택이 될 것입니다.
현재 o1 시리즈에는 두 가지 모델이 있습니다:
- o1-preview: 강력한 추론 능력과 폭넓은 세계 지식을 갖춘 대형 모델
- o1-mini: o1-preview보다 80% 저렴하면서도 경쟁력 있는 성능을 제공하는 소형 모델
OpenAI o1 모델의 주요 특징
-
향상된 추론 능력: o1 모델은 응답하기 전에 더 많은 시간을 들여 '생각'합니다. 이를 통해 복잡한 문제에 대해 더 정확하고 깊이 있는 해답을 제공할 수 있습니다.
-
다양한 분야에서의 활용: 과학, 코딩, 수학 등 다양한 분야에서 뛰어난 성능을 보입니다.
-
비용 효율성: o1-mini 모델은 o1-preview에 비해 80% 저렴하면서도 특히 코딩 작업에서 경쟁력 있는 성능을 보여줍니다.
-
빠른 처리 속도: 특히 o1-mini 모델은 빠른 속도를 자랑합니다.
OpenAI o1 API 사용법
o1 API를 사용하기 위해서는 다음과 같은 단계를 따르면 됩니다:
- OpenAI 개발자 계정 생성
- API 키 발급
- API 엔드포인트 설정
- 프로그래밍 언어별 SDK 또는 HTTP 요청을 통한 API 호출
구체적인 개발자 생성 및 시작 방법은 OpenAI API 사용법을 참고하시기 바랍니다.
예 를 들어, Python에서 o1 API를 사용하는 방법은 다음과 같습니다:
o1-preview와 o1-mini는 모두 채팅 완성(chat completions) 엔드포인트를 통해 사용할 수 있습니다. 다음은 o1-preview 모델을 사용하는 간단한 예시입니다:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="o1-preview",
messages=[
{
"role": "user",
"content": "Write a bash script that takes a matrix represented as a string with format '[1,2],[3,4],[5,6]' and prints the transpose in the same format."
}
]
)
print(response.choices[0].message.content)
문제의 복잡성에 따라 이러한 요청은 몇 초에서 몇 분까지 소요될 수 있습니다.
베타 버전 제한 사항
베타 단계에서는 많은 채팅 완성 API 매개변수를 아직 사용할 수 없습니다. 주요한 제한 사항은 다음과 같습니다:
- 모달리티: 텍스트만 지원되며, 이미지는 지원되지 않습니다.
- 메시지 유형: 사용자 및 어시스턴트 메시지만 지원되며, 시스템 메시지는 지원되지 않습니다.
- 스트리밍: 지원되지 않습니다.
- 도구: 도구, 함수 호출 및 응답 형식 매개변수가 지원되지 않습니다.
- 로그 확률: 지원되지 않습니다.
- 기타: temperature, top_p, n은 1로 고정되어 있으며, presence_penalty와 frequency_penalty는 0으로 고정되어 있습니다.
- Assistants 및 Batch: 이 모델들은 Assistants API 또는 Batch API에서 지원되지 않습니다.
추론 작동 방식
o1 모델은 '추론 토큰'이라는 새로운 개념을 도입했습니다. 모델은 이 추론 토큰을 사용하여 '생각'하며, 프롬프트에 대한 이해를 세분화하고 응답을 생성하기 위한 여러 접근 방식을 고려합니다. 추론 토큰을 생성한 후, 모델은 가시적인 완성 토큰으로 답변을 생성하고 추론 토큰을 컨텍스트에서 삭제합니다.
추론 토큰은 API를 통해 볼 수 없지만, 여전히 모델의 컨텍스트 창에서 공간을 차지하며 출력 토큰으로 청구됩니다. 사용된 추론 토큰의 정확한 수는 채팅 완성 응답 객체의 사용량 객체에서 확인할 수 있습니다:
usage: {
total_tokens: 1000,
prompt_tokens: 400,
completion_tokens: 600,
completion_tokens_details: {
reasoning_tokens: 500
}
}