개발

LLM 프로덕트 개발기

강아지 이름은 별이 2024. 6. 16. 13:31

안녕하세요. 프로 작심삼일러 입니다.

 

자자 오늘은 블로그 포스팅 한 지 3일째 되는 날이구요. 일단 고비라고 할 수 있겠죠? ㅋㅋㅋㅋㅋ 뭐 대충 귀찮아져서 안쓰게 되어도 이렇게 3일씩 끊어치기 하면 되지 않을까요ㅎ

 

요즘 ChatGPT가 핫하죠. 사실 요즘이 아니라 작년부터 핫했죠.

 

저는 ChatGPT가 출시되고, 정말 좋은 사람들과 함께 작업하여 국내에서 최초로 개최된 생성형 AI 해커톤에서 최종까지 진출하기도 하는 등 계속 관심을 두고 살아가고 있습니다. 창업 대회도 나가구요.

 

그래서 저의 LLM product를 만들어 본 경험 이야기를 좀 해볼까 해요.

처음 출시되었을 때는 Awesome하다!!!! 하는 느낌은 있었어요. 그래서 함께 창업에 도전해보기로 했죠. 당시에 저는 군인이었구요. 일병 나부랭이었기 때문에 여유는 많았습니다. (뭐 하다 안되어도 그만이지 이런 생각이었죠)

 

첫 시작

군인이니까 밤이 되면 폰을 내고, 할 것이 없으니 프로덕트에 대한 고민만 주구장창 하는 시간을 가졌어요.

그때 나온 아이디어로는 처음에 Text to SQL이었어요. SQL은 정형화된 언어이니 자연어를 끼워 맞추는 것을 잘만 하면 되지 않을까 생각이 들더라고요. 그리고 BI 툴에 넣어보면 되게 괜찮을 것 같다? 하는 생각이 컸던 것 같아요. 

 

하지만, 이게 만만치 않았던 것이 그 당시엔 GPT 성능이 그리 좋진 않았거든요.... 이때가 2023년 12월~1월이었어요. 정말 초창기었고, 오류 핸들링도 지금처럼 안되었고요. 한계를 많이 느꼈죠... 오류가 너무 잦으면 온전한 서비스 형태를 유지하기 힘들겠다 생각했어요.

 

RAG, 금융 챗봇 Askfiling

그래서 새로운 아이템을 물색하기 시작했고, 그러다가 pdf + GPT를 발견했어요. 음... 이거 괜찮다! 싶은거에요.

지금은 널리고 널려있잖아요? 거의 정형화 되어버리도 했고, 그런데 당시엔 꽤 센세이셔널 했어요. 그냥 질문-답변이 아니라 문서를 prompt에 같이 넣는 것이 나쁘지 않은데? 싶은거에요. (RAG라는 개념이 부상하기도 전의 이야기 입니다)

 

자자... 문서를 같이 넣는 것이 좋다는 것까지는 알겠어. 그럼 어떤 문서를 넣어야 임팩트가 있을까? 라는 의문을 던진거죠.

우리의 결론은 "어려운 문서를 잘 해석해주면 좋겠다!!" 였고, 나름 어렵지만 돈이 되고 적당히 정형화 되어있는 문서인 금융권의 공시자료를 선택하게 돼요.

공시를 쉽게 알려줄 수 있는 챗봇을 만들면 어떨까? 하는 상상을 했는데 생각보다 괜찮다 생각이 들더라고요.

 

영차영차 만들게 됩니다. 그리고 만드는 도중에 깃헙 레포 하나를 발견하게 돼요.

모두를 위한 딥러닝으로 유명한 sung kim 교수님의 레포인 https://github.com/hunkim/es-gpt에서 영감을 얻었습니다. 당시에 얼마나 RAG가 메인 스트림이 아니었는지 엿볼 수 있는데요. 살펴보시면 RAG 아키텍쳐를 그대로 차용하고 있음에도 레포 이름은 es-gpt 죠? 당시엔 ~~~gpt 이런식으로 네이밍하는 것이 유행했습니다만, 언젠가 OpenAI가 저작권으로 문제를 삼기 시작하면서 다들 네이밍을 바꾸더라구요.

 

아무튼, 이 아키텍쳐에 저희는 큰 영감을 받았고 지금은 vector db로 pinecone 같은 전문 툴을 사용하지만 당시에는 검색은 ES지! 하는 인식으로 저희도 그냥 ES를 사용하여 프로덕트를 빌딩하였어요. 

 

마침 이때 국내 VC중 꽤나 큰 축에 속하는 Primer에서 국내 최초로 생성형 AI 해커톤을 개최합니다. 당시 참가자는 1000명 정도에 달했구요. 15팀을 선발하여 발표 후 최종 평가를 하는 방식이었어요.

 

저희는 운이 좋게도 15팀 안에 들어 최종 발표까지 가게되었구요. 준비하던 금융 검색 솔루션을 들고 나갔습니다. 당시 프로덕트는 아래 그림처럼 나스닥에 상장된 공시를 챗봇 형태로 질의응답하면서 정보를 쉽게 취득할 수 있는 서비스였어요. 정보가 어떤 페이지에 있는지까지 찾아갈 수 있는 형태였죠. 공시가 마침 HTML 형태로 Export가 되었고, 모든 것이 순조롭다 생각이 들던 참이었어요.

 

아키텍처는 다음과 같았습니다.

 

대회는 아쉽게도 입상을 못하고 마무리를 하였고, 아쉽게도 저희는 이 프로덕트를 접게 돼요. 물론 입상을 못해서 접은 것은 아니고요. 실제 유저에게 만족할만한 가치를 전달하지 못했다 판단했기 때문이에요.

 

사실 돌이켜 보면 아쉽단 생각이... 뭐 지금은 이보다 LLM 성능이 훨씬 잘되는 세상이니까요. 지금까지 버텼으면 정말 많은 것들을 할 수 있었다 생각이 들어요.

 

 

 

약간 논외로 저희가 대회에 해군 정복을 입고 참가했어요. 당시에 논현쪽에서 발표를 했고, 끝나고 씁쓸하게 맛있는거나 먹자 하고 소곱창을 먹으러 갑니다... 이때 다른 테이블에 있는 해군 출신 수병(해군은 병사를 수병이라고 불러요)이 저희 테이블 전부를 결제해주는 것이 아니겠나요....

 

그 자리에서 우리는 "존함이라도..."라고 이름을 여쭤보았지만, "그냥 지나가던 60X 기 로 기억해주세요"라고 하고 떠나시더라고요. 저희가 먹은 금액은 10만원이 훌쩍 넘었는데 말이에요.

 

그 분이 나가시고 저희는 조금 더 먹었고, 사장님께서는 그냥 서비스로 준 셈 치겠다 해서 한 푼도 안내고 소곱창을 먹었습니다... 이 자리를 빌어 너무 감사드리고 나중에 나도 베풀어주고 싶다는 생각을 많이 했던 것 같아요. 사장님도 감사드려요....

 

 

2탄에 이어 연재해볼게요!

 

다들 읽어주셔서 감사드리구요. 오늘도 재밌고 즐거운 하루 되시길 바랄게요 :) 

'개발' 카테고리의 다른 글

LLM 프로덕트 개발기 2탄  (0) 2024.06.17