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
Repository
'내마리'는 나의 이야기에 귀를 기울임으로써 나에게 공감하고, 이야기의 맥락을 파악하고, 더 깊은 내용을 질문해주는 챗봇입니다.
Basic Info
- Host: GitHub
- Owner: boostcampaitech5
- Language: Python
- Default Branch: main
- Homepage: http://mymary.o-r.kr:30007
- Size: 24.9 MB
Statistics
- Stars: 15
- Watchers: 0
- Forks: 7
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
내마리(MyMary): 내 마음을 들여다 보는 챗봇
챗봇과의 대화를 통해 ‘나’에 대해 더 잘 알아갈 수 있는 챗봇, 내마리(MyMary) 서비스입니다.
내마리(MyMary)는
- 사용자의 채팅 속에서 맥락을 파악하고 사용자에게 따뜻한 공감을 제공하며
- 질문 또는 생각 정리의 형식으로 사용자의 채팅에 대한 답변을 마무리함으로써
- 사용자가 공감을 기반으로 챗봇과 상호작용할 수 있게 되어, 궁극적으로 사용자 자신과 상호작용 하는 (= 내 마음을 들여다보는) 경험을 제공합니다.
[마리와 대화하기]
1. 프로젝트 데모 Project Demo

2. 팀 & 역할 Team & Roles
|공통|문지혜|박경택|박지은|송인서|윤지환|
|:---:|:---:|:---:|:---:|:---:|:---:|
|
||
|
|
|
|
||
|
|
|
|
|
|데이터 생성
데이터 검수
모델 별 실험|평가 지표 리서치
평가 전략 설계|프롬프트 엔지니어링
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

5. 데이터 Data

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

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

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) 대화 유도 항목을 추가하여 평가하였습니다.

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

8. 서빙 Serving
서빙 파트의 자세한 내용은 server/ 디렉토리의 README를 참고해주세요.
9. 공개 링크 Public Links
10. 참고문헌 Reference
- A Technical Report for Polyglot-Ko: Open-Source Large-Scale Korean Language Models
- GPT-NeoX-20B: An Open-Source Autoregressive Language Model
- Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning
- LoRA: Low-Rank Adapatation of Large Language Models
- QLoRA: Efficient Finetuning of Quantized LLMs
- G-Eval: NLG Evaluation using GPT-4 with Better Human Alignment
Owner
- Name: 부스트캠프 AI Tech 5기
- Login: boostcampaitech5
- Kind: organization
- Email: boostcamp_ai@connect.or.kr
- Location: Korea, South
- Website: https://boostcamp.connect.or.kr/program_ai.html
- Repositories: 1
- Profile: https://github.com/boostcampaitech5
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
- @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