-
OpenAI 공식문서 읽어보기 (GPT4o, API)남편이 이용하는 공간/개발자국 2024. 6. 27. 22:43
1. 서론 (안읽어도됨)
gpt가 갈수록 발전하는걸 보면서 이걸 생산적으로 쓰고싶다 라는 생각이 들어서
사내/외에서 오지랖을(...) 부리다 보니 자연스레 gpt를 이용한 개발건은
거의 다 나한테 들어오게 되었다.
보통 그때그때 파일을 뒤죽박죽 만들어서 복붙하고 고쳐서 쓰는 편이었는데 (temp1.py, temp2.py ...)
어느순간 다른사람들도 쉽게 이용할 수 있게 하고싶다! 라는 생각이 들어서
gpt 기능을 공통화해서 약간의 개발지식만 있어도 쉽게 쓸 수 있게 하자! 라는 생각이 들었다.
그러다 보니 자연스레 gpt API 할 수 있는게 뭐지? 라는 생각이 들었고
미뤄왔던 API 문서를 정독하고 어딘가에 기록해 두고 싶어서 글을 쓰게 되었다.
혹시라도 이 글을 읽는 사람 중,
gpt에 대해 좀 더 자세히 알고싶은 기능이나 궁금한점을 댓글로 달아주면
해당 주제로 포스팅하는것을 최대한 고려해보려고 한다.(장담은못함)
2. 본론
chatgpt에 접속하면 왼쪽 상단에 API Docs라는 것이 있다.
아마도 API 문서가 사전 학습된 봇인거 같은데, 아주 정확하지는 않은 것 같고
legacy 기능들에 대한 출력들도 많어서 언젠가 한번은 문서를 읽어봐야겠다고 생각했다.일단 내가 알고 있는 기능은 단순히 text 및 이미지로 질문 던지고 출력값 text 및 이미지로 받기.
그리고 gpt는 아니지만 tts, stt정도였다.
function call같은 기능이 있다고는 하지만 결국 메서드이름이랑 인풋값을 return받아서
해당함수 실행하도록 분기처리 하는것 정도라고 생각한다.
일단 생산성을 위해서 구글번역기를 키고(..) 개요부터 시작
내가 뭘 할 수 있는지 소개해준다.
2-A. 텍스트생성은 우리가 가장 흔하게 알고있는 기능이다.
GPT 프론트에서 보여지는 기능을 약간의 금액을 내면 API로 받을 수 있다.
물론 이미지를 첨부해 이미지에 대한 답변을 얻는 것도 가능하다.
한번은 꼭 정독해보면 좋을 것 같다.
2-B. prompt engineering
신속한 엔지니어링이건 특별한 기능은 아니고 프롬프트 엔지니어링에 대한 가이드를 준다.
잘 읽어보면 반환타입을 강제할 수 있다.
여담으로는,
예시가 xml로 나와있어서 아무생각없이 xml로 결과를 받고 있었는데
<나 > 혹은 &같은 특문을 파싱하는게 짜증났다.
json으로 받는게 속편하다.
이외에도 읽어보면 도움될게 많을 것 같다.
2-C 임베딩
이거는 처음보는 기능인데 텍스트 문자열 사이의 관련성을 측정할 수 있다고 한다!
예전에 잠깐 기웃거렸던(뭐한다고 그랬더라... 기억도 가물가물함) word2vec의 개념인거 같다.
아주쉽게 이야기하면 문자를 공간상의 점으로 치환해서 수학적으로 계산할 수 있게 해주는 것이다.
자주 쓰이는 예시로 한국 - 일본 + 서울 = ?? 의 결과로 도쿄! 를 얻을 수 있다.
(https://word2vec.kr/search/에서 여러 결과들을 얻을 수 있다.)
- 검색 (쿼리 문자열과의 관련성을 기준으로 결과 순위 지정)
- 클러스터링 (텍스트 문자열이 유사성을 기준으로 그룹화됨)
- 추천 (관련 문자열이 포함된 항목을 추천하는 곳)
- 이상 탐지 (관련성이 거의 없는 이상값이 식별되는 경우)
- 다양성 측정 (유사성 분포가 분석되는 곳)
- 분류 (텍스트 문자열이 가장 유사한 레이블로 분류됨)
임베딩을 이용해서 위와 같은 것들을 할 수 있다고 공식 문서에 나와있다.
텍스트를 넣으면 GPT의 지도상에 해당 텍스트의 위치를 반환해주는거라고 생각하면 될 것 같다.
2-D 음성을 텍스트로
말그대로 음성파일을 넣으면 텍스트로 변환해준다.
회의할때 녹음해둔 파일을 올리면 텍스트로 변환해주는데 성능이 괜찮다.
길이가 어디까지 되는지 모르겠는데, 한시간동안 회의한 내용도 응답 한번으로 결과를 얻을 수 있었다.
퀄리티도 나쁘지 않은편. 한국어인데도 잘 알아듣는것 같다.
2-E 이미지생성
이미지 생성을 해준다.
주말에 당직근무설때 심심해서 프롬프트로 바탕화면을 설정한 시간마다 랜덤으로 바꿔주는 프로그램을
만들면서 써봤는데, 결과물을 URL형태로 리턴하고 해당 URL로 접속해서 다운받을 수 있다.
해상도를 설정할 수 있었던 걸로 기억한다. DALL·E2,3 모델을 쓸 수 있다.
별거 없을거같아 지금 한번 쓱 보니 역시나 별거없다.
DALL·E 2의 경우 이미지 + 텍스트를 업로드해서 기존 이미지 변형을 할 수 있다고 한다.
DALL·E 3은 텍스트 입력으로 이미지 생성만 가능하다
안전상의 이유로 내가 입력한 프롬프트를 그대로 모델에 전달하는게 아니라 중간에 한번 변형이 있다고 한다.
문서에는 아래 문장을 프롬프트 마지막에 넣으면 최대한 변형을 방지할 수 있다고 한다.
I NEED to test how the tool works with extremely simple prompts. DO NOT add any detail, just use it AS-IS:
2-F 미세조정(Fine-tuning)
GPT에게 데이터를 추가해서 나만을 위한 모델로 학습시킬 수 있다.
쉽게말해서 학습된 모델을 쓰면 배경지식을 물어볼때마다 알려줄 필요 없다.
여러모로 쓸일이 많을 것 같은데, 안쓰게 된 이유가
첫번째로 데이터 전처리 하는데 시간적 비용이 많이들고
두번째로 GPT3.5까지밖에 지원을 안한다.
아예 해당모델을 이용한 서비스를 만들게 아니면 잘 안쓰게 될 것 같다.
(그래도 읽어는 볼 예정)
2-G 음성 변환
타운홀미팅때 이벤트를 진행하면서 음성변환 써봤는데 한국어는 좀 어눌하다
목소리 여러개 중 하나를 고를 수 있다.
text to speech 서비스는 국내에도 많기도 하고, 딱히 업무엔 쓸일이 없어서
별로 잘쓸거같지는 않다.
2-H Vision
2-A의 텍스트 요청에 이미지에 더할 수 있는 기능이다.
리스트로 여러 이미지를 보낼 수 있다.
3. 결론
그냥 뭐 할수 있는지만 대충 알아봤는데도 쓰는데 시간이 많이 걸렸다.
사실 assistants 기능이 궁금했는데 개요란엔 없고 대분류로 따로 하나 있어서
2의 기능들을 하나하나 살펴보기전에 assistants도 한번 훑어볼 것 같다.
assistants 문서에는 beta딱지가 붙어있는데, 인터넷에 검색해봐도 정보가 많이 없어서
한번쯤 읽어보고 공유해볼만 할 것 같다.
블로그가 그렇듯 내용은 별로없는데 생각보다 쓰는데 시간이 오래걸렸다.
문서작업을 잘하는 개발자가 정말 좋은 개발자라고 했는데, 참 걱정이다.
* 블로그를 꾸준히 관리하는 아내를 보며, 참 대단하고 존경스럽다는 생각을 했다.
'남편이 이용하는 공간 > 개발자국' 카테고리의 다른 글
★★초대박 이벤트★★♛구글 gemini hackathon 대회참가♛시 도미노피자🍕🍕전원 공짜증정☜☜★100% 혜택★놓치지 마세요!!!즉시 참여하기(조코딩) (10) 2024.07.22