Skip to content

네이버 부스트캠프 | 회의록을 활용한 Closed-Domain Question Answering(CDQA)

Notifications You must be signed in to change notification settings

boostcampaitech3/final-project-level3-nlp-09

Repository files navigation

❓"뭐든 내게 물어봐!"❓

회의록을 활용한 Closed-Domain Question Answering(CDQA)


Table of Contents

  1. Archive
  2. Introduction
  3. Project Outline
  4. Demo
  5. Data
  6. Model
  7. How To Use
  8. References

0. Archive




1. Introduction

안녕하세요! 저희는 AI의 A부터 I까지 모든 것을 경험할 준비가 된 열정 가득한 사람들이 모인 MNM팀 입니다!

Team MNM

"어봐!"

Members

김태일_T3063 문찬국_T3076 이재학_T3161 하성진_T3230 한나연_T3250

Contribution

Member Contribution
김태일 데이터 전처리, 학습 모델 Baseline 제작, Web 서비스 구축
문찬국 데이터 가이드라인, Reader 모델, 발표 자료 제작 및 발표, 협업 관리
이재학 EDA, 데이터 전처리, 데이터 Augmentation, Reader 모델
하성진 Reader 모델, Retriever 모델, Telegram 서비스 구축
한나연 데이터 가이드라인, Retriever 모델, Web 서비스 구축

2. Proeject Outline

프로젝트 주제 : 회의록을 활용한 Closed-Domain Question Answering(CDQA)

프로젝트 주제 선정 기준 :

  • 내가 겪은 어려움/불편함을 해결할 수 있는가?
  • 부스트 캠프에서 배운 내용을 활용해 AI 프로젝트의 전 과정을 모두 경험할 수 있는가?
  • 주어진 기간(3주) 내에 완성할 수 있는가?

문제 정의: 클로바 노트 등을 활용해 회의록을 쉽게 기록할 수 있게 됐지만, 정보 검색이 어렵다는 문제 발견

개발 목표 : 사용자의 회의록 코퍼스에서 궁금한 질문을 주고 받을 수 있는 회의록 QA 모델 제작

프로젝트 전체 구조


3. Demo

🖥️ Web 예시(Streamlit)

📱 App 예시(Telegram)


4. Data

Dataset : 데이콘 회의 녹취록 요약 경진대회의 의회 데이터를 이용하여 직접 구축

Annotation Tool : Haystack을 이용하여 데이터 태깅

Guideline : FAQ 작성 및 질문 유형화


5. Model

Reader

🤗RoBERTa-Large Finetuning Twice(MRC) : Nonegom/roberta_finetune_twice
🤗Finetuning with Our Dataset : wogkr810/mnm

Retriever


6. How To Use

Service Setting

GPU : Tesla V100 32GB

Installation

# 파이썬 버전 확인 (3.8.5 확인)
python3 --version 

# venv 설치
sudo apt-get install python3-venv 

# 가상환경 생성하기
python3 -m venv [venv_name] 

# 가상환경 활성화(생성한 가상환경 폴더가 있는 경로에서 활성화 해야 함)
source [venv_name]/bin/activate 

# 라이브러리 설치
pip install -r requirements.txt

# 가상환경 종료
deactivate

Streamlit

streamlit run main_streamlit.py

Telegram

# 텔레그램 공식 챗봇 생성 절차를 진행하여 토큰을 부여 받아, 관련 정보를 코드에 추가 후 실행  
python main_telegram.py

7. References

Commit Rule

- feat      : 새로운 기능 추가
- debug     : 버그 수정
- docs      : 문서 수정
- style     : 코드 formatting, 세미콜론(;) 누락, 코드 변경이 없는 경우
- refactor  : 코드 리팩토링
- test      : 테스트 코드, 리팩토링 테스트 코드 추가
- chore     : 빌드 업무 수정, 패키지 매니저 수정
- exp       : 실험 진행
- merge     : 코드 합칠 경우
- anno      : 주석 작업
- etc       : 기타

Code Structure

final-project-level3-nlp-09
├── assets
├── data
├── data_augmentation
│   ├── eda.py
│   ├── aeda.py
│   ├── pororomt.py
│   ├── augmentation.ipynb
├── data_utils
│   ├── EDA.ipynb
│   ├── data_split.ipynb
│   ├── data_upload.ipynb
│   ├── haystack_preprocess.ipynb
│   ├── make_demo_txt.py
├── model
│   ├── README.md
│   ├── arguments.py
│   ├── elastic_setting.py
│   ├── inference.py
│   ├── retrieval.py
│   ├── submission.py
│   ├── topk_timer.py
│   ├── train.py
│   ├── trainer_qa.py
│   ├── utils_qa.py
│   ├── setting.json
│   ├── sweep.yaml
├── main_streamlit.py
├── main_telegram.py
├── README.md
└── requirements.txt

Dataset

Paper :

Github :

Youtube :