안녕하세요 오늘도 참 좋은 날입니다.
시험기간이라 그런가 해야하는 공부는 안하고 글만 쓰고싶어지는 오늘인데요.
뭐 대학원도 포기한 마당에 학점이 뭐가 중요하겠습니까..! (라고 위로를 하며...)
이전 글에 이어서 LLM 프로덕트 개발기 2탄을 준비해왔습니다. 보통 이렇게 이어서 연재를 하면 뭐 링크도 걸고 시리즈별로 준비도 하고 하던데, 일단 그렇기엔 주인장이 너무 게으르고요....
각자 필요한 정보는 알아서알아서 잘 습득하는 것을 지향하는 편입니다ㅋㅋㅋㅋㅋ
뭔가 LLM 프로덕트를 빌딩중인 사람이라면 겪었을만한 흔한 생각과 과정일 것 같구요. "나도 저랬지~" 하면서 보시면 좋을 것 같은 글입니다. 물론 그런 과정이 아니더라도 간접체험의 느낌도 느껴보면 좋구요.
각설하구 시작해볼까요?
Embedding as a Service
LLM 프로덕트를 만들다보니 몇 가지 느끼는 것들이 생겼어요. 정말 많은 사람들이 시장에 뛰어들려고 하는구나! 하는 생각이요... 곰곰히 생각해봤죠. 우리가 어떻게 포지셔닝을 해야할까? 하구요.
그리곤 클라우드가 처음 등장했을 때를 떠올렸어요. 클라우드가 등장하고 우리 업무가 정말정말 급변했죠. 노션같이 실시간 정보 공유가 되었고, 스타트업 전성기가 찾아오기 시작했죠. application을 만들기가 쉬워지니 앱을 만드는 스타트업이 급증했지만 또 그만큼 실패하는 기업도 늘었죠.
골드러쉬를 생각해보면 금광 앞에서 청바지를 판 사람이 성공한다고들 하잖아요. 비슷하게도 많은 기업들이 실패하는 와중에 이들이 쉽게 프로덕트를 만들 수 있게 도와주던 Middle Layer 서비스인 Vercel 같은 기업은 정말정말 크게 성공을 거두었죠.
저희도 비슷한 생각을 했어요. 당시만 해도 23년도 4월이었고, RAG vs Finetuning은 현재 진행형이었죠. 기존까지 ML을 하던 개발자들은 당연하게도 Finetuning이 더 익숙했었고 데이터를 만들어 파인튜닝을 돌려보자! 이런 마인드가 한창이었죠.
하지만 저희는 직접 프로덕트를 만들면서 RAG의 강력함을 느꼈었고, 이런 방식이 더 간편하다 생각했어요.
그래서 나온 결론은 Embedding API를 제공하는 솔루션을 만들자! 라는 것이었어요. 실제로 Embedding에도 AI 모델이 들어가고, 한 번도 AI를 배포해서 서빙해본 적 없는 개발자에게는 직접 가동하는 것이 꽤나 어려운 과제였거든요. 그래서 저희는 Embedding as a Service 즉 EaaS를 시작하게 됩니다.
마침 해군창업경진대회가 있었고 저희는 이 아이템을 들고 나가게 돼요.
그런데 또 시련을 맞닥뜨리게 됩니다.... 심사위원 분들이 생성형 AI에 대해 몰라도 너무 몰랐다는 것이에요.... ChatGPT를 써본 경험을 자랑으로 심사평에 이야기하는데... 우리가 전혀 설득을 못시켰다 싶었죠.
그리고 하나 더... OpenAI가 caching을 하면서 Embedding 서비스의 가격을 대폭 낮춥니다. 저희의 경쟁력이 없어져버린거죠.
그래도 경험은 남았습니다. EKS로 오토스케일링하면서 AI모델을 서빙해본 경험... adaptive dynamic batch로 최적화 해 본 경험 같은 것이죠.
안타깝지만..... 다시 한 번 피봇을 하기로 합니다.
Vecpot, 사내 업무용 챗봇 서비스
자자.. 이제 막바지에 이릅니다. 피봇을 하기로 결정했을 때가 23년도 5~6월 즈음이었는데요.
사실 군에서 개발한다는 것이 참 쉽지 않은 일이기도 했구요. 점점 지쳐가기도 하던 시점이었습니다. 그래도 ChatGPT는 여전히 건재했고, 이를 따라하기 위한 다양한 시도들이 산업 전반에 걸쳐서 이어지고 있었어요.
foundation model은 끊임없이 나왔고 그에 수십 배에 달하는 Application들이 쏟아졌죠. 저희의 예측은 거의 맞아 떨어졌다고 봐요. RAG vs Finetuning의 대결에서 이 즈음 되니, 시대는 RAG의 손을 들어줬고요.
이전엔 되지 않던 것들이 마구마구 되기 시작하기도 했어요. 예를들어 당시에 딱 ChatGPT에 Function call 기능이 생겼거든요. 이 기능을 통해 output format을 어느정도 강제할 수 있었고, programmable한 LLM 사용이 가능해진 것이죠. 설명은 복잡하지만, 결국 json을 오차없이 뱉어내는 것이 이전에는 안되었으나, function call이 그 기능을 잘 수행하더라~ 하는 내용이에요.
LLM 산업에 대해 우리가 갖고 있던 인사이트는 꽤나 정확했다고 자부하는데, 사실 군인이 밤에 폰내면 뭐하겠어요... 그냥 주구장창 회의만 하는거죠 ㅎㅎㅎㅎㅎ
아무튼 저희의 고민은 고비용의 산업에서 실제로 willingness to pay가 이뤄지는 시장이 어딜까... 하고 생각하다가 B2B SaaS 서비스로 사내 데이터에 최적화해서 업무용 챗봇 서비스를 개발하는 것이 어떨까 하는 방식으로 피봇을 하게 됩니다.
이때가 7월 즈음이었나 했던 것 같아요. 서비스 이름은 vecpot이었고요. 해당 아이템을 가지고 국방창업경진대회에 참여했습니다.
사실 프로덕트가 상당히 괜찮았어요. 당장에 사용자를 확보해볼 시도까지 했으니까요. 그런데 몇 가지 이슈가 생깁니다.
- 개인정보 이슈
당시에 저희가 베타 론칭을 하고 지인들을 통해서 뿌리던 와중에 국내 300명 정도 규모의 게임회사 슬랙에 누군가... 저희 서비스를 설치해버린거에요. 슬랙에서는 내부자가 이렇게 설치하는 것을 막는 솔루션이 별도 유료로 되어있었고, 저희 서비스는 그 슬랙을 통째로 긁어오기 시작합니다...
하하 벌써부터 아찔한데요... 저희가 면책조항이나, 개인정보보호에 대한 내용을 하나도 고지를 안했단 것을 깨달았어요. 큰일났다 싶었죠. 우린 군인이었고, 재판에가면 군사법원으로 갈텐데? 싶은거에요. 정말 끝까지 가면 패소하진 않겠단 생각인데 사람일은 혹시 모르는 거잖아요?
그래서 모든 로그를 남기고, 서버는 건드리지도 않은 채로 데이터를 삭제하는 과정 전반을 다 기록해두기로 합니다.
사실 결론은 해피엔딩이었어요. 회사에 저희 솔루션을 설치한 직원은 당시 인턴이었고 사측에선 그냥 헤프닝 정도로 마무리 해 준 듯 했거든요. 그래도 저희의 멘탈적인 타격은 상당했죠...
- 대회 자격 박탈 이슈
개인정보만해도 사실 어질어질했는데, 산넘어 산이라는 것이 이런 거다 싶더라고요.
당시에 저희는 해군 창업경진대회에서 떨어졌고, 이게 중기부 산하의 K-startup에서
해군 -> 국방 -> 범부처
이렇게 이어지는 대회인데요. 저희는 해군에서 떨어진거죠. 근데 올라간 팀중에 함께 조인하자는 제안이 있었고, 아이템을 저희 것으로 해서 국방을 가자 한거죠. 그래서 국방대회에서 입상권에 들고, 이제 범부처를 올라가려고 하니 자격 심사가 본격적으로 들어온 거에요...
범부처 대회에서 중기부는 저희 팀장이 사업자 정리를 공고일 기준으로 안되어 있더라!! 그래서 '예비 창업자'에 해당하지 않고, 기 창업자이므로 출전 자격 자체가 없더라 하는 이야기를 하더라고요. 그니까 군에서는 검토를 제대로 안한거죠...ㅜㅜㅜㅜ
우리는 이미 국방대회에서 발표를 너무 잘했다 생각해서 시상식만 앞두고 있던 와중에 자격을 박탈당하게 됩니다.
위 두 가지 이슈로 저희는 LLM 개발을 접게 돼요.... 멘탈이 탈탈 털렸죠...
근 1년간 고군분투하며 3개의 프로덕트를 개발하고, 출시하고, 좌절하면서 참 느끼는 것들이 많았습니다. 그래도 얻은 것도 많았고요. 산업에 대한 인사이트나, 개발 실력, 프로젝트 매니징, 발표 등등!!!
아쉽지만, 재밌었네요..
어차피 성공과 실패는 이항분포잖아요. B(n, p)에서 Expectation을 높이려면 E = np니까, n을 높이거나 p를 높이거나 해야할 것 아니에요..
그래서 다양하게 도전하고, 그리고 성장하면서 같이 높아지면 언젠간 Expectation도 높아지지 않을까 싶어요.
제 이야기는 여기까지입니다만 제가 도전하며 얻게된 LLM 산업에 대한 인사이트를 차차 공유해보도록 할게요.
오늘도 읽어주셔서 너무 감사드리구요. 좋은 하루 되시길 바랄게요 :)
'개발' 카테고리의 다른 글
LLM 프로덕트 개발기 (5) | 2024.06.16 |
---|