NLP 01
1조라도안보이면 | 강혜빈, 권현정, 백인진, 이용우, 이준원
AllAtOnce : for lecture
© NAVER Connect Foundation
02
01
Introduction
팀 소개
프로젝트 소개
CONTENTS
02
Modeling
& Research
STT
Summarization
Answer Extraction
Question Generation
03
Product Serving
FrontEnd
BackEnd
04
Result & Demo
결과 및 데모 시연
05
Conclusion
자체 평가 의견
예상 Q&A
06
Q&A
1. Introduction
팀 소개
프로젝트 소개
# STT postprocessing
# React
# Answer Extraction
# Summarization
1.1 팀 소개
NLP 01 : 1조라도안보이면
© NAVER Connect Foundation
04
강혜빈
# Question Generation
권현정
백인진
이용우
# STT
이준원
# FastAPI
# STT
AllAtOnce : for lecture
© NAVER Connect Foundation
05
사용자로부터 강의 음성을 입력받아 텍스트로 변환한 뒤,
변환한 텍스트를 활용하여 강의 요약, 예상 질문 및 답안을 제공합니다.
1.2 프로젝트 소개
# STT
# Summarization
# Question Generation
# Answer Extraction
© NAVER Connect Foundation
06
AllAtOnce
:For lecture
PROBLEM
대면 강의 전환…코로나 학번의 학습은?
SOLUTION
강의 요약 및 질문 생성 서비스
- 코로나19 방역지침 완화에 따라 대면 강의로 전환되는 추세
- 비대면 강의에 익숙했던 ‘코로나 학번’이 학습에 어려움을 느낌
FOR WHOM?
- 강의 수강 시, 주요 내용을 놓친 학생
- 강의 필기 중 주요 내용에 대한 정리가 어려운 학생
- 시험 전, 특정 강의에 대한 예상질문 및 답안을 통해
공부를 하고자 하는 학생
여기에.. 에타?
1.2 프로젝트 소개
© NAVER Connect Foundation
07
STT
STT 후처리
요약
user input
STT 결과물
요약본
답안 추출
답안 필터링
질문 생성
답안
질문
1.2 프로젝트 소개
2. Modeling & Research
STT
Summarization
Answer Extraction
Question Generation
STT
© NAVER Connect Foundation
10
2.1 STT
STT
모델 선정
© NAVER Connect Foundation
11
| Azure STT | ESPNet | Whisper - small | Whisper - large |
CER (%) | 5.0 | 16.3 | 9.5 | 7.3 |
inference time(sec) | 310 | 210 | 186 | 434 |
Whisper- small
inference time 가장 작음
Azure STT를 사용하였을 때와 성능 차이가 비교적 작음
2.1 STT
CER 사용한 이유
값이 낮을수록 ASR 시스템의 성능이 향상되고 CER이 0이면 완벽한 점수
한국어의 경우 조사를 사용하기 때문에 단어를 기준으로 하는 ‘단어 오류율(WER)’이 아닌 낱말 오류율(CER)로 인식률을 측정
속도개선
© NAVER Connect Foundation
12
186초 → 50초 정도로 속도 개선
2.1 STT
© NAVER Connect Foundation
13
Whisper 모델의 부정확하게 인식되는 부분을 개선하여
정확도를 향상시키기 위해 STT 후처리 진행
2.1 STT
Post Processing
“단어의 부정확한 인식”
에 대한 개선 필요성
STT 결과물 context로부터의 요약문, 문제 생성을 위해 정확한 단어의 추출 필요
정확한 단어 생성에 초점
PLM으로 skt/kogpt-base-2 와 skt/ko-gpt-trinity-1.2B-v0.5 활용
finetuned KoGPT2, KoGPT3 모델 간 loss & 생성 결과 : 차이 미미, 생성 시간 : KoGPT2 기반 모델 유리 → KoGPT2 선정
PLM
데이터셋
데이터셋 개수 : 356,611개 문장 (실제 STT 모델 결과값을 활용하여 제작한 데이터셋)
선정 주제 : 한국사, 인문, 철학, 문학, 예술, 과학, 사회, IT, 교육
© NAVER Connect Foundation
14
2.1 STT
Post Processing
Result
Training
Whisper 특성 상 발화가 정확히 완결되지 않은 경우,
임의로 ‘...’ 를 추가하여 ‘.’ 을 기준으로 문장 분리 어려움
STT 결과 중 반복적인 문제점 발견
문장 종결이 명확하지 않음
“
”
© NAVER Connect Foundation
15
문장별로 변환되어 문단 구성이 없음
“
”
2.1 STT
Segmentation
STT 결과물을 하나의 문자열로 취합 후, “korean-sentence-splitter” 로 문장 분리
Sentence-BERT를 활용하여 유사도 기준으로 문단 분리
Summarization
© NAVER Connect Foundation
17
2.2 Summarization
Summarization
© NAVER Connect Foundation
18
선정 기준
강의 요약 task이므로 전문성을 띄는 내용을 담고 있을 것
다양한 학술 분야 도메인에 대한 내용을 담고 있을 것
[논문 요약 데이터셋]
[도서 요약 데이터셋]
[요약문 및 레포트 생성 데이터셋]
→ source text 길이의 분포가 특이함
→ 추가 분석 진행
2.2 Summarization
학습 데이터셋 선정
© NAVER Connect Foundation
19
다른 데이터셋에 비해 다양한 출처의 데이터 구성
→ 출처에 따라 source text 길이 차이 확인
→ task에 걸맞는
‘역사_문화재, 사설, 간행물, 문학, 나레이션’
데이터셋만 학습 활용 결정
[요약문 및 레포트 생성 데이터셋]
2.2 Summarization
학습 데이터셋 선정
© NAVER Connect Foundation
20
지도학습을 위해 Encoder-Decoder 기반의 KoBART-base, T5-base 선정
PLM으로 gogamza/kobart-base-v1 와 paust/pko-t5-base 활용
finetuned KoBART, T5 모델 간 loss & 생성 결과 : 차이 미미, 생성 시간 : kobart 기반 모델 유리 (모델 파라미터 수의 차이로 인해)
PLM
전처리
여부
training
epoch
kobart 모델을 대상으로 전처리(한자, 영어, 특수기호 처리) 여부에 따른 성능 차이 비교
정성 평가 결과 전처리 과정을 거친 뒤의 모델이 비교적 우수함을 확인
두 모델 모두 epoch 5 이상에서 eval loss가 점점 상승하는 모습 확인
정성 평가 결과 epoch 5에서 가장 좋은 모습 확인
2.2 Summarization
모델 선정
KoBART를 최종 모델로 선정
[최종성능] Rouge-2(f1) : 0.251 | Rouge-3 (f1) : 0.170 | Rouge-l (f1) : 0.352
통일신라 시기에 관료들에게 줬던 수조권을 관료전이라고 하는데 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다
© NAVER Connect Foundation
21
요약 결과에서 발견된 반복어구
통일신라 시기에 관료들에게 줬던 수조권을 관료전이라고 하는데 이것은 나라를 세울 때 공에 따라서
분배해 준 것이다
뒤이어 등장하는 동일 어구를
삭제하도록 후처리 모듈 추가
2.2 Summarization
후처리
Answer Extraction
© NAVER Connect Foundation
23
2.3 Answer Extraction
Answer Extraction
[ ]
© NAVER Connect Foundation
24
KeyBERT
각 문서의 단어 등장 횟수를 세서 벡터화하는 CountVectorizer 활용하여 단어 추출
→ 키워드 임베딩과 문서 임베딩의 코사인 유사도 계산 → 유사도 높은 단어 N개 추출
외규장각 설치 이후 왕이 직접 쓴 글이나 사용한 물품, 왕실 관련 도서 1000여 권을 보관했지만 1866년 병인양요 때 프랑스군이 강화도를 습격하면서 의궤 297책을 포함한 도서 359점을 약탈하고 나머지는 모두 불태워 버렸어요. 그 뒤 1975년 사학자인 박병선 박사의 노력으로 프랑스 파리 국립도서관에 외규장각 도서가 있다는 사실이 세상에 알려지게 됐고, 우리 정부와 여러 단체의 노력 덕분에 마침내 2011년 6월 그 전체가 고국의 품으로 돌아오게 된 거예요.
[ ]
외규장각 설치 이후 왕 글 사용 물품 왕실 관련 도서 보관 병인양요 때 프랑스군 강화도 습격 의궤 책 포함 도서 약탈 나머지 뒤 사학자 박병선 박사 노력 프랑스 파리 국립 도서관 외규장각 도서 사실 세상 정부 단체 노력 덕분 전체 고국 품
297책을 파리 1866년 왕실 프랑스 1975년
사학자인 정부와 프랑스군이 국립도서관에
왕실 사학자 정부 프랑스 프랑스군 파리
도서관 고국 관련 약탈
단어에 등장하는 조사, 어미 제거 시 다양한 변수가 발생하여 처리가 어려움
Mecab에서 일반 명사, 고유 명사로 인식되는 단어를 나열하는 형태로 문장 재구성
2.3 Answer Extraction
답안 추출
© NAVER Connect Foundation
25
Named Entity Recognition (NER)
‘문서의 내용을 대표하는 단어’뿐만 아니라 ‘답변으로써 매력 있는 단어’를 추출할 필요성
→ KorQuAD 데이터셋 구성을 참고하여 개체명 인식기 활용 결정 → 시간, 인물, 장소 등의 단어 추출
[KorQuAD v2 데이터셋 답변 구성]
외규장각 설치 이후 왕이 직접 쓴 글이나 사용한 물품, 왕실 관련 도서 1000여 권을 보관했지만 1866년 병인양요 때 프랑스군이 강화도를 습격하면서 의궤 297책을 포함한 도서 359점을 약탈하고 나머지는 모두 불태워 버렸어요. 그 뒤 1975년 사학자인 박병선 박사의 노력으로 프랑스 파리 국립도서관에 외규장각 도서가 있다는 사실이 세상에 알려지게 됐고, 우리 정부와 여러 단체의 노력 덕분에 마침내 2011년 6월 그 전체가 고국의 품으로 돌아오게 된 거예요.
[ ]
외규장각 1866년 병인양요 프랑스
1975년 박병선 파리 2011년 6월
2.3 Answer Extraction
답안 추출
© NAVER Connect Foundation
26
추출된 단어 n개에서 요약본과의 코사인 유사도가 높은 순대로 정렬한 뒤 상위 n/2개 추출
Cosine
similarity
요약본
답안 n개
답안 n/2개 추출
2.3 Answer Extraction
답안 필터링
© NAVER Connect Foundation
27
성능 평가
무작위로 선정된 51개의 context에 대해 test set을 제작한 뒤
모델이 추출한 키워드와의 매칭 여부를 통해 top-k개에 대한 성능 평가
Top-K | Precision | Recall | F1 |
1 | 0.07 | 0.03 | 0.04 |
3 | 0.36 | 0.29 | 0.32 |
5 | 0.46 | 0.30 | 0.36 |
2.3 Answer Extraction
답안 필터링
Question Generation
© NAVER Connect Foundation
29
2.4 Question Generation
Question Generation
© NAVER Connect Foundation
30
정성평가 결과
BLEU-4 score 기준 KoBART는 18.62, T5는 30.87
정성 평가 설문조사 결과 KoBART는 31.79% T5는 68.21%
T5 최종 선택
한국어 전용 데이터로 학습된 paust/pko-t5-base 를 활용하여 KorQuAD 1.0로 파인튜닝
train dataset : KorQuAD 1.0 (train : 154,355개 / validation : 5,774개 (qg only))
KorQuAD 1.0으로 fine-tuning한 'Sehong/kobart-QuestionGeneration' 사용
2.4 Question Generation
모델 선정
정량평가 결과
[부스트캠프 참여자 대상 설문자 모집, 총 17명 참여]
이른 민무늬 토기는 어느 시대 토기인가?
신석기
빗살무늬 토기는 어느시대의 대표적인 토기인가?
패촉이 유명한 부산 지역은?
공주 명학소에서 망이 망소이 난은 언제 일어났는가?
구석기 시대의 유골을 발견한 동굴은?
신석기 시대
고려시대
동산동
청원 두루봉 동굴
© NAVER Connect Foundation
31
Question Filtering
생성 결과에서 반복되는 문제점 발견
역사 논증 최태성이 강의를 시작할 때 여러분과 함께 공유하는 일종의 선물이라고 할
막 집, 막 집, 막 집, 막 집의 의미는?
{'answer': '뗀석기', 'question': '구석기 시대의 핵심적인 포인트는 무엇인가? '}
{'answer': '구석기', 'question': '구석기 시대의 핵심적인 포인트는 무엇인가? '}
위와 같은 질문의 경우 완성도가 떨어진다 판단하여 삭제
문장 유창성, 답변 가능 유무, 지문과의 관련성 순으로 고려
context - question 유사도를 기준으로 상위 20개 필터링 진행
.
.
.
2.4 Question Generation
질문 선정
3. Product Serving
FrontEnd
BackEnd
© NAVER Connect Foundation
33
3.1 FrontEnd
React
© NAVER Connect Foundation
34
3.2 BackEnd
FastAPI
4. Result & Demo
결과 및 데모 시연
© NAVER Connect Foundation
36
4.1 Demo
Demo
15분 영상 기준으로 2분 소요
© NAVER Connect Foundation
37
4.1 Demo
Demo
15분 영상 기준으로 24초 소요
© NAVER Connect Foundation
38
4.1 Demo
Demo
15분 영상 기준으로 43초 소요
5. Conclusion
자체 평가 의견
© NAVER Connect Foundation
40
음성 파일 inference가 오래 걸림
STT
Summarization
Answer Extraction
Question Generation
교수자의 사담, 예시에 대한 고려 필요
질문과 답이 맞지 않는 유형의 질문들을 걸러내기 어려움
키워드에 포함되는 조사, 어미 처리를 최대한 보수적으로 접근한 점
‘의미 있는 단어’가 제거될 가능성이 있음
한계점 및 개선 방향
자체 평가 의견
© NAVER Connect Foundation
40
음성 파일 inference가 특히 오래 걸림
속도 개선
모듈 단순화
한계점 및 개선 방향
자체 평가 의견
STT, 후처리, 요약, 답안 추출, 질문 생성 뿐만 아니라 유사도 계산에서도 모델 사용 중
감사합니다
Q & A
© NAVER Connect Foundation
43
예상 Q&A
Q. 강의 영상이 1시간일 경우 총 소요시간은 어떻게 되나요?
강의 영상 1시간 기준 4분 37초 소요됩니다.
Q. 강의 녹음 파일을 온라인에 업로드하는 것은 저작권법 위반이 아닌가요?
저작권법 제30조에 따르면 공표된 저작물을 영리를 목적으로 하지 아니하고 개인적으로 이용하거나 가정 및 이에 준하는 한정된 범위 안에서 이용하는 경우에는 그 이용자는 이를 복제할 수 있습니다.�또한 업로드한 강의 데이터를 서버에 저장하지 않고 있습니다.
© NAVER Connect Foundation
44
STT
Character error rates(CER) :
https://github.com/hyeonsangjeon/computing-Korean-STT-error-rates
SPNet :
https://github.com/espnet/espnet
Whisper :
https://arxiv.org/pdf/2212.04356.pdf
Summarization
KoBART :
https://github.com/seujung/KoBART-summarization | https://huggingface.co/docs/transformers/model_doc/bart
T5 :
https://github.com/google-research/multilingual-t5 | https://github.com/google-research/text-to-text-transfer-transformer
Answer Extraction
KeyBERT :
https://github.com/MaartenGr/KeyBERT
NER :
https://github.com/eagle705/pytorch-bert-crf-ner
Question Generation
KoBART :
https://github.com/Seoneun/KoBART-Question-Generation
T5 :
https://github.com/patil-suraj/question_generation#project-details | https://huggingface.co/paust/pko-t5-base
FastAPI
참고 자료