1 of 45

NLP 01

1조라도안보이면 | 강혜빈, 권현정, 백인진, 이용우, 이준원

AllAtOnce : for lecture

2 of 45

© 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

3 of 45

1. Introduction

​

팀 소개

프로젝트 소개

4 of 45

# STT postprocessing

# React

# Answer Extraction

# Summarization

1.1 팀 소개

NLP 01 : 1조라도안보이면

© NAVER Connect Foundation

04

강혜빈

# Question Generation

권현정

백인진

이용우

# STT

이준원

# FastAPI

# STT

5 of 45

AllAtOnce : for lecture

© NAVER Connect Foundation

05

사용자로부터 강의 음성을 입력받아 텍스트로 변환한 뒤,

변환한 텍스트를 활용하여 강의 요약, 예상 질문 및 답안을 제공합니다.

1.2 프로젝트 소개

# STT

# Summarization

# Question Generation

# Answer Extraction

6 of 45

© NAVER Connect Foundation

06

AllAtOnce

:For lecture

PROBLEM

대면 강의 전환…코로나 학번의 학습은?

SOLUTION

강의 요약 및 질문 생성 서비스

- 코로나19 방역지침 완화에 따라 대면 강의로 전환되는 추세

- 비대면 강의에 익숙했던 ‘코로나 학번’이 학습에 어려움을 느낌

FOR WHOM?

- 강의 수강 시, 주요 내용을 놓친 학생

- 강의 필기 중 주요 내용에 대한 정리가 어려운 학생

- 시험 전, 특정 강의에 대한 예상질문 및 답안을 통해

공부를 하고자 하는 학생

여기에.. 에타?

1.2 프로젝트 소개

7 of 45

© NAVER Connect Foundation

07

STT

STT 후처리

​

요약

user input

STT 결과물

요약본

답안 추출

답안 필터링

질문 생성

답안

질문

1.2 프로젝트 소개

8 of 45

2. Modeling & Research

STT

Summarization

Answer Extraction

Question Generation

9 of 45

STT

10 of 45

© NAVER Connect Foundation

10

2.1 STT

STT

11 of 45

모델 선정

© 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)로 인식률을 측정

12 of 45

속도개선

© NAVER Connect Foundation

12

186초 → 50초 정도로 속도 개선

2.1 STT

13 of 45

© 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, 교육

14 of 45

© NAVER Connect Foundation

14

2.1 STT

Post Processing

Result

Training

15 of 45

Whisper 특성 상 발화가 정확히 완결되지 않은 경우,

임의로 ‘...’ 를 추가하여 ‘.’ 을 기준으로 문장 분리 어려움

STT 결과 중 반복적인 문제점 발견

문장 종결이 명확하지 않음

“

”

© NAVER Connect Foundation

15

문장별로 변환되어 문단 구성이 없음

“

”

2.1 STT

Segmentation

STT 결과물을 하나의 문자열로 취합 후, “korean-sentence-splitter” 로 문장 분리

Sentence-BERT를 활용하여 유사도 기준으로 문단 분리

16 of 45

Summarization

17 of 45

© NAVER Connect Foundation

17

2.2 Summarization

Summarization

18 of 45

© NAVER Connect Foundation

18

선정 기준

강의 요약 task이므로 전문성을 띄는 내용을 담고 있을 것

다양한 학술 분야 도메인에 대한 내용을 담고 있을 것

[논문 요약 데이터셋]

[도서 요약 데이터셋]

[요약문 및 레포트 생성 데이터셋]

→ source text 길이의 분포가 특이함

→ 추가 분석 진행

2.2 Summarization

학습 데이터셋 선정

19 of 45

© NAVER Connect Foundation

19

다른 데이터셋에 비해 다양한 출처의 데이터 구성

→ 출처에 따라 source text 길이 차이 확인

→ task에 걸맞는

‘역사_문화재, 사설, 간행물, 문학, 나레이션’

데이터셋만 학습 활용 결정

[요약문 및 레포트 생성 데이터셋]

2.2 Summarization

학습 데이터셋 선정

20 of 45

© 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

21 of 45

통일신라 시기에 관료들에게 줬던 수조권을 관료전이라고 하는데 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다 이것은 나라를 세울 때 공에 따라서 분배해 준 것이다

© NAVER Connect Foundation

21

요약 결과에서 발견된 반복어구

통일신라 시기에 관료들에게 줬던 수조권을 관료전이라고 하는데 이것은 나라를 세울 때 공에 따라서

분배해 준 것이다

뒤이어 등장하는 동일 어구를

삭제하도록 후처리 모듈 추가

2.2 Summarization

후처리

22 of 45

Answer Extraction

23 of 45

© NAVER Connect Foundation

23

2.3 Answer Extraction

Answer Extraction

24 of 45

[ ]

© NAVER Connect Foundation

24

KeyBERT

각 문서의 단어 등장 횟수를 세서 벡터화하는 CountVectorizer 활용하여 단어 추출

→ 키워드 임베딩과 문서 임베딩의 코사인 유사도 계산 → 유사도 높은 단어 N개 추출

외규장각 설치 이후 왕이 직접 쓴 글이나 사용한 물품, 왕실 관련 도서 1000여 권을 보관했지만 1866년 병인양요 때 프랑스군이 강화도를 습격하면서 의궤 297책을 포함한 도서 359점을 약탈하고 나머지는 모두 불태워 버렸어요. 그 뒤 1975년 사학자인 박병선 박사의 노력으로 프랑스 파리 국립도서관에 외규장각 도서가 있다는 사실이 세상에 알려지게 됐고, 우리 정부와 여러 단체의 노력 덕분에 마침내 2011년 6월 그 전체가 고국의 품으로 돌아오게 된 거예요.

[ ]

외규장각 설치 이후 왕 글 사용 물품 왕실 관련 도서 보관 병인양요 때 프랑스군 강화도 습격 의궤 책 포함 도서 약탈 나머지 뒤 사학자 박병선 박사 노력 프랑스 파리 국립 도서관 외규장각 도서 사실 세상 정부 단체 노력 덕분 전체 고국 품

297책을 파리 1866년 왕실 프랑스 1975년

사학자인  정부와 프랑스군이 국립도서관에  

왕실 사학자 정부 프랑스 프랑스군 파리 

도서관 고국 관련 약탈 

단어에 등장하는 조사, 어미 제거 시 다양한 변수가 발생하여 처리가 어려움

Mecab에서 일반 명사, 고유 명사로 인식되는 단어를 나열하는 형태로 문장 재구성

2.3 Answer Extraction

답안 추출

25 of 45

© 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

답안 추출

26 of 45

© NAVER Connect Foundation

26

추출된 단어 n개에서 요약본과의 코사인 유사도가 높은 순대로 정렬한 뒤 상위 n/2개 추출

Cosine

similarity

요약본

답안 n개

답안 n/2개 추출

2.3 Answer Extraction

답안 필터링

27 of 45

© 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

답안 필터링

28 of 45

Question Generation

29 of 45

© NAVER Connect Foundation

29

2.4 Question Generation

Question Generation

30 of 45

© 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명 참여]

31 of 45

이른 민무늬 토기는 어느 시대 토기인가?

신석기

빗살무늬 토기는 어느시대의 대표적인 토기인가?

패촉이 유명한 부산 지역은?

공주 명학소에서 망이 망소이 난은 언제 일어났는가?

구석기 시대의 유골을 발견한 동굴은?

신석기 시대

고려시대

동산동

청원 두루봉 동굴

© NAVER Connect Foundation

31

Question Filtering

생성 결과에서 반복되는 문제점 발견

  • 문장이 완성형으로 끝나지 않는 경우

역사 논증 최태성이 강의를 시작할 때 여러분과 함께 공유하는 일종의 선물이라고 할

막 집, 막 집, 막 집, 막 집의 의미는?

  • 같은 단어가 반복해서 만들어지는 경우
  • 같은 질문이 생성되는 경우

{'answer': '뗀석기', 'question': '구석기 시대의 핵심적인 포인트는 무엇인가? '}

{'answer': '구석기', 'question': '구석기 시대의 핵심적인 포인트는 무엇인가? '}

위와 같은 질문의 경우 완성도가 떨어진다 판단하여 삭제

문장 유창성, 답변 가능 유무, 지문과의 관련성 순으로 고려

context - question 유사도를 기준으로 상위 20개 필터링 진행

.

.

.

2.4 Question Generation

질문 선정

32 of 45

3. Product Serving

FrontEnd

BackEnd

33 of 45

© NAVER Connect Foundation

33

3.1 FrontEnd

React

34 of 45

© NAVER Connect Foundation

34

3.2 BackEnd

FastAPI

35 of 45

4. Result & Demo

결과 및 데모 시연

36 of 45

© NAVER Connect Foundation

36

4.1 Demo

Demo

15분 영상 기준으로 2분 소요

37 of 45

© NAVER Connect Foundation

37

4.1 Demo

Demo

15분 영상 기준으로 24초 소요

38 of 45

© NAVER Connect Foundation

38

4.1 Demo

Demo

15분 영상 기준으로 43초 소요

39 of 45

5. Conclusion

자체 평가 의견

40 of 45

© NAVER Connect Foundation

40

음성 파일 inference가 오래 걸림

  • 10분 음성 파일 기준으로 파일 업로드부터 segmentation까지 진행하는데 약 3분이 소요됨
  • 추후 Quantization, Pruning 등 최적화하는 기법을 적용해볼 수 있을 것으로 예상

STT

Summarization

Answer Extraction

Question Generation

교수자의 사담, 예시에 대한 고려 필요

  • 강의를 진행하며 종종을 사담을 하거나 비유를 드는 경우가 있는데 이에 대한 고려가 부족하여 요약문 내용에도 반영됨
  • 유사도 기반의 filtering을 통해 사담 및 비유와 강의의 내용을 구분하여 개선이 가능할 것으로 예상

질문과 답이 맞지 않는 유형의 질문들을 걸러내기 어려움

  • 구어체 context에서 생성되기 때문에 “~요”로 끝나는 질문과 같이 말투를 학습하여 생성된 질문으로 보이는 패턴을 분류해 볼 수 있음
  • 질문 형태 및 유형에 따라 분류해서 질문을 선정하는 방법으로 개선해 볼 수 있을 것으로 예상

키워드에 포함되는 조사, 어미 처리를 최대한 보수적으로 접근한 점

  • KeyBERT 입력 재구성 및 NER 결과에서 조사가 포함될 경우 해당 단어를 제거하는 방식으로 보수적으로 처리하는 과정에서

‘의미 있는 단어’가 제거될 가능성이 있음

  • Mecab에 대한 추가적인 실험을 진행하여 조사, 어미 처리에 대한 변수를 통제하는 방식에 대한 개선이 필요함

한계점 및 개선 방향

자체 평가 의견

41 of 45

© NAVER Connect Foundation

40

음성 파일 inference가 특히 오래 걸림

  • 10분 음성 파일 기준으로 파일 업로드부터 segmentation까지 진행하는데 약 3분이 소요됨
  • 추후 Quantization, Pruning 등 최적화하는 기법을 적용해볼 수 있을 것으로 예상

속도 개선

모듈 단순화

한계점 및 개선 방향

자체 평가 의견

STT, 후처리, 요약, 답안 추출, 질문 생성 뿐만 아니라 유사도 계산에서도 모델 사용 중

  • 모델 로드에만 약 4GB의 메모리 소요되어 프레임워크의 무게 상당
  • 유사도 계산에 있어 Sentence-BERT아닌 tf-idf와 같이 보다 가벼운 모듈을 통해 해결 가능
  • knowledge distillation과 같이 모델의 크기를 줄여 로드를 줄이는 방식 활용 가능

42 of 45

감사합니다

43 of 45

Q & A

44 of 45

© NAVER Connect Foundation

43

예상 Q&A

Q. 강의 영상이 1시간일 경우 총 소요시간은 어떻게 되나요?

강의 영상 1시간 기준 4분 37초 소요됩니다.

​

Q. 강의 녹음 파일을 온라인에 업로드하는 것은 저작권법 위반이 아닌가요?

저작권법 제30조에 따르면 공표된 저작물을 영리를 목적으로 하지 아니하고 개인적으로 이용하거나 가정 및 이에 준하는 한정된 범위 안에서 이용하는 경우에는 그 이용자는 이를 복제할 수 있습니다.�또한 업로드한 강의 데이터를 서버에 저장하지 않고 있습니다.

45 of 45

© NAVER Connect Foundation

44

참고 자료