Skip to content

pnucse-capstone-2024-classroom-capstone-2024-Capstone-Template created by GitHub Classroom

Notifications You must be signed in to change notification settings

pnucse-capstone-2024/Capstone-2024-team-26

 
 

Repository files navigation


1. 프로젝트 소개

1.1. 배경 및 필요성

대형 언어 모델과 추천 시스템 : 대화형 추천 시스템으로

2022년 OpenAI사의 대화형 인공지능 모델인 'ChatGPT'가 공개된 이래로 대형 언어 모델(Large Language Model, LLM) 분야는 끊임없이 발전을 거듭하고 있습니다.

  • 더 빠른 속도

  • 더 강력한 성능

  • 더 저렴한 비용

위 세 키워드를 주 목표로 하여 발전해 온 대형 언어 모델들은 이제는 사람들의 일상 생활 속에서도 어렵지 않게 찾을 수 있게 되었습니다.

이러한 대형 언어 모델을 추천 시스템과 결합하는 시도가 과연 없었을까요?

정답은 '아니오'입니다.

추천 시스템과 대형 언어 모델을 결합, 기존 추천 시스템의 한계를 대형 언어 모델의 강력한 추론 능력을 활용하여 극복하고 사용자와의 동적인 대화를 통하여 더 세밀하고 더 개인화된 추천을 제공하는 대화형 추천 시스템(Conversational Recommender System, CRS)의 개념이 제시되었고, 현재까지도 활발한 연구가 이루어지고 있습니다.

대화형 추천 시스템 : 대형 언어 모델의 결합은 어떻게?

그렇다면, 대화형 추천 시스템을 구축하는 데에 있어서

  • 대형 언어 모델은 어떠한 방식으로 활용되어야 할까요?

  • 또, 활용 방식이 정해졌다면 각 경우에 대해서 대형 언어 모델은 어떠한 형식의 출력을 해 주어야 할까요?

위 질문들의 해답을 찾기 위한 연구들이 선행된 바가 있으나, 아쉽게도 명확하게 정립된 가이드라인의 정보는 부족한 것이 현 상황입니다.

이에 저희는 직접 대화형 추천 시스템을 구축, 서비스함으로써 위 질문들에 저희만의 해답을 내놓기 위하여 본 프로젝트를 진행하였습니다.

반갑습니다, 저희는 부산대학교 24년도 전기 졸업과제 팀 LLecommend입니다.

1.2. 목표 및 주요 내용

프로젝트 목표

1. 추천 시스템 - 대형 언어 모델 연동 구조 정립 및 개발

기존의 연구 자료들을 기반으로 하여 추천 시스템과 대형 언어 모델의 상호 입출력 연동 절차 및

전체적인 시스템의 구조를 정립, 구현하는 것을 목표로 합니다.

2. 추천 시스템 및 대형 언어 모델에 대한 경량화 작업 수행

대형 언어 모델 선정과 추천 시스템 구축 과정에서 여러 가지 경량화 방식을 적용한 뒤,

성능과 자원 요구량 사이의 균형을 갖춘 시스템을 구축하는 것을 목표로 합니다.

3. 최적의 추천 제공 서비스

사용자의 발화 내용에서 유용한 정보를 추출하고, 이를 기반으로 한 추천을 통하여

각 사용자의 개인적 선호와 맥락에 일치하는 최적의 아이템(영화) 및 근거를 산출하는 서비스를 제공하는 것을 목표로 합니다.

프로젝트 주요 내용

1. 데이터 전처리 및 추천 모듈 구현

  • 추천 모듈에 활용될 수 있도록 영화와 평점 데이터들을 다중 레이블 특성 벡터화하였습니다.
  • 이를 활용하여 사용자의 발화로부터 반영된 키워드와의 유사도를 계산하고, 별도의 신뢰도 점수를 연산한 뒤 이를 가중 결합하여 최종적으로 추천하는 아이템(영화)의 후보 목록을 산출하는 추천 모듈을 구현하였습니다.

2. 대형 언어 모델의 적용

  • EEVE-KR-Instruct 모델을 차용하였습니다,
  • 차용된 대형 언어 모델은 사용자 발화 내용 분석에서부터 최종 추천 근거 생성에 이르기까지, 여러 요소에서 활용하였습니다.

3. 데이터베이스-서버의 구현 및 서비스

  • 사용자의 서비스 이용을 위한 서버를 구축하였습니다.
  • 한 세션에서 그치는 것이 아닌, 지속적인 상호작용을 위하여 사용자의 주요 선호 정보를 저장하는 데이터베이스를 구축하였습니다.

2. 상세 설계

2.1. 시스템 구성도

architecture

2.2. 사용 기술

Backend

  • PyTorch : v2.4.0
  • Flask : v3.0.3
  • MySQL Connector : v9.1.0

Frontend

  • React.Js : v18.2.0
  • CSS : v2.1

Server

  • FastAPI : v0.112.2
  • LangChain : v0.3.4
  • LangChain-Community : v0.3.3
  • Ollama : v0.3.14
  • EEVE-Korean-Insturct-10.8B : v1.0

3. 설치 및 사용법

  • 본 프로젝트는 window 환경에서 개발되었으며 함께 포함된 다음의 스크립트를 수행하여 관련 패키지들의 설치와 빌드를 수행할 수 있습니다.

$ ./install_and_build.sh

  • 모든 서버가 정상적으로 실행됐다면 웹에서 이름, 나이, 성별등을 작성하세요

image image

  • 메인페이지

image

  • 영화 취향 공유 버튼을 클릭하고 선호 장르, 선호 배우를 입력합니다.
  • 본 영화 기록 버튼을 누르고 시청한 영화들을 기록합니다.

image

image

  • 마지막으로 영화 시청 상황, 환경, 같이 보는 사람등등 다양한 입력을 넣어줍니다. 해당 부분에는 ‘~한 상황에서 ~와 같이 혹은 혼자 볼건데 ~한 장면이 있는 영화는 별로야’처럼 작성하면 좋습니다

image

  • 그 후 새로운 영화 발견하기 버튼을 누르면 개인화된 영화 추천을 진행합니다.

4. 소개 및 시연 영상

2024년 전기 졸업과제 26 LLecommend


5. 팀 소개

  • 데이터 분석 및 전처리
  • 추천 시스템 구축
  • LLM 모델 선정 및 테스트
  • 시스템 아키텍처 설계
  • 백엔드 개발
  • 결과 시각화
  • API 설계 및 구현
  • 프론트엔드 개발
  • 웹 ui 구성
  • 데이터 전처리
  • 모델 서빙

About

pnucse-capstone-2024-classroom-capstone-2024-Capstone-Template created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.1%
  • TypeScript 0.6%
  • PowerShell 0.3%
  • CSS 0.0%
  • JavaScript 0.0%
  • HTML 0.0%