GPT API로 제품을 만들 때 고려해야할 것들
요즘 GPT로 프로젝트를 하는 팀들이 많이 보인다.
우리회사도 일찍부터 AI 프로젝트를 많이 진행해왔다.
특히 보도자료를 자동으로 생성/배포해주는 AiPR, 타로카드 상담을 해주는 마이타로는 이미 유의미한 매출이 발생하고있다.
이외에도 AI목사, 맛집큐레이터, AI키보드, AI연애코치 등등의 프로젝트들이 진행중이다.
이러한 프로젝트들을 경험하면서 알게된 몇 가지들을 공유하겠다.
1) Azure OpenAI 사용
대부분의 팀들이 http://openai.com/ 에서 가입해서 API를 사용하고 있다. 하지만 Azure에도 동일한 스펙의 API를 제공한다. 특히 Azure OpenAI API를 사용할 때 꽤 많은 장점들이 있다.
- 서버 이슈가 덜하다.
- OpenAI API는 사용자들이 몰리면서 꽤 자주 서버다운이 난다. 그리고 OpenAI의 서버다운은 우리 유저들에게도 그대로 전파된다. 하지만 Azure쪽 API는 상대적으로 사용자들이 적기도하고, Azure의 노하우와 확장성 때문에 내가 써보면서 지금까지 유저가 인지할만한 서버다운이 난적이 없다.
- 속도가 빠르다.
- GPT API (특히 davinci나 GPT4)는 응답시간이 굉장히 느린 API다. 그래서 유저의 대기시간이 길다. 하지만 Azure OpenAI API는 체감상 3배 이상 속도가 빠르다. 유저 경험도 물론 좋아진다.
- 비용한도가 다르다
- GPT계열 API는 비용한도가 꽤나 빡빡하다. 그리고 일정양 이상의 비용한도를 승인받기도 어렵다. Azure는 OpenAI쪽과 다른 비용한도 정책을 가져간다. 그래서 분당 제한만 있고, 전체 제한은 없다. (참고로 비용 자체는 동일하다)
- 무료 크레딧을 받을 수 있는 프로그램이 있다.
- 파운더스허브를 사용하면 회사와 제품의 단계에 따라 수백만원에서 수천만원까지 크레딧을 받을 수 있다.
- 그 이외의 장점
- GPT4 32k를 먼저 사용해볼 수 있다.
- Azure의 Cognitive Search Service와 연계하면, 우리가 보유한 데이터와 GPT를 연결시킬 수 있다.
- 훌륭한 세일즈 매니저(한국인)의 열정적인 도움을 받을 수 있다. (소개가 필요하면 알려달라)
2) Stream 활용
생각보다 많은 팀들이 Stream 기능을 활용하지 않고 있다. GPT는 응답속도가 느린 API이기때문에, Stream을 사용해서, 지금까지 만들어진 결과라도 유저에게 전달하면서 유저 경험을 높여야한다. 하지만 다들 모르고있거나, 구현상의 어려움 때문에 Stream활용을 잘 하지 않는다. 생각보다 어렵지 않으니 꼭 한번 써보길 바란다. 어떤식으로 구현해야할지 잘 모르겠다면, 내가 MS 행사때 발표한 내용(https://youtu.be/nbeK8lMIeLs)을 참고해보면 된다.
3) 에러 핸들링
GPT API는 이런저런 에러들이 정말 많이, 자주 난다. 주요 에러들은 아래와 같다.
- Timeout 계열
- Connection Timeout, Read Timeout
- 기타 서버 에러
- Internal Server Error, Too many request
- 컨텐츠 필터링
- finish_reason: content_filter, 응답값 없음 등
각각 대응 하는 방법들은 다르지만, 일단 기본적으로 최소 5번 retry를 하는것을 추천한다.
그리고 OpenAI 계정 여러 개, Azure 계정 여러 개를 파서 돌려가면서 API Key를 쓰는 방식으로 하면 quota관리도 하면서 에러도 많이 줄일 수 있다.
4) 비용 최적화
GPT API는 꽤나 비싸다. 특히 한국어 서비스를 하려면 GPT4 사용이 거의 필수인데, GPT4는 정말 비싸다. (느리기도하고). 그래서 비용 최적화를 위해서라도, 다양한 모델을 혼합해서 쓰는게 좋다.
유저에게 응답값이 가지 않는 간단한 분류작업이라면 curie, babbage, ada 등을 쓸수 있고, 간단한 인사말이나 유저 인풋을 받기 위한 용도라면 GPT3.5를 쓸 수 있다. 모델별로 가격이 5~100배까지도 차이가 나기때문에 (싼게 응답 속도도 훨씬 빠르다) 유저 flow상 용도별로 모델을 꼭 구분해서 사용해야한다.
5) 프롬프트 최적화
프롬프트 엔지니어링에 관한 자료는 워낙 많으니 그 부분에 대해서는 생략하겠다. (이 문서가 개인적으로는 제일 잘 되어 있는 듯 하다. https://news.hada.io/topic?id=9301)
프롬프트 최적화에서 중요한건, 테스트할 수 있는 환경이다. 그래서 서비스를 만들때, 프롬프트 템플릿은 반드시 서버쪽에 있어야한다. 그리고 가능하다면 어드민으로 템플릿을 빼놓아서 배포없이도 템플릿을 수정할 수 있도록 해야한다. 그게 어렵다면 Firebase Remote Config라도 활용하라. 그렇게해야 개발자의 도움없이도 컨텐츠 수정 및 개발이 가능하고, 잦은 테스트가 가능하다. GPT로 서비스를 만들고자한다면 프롬프트 템플릿을 어드민화 하는 것을 꼭 고려해보라.
이것말고도 개고생하면서 배운 여러 팁들이 있지만, 제일 주요하다고 생각하는 5가지를 적어봤다.
GPT가 대단하긴하지만, 결국 API일 뿐이다.
GPT를 활용해서 좋은 유저경험과 좋은 서비스를 만드는 것은 우리의 몫이다.
다들 좋은 서비스를 만드시길 응원한다.
AI기반 언론홍보 자동화 솔루션
댓글
로그인 후 댓글을 남길 수 있습니다.
우와! 감사합니다 ㅎㅎ 자소서 검사 ai 만들고 있는데 너무 느리고 비싸서 gpt3.5쓰고 있었거든요. ㅎㅎ 꿀팁이네요
감사합니다 근봉님!! 특히 프롬프트 엔지니어링에 대한 글은 꼭 읽어볼게요!
오 근봉님 꿀팁 너무 감사합니다!
근봉님 메이커로그가 Must Reads 193에 선정 되었습니다! https://stib.ee/5kq7
와~ 완전 유용해요 스트림이랑 애저API는 진짜 꿀팁이네요
좋은 정보 감사드립니다! 덕분에 스트림이랑 이것 저것 도전해보고 있어요! ㅎㅎ 근데 azure gpt4 승인은 보통 얼마나 걸릴까요? 일주일정도 지났는데 아직 피드백이 없네요 ㅠㅠ
GPT API로 제품을 만들 때 고려해야 할 사항들 잘 봤습니다. 감사합니다