AI/AI 잡담

OpenAI 서비스 종류 및 차이점

MasterOfAI 2024. 6. 10. 17:55

언어 모델

  • ChatGPT(GPT-3.5, GPT-4): 대화에 최적화된 모델
  • InstructGPT: 단일 턴 지시에 최적화 (계속 이어지지 않고, 한 번의 지시-답변으로 이루어진 대화)
  • 파인튜닝(fine-tuning) 모델: 사용자의 데이터로 학습시킬 수 있는 기본 모델
  • 임베딩(embedding) 모델: 텍스트를 컴퓨터가 이해할 수 있는 벡터(숫자들이 나열된 데이터)로 변환하는 모델

이미지 모델

  • DALL-E 2: 자연어로 이미지와 예술 작품을 만들 수 있는 모델

오디오 모델

  • Whisper: 다양한 언어의 텍스트 변환과 영어 번역을 지원하는 자동 음성 인식 시스템

API용 모델

  • API를 이용하여 OpenAI의 언어, 이미지, 오디오 모델을 활용할 수 있습니다.

 

OpenAI API 설치

// python에서 API를 사용할 때
pip install openai
// Node.js에서 사용할 때
npm install openai

 

텍스트 완성 API 호출 - curl

curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "text-davinci-003",
    "prompt": "Say this is a test",
    ...
  }'

 

텍스트 완성 API 호출 - python

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

openai.Completion.create(
  model="text-davinci-003",
  prompt="Say this is a test",
  ...
)

 

텍스트 완성 API 설정

  • model: 사용한 모델의 ID
  • prompt: 모델이 생성을 시작할 때 입력할 프롬프트 값
  • max_tokens: 생성이 완료되는 데 필요한 최대 토큰 수
  • temperature: 생성 결과의 무작위성

 

텍스트 완성 API의 응답

  • choices[0].text: 모델이 생성한 텍스트
  • usage: 텍스트 완성을 위해 사용된 토큰 정보

용어정리


토큰(tokens)

자연어 처리 모델이 텍스트를 처리하고 생성할 때 기본이 되는 단위입니다.

"I love modulabs and aiffel." 이란 문장이 있다면, 토큰화(Tokenization) 를 통해 "I", "love", "modulabs", "and", "aiffel", "."로 6개의 토큰을 얻을 수 있습니다. 챗GPT API의 요금은 토큰 기준으로 부과되기 때문에 개념을 알고 계시면 좋습니다.

 

##

https://reqbin.com/curl

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "안녕"}]
  }'
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