level3_nlp_finalproject-nlp-12

'내마리'는 나의 이야기에 귀를 기울임으로써 나에게 공감하고, 이야기의 맥락을 파악하고, 더 깊은 내용을 질문해주는 챗봇입니다.

https://github.com/boostcampaitech5/level3_nlp_finalproject-nlp-12

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.6%) to scientific vocabulary

Keywords

chatbot chit-chat chitchat empathetic-dialogues korean-nlp nlp
Last synced: 6 months ago · JSON representation ·

Repository

'내마리'는 나의 이야기에 귀를 기울임으로써 나에게 공감하고, 이야기의 맥락을 파악하고, 더 깊은 내용을 질문해주는 챗봇입니다.

Basic Info
Statistics
  • Stars: 15
  • Watchers: 0
  • Forks: 7
  • Open Issues: 0
  • Releases: 1
Topics
chatbot chit-chat chitchat empathetic-dialogues korean-nlp nlp
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme Citation

README.md

내마리(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

bash poetry shell

Finetuning

finetuning 디렉토리에서 bash python train.py

Merge QLoRA layer into LLM backbone

finetuning 디렉토리에서 bash python merge_lora.py

Inference

finetuning 디렉토리에서 bash python inference.py

Server

Backend

server/backend 디렉토리에서 bash python app.py

Frontend

server/frontend 디렉토리에서 bash npm install and bash npm start

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

project_architecture

5. 데이터 Data

data_types

  • HuggingFace 데이터셋 리포지토리
  • 공감형 대화 공개 데이터셋은 single-turn 데이터 8,194개와 multi-turn 데이터 18,668개로 구성됩니다.
  • 사용자의 채팅에 대한 응답인 챗봇의 채팅은 '공감형 반응 - 질문' 형태를 띱니다.
  • Finetuning 시 모델의 입력은 프롬프트 템플릿으로 감싸주었으며, 데이터 생성 및 파인튜닝, 추론 등에서 사용한 프롬프트 템플릿은 data/prompt/ 디렉토리를 참고해주세요.

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

Owner

  • Name: 부스트캠프 AI Tech 5기
  • Login: boostcampaitech5
  • Kind: organization
  • Email: boostcamp_ai@connect.or.kr
  • Location: Korea, South

AI 엔지니어의 지속 가능한 성장을 위한 학습 커뮤니티, 부스트캠프 AI Tech입니다.

Citation (CITATION.cff)

@misc{kullm,
  author = {NLP & AI Lab and Human-Inspired AI research},
  title = {KULLM: Korea University Large Language Model Project},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/nlpai-lab/kullm}},
}

GitHub Events

Total
Last Year

Dependencies

server/frontend/package.json npm
  • @fortawesome/fontawesome-svg-core ^6.4.0
  • @fortawesome/free-brands-svg-icons ^6.4.0
  • @fortawesome/free-regular-svg-icons ^6.4.0
  • @fortawesome/free-solid-svg-icons ^6.4.0
  • @fortawesome/react-fontawesome ^0.2.0
  • @testing-library/jest-dom ^5.17.0
  • @testing-library/react ^13.4.0
  • @testing-library/user-event ^13.5.0
  • axios ^1.4.0
  • react ^18.2.0
  • react-dom ^18.2.0
  • react-scripts 5.0.1
  • web-vitals ^2.1.4
poetry.lock pypi
pyproject.toml pypi