boostcampaitech5 / level3_nlp_finalproject-nlp-12

'내마리'는 나의 이야기에 귀를 기울임으로써 나에게 공감하고, 이야기의 맥락을 파악하고, 더 깊은 내용을 질문해주는 챗봇입니다.
http://mymary.o-r.kr:30007
15 stars 7 forks source link
chatbot chit-chat chitchat empathetic-dialogues korean-nlp nlp

내마리(MyMary): 내 마음을 들여다 보는 챗봇

챗봇과의 대화를 통해 ‘나’에 대해 더 잘 알아갈 수 있는 챗봇, 내마리(MyMary) 서비스입니다. 내마리(MyMary)

[마리와 대화하기]

1. 프로젝트 데모 Project Demo

demo

2. 팀 & 역할 Team & Roles

공통 문지혜 박경택 박지은 송인서 윤지환
smoked_salmon
GitHub Badge GitHub Badge GitHub Badge GitHub Badge GitHub Badge
데이터 생성
데이터 검수
모델 별 실험
평가 지표 리서치
평가 전략 설계
프롬프트 엔지니어링
LangChain 연동
발표
개발환경 구성
베이스라인 작성
데이터 EDA
발표
FE/BE 구현
DB 연결
LangChain 연동
PM
베이스라인 작성
데이터 취합
데이터 전처리
LangChain 연동

3. 실행 방법 How-to-Run

Dependency Management

poetry shell

Finetuning

finetuning 디렉토리에서

python train.py

Merge QLoRA layer into LLM backbone

finetuning 디렉토리에서

python merge_lora.py

Inference

finetuning 디렉토리에서

python inference.py

Server

Backend

server/backend 디렉토리에서

python app.py

Frontend

server/frontend 디렉토리에서

npm install

and

npm start

4. 프로젝트 아키텍처 Project Architecture

project_architecture

5. 데이터 Data

data_types

6. 모델 Model

Backbone

KULLM-Polyglot-Ko-12.8B

kullm

Polyglot-Ko-12.8B 모델을 backbone으로 하여 15만 2천여 건의 싱글-턴 대화로 finetuning한 모델입니다.

QLoRA layer

qlora

LoRA 기법에 4-bit quantization, double quantization, paged optimizer 등의 방법을 사용하여 VRAM 32GB single GPU에서 full finetuning이 가능하게 했습니다.

7. 평가 Evaluation

평가를 위해 비교한 모델은 한국어 LLM 3가지(모델 파라미터수 7B, ~13B)와 현재 서비스 중인 GPT-3.5 모델(모델 파라미터 수 175B)입니다.

G-Eval

G-eval 논문을 참고하여 6가지 항목을 선정하고, 추가적으로 (1) 공감 능력, (2) 대화 유도 항목을 추가하여 평가하였습니다. g-eval

Human Evaluation

평가 항목은 크게 (1) 기초 능력, (2) 공감, (3) 맥락 유지, (4) 질문 항목으로 나뉩니다. 각각의 항목은 다시 두세 항목으로 세분류하여 평가를 진행하였습니다. human_eval

8. 서빙 Serving

서빙 파트의 자세한 내용은 server/ 디렉토리의 README를 참고해주세요.

9. 공개 링크 Public Links

Presentation

10. 참고문헌 Reference