GPT3.5 Turbo – ChatGPT python API 소개

You are currently viewing GPT3.5 Turbo – ChatGPT python API 소개

이전글에서 GPT3.5 모델의 python 사용법에 대해 소개했다.

그리고 ChatGPT 의 모델인 GPT3.5 Turbo 가 드디어 공개되었다.

이에 따라 변경된 python 사용법, 특징에 대해 소개하겠다.

GPT3.5 Turbo python 코드

openai 패키지를 설치하거나 업데이트 후에

다음과 같이 사용한다.

import openai
openai.api_key ="발급받은 API키"
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo", 
  messages=[{"role": "user", "content": "Tell the world about the ChatGPT API in the style of a pirate."}]
)
print(completion)

기존 Completion 에서 ChatCompletion 으로 바뀌었고

model이 gpt-3.5-turbo 로 바뀌었다.

마지막으로 prompt 가 messages로 바뀌었고

role이라는 인자가 추가되었다.

자세한 내용은 custom API 로 추가 설명하겠다.

import requests
import json
headers={"Authorization":"Bearer 발급키","Content-Type":"application/json"}
link="https://api.openai.com/v1/chat/completions"
messages=[        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}]
data={"model": "gpt-3.5-turbo", "messages": messages, "temperature": 0.2, "max_tokens": 300}
res=requests.post(link,data=json.dumps(data),headers=headers)
print(res.json()['choices'][0]['message'])

위 예제에서 볼 수 있듯이 이제 message를 복수개 보낼 수 있다.

system을 통해 GPT의 역할을 지정하는 것이고

user 는 사용자의 입력을 나타낸다.

마지막으로 assistant 는 이전 대답 혹은 사전 정보 를 의미한다.

나머지 parameter 는 이전과 동일하니 이전글 혹은

링크를 확인하길 바란다.

GPT3.5 용도

openai 에서는 가이드를 통해 다음과 같은 사용을 추천하고 있다.

  • 이메일 이나 문서의 초안 작성
  • 파이썬 코드 작성
  • 문서에 담긴 정보에 대해 질의 응답
  • 챗봇 생성
  • 소프트웨어 자연어 인터페이스 추가
  • 다양한 주제에 대한 tutor
  • 번역
  • Simulate characters for video games and much more

번역에 대해서는 다음과 같이 message를 작성하면 된다.

text='텍스트'
messages=[{"role": "user", "content": f'Translate the following English text to Korean: {text}'}]

이전 모델과 차이가 뭐야?

가격이 1/10 수준으로 저렴해졌다.

기존 GPT3.5 모델은 1000토큰 당 0.02$이었지만

GPT3.5 Turbo는 1000토큰 당 0.002$이다.

그리고 추가 학습 ( fine tuning ) 에 대한

API는 아직 공개되지 않았다. ( 23.03.01 기준)

따라서 커스텀 모델이 필요한 경우에는

기존 모델을 사용해야 한다.

그리고 GPT3.5 Turbo 에 입력된 데이터는

30일간 저장된다고 명시 되었다.

데이터 사용에 대한 정책은 다음 링크를 참조하라.

개인 정보를 입력했을 경우 삭제 요청을 할 수 있다.

또, 차별 및 성희롱에 대한 판단 기능을

추가적으로 사용할 수 있으니 다음 가이드를 참고하라.

이외에도 음성 텍스트 변환 및 번역 모델인

Whisper 모델이 개선되었다.

개선 모델의 사용료는 분당 0.006$로 굉장히 저렴하고

다양한 언어와 포맷을 지원한다.

자세한 내용은 다음 링크에서 확인할 수 있다.

GPT3.5 의 경쟁자는?

다른 글에서 meta ( facebook ) 의 OPT 모델에 대한 이야기를 했다.

meta 에서도 최근 새로운 모델인 LLaMA 를 제시했다.

가장 큰 모델이 65B 라 실망할 수도 있지만

학습 방법의 개선으로 성능은 이전 모델보다 뛰어나다고 한다.

논문에 따르면 GPT3 (구모델) 보다 나은 성능을 보인다.

성능 대비 요구 Parameter 가 줄었기 때문에 일부 모델은

3090, 3090S로 구동할 수 있을 것이다.

예를 들어 7B 모델은 max_batch_size를 1로 조정하면

16G VRAM으로 구동 가능하다.

fp8로 정밀도를 희생한다면 13B모델까지

3090에서 구동 가능할 것으로 예상된다.

참고로 LLaMa 의 상업적 사용은 별도의 협의가 필요하다.

아직 GPT3.5 수준에 이르지는 못했지만 둘의 경쟁으로

더 저렴하고 좋은 서비스가 나올 수 있을 것이다.


(23.03.06 updated)

흥미롭게도 LLaMa의 모델이 인터넷상에 유출되었다.

원래도 학술 목적으로는 어렵지 않게 받을 수 있었지만

일반인에게까지 오픈되어 사람들이 열심히 연구중이다.

흥미롭게도 누군가 LLaMa github 에 토렌트 ( 마그넷 ) 주소를

업로드 했으며 Meta에서도 딱히 삭제하지 않고 있다. (링크)

외국 친구들의 반응도 있으니 짤리기 전에 한번 보길 추천한다.

이번 유출로 인해 모델을 받아 손쉽게 customize, 테스트해 볼 수 있다.


관련글

Leave a Reply