GPT -3 란?
GPT -3란 open AI 사에서 개발한 인공지능 모델로,
무려 3000억 개의 데이터 셋으로 학습을 하였으며 1750개의 매개변수를 가지고 있다.
지금까지 현존하는 AI모델 중 가장 인공 일반 지능(General Intelligence)에 가장 가깝다고 한다.
언어 인공지능으로 알려졌지만 지금까지 내가 체험해본 바로는 언어 뿐만이 아니라 그림, 코딩 등등 못하는 게 없다..
내가 생각하는 GPT -3 특징
1. 빅데이터 학습이 필요없다. (이미 방대한 데이터가 학습된 상태)
- 예제 몇개만 넣어주면 눈치껏 이후 답을 내놓는다.
2. 한국어 패치가 굉장히 잘돼 있다.
- 한국어 학습이 따로 필요 없다.
GPT -3 사용법
1. openai 설치
코랩을 켜고 다음과 같은 명령어로 openai를 설치한다.
!pip install openai
import json
import openai
2. openai 시크릿 키 입력
시크릿 키는 openAI 홈페이지에서 발급받을 수 있다.
링크는 여기 > share.hsforms.com/1Lfc7WtPLRk2ppXhPjcYY-A4sk30
wait list에 이름을 넣고 기다리면 베타 유저 선정이 될 경우, 연락이 온다.
한 이주 기다려보고 연락 안 오면 다시 넣는 걸 추천! 나는 일주일 만에 왔다.
openai.api_key = "sk-ENTERYOURSECRETKEY"
response = openai.Completion.create(engine="davinci", prompt="This is a test", max_tokens=5)
3. gpt-3 sandbox 설치
깃 링크로 들어가서 클론 받으면 된다.
깃 링크 > github.com/shreyashankar/gpt3-sandbox
클론 받은 후 해당 폴더로 이동한다.(cd)
!git clone https://github.com/shreyashankar/gpt3-sandbox.git
cd gpt3-sandbox
4. api requirements 다운
!pip install -r api/requirements.txt
5. 설치한 것들 불러온 다음 원하는 걸 하면 된다!
from api import GPT, Example, set_openai_key
gpt = GPT(engine="davinci",
temperature=0.4,
max_tokens=60)
6. 예제 넣기
예제 넣는 함수 : add_example(Example('input value' , 'output value'))
내가 원하는 input : prompt
gpt가 출력한 아웃풋 : submit_request(prompt)
gpt.add_example(Example('Thank John for the book.',
'Dear John, Thank you so much for the book. I really appreciate it. I hope to hang out soon. Your friend, Sarah.'))
gpt.add_example(Example('Tell TechCorp I appreciate the great service.',
'To Whom it May Concern, I want you to know that I appreciate the great service at TechCorp. The staff is outstanding and I enjoy every visit. Sincerely, Bill Johnson'))
gpt.add_example(Example('Invoice Kelly Watkins $500 for design consultation.',
'Dear Ms. Watkins, This is my invoice for $500 for design consultation. It was a pleasure to work with you. Sincerely, Emily Fields'))
gpt.add_example(Example('Invite Amanda and Paul to the company event Friday night.',
'Dear Amanda and Paul, I hope this finds you doing well. I want to invite you to our company event on Friday night. It will be a great opportunity for networking and there will be food and drinks. Should be fun. Best, Ryan'))
prompt = "Tell Yujin politely that please do not eat beef all"
output = gpt.submit_request(prompt)
output
6.1 한국어 예제 출력
output.choices[0]['text']
7. temperature 변경하기
temperature은 ai의 창작 도로 0은 창작이 없는 상태 1은 100% 창작의 상태를 말한다 (느낌상,,,ㅋㅋ)
gpt = GPT(temperature=0.8, max_tokens=200)
GPT -3로 시조 창작하기
나는 언어 인공지능 인 gpt3의 한계를 바로 시험해보고자 ㅎㅎ 시조를 창작해봤다.
gpt = GPT(temperature=0.3, max_tokens=200)
gpt.add_example(Example(
"한산섬 달 밝은 밤에",
"한산섬 달 밝은 밤에 수루에 혼자 앉아\n\
큰 칼 옆에 차고 깊은 시름 하는 적에\n\
어디서 일성호가는 남의 애를 끊나니"))
gpt.add_example(Example(
"철령 높은 봉에",
"철령 높은 봉에 쉬어 넘는 저 구름아\n\
고신원루를 비 삼아 뛰워다가\n\
임 계신 구중심처에 뿌려 본들 어떠리"))
gpt.add_example(Example(
"세상 사람들이",
"세상 사람들이 입들만 성하여서\n\
제 허물 전혀 잊고 남의 흉 보는 괴야\n\
남의 흉 보거라 말고 제 허물을 고치고저"))
gpt.add_example(Example(
"심산에 밤이 드니",
"심산에 밤이 드니 북풍이 더욱 차다\n\
옥루고처에도 이 바람 부는 게오\n\
긴밤에 치우신가 북두 비겨 바래로다"))
gpt.add_example(Example(
"동창이 밝았느냐",
"동창이 밝았느냐 노고지리 우지진다\n\
소치는 아이는 상기 아니 일었느냐\n\
재 너머 사래 긴 밭을 언제 갈려 하느니"))
gpt.add_example(Example(
"오늘도 다 새거다 ",
"오늘도 다 새거다 호미 메고 가자스라\n\
내 논 다 매어든 네 논 좀 매어주마\n\
올 길에 뽕 따다가 누에 먹여 보자스라"))
gpt.add_example(Example(
"이고 진 저 늙은이 짐 벗어 나를 주오",
"이고 진 저 늙은이 짐 벗어 나를 주오\n\
나는 젊었거니 돌이라 무거울까\n\
늙기도 설워라커든 짐을 조차 지실까"))
gpt.add_example(Example(
"지당에 비 뿌리고",
"지당에 비 뿌리고 양류에 내 끼인 제\n\
사공은 어디 가고 빈 배만 매었는고\n\
석양에 짝 잃은 갈매기만 오락가락 하노라"))
prompt = "사랑이 사랑인지라"
output = gpt.submit_request(prompt)
output.choices[0]['text']
결과는?!
output: 사랑이 사랑인지라 그러니 내가 너를 사랑하는 것이
아니라는 것이 아니라는 것이 내가 너를 사랑하는 것이
temperature을 0.3으로 낮게 주었더니, 제시어로 주었던 example이 반복되어 출력되었다,
하지만 한국어 input의 음률을 맞추려고 한 의도가 보여 상당히 흥미로웠다.
앞으로 머신(현재는 Davinci)과 temperature 등을 변경해서 유의미한 데이터가 나올 때까지 돌려볼 예정이다.
더 자세한 결과가 궁금하다면?
github.com/gimkuku/GPT3-colab/blob/main/%EC%8B%9C%EC%A1%B0%EC%B0%BD%EC%9E%91.ipynb
이 글을 본 많은 한국인 gpt -3 유저들도 도움이 되었으면 좋겠다:)
모두 모두 유의미한 데이터가 나오길 바란다!
질문은 댓글로 해주시면 아는 한 성심성의껏 답글 달아드리겠습니다!