본문 바로가기

ML & AI/Algorithm

[알고리즘] ChatGPT - API 활용 #1

GPT3.5를 오픈한지 얼마되지도 않았는데, 벌써 GPT4.0이 오픈되었다.

최근까지 ChatGPT에 대한 여러가지 긍정적인 평가와 놀라움들에 대한 경험담이 올라오고 있음에도,

나는 그다지 새로울것이 없다고 치부해 버렸다.

 

이제부터라도 오만함을 버리고, 차근차근 새로운 경험을 배우는 자세로 ChatGPT를 공부하려한다.


▶ 확인하고 싶은 문제
  • 나도 ChatGPT를 만들 수 있을까?
  • ChatGPT를 확장하거나 재사용해서 새로운 AI를 만들 수 있을까?
  • ChatGPT가 제공하는 기능을 어떻게 활용할 수 있을까?
▶ 활용하기 위한 방법 (2023.03.22 기준으로 내가 이해한 것)
  • ChatGPT는 GPT3.5를 fine-tunning한 자연어처리 AI라는 점
  • ChatGPT의 stable version이 gpt3.5-turbo라는 것
  • GPT3.5는 용량이나 쓰임에 따라 text-davinci-003,  text-curie-001, text-babbage-001, text-ada-001 등 여러 모델이 존재한다는 것
  • GPT의 성능을 향상 시키는 방법은 크게 "Prompt Engineering"과 "Fine-tunning"이 있다는 점
  • OpenAPI는 GPT를 활용할 수 있는 API를 제공한다는 점
  • Prompt Engineering을 통해 ChatGPT 의 응답 품질을 높일 수 있다는 점과 이를 위해 Prompt Template이 필요하다는 점

ChatGPT의 이해도를 높이고, 다양한 활용 방법을 이해하기 위해 현재 OpenAI가 제공하는 API 사용 방법을 확인한다.

 


OpenAI가 제공하는 API 사용하기
1. OpenAI API 신청
  • OpenAI 사이트에 접속하고 회원가입 후 "API Key"를 발급받는다.

    API Key 발급
  • "View API keys" 클릭 후 "Create new secret key" 버튼을 클릭하면 Secret Key가 만들어진다.
  • Secret Key는 최초 한번만 보여주고, 다시 확인할 수 없으니 잘 보관하자

Secret Key Code

2. Project 생성
  • 개발환경 : Python 3.9, Pycharm
  • 프로젝트명 : OpenAITest

"openai" Library를 설치한다.

라이브러리 설치

"Sample Code"를 실행한다.

Q&A Example 실행

OpenAI 사이트에서 제공하는 여러 Sample 코드 중 "Q&A" 샘플을 실행해 보았다.

샘플 코드는 단순히 위에서 받은 SecretKey 값만 추가해주면 실행이 된다.

테스트 모델은 "text-davinci-003"을 사용했다. 이 모델이 ChatGPT의 base 모델이다.

그리고 주의할 점이 "prompt" 값은 형식이 있다. "Q:~\nA:"

'Q:'로 시작하는 질문과 질문 끝에 "A:" 붙여야만 정상적으로 응답이 온다.

형식을 맞추지 않으면 text-davinci-003 모델은 정상적으로 답변을 하지 못했다.

 

질문에 대한 응답 결과

한글로 질문했을 때 응답값"text"는 Json에 값이 encoding되어 있다.

Json의 "text"를 출력하면 정상적으로 한글이 출력된다.

 


OpenAI가 제공하는 샘플을 보면 "Q&A", "요약", "SQL생성", "JavaScript 코드 생성" 등 다양한 목적으로 활용이 가능하다. 그렇다면 공개된 모델을 Custom할 수 있다면, 나의 목적에 맞는 API를 만들 수 있을 것으로 보인다.

 

예를 들면,

"법률적 자문" 이나 "질병 증상에 대한 자문" 같은 것들도 가능하지 않을까?

 

그렇다면, 이런 Custom 모델을 GPT 기반으로 만들 수 있는 방법이 무엇일까?

이부분에 대한 공부가 필요하겠다.