장려상 LLM기반 범용 매장 챗봇 시스템
프로젝트 개요
본 프로젝트는 매장별로 메뉴 데이터를 학습하던 기존의 Pre-trained Language Model (PLM)을 사용하는 대신, 사람과 같이 응답하는 Large Language Model (LLM)을 활용하여 매장별로 학습하지 않고 프롬프트에서 정보를 추출하는 법만 학습하여 비용 효율적으로 LLM 기반 범용 매장 챗봇 시스템을 개발하는 것을 목표로 한다.
방법론
1. RAG를 통한 매장 정보 제공
LLM은 매장의 메뉴를 학습하지 않고도 텍스트 형태로 주어진 메뉴 정보를 보고 고객에게 메뉴에 대한 정보를 제공하거나 주문을 받을 수 있다. 매장 정보(매장 메뉴 정보)를 테이블 형태에서 텍스트로 변환하고, 이를 벡터화하기 위해 문맥을 고려한 임베딩 방법인 BERT와 단어 빈도수를 기반으로 하는 TF-IDF를 사용하여 벡터 DB에 저장한다. 이후 LLM에게 정보를 제공하기 위해 Retri-Augmented Generation (RAG)를 사용한다. RAG는 사용자의 질의와 유사한 외부 정보를 추출하여 LLM이 참조할 수 있게 한다.
2. LLM 기반 범용 매장 챗봇 시스템 패러다임
a) 사용자가 입력하면 주문 슬롯이 정의됨
b) 사용자의 입력과 주문 슬롯과 유사한 메뉴를 RAG를 통해 추출함
c) 사용자의 입력, 주문 슬롯, RAG를 통해 추출된 유사한 메뉴를 프롬프트로 구성함
d) 이 프롬프트를 LLM에 입력하면, LLM은 고객을 응대하고 주문 슬롯을 업데이트함
3. LLM의 프롬프트 정보 추출, 고객 응대 및 슬롯 업데이트 방법 학습
위 시스템 패러다임이 동작하도록 LLM이 프롬프트에서 정보를 추출하고, 이를 바탕으로 고객을 응대하며 주문 슬롯을 채우는 방법을 배우기 위해 Instruction Tuning을 진행한다. Instruction Tuning은 지시문 형태로 주어진 입력을 잘 수행하게 하여, LLM이 매장 정보를 이해하고 활용하며 출력할 때 어떤 형태를 띄워야 하는지를 지시함으로써 작업을 수행할 수 있게 하는 방법이다.
실험
1. 실험 환경 세팅
우리는 이러한 학습을 위해 Llama3라는 LLM을 채택했다. 또한 고봉민김밥, 포트캔커피, 프랭크버거, 피자먹다 등 총 4개의 매장에 대해 사용자 입력, 주문 슬롯, LLM의 응답, LLM의 주문 슬롯 업데이트 등을 포함하는 1,000개의 Instruction Tuning 데이터셋을 구성했다. 고봉민김밥, 포트캔커피, 프랭크버거 3개의 매장으로 LLM을 학습하고, 피자먹다 매장으로 학습하지 않은 매장에서 BLEU 메트릭을 통해 평가했다.
2. 결과 및 분석
우리는 이러한 챗봇을 시스템 데모로 구현하여 RAG (매장 정보 추출 모듈)의 중요성을 파악했으며, 실험 결과 RAG를 사용한 Full tuning (본 프로젝트 방법론) 결과 BLEU 점수가 0.8587로 가장 우수했다. 또한, RAG를 활용하여 Instruction Tuning의 효과성을 파악하기 위해 모듈을 제거하며 실험을 진행한 결과, 본 프로젝트의 세팅이 가장 우수한 성능을 보였으며, 특히 RAG 모듈의 중요성이 두드러지게 나타났다. 이로써 RAG가 성능 향상에 크게 기여함을 확인할 수 있었다.
결론
결론적으로 본 프로젝트는 다음과 같은 기여를 했습니다:
- 매장별 데이터에서 적절한 정보를 추출하여 슬롯을 채우고 고객에게 응대하는 LLM 기반 범용 매장 챗봇 시스템을 제안했습니다.
- 매장별 데이터에 RAG를 적용함으로써 각 매장별로 별도의 모델 학습 없이도 비용 및 연산 효율성을 확보했습니다.
- LLM 기반 범용 매장 챗봇 데모 시스템을 개발했으며, 모듈을 제거하는 실험을 통해 결과의 효과성을 면밀하게 분석하여 LLM 기반 범용 매장 챗봇 시스템의 효용성을 입증했습니다.
시스템 데모
아래 자료를 참고하여 LLM기반 범용 매장 챗봇 시스템 데모 영상을 확인해주세요.
- RAG (매장 정보 추출 모듈)를 사용한 데모 영상: 5-1. 선택자료 Demo_with_RAG.mp4
- RAG (매장 정보 추출 모듈)를 사용용하지 않은 데모 영상: 5-2. 선택자료 Demo_without_RAG.mp4