이 글은 [요즘 우아한 AI 개발]에서 발췌했습니다.
글 우아한형제들 / 골든래빗 출판사
AI 프로덕트 만들기 미션, 그런데 GPT가 주재료인
저희가 GPT 기반 프로덕트에 대한 고민을 이제 막 시작하던 2023년 봄으로 가볼까요? 많은 사람이 ‘신기하다’는 마음으로 챗GPT를 활용해보기 시작했지만, 당시 사람들의 웃음거리가 되었던 ‘세종대왕 맥북 사건’을 포함해 GPT는 못하는 것이 참 많았습니다. 챗GPT 서비스는 그래도 좀 사용할 만했는데요, 저희의 프로덕트를 직접 만들려면 ‘서비스’인 챗GPT가 아닌 GPT API를 활용해야 했습니다. 그래서 한계점이 더 많았습니다. GPT-4 대비 그 당시 GPT-3.5 turbo는 좀 부족한 친구였고, GPT-4는 느리며 비쌌어요. 당시엔 자연어 기반 과제를 몇 건만 연속으로 처리해도 분당 호출수에 걸려서 에러 메시지를 만나야 했죠. 우리는 이 한계를 가지고 첫 프로젝트를 시작했습니다.
‘메뉴뚝딱AI’는 GPT라는 재료가 참 중요한 프로덕트였습니다. 마치 흑백요리사에서 홍어라는 재료가 꼭 들어가야 하는 미션을 수행하는 것처럼요. GPT라는 주재료의 맛을 해치지 않아야 했지만, GPT를 사용한다는 목적에 치우쳐서 너무 허무맹랑한 것을 만들고 싶지도 않았습니다. 하지만 GPT를 사용한다는 것은 마치 처음 보는 재료를 활용한 요리를 하는 것처럼 생경해서, 활용할 때마다 리스크를 하나하나 파악해가며 요리를 해야 했습니다. 이 재료를 끓이면 향이 더 강해질까요? 생으로 먹었을 때의 식감은 익혔을 때와 어떤 차이가 있을까요?
그래서 시작은, GPT는 도대체 뭘 잘하는 것인가라는 질문에서 출발했죠. 사람들은 GPT가 사람처럼 자연스럽게 대화를 할 수 있다는 점에 열광했습니다. 이 이야기는 다시 두 가지로 나눠볼 수 있습니다. ‘텍스트를 사람처럼 잘 이해할 수 있다’, 그리고 ‘사람처럼 자연스러운 말을 구사할 수 있다’. 이 두 가지 장점을 활용해보고자 했습니다. 하지만 GPT를 활용한다는 것에만 매몰되어 자칫 현실의 문제와 동떨어진 것을 고민하는 것을 경계하기 위해 배민 사용자분들의 탐색 과정에서의 가려움을 긁어줄 요소들을 찾아보았습니다. 그 과정에서 배민에서 음식을 주문하는 사용자의 51%가 메뉴만 결정하고 앱을 이용하며, 32%가 메뉴와 가게를 둘 다 결정하지 않은 상태에서 탐색을 시작한다는 사실을 알게 되었습니다.
배달의민족을 이용하는 고객이 앱에서 하고자 하는 것을 고려했을 때, 두 가지 관점에서의 개선 포인트를 찾을 수 있었습니다. 기존의 탐색 경험은 가게 중심이라 원하는 메뉴를 찾기가 어렵고, 탐색이 길어지는 과정에서 피로감이 쌓일 여지가 있었습니다. 더불어 메뉴 탐색 시에 이 가게가 맛이나 퀄리티가 좋은지, 좋다면 어떤 방면에서 좋은지를 바로 알기가 어려워서 다수의 리뷰를 직접 탐색해가며 판단해야 한다는 문제점이 있었습니다. GPT가 그 많은 리뷰를 대신 분석해주고, 이를 다시 사용자들에게 자연스럽게 추천해준다면 어떨지에 대한 고민을 하게 되었고, 이것이 메뉴뚝딱AI 서비스로 이어졌습니다. 실수도 잦고 결과물의 완성도가 높지 못했던 GPT-3.5 turbo로 PoC¹를 하던 단계를 지나, GPT-4 그리고 GPT-4o를 만나 정말 뚝딱뚝딱 메뉴를 추천해내는 서비스가 되기까지의 상세한 여정을 잠시 후 확인하실 수 있습니다.
메뉴뚝딱AI 과제를 하면서, GPT를 어떻게 사용해야 할지에 대한 이해도가 올라갔습니다. 그리고 그 와중에 2023년 가을쯤, GPT가 이미지도 이해할 수 있게 되었습니다. 자전거 사진을 보고 무엇을 고쳐야 할지를 알려주는 챗GPT의 능력은 저희를 정말 놀라게 했는데요. 이 즈음, 저희 팀은 마침 메뉴 이미지와 관련된 고민을 하고 있었습니다. 여러분은 배달의민족에서 음식을 고를 때 어떤 정보를 주의깊게 참고하시나요? 아마 메뉴 이미지도 그 중 하나일텐데요. 운영자가 등록된 메뉴 이미지를 살펴보며 저희 서비스의 정책에 부합하는지 승인하는 절차에 하루가 넘게 걸리던 때가 있었습니다. 텍스트와 몇 개의 예시를 포함하는 정책 문서들이 있기는 하지만 세상에는 다양한 음식 메뉴가 있고, 사진에는 다양한 색감과 각도, 그리고 여백이 존재할 수 있어 에지 케이스가 다양했습니다. 이에 따라 사람의 판단도 종종 다를 수 있었죠. 곧 소개드릴 메뉴 이미지 검수 과제는 여기서 시작한 과제입니다.
이 과제를 진행하면서도 참 많은 것을 배울 수 있었습니다. GPT라는 모델에 다양한 정책들을 기반으로 판단을 시키기 위해서는 어떤 고민을 해야 하는지, 프롬프트 엔지니어링을 가지고 원하는 결과물을 얻기 위해서 얼마나 많은 교정을 수행해야 하는지, 현재의 GPT가 할 수 없는 것은 무엇인지, 우리는 그 한계를 가지고 원하는 결과를 얻기 위해서 어떤 다른 시도를 해야 하는 것이 좋을지와 같은 것들을 깨달을 수 있었던 과제였어요. 이 과제는 우아한형제들이 텍스트, 이미지와 같은 비정형 데이터를 다룰 때 어떻게 AI 기술을 활용하면 좋을지에 대한 고민을 더 깊게 하도록 한 과제이기도 합니다. 그 고민의 결론은 이 글의 마지막에서 공유드릴게요.
앞으로의 두 편의 글을 통해, 저희는 다양한 자연어처리 모델링의 대체제로서 LLM²을 활용해본 경험(메뉴뚝딱AI), 이미지 분류 모델과 VQA³(visual question answering) 모델의 대체제로서 LMM⁴을 활용해본 경험(메뉴 이미지 검수)을 소개해드리려고 합니다. 우당탕탕 GPT의 성장과 함께 한 과제들의 성장기, 이제 시작합니다.
도입 배경
2023년 2월, 오픈AI에서 개발한 챗GPT의 등장으로 ‘생성형 AI’에 대한 관심이 비약적으로 증가했습니다. 인간과 유사한 대화가 가능해진 것을 경험하면서 다양한 분야에서 생성형 AI 활용 가능성에 대한 기대감이 높아졌죠. 지금이야 그러한 의구심을 품는 경우가 드물지만 그 당시에는 단순한 유행에 그치는 것은 아닌지, 실제 비즈니스에 어떤 가치를 가져다줄 수 있을지 하는 의문도 있었습니다.
채팅을 통해 GPT 기술을 경험할 수 있는 챗GPT 서비스를 벗어나서 생각했을 때 GPT 기술 자체는 많은 사람에게 아직 생소했고, GPT로 어떤 서비스를 만들 수 있을지, 어떤 태스크를 수행할 수 있을지 구체적으로 상상하기 어려운 시기였습니다. 그래서 저희는 GPT 모델을 서비스에 적용해 새로운 가치를 발굴해보려고 했습니다. 고객에게 어떤 새로운 경험을 제공할 수 있을까요? 비즈니스 측면에서는 어떤 효율 향상을 기대할 수 있을까요? 고민에 고민을 거듭하며 GPT 기술을 활용하기 위한 여행을 시작했습니다.
GPT는 Generative Pre-trained Transformer의 약자로 대규모 언어 모델의 한 종류를 지칭합니다. GPT 모델은 방대한 양의 텍스트 데이터로 사전학습되어, 주어진 텍스트의 패턴과 맥락을 파악하고 이를 바탕으로 새로운 텍스트를 생성해내는 놀라운 능력을 갖추고 있죠. 이런 GPT의 특성을 고려해 저희는 우선 배달의민족 서비스에 축적된 대량의 텍스트 데이터에 주목했습니다.
무엇을 할 수 있을까?
GPT를 어떻게 활용할 수 있을지 찾아나가는 과정에서 우아한형제들 프로덕트경험분석팀의 사용자 조사 결과가 큰 도움이 되었습니다. 배민 앱 사용자의 상당수가 메뉴나 가게를 미리 결정하지 않은 상태로 앱을 방문한다는 인사이트를 확인한 것이죠. 절반 이상의 사용자가 메뉴만 결정한 상태로 앱을 이용하고, 1/3 정도는 메뉴와 가게 모두 정하지 않고 앱에 접속한다는 조사 결과는 저희에게 방향성을 제시했습니다.
만약 GPT를 활용해 먹고 싶은 메뉴에 맞는 가게를 추천할 수 있다면 어떨까요? 나아가 아직 뭘 먹고 싶은지조차 정하지 못했다면, 메뉴 선택은 물론 가게 선택까지 도와줄 수 있지 않을까요? 저희는 이 질문에 주목하며 GPT 활용 방안을 구체화해나갔습니다.
어떻게 할 수 있을까?
사용자의 메뉴 및 가게 선택을 도울 수 있는 정보로는 ‘사용자들의 평가’가 가장 먼저 떠올랐습니다. 실제 그 가게의 음식을 주문해 먹어본 사용자들이 남긴 리뷰 데이터는 사용자 의사결정에 큰 참고가 될 수 있겠죠. 하지만 리뷰 데이터를 활용하려면 몇 가지 중요한 이슈를 고려해야만 했습니다. 무엇보다 개인정보 보호와 지적재산권 문제를 꼼꼼히 체크해야 했죠. 부적절한 개인정보 노출이 없어야 했고, 권리 침해 소지가 있는 내용은 반드시 필터링되어야 했죠. 이를 위해 개인정보 문제로 차단된 리뷰 데이터는 아예 제외하고, 활용 가능한 리뷰도 추가적인 전처리 과정을 거쳐야 했습니다.
다음 그림과 같이 전처리한 리뷰 데이터를 GPT 모델에 입력했습니다. GPT는 리뷰 텍스트를 분석하고 이를 토대로 가게 및 메뉴 관련 정보를 추출해, 추천 가게 목록의 제목과 설명을 생성하는 역할을 담당했죠. GPT가 생성해낸 콘텐츠는 다시 한번 법률 전문가의 검토를 받아 법적 이슈 없이 안전하게 서비스에 반영되게 했습니다. 그리고 이런 검토를 바탕으로 GPT를 다시 교육시켜서 작성된 문장들을 검수했습니다. 표시광고법 상 문제가 되는 표현이나 배민 서비스에 노출되지 않아야 할 문장을 수정하고, 더 배민다운 문장을 만들도록 돕는 봇이 탄생한 거죠.
뚝딱이가 메뉴를 추천합니다
약 3개월간의 개발과 테스트를 거쳐, 드디어 GPT 기반 추천 서비스가 배민 앱에 적용되었습니다. 검색어 제안, 검색 결과, 검색 홈, 서비스 홈과 배민배달 카테고리 목록 등 여러분이 자주 찾는 다양한 지면에서 메뉴뚝딱AI를 만나실 수 있게 되었죠.
GPT를 활용한 메뉴 추천 서비스 개발은 단순한 기술 실험에 그치지 않는 의미 있는 도전이었습니다. 대규모 언어 모델을 서비스에 실제 적용하면서 개인정보 보호, 지적재산권 이슈 등 감수해야 할 리스크도 만만치 않았지만, 이 과정을 통해 생성 AI 기술을 고객 가치 창출과 비즈니스 혁신에 활용할 수 있는 역량을 한 단계 업그레이드할 수 있었죠.
특히 GPT 기반 추천 서비스가 가장 큰 효과를 발휘할 수 있는 접점을 고민했고, 사용자가 원하는 것을 직접 입력하는 검색 영역에 주목하게 되었습니다. 사용자들이 메뉴나 가게 이름을 검색창에 입력하는 순간, GPT가 분석한 리뷰 정보를 바탕으로 가장 적합한 추천 결과를 즉시 제안할 수 있도록 경험을 설계했습니다.
검색에서의 메뉴 추천하기
배민 검색의 목적은 고객 본인이 원하는 메뉴를 신속하게 찾아 주문을 완료하는 것이므로, GPT 기반 메뉴 추천이 검색 과정 전반에서 여러분의 선택과 주문을 보조하도록 설계했습니다.
검색어를 입력하는 순간, 내가 입력한 검색어와 연관된 GPT 추천 콘텐츠가 서제스트로 펼쳐집니다. ‘치킨’이라고 검색하면 ‘바삭한 치킨’, ‘매콤한 치킨’, ‘숯불향 치킨’ 등 다양한 취향의 치킨을 파는 가게들을 추천받을 수 있습니다. 다소 모호한 검색어였던 “치킨”에서 내 취향을 더 정확히 반영한 ‘00한 치킨’으로 선택의 폭을 좁혀갈 수 있게 된 겁니다. 직접 주문한 사용자의 리뷰 텍스트를 분석한 정보로부터 가게와 메뉴를 추출해서 생성한 데이터이기 때문에 더욱 신뢰할 수 있을 거예요.
혹시 빠른 타자실력으로 이 서제스트를 발견하지 못하고 검색 결과로 오셨나요? 이런 분들을 위해서 검색 결과 화면에서도 GPT 추천 콘텐츠를 확인할 수 있습니다. 검색 결과 ‘배달’ 탭 상단에서 검색어와 연관된 GPT 추천 리스트를 볼 수 있는데요, 이전까지 배민 검색은 가게나 메뉴를 찾는 데 최적화되어 있었습니다. 그런데 이제는 GPT 추천을 통해서 자신의 상황이나 맥락에 맞는 검색 결과까지 추천받을 수 있게 되었어요.
다양한 상황에 맞춘 메뉴 추천
한 주의 끝이자 신나는 주말의 시작인 금요일에 어울리는 메뉴를 찾고 싶다면 배민 검색에 ‘금요일’이라고 검색해보세요. 당 떨어지는 오후시간에 달달한 무언가가 필요하세요? 검색창에 ‘달달한 메뉴’라고 검색해보세요. 불금에 어울리는 메뉴, 달달한 메뉴를 갖춘 추천 가게들이 여러분의 선택을 기다립니다.
검색에 진입하는 사용자는 뚜렷한 검색 목적을 가진 고객도 있지만 그렇지 못한 경우도 있습니다. 예상 외로 많습니다. 전자의 경우 어떤 검색어를 입력할 것인지 분명한 의도를 가지고 검색어를 입력하지만 후자의 경우 검색어를 정하지 못해서 ‘무엇을 검색할 것인지’에 대해 추가 탐색이 필요한데요. 이런 사용자를 위해서 검색의 첫 시작인 검색홈에서는 검색 시점에 어울리는 가게 목록을 GPT 추천해 보여드립니다. 아침에 어울리는 해장음식부터, 오후에는 동료들과 먹을 수 있는 간식, 저녁에는 육아퇴근하고 시키기 좋은 메뉴 등을 추천하고 있어요.
GPT와 함께 성장하는 메뉴뚝딱AI
메뉴뚝딱AI가 송파, 그리고 서울에 첫 등장했던 때만 하더라도 GPT는 많이 느렸고 비쌌으며, 원하는 대로 분석을 시키기에는 조금 부족한 능력을 가지고 있었습니다. 하지만 2024년 5월 등장한 GPT-4o는 이전 모델 대비 많은 것이 달라졌습니다. 속도도 훨씬 빨라졌고 비용은 매우 저렴해졌으며, 경량화모델인 GPT-4o mini만으로도 원하는 많은 분석을 수행할 수 있었죠. 그래서 저희는 기존에 매우 간단한 분석에서 벗어나, 복잡하고 어려운 일들을 GPT에게 시키려고 하고 있습니다.
먼저 GPT-4o mini가 리뷰를 읽고 의미 있는 단위로 리뷰를 나누어 청크로 만들고, 그 청크가 어떤 메뉴나 식재료에 대한 내용인지를 추출합니다. 또 각각의 청크가 어떤 카테고리(맛, 식감, 함께 먹는 사람, 상황 등)에 해당하는지 분류를 진행합니다. 마지막으로 GPT-4o는 청크 안에 저희가 미리 만들어놓은 키워드와 유사한 표현이 있는지를 확인합니다. 이 과정을 통해 저희는 컨텍스트 추출의 정확도를 높이고, 리뷰가 메뉴, 식재료, 서비스, 배달 등 어떤 부분에 대한 평가를 담고 있는지를 고도화하여 추출합니다.
이렇게 분석을 고도화하는 동안, 어느덧 오픈AI는 O1과 O3이라는 모델을 내놓고, 앤트로픽(Anthropic)과 구글은 각각 클로드(Claude)와 제미나이(Gemini) 모델을 개선하며 경쟁에 박차를 가하고 있습니다. 앞으로 이 LLM 모델들이 발전해나갈 방향과, 그 모델들과 함께 해나갈 과제들이 기대됩니다.
우아한형제들에서는 지금도 머신러닝을 전문적으로 다루는 부서는 물론이고, 그 외 다양한 곳에서 LLM의 활용을 놓고 많은 고민을 하고 있는데요. 그 결과를 기대해주시면 좋겠습니다.
¹Proof of concept: 아이디어나 기술의 실현 가능성을 입증하는 시제품이나 실험 과정
²Large language model: 대규모 텍스트 데이터를 학습해 자연어 처리 및 생성 작업을 수행하는 AI 모델
³Visual question answering: 이미지를 기반으로 질문에 답변하는 AI 기술
⁴Large multimodal model: 텍스트와 이미지 등 다양한 형태의 데이터를 처리할 수 있는 AI 모델
* 메뉴뚝딱AI가 탄생했던 과정에 대해 더 자세히 알고 싶은 분들은 우아콘 영상을 참고해주세요 (영상 링크)