Skip to main content

프롬프트해커 대니의 최신 소식 구독하기!

OpenAI o1 API 추론 기능 사용법 및 사용 제한

인공지능 기술의 발전은 놀라운 속도로 이루어지고 있습니다. 특히 OpenAI의 새로운 o1 API는 기존 모델들의 한계를 뛰어넘는 추론 능력을 보여주고 있어 많은 개발자들의 관심을 받고 있습니다. 이 글에서는 OpenAI o1 API의 추론 기능 사용법과 현재의 사용 제한에 대해 자세히 알아보겠습니다.

OpenAI o1 API 소개

OpenAI o1 는 기존 모델들보다 더 깊이 있는 사고와 추론을 할 수 있도록 설계된 새로운 모델 시리즈입니다. 이 모델은 복잡한 과제를 해결하고 과학, 코딩, 수학 분야에서 더 어려운 문제들을 풀 수 있는 능력을 갖추고 있습니다.

OpenAI o1 시리즈 모델

현재 API를 통해 사용 가능한 두 가지 추론 모델이 있습니다:

  1. o1-preview: 광범위한 일반 지식을 활용하여 어려운 문제를 추론하도록 설계된 o1 모델의 초기 버전입니다.
  2. o1-mini: o1의 더 빠르고 저렴한 버전으로, 특히 광범위한 일반 지식이 필요하지 않은 코딩, 수학, 과학 과제에 능숙합니다.

o1 모델은 추론 능력에 있어 중요한 진전을 보여주지만, 모든 사용 사례에서 GPT-4o를 대체하기 위한 것은 아닙니다. 이미지 입력, 함수 호출 또는 일관되게 빠른 응답 시간이 필요한 애플리케이션의 경우 GPT-4o와 GPT-4o mini 모델이 계속해서 적합한 선택이 될 것입니다.

현재 o1 시리즈에는 두 가지 모델이 있습니다:

  1. o1-preview: 강력한 추론 능력과 폭넓은 세계 지식을 갖춘 대형 모델
  2. o1-mini: o1-preview보다 80% 저렴하면서도 경쟁력 있는 성능을 제공하는 소형 모델

OpenAI o1 모델의 주요 특징

  1. 향상된 추론 능력: o1 모델은 응답하기 전에 더 많은 시간을 들여 '생각'합니다. 이를 통해 복잡한 문제에 대해 더 정확하고 깊이 있는 해답을 제공할 수 있습니다.

  2. 다양한 분야에서의 활용: 과학, 코딩, 수학 등 다양한 분야에서 뛰어난 성능을 보입니다.

  3. 비용 효율성: o1-mini 모델은 o1-preview에 비해 80% 저렴하면서도 특히 코딩 작업에서 경쟁력 있는 성능을 보여줍니다.

  4. 빠른 처리 속도: 특히 o1-mini 모델은 빠른 속도를 자랑합니다.

OpenAI o1 API 사용법

o1 API를 사용하기 위해서는 다음과 같은 단계를 따르면 됩니다:

  1. OpenAI 개발자 계정 생성
  2. API 키 발급
  3. API 엔드포인트 설정
  4. 프로그래밍 언어별 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 모델은 '추론 토큰'이라는 새로운 개념을 도입했습니다. 모델은 이 추론 토큰을 사용하여 '생각'하며, 프롬프트에 대한 이해를 세분화하고 응답을 생성하기 위한 여러 접근 방식을 고려합니다. 추론 토큰을 생성한 후, 모델은 가시적인 완성 토큰으로 답변을 생성하고 추론 토큰을 컨텍스트에서 삭제합니다.

OpenAI o1 추론 작동 방식

추론 토큰은 API를 통해 볼 수 없지만, 여전히 모델의 컨텍스트 창에서 공간을 차지하며 출력 토큰으로 청구됩니다. 사용된 추론 토큰의 정확한 수는 채팅 완성 응답 객체의 사용량 객체에서 확인할 수 있습니다:

usage: {
total_tokens: 1000,
prompt_tokens: 400,
completion_tokens: 600,
completion_tokens_details: {
reasoning_tokens: 500
}
}

컨텍스트 창 관리

o1-preview와 o1-mini 모델은 128,000 토큰의 컨텍스트 창을 제공합니다. 각 완성에는 최대 출력 토큰 수에 대한 상한선이 있으며, 이는 보이지 않는 추론 토큰과 보이는 완성 토큰을 모두 포함합니다:

  • o1-preview: 최대 32,768 토큰
  • o1-mini: 최대 65,536 토큰

완성을 생성할 때 추론 토큰을 위한 충분한 공간을 컨텍스트 창에 확보하는 것이 중요합니다. 문제의 복잡성에 따라 모델은 수백에서 수만 개의 추론 토큰을 생성할 수 있습니다.

비용 관리

o1 시리즈 모델의 비용을 관리하기 위해 max_completion_tokens 매개변수를 사용하여 모델이 생성하는 총 토큰 수(추론 및 완성 토큰 모두 포함)를 제한할 수 있습니다.

response = client.chat.completions.create(
model="o1-preview",
messages=[{"role": "user", "content": "Explain quantum computing"}],
max_completion_tokens=1000 # 추론 및 완성 토큰을 포함한 총 토큰 수 제한
)

OpenAI는 이러한 모델을 실험하기 시작할 때 추론과 출력을 위해 최소 25,000 토큰을 예약하는 것을 권장합니다. 프롬프트에 필요한 추론 토큰 수에 익숙해지면 이 버퍼를 적절히 조정할 수 있습니다.

프롬프트 작성 팁

이 모델들은 간단하고 직접적인 프롬프트에서 가장 잘 작동합니다. 몇 가지 모범 사례는 다음과 같습니다:

  1. 프롬프트를 간단하고 직접적으로 유지하세요.
  2. 체인-오브-쏘트(chain-of-thought) 프롬프트를 피하세요.
  3. 명확성을 위해 구분 기호를 사용하세요.
  4. 검색 증강 생성(RAG)에서 추가 컨텍스트를 제한하세요.

예를 들어, 다음과 같이 간단하고 직접적인 프롬프트를 사용할 수 있습니다:

prompt = """
Instructions:
- Given the React component below, change it so that nonfiction books have red
text.
- Return only the code in your reply
- Do not include any additional formatting, such as markdown code blocks
- For formatting, use four space tabs, and do not allow any lines of code to
exceed 80 columns

const books = [
{ title: 'Dune', category: 'fiction', id: 1 },
{ title: 'Frankenstein', category: 'fiction', id: 2 },
{ title: 'Moneyball', category: 'nonfiction', id: 3 },
];

export default function BookList() {
const listItems = books.map(book =>
<li>
{book.title}
</li>
);

return (
<ul>{listItems}</ul>
);
}
"""

response = client.chat.completions.create(
model="o1-mini",
messages=[
{
"role": "user",
"content": prompt
}
]
)

print(response.choices[0].message.content)

OpenAI o1 사용 제한

OpenAI o1 API는 현재 베타 단계에 있어 몇 가지 사용 제한이 있습니다:

OpenAI o1 API 사용 제한 Tier 5

  1. 접근 제한: 현재 Usage Tier 5 이상의 개발자만 베타 버전에 접근할 수 있습니다.

  2. 요청 제한: 베타 기간 동안 분당 20회의 요청(RPM) 제한이 있습니다.

  3. 시스템 메시지 미지원: 베타 단계에서는 시스템 메시지를 지원하지 않습니다.

  4. 내부 처리 과정 비공개: 모델의 내부 '사고' 과정은 공개되지 않습니다.

개인적으로 Tier 5 이상 이라 베타 버전에 접근하여 o1 API를 사용할 수 있었습니다.

OpenAI o1 API 사용 사례

OpenAI o1 API는 다양한 분야에서 활용 가능한 강력한 도구입니다. 아래 OpenAI Playground 에서 제공하는 예시를 통해 o1 API의 사례를 살펴보겠습니다: 위의 예시 처럼 간단하게 '복잡한 수학 문제를 풀어주세요.' 라는 질문을 입력하면, o1 preview와 o1 mini API는 다음과 같이 복잡한 수학 문제를 해결하는 과정을 보여줍니다:

OpenAI o1 preview API 응답 예시 at OpenAI Playground

OpenAI o1 preview API는 다음과 같이 복잡한 수학 문제를 해결하는 과정을 보여줍니다:

OpenAI o1 preview API 응답

OpenAI o1 mini API 응답 at OpenAI Playground

OpenAI o1 mini API는 다음과 같이 뛰어난 추론 과정을 보여주며 OpenAI o1 preview 대비 80% 저렴하면서도 응답 속도도 빠릅니다:

OpenAI o1 mini API 응답

OpenAI o1 API vs GPT-4 API

o1 API와 GPT-4는 각각의 장단점이 있습니다. 다음 표를 통해 비교해 보겠습니다:

특징o1 APIGPT-4
추론 능력매우 뛰어남뛰어남
처리 속도빠름 (특히 o1-mini)상대적으로 느림
비용o1-mini는 저렴함상대적으로 비쌈
접근성제한적 (베타)널리 사용 가능
다양성과학, 코딩, 수학에 특화범용적 사용 가능

결론

OpenAI o1 API는 인공지능의 추론 능력을 한 단계 더 발전시킨 혁신적인 모델입니다. 복잡한 문제 해결과 깊이 있는 사고를 요구하는 작업에서 뛰어난 성능을 보여주고 있습니다. 현재는 베타 단계로 접근이 제한적이지만, 향후 더 많은 개발자들에게 개방될 것으로 기대됩니다.

o1 API를 활용하면 과학 연구, 코딩, 수학 등 다양한 분야에서 더욱 정교하고 정확한 결과를 얻을 수 있을 것입니다. 다만, 모델의 내부 처리 과정이 공개되지 않는 점은 일부 개발자들에게 아쉬움으로 남을 수 있습니다.

앞으로 o1 API가 어떻게 발전하고, 어떤 새로운 가능성을 열어줄지 기대가 됩니다. 인공지능 기술의 발전 속도를 고려할 때, 머지않아 우리는 o1 API를 통해 더욱 놀라운 결과들을 만나게 될 것입니다.

OpenAI o1 API의 세계로 뛰어들어 인공지능의 새로운 지평을 경험해보세요. 여러분의 프로젝트에 o1 API를 적용하여 어떤 혁신적인 결과를 얻을 수 있을지 상상해보시기 바랍니다.

참고자료

자세한 내용이 궁금하시다면 아래 링크를 참고 할 수 있습니다.

New reasoning models: OpenAI o1-preview and o1-mini - Announcements - OpenAI Developer Forum