base project : Base Project link
1️⃣ 주제 : KoBART를 활용한 카카오톡 대화 요약 서비스
2️⃣ 목표 : KoBART로 학습한 한국어 대화문 요약 모델을 Flask를 통해서 웹 서비스로 배포
3️⃣ 설명 : 기존의 Aiffel에서 진행한 대화문 생성요약 프로젝트를 베이스로 하여 KoBART 모델을 개선 및 서빙을 진행할 것
- KoBART를 활용한 카카오톡 대화 요약 서비스_1(feat.개요와 데이터)
- KoBART를 활용한 카카오톡 대화 요약 서비스_2(feat.모델과 평가)
- KoBART를 활용한 카카오톡 대화 요약 서비스_3(feat.생성 전력과 허깅페이스)
- KoBART를 활용한 카카오톡 대화 요약 서비스_4(feat.서빙)
- KoBART를 활용한 카카오톡 대화 요약 서비스_5(ft.추가 개선)
해당 모델은 HuggingFace에 업로드하여 pipeline으로 쉽게 사용할 수 있다.
pip install transformers==4.25.1
from transformers import pipeline
model_name = "jx7789/kobart_summary_v2"
dialogue = ["다들 설날에 함 보자?", "며칠에 볼지는 안 정했지?", "ㅇㅇ 아직 안정함ㅋㄱㅋ", "ㅇㅋ", "설 당일은 다들 바쁠테고", "토요일이나 월 중에 보면 될려나", "토욜", "저녁 한끼하고", "볼링이나 칩시다"]
gen_kwargs = {"length_penalty": 2.0, "num_beams":8, "max_length": 128}
pipe = pipeline("summarization", model=model_name)
print(pipe("[sep]".join(dialogue), **gen_kwargs)[0]["summary_text"])
pip install transformers==4.25.1
pip install Flask
python run.py
- Ubuntu-18.04(WSL) 환경에서 사용
docker build -t flask .
docker run -d -p 3000:3000 flask
기존 서비스 | 개선 서비스 | 진행사항(%) | RougeL F1 |
---|---|---|---|
성능저하시키는 전처리 | 불필요한 전처리 기법 제거 | 100% | |
mecab으로 길이측정 | model tokenizer로 길이측정 | 100% | |
학습, 검증 데이터 동일한 전처리 적용 | 학습, 검증 데이터 전처리 구분 | 100% | |
테스트 데이터셋 미구축 | 테스트 데이터셋 구축 | 100% | 0.2386 |
BOS, SEP 미사용 | BOS, SEP사용 | 100% | 0.2439 |
일반 fine-tuning | 도메인 적응 | 100% | 0.2526 |
모델 미배포 | fine-tuning post-pretrain |
100% |
개선 서비스 | 진행사항(%) |
---|---|
웹 구현 | 100% |
전처리 속도 개선 | 100% |
도커 빌드 | 100% |
기존 서비스 | 개선 서비스 | 진행사항(%) |
---|---|---|
.ipynb로 구현 | .py로 현업에 맞게 재구현 | 100% |
post-train 모든 토큰 loss 계산 | masking만 loss 계산 | 100% |
post-train meta data 미적용 | post-train meta data 적용 | 100%(불필요) |
잘못된 비율로 적용된 masking | masking 적용 개선 | 100%(불필요) |
잘못된 datacollator 사용 | 직접 datacollator 구현 | 100% |