RAG를 이용한 향수 추천 챗봇 만들기 01. 프로젝트의 시작과 기획, 결과물

2023년 12월부터 올해 4월까지, AI 관련 교육 프로그램에 참여하여 수업의 일환으로 ‘RAG를 이용한 향수 추천 챗봇 만들기’를 주제로 팀 프로젝트를 진행하였습니다.’2023년 12월부터 올해 4월까지, AI 관련 교육 프로그램에 참여하여 수업의 일환으로 팀 프로젝트를 진행하였습니다.

각 팀 구성원의 사정으로, 아쉽게도 단독으로 마무리해야 했지만, 저에게는 처음으로 진행한 AI 관련 프로젝트인지라 여러모로 뜻 깊은 일이었습니다.

앞으로 연재 방식으로 해당 프로젝트에 대한 전반적인 진행 내용과 주요한 내용들을 함께 공유하고자 합니다.

프로젝트의 시작

작년 12월부터 올해 4월까지 4개월 과정으로 ML/DL 수업을 들으며, 처음으로 AI 관련 프로젝트를 해보게 되었습니다.

원래는 주어진 주제 예시들이 있었으나, 해당 주제들 외에도 팀 별로 주제를 별도로 선정하여 진행할 수가 있었고, 총 10명이 각각 4명, 3명, 3명으로 나뉘어 꾸려진 3조 모두 해당 시점(부터 현재까지도) 가장 이슈화가 이루어진 LLM 기반의 프로젝트에 관심을 가지고 해당 기술에 적절한 프로젝트를 고민하였습니다.

도메인을 넘어 모두를 위한 프로젝트 찾고 조정하기

저의 경우, 워낙 제 도메인이 확실한지라(바이오/제약) 해당 분야의 프로젝트도 여럿 생각하고 있었지만(실제로 해당 교육 과정과 함께 합격한 타 교육 과정의 경우 제 도메인과 향후 계획을 들으시고 해당 담당자 분이 관련 프로젝트를 하길 원한다면 도와줄 수 있다 하셨으나, 아쉽게도 고민을 하다가 실무 과정에 촛점이 맞추어진 본 교육 과정을 듣게 되었고), 해당 교육과정에는 ‘특정 당사자의 도메인에 해당하는 프로젝트 주제는 불가하다’는 조건이 있어(..흑..) 조원들과 함께 할 수 있는 좋은 프로젝트가 뭐가 있을까 고민을 하게 되었습니다.

일단, 가능하다면 해당 프로젝트를 통해 1) LLM 기반 챗봇의 전반적인 내용을 다루고 경험해볼 수 있겠으면 좋겠다는 생각이 들어 관련 내용을 공부하고 프로젝트 주제를 다듬어가기 시작했습니다.

어쩌다보니, 해당 교육 프로그램엔 저를 제외하고는 수강생들이 모두 대학생이거나 갓 대학을 졸업하거나 대학원에 막 입학한 연령대의 분들인지라, 2) 각자의 미래 포트폴리오에도 도움이 되는 프로젝트 주제를 받으면 좋겠다 싶어 고민하다가 나온 주제가 바로 ‘쇼핑몰 리뷰 데이터 기반의 선물 추천 챗봇 개발’ 이었습니다.

프로젝트 범위 조정 1차: 프로젝트 타겟(소재) 축소하기

조원들 모두의 동의를 얻어, 해당 주제를 구체화 하던 중에, 내부적인 사정으로 해당 프로젝트의 범위를 축소하여, 앞으로 함께 공유할 ‘선물’ 중에서 챗봇 추천에 가장 적합할 것으로 보이는 카테고리인 ‘쇼핑몰 리뷰 데이터를 활용한 향수 추천 챗봇 만들기’ 주제로 변경하였습니다. 추후 직접 작성하고 발표한 관련 기획서, 제안서와 관련 정보들을 공유해드릴게요 🙂

프로젝트 범위 조정 2차: 프로젝트 구현 축소하기

해당 교육 프로그램의 경우, 별도의 프로젝트 기간이 있는 것이 아니라, 수업 진행 기간 동안 수업 시간과 별도로 해당 프로젝트를 진행하는 방식으로 진행되었습니다. 이 과정에서 아쉽게도 대학, 대학원 수업을 병행하는 과정의 팀원들이 개인 사유로 수업을 중도 하차 하거나 사정 상 참여하지 못하게 되어, 최종적으론 개인 과제로 해당 프로젝트를 마무리해야 하는 상황이 되었습니다.

그렇다고 포기할 제가 아니죠!

기존의 프로젝트 범위 조정이 프로젝트가 다루는 범위(타겟)를 줄이는 방식이었다면, 2차로는 프로젝트의 구현 범위를 축소하기로 하였습니다.

예를 들어, 기존에 해당 챗봇을 구현하기 위한 프론트엔드 프레임워크로 Flutter를 고려하고 열심히 공부하였으나, 결론적으로 개인 프로젝트가 되며 이를 보다 손쉽게 구현할 수 있는 방식으로 변경하였습니다.

또한, 챗봇을 구성하는 과정에서, LLM을 보다 밑바닥 단부터 테스트 해 볼 기회를 마련해보고자 계획을 하였으나, 최종적으로는 RAG를 활용하되, RAG를 위한 데이터와 조건들을 찾고 구현하는데 촛점을 맞추어 구현하기로 하였습니다.

프로젝트 진행 과정 요약

대략적으로 아래와 같은 과정으로 해당 프로젝트의 과정을 요약해볼 수 있습니다.

  1. 제안서 작성
  2. 각 쇼핑몰 해당 카테고리 리뷰 추출 및 전처리
  3. 키워드 추출 및 최적화
  4. OpenAI 사의 ChatGPT4.0 API를 활용한 RAG 챗봇 구현
  5. Gradio 라이브러리를 활용한 웹 챗봇 인터페이스 구현
  6. 최적화 최적화 그리고 최적화
  7. 라이브 시연 발표

프로젝트의 결과물: 혼자 하는 플젝도 나쁘지 않아요

(ANN의 ‘혼자 하는 사랑’이라는 곡을 아신다면 해당 곡의 음에 맞추어 따라 불러보세요)

앞서 말씀 드린 바와 같이, 아쉽게도, 프로젝트의 진행 과정에서 (다행히 해외 연수 선발 등의 좋은 이유로) 해당 교육과정에서 하차하거나 하는 등의 사유로 팀 프로젝트 진행이 어려워져서, 데이터의 크롤링(스크래핑) 이후로는 개인 프로젝트로 해당 프로젝트로 진행하게 되었습니다.

그래도, (약간의 비용-토큰 비용-과 수면 시간을 바친 덕분에) 무사히 프로젝트를 완료하여 아래와 같은 결과물을 만들게 되었습니다.

개인 프로젝트화 되면서, 앞서 이야기한 ‘함께 하는 프로젝트’가 되기 위해 공들인 많은 부분들이 무산되어 아쉽기도 하였지만, 프로젝트의 A부터 Z까지 직접 진행하며 AI과 이를 활용한 프로젝트에 대한 전반적인 그림을 그려볼 수 있는 좋은 기회였습니다.

이제, 팀블로그 안테나곰 내 소울새싹의 해당 카테고리를 통해 본 프로젝트의 진행 내용과 여러가지 팁들을 공유해드릴 예정입니다. (참고로, 해당 프로젝트의 코드는 별도의 github에서 공유할 예정이오니, 이후 글을 참고해주세요.)

그럼, 이제 해당 프로젝트의 진행 내용을 다음 편부터 상세히 소개해드릴게요 🙂

아, 궁금하신 내용이 있다면, 댓글로 편하게 문의하시면, 제가 아는 한 답변 드려볼게요 🙂

그럼, 다음 편에서 뵙겠습니다.

댓글 남기기