1 of 105

인공지능이�사람의 채점을�대신할 수 있을까?

곰파다 프로젝트�NLP-03조 삼각김박임

#자동_채점 #채점_도우미 #교육_AI

2 of 105

목차

2

  1. 소개
  2. 데이터 & 모델링
  3. 서비스 & 프로덕트
  4. 데모
  5. Summary & Discussion
  6. 팀 소개

3 of 105

Introduction

4 of 105

안녕하세요, 삼각김박임 입니다.🍙

4

김상렬

김소연

김은기

박세연

임수정

Frontend 개발 

Backend API 설계 

프로젝트 배포 �및 관리 

모델 엔지니어링

문맥 유사도 모델/

키워드 모델 제작

데이터 증강�Web/로고 디자인

전체 pipeline 연결

데이터 수집

문맥 유사도 모델

평가 데이터셋 제작

SBERT 성능 실험

PM

유사도 모델링

Rule-based 데이터 구축

5 of 105

5

곰파다는 채점 기준을 참고하여

서술형 답안꼼꼼히 채점함으로써

선생님들의 반복적 채점 작업을 효율적으로 줄여줍니다.

6 of 105

Education + AI

6

2019

4,040

* 단위 : 달러(억)

···

1,830

2025

[1] 교육 분야에서의 인공지능(AI) 및 데이터 활용 동향 2021

1. Introduction

7 of 105

Education + AI : 해외 사례

7

[1] 교육 분야에서의 인공지능(AI) 및 데이터 활용 동향 2021

1. Introduction

8 of 105

Education + AI : 국내 사례

8

적응형 학습 서비스

교육 행정 지원 서비스

[1] 교육 분야에서의 인공지능(AI) 및 데이터 활용 동향 2021

1. Introduction

9 of 105

Education + AI : 국내 사례

9

적응형 학습 서비스

교육 행정 지원 서비스

채점은.. AI가 하겠지?

[1] 교육 분야에서의 인공지능(AI) 및 데이터 활용 동향 2021

1. Introduction

10 of 105

수능에도 도입되는 서술형

10

수학능력평가

[1] https://www.newsworks.co.kr/news/articleView.html?idxno=544004

1. Introduction

11 of 105

수능에도 도입되는 서술형

11

수학능력평가

1. Introduction

채점은.. AI가 하겠지?

12 of 105

정말, AI는 채점하고 있나?

12

[1] 한국어 서답형 문항 자동 채점 결과 비교 분석1) -국가수준 학업성취도 평가 국어,사회,과학 문항을 중심으로 2014

[2] 조선에듀 교육 컬럼 2021.07

1. Introduction

13 of 105

곰파다의 목표

  • 다루는 과목 : 개념어가 분명하게 드러나는 사회/과학 문제
  • 채점 대상 : 1~2문장 내외의 문장
  • 채점 기준 : 키워드 매칭, 문맥적 의미 유사도
  • 최종 개발 목표 :
    • 키워드 기준, 문맥적 의미 기준에 대한 학생 점수 제공
    • 학생들 답안에서 키워드 위치 표시

13

1. Introduction

14 of 105

Data & Modeling

15 of 105

서술형 답안 채점 기준

15

한국 교육과정 평가원 서술형 평가 기준표 [1]

[1] 구자옥, 2018년 학업성취도평가 결과 분석:과학(한국교육과정평가원, 2019) , p.11

2. Data & Modeling

키워드 : 혈장, 적혈구, 백혈구, 혈소판

키워드 설명 :

혈장 - 물질이나 가스를 운반한다. 삼투압을 조절한다.

적혈구 – 산소를 운반한다.

백혈구 – 세균을 잡아먹는다.

혈소판 – 혈액을 응고시킨다.

16 of 105

서술형 답안 채점 기준

16

문맥 유사도 채점

키워드 채점

필수적으로 들어가야 하는

키워드를 포함하여 서술했는가?

키워드에 대한 설명이�선생님이 제시한 모범답안과

문맥적으로 유사한가?

[1] 구자옥, 2018년 학업성취도평가 결과 분석:과학(한국교육과정평가원, 2019) , p.11

곰파다의 채점 기준

1. 키워드 포함 여부

2. 키워드 설명

2. Data & Modeling

17 of 105

데이터 : 키워드 채점 & 문맥 유사도 채점

17

  • 정확한 키워드 존재, 옳고 그름 기준이 명확한 초/중학교 사회, 과학 서술형 문제 범위를 한정하여 수집

서술형 문제 및 문제에 대한 학생 답안 수집

관련 연구 데이터

네이버 지식인 Q&A

학원/학교

서술형 문제

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

  • 데이터 후보
  • 가장 보편적인 [ 문제(질문) + 질문에 대한 여러 개의 답변 ]으로 구성된 데이터들을 후보로 수집

2. Data & Modeling

18 of 105

데이터 : 실제 서술형 데이터

18

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

2. Data & Modeling

19 of 105

데이터 : 실제 서술형 데이터

19

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

문제

2. Data & Modeling

20 of 105

데이터 : 실제 서술형 데이터

20

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

문제

학생 답안

2. Data & Modeling

21 of 105

데이터 : 실제 서술형 데이터

21

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

문제

학생 답안

키워드 &

답안 별 키워드

존재 유무

2. Data & Modeling

22 of 105

데이터 : 실제 서술형 데이터

22

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

문제

서술형 문제 �개수

총 64문제

문제 별 학생 �답변 수

850 ~ 1000개

학생 답안

2. Data & Modeling

키워드 &

답안 별 키워드

존재 유무

23 of 105

데이터 : 키워드 채점

23

Train

  • 키워드 확인 방법 후보 :

TF-IDF, BM25, Word Embedding …

  • 학생 답안 데이터를 활용해

모델에 필요한 corpus 수집

서술형 문제에 대한 학생 답안 + 문제별 키워드

Validate & Test

학생 답안

키워드

2. Data & Modeling

24 of 105

데이터 : 문맥 유사도 채점

24

STS(Sentence Textual Similarity) Task

KorSTS[1]

paraKQC[2]

Kor-sentence[3]

KLUE STS[4]

라벨

0~5 값

0 또는 1

0 또는 1

1. 0 또는 1

2. 0~5 값

특징

짧은 문장.

외국 STS-B 번역. 뉴스, 표현 설명 내용

짧은 문장. 질문중심

짧은 문장.

지식인 질문 포함.

인터넷 용어 다수

짧은 문장.

Airbnb, Policy, paraKQC 포함

데이터 개수

5,749

15,170

61,220

11,668

[1-4] appendix 의 레퍼런스 페이지 참고

2. Data & Modeling

  • 오픈 데이터
  • Rule based 로 유의어, 반의어 데이터 제작
    • 라벨 : 0 또는 1
    • 특징 : 짧은 문장 / 유의어, 반의어 Pair를 만들어 데이터 제작
    • 데이터 개수 : 14,390

Train

25 of 105

데이터 : 문맥 유사도 채점

25

2. Data & Modeling

각 문제에 대한 모범 답안 제작 및 �(모범답안, 학생 답안) 유사도 라벨링 작업 진행

수집한 서술형 데이터의 문제

  • 모범 답안 없음
  • (모범 답안, 학생 답안) Pair 에 대한 유사도 label 없음

Validate & Test

26 of 105

데이터 : 문맥 유사도 채점

26

제작한 모범답안

[1] 만점왕 EBS 초등 과학 5-2.생물과 환경

분해자가 없어 진다면 죽은 생물

배설물이 분해되지 않아서

생태계가 오염될 것이다.

2. Data & Modeling

Validate & Test

문제 : 분해자(버섯, 곰팡이)가 지구에서 사라지면 어떤 일이 생길까요?

키워드 : 사체, 배설물, 생태계

참고 EBS 교육 자료[1] :

1. 문제 별 모범답안 제작

27 of 105

데이터 : 문맥 유사도 채점

27

학생 답안

평가자1

평가자2

평가자3

평가자4

평가자5

죽은 생물이 썩지 않고 그대로 있고 쓰레기도 분해되지 않는다.

2점

2점

3점

2점

2점

생태계가 멸종될 것이다.

1점

0점

1점

0점

0점

키워드 : 사체, 배설물, 생태계

제작한 모범 답안 : 분해자가 없어진다면 죽은 생물배설물이 분해되지 않아서 생태계가 오염될 것이다.

* 라벨링 기준표 appendix 참고

2. Data & Modeling

2. (모범 답안, 학생 답안) Pairing & Pilot Tagging 진행

Validate & Test

28 of 105

데이터 : 문맥 유사도 채점

28

3 . 반의어를 고려한 negative sample 추가

2. Data & Modeling

제품 질이 향상되고

저렴한 가격에 상품이 팔릴 것이다.

제품 질이 낮아지고

비싼 가격에 상품이 팔릴 것이다.

Positive sample

Negative sample

Label : 1

Label : 0

Validate & Test

29 of 105

데이터 : 문맥 유사도 채점

29

문제

모범 답안

학생 정답

Label

q55

분해자가 없어진다면 죽은 생물과 배설물이

분해되지 않아서 생태계가 오염될 것이다.

죽은 생물이 썩지 않고 그대로 있고 쓰레기도 분해되지 않는다.

1

q55

분해자가 없어진다면 죽은 생물과 배설물이

분해되지 않아서 생태계가 오염될 것이다.

생태계가 멸종될 것이다.

0

q51

제품의 가격이 낮아지고, 품질이 좋아진다.

제품 질이 향상되고 저렴한 가격에 상품이 팔릴 것이다.

1

q51

제품의 가격이 낮아지고, 품질이 좋아진다.

제품 질이 낮아지고 비싼 가격에 상품이 팔릴 것이다.

0

2. Data & Modeling

(제작 데이터 예시)

Validate & Test

문맥 유사도 모델 평가 데이터 총 110개 제작 완료

30 of 105

데이터 제작 추가 : 문맥 유사도 채점 Pseudo Labeling

30

2. Data & Modeling

사람이 직접 모범답안 제작 + 유사도 채점 🡪 시간 대비 완성 데이터 개수가 너무 적다.

  • 데이터 제작의 효율성 문제!

31 of 105

데이터 제작 추가 : 문맥 유사도 채점 Pseudo Labeling

  • 데이터 제작의 효율성 문제!

31

사람이 직접 모범답안 제작 + 유사도 채점 🡪 시간 대비 완성 데이터 개수가 너무 적다.

학습된 문장 임베딩 모델을 활용해 코사인 유사도 계산 후, 사람이 최종 라벨링

2. Data & Modeling

32 of 105

데이터 제작 추가 : 문맥 유사도 채점 Pseudo Labeling

32

모범 답안과 학생 답안의 코사인 유사도 기준으로 학생 답안을 정렬한 결과

모범 답안 예시 : 나무 재질보다 금속 재질이 열 전달이 더 잘 되기 때문이다

상위 20% 이내 학생 답안 예시

위 20% 학생 답안 예시

금속이 나무보다 열을 더 잘 흡수를 잘하기 때문이다.

나무보다 금속이 열 전달을 더 잘하기 때문에.

나무 국자보다 금속 국자가 열 전도성이 좋기 때문이다.

나무 국자보다 금속 국자가 더욱 열이 잘 전달되기 때문이다.

열이 통하지 않아서

그냥 그러기 때문에

나무는 전도가 된다

모르겠습니다

안 배웠어요.

2. Data & Modeling

33 of 105

Data & Modeling

34 of 105

최종 채점 기준

34

키워드 :

가격, 품질, 다양성, 혜택

학생 답안 :

빵을 더 낮은 에 살 수 있고, 의 맛이 더 좋아져서 소비자들은 많은 혜택을 받는다.

키워드 점수 : 3/4 = 0.75

문맥 유사도 채점

키워드 채점

 

질문 : 여러 제과점이 서로 경쟁을 하면 소비자에게 어떤 점이 좋을까요?

모범 답안:

제품의 가격이 낮아지고, 품질이 좋아진다.

또한 제품의 다양성이 증가하므로 소비자들은 더 좋은 혜택을 받을 수 있다.

학생 답안 :

빵을 더 낮은 값에 살 수 있고, 빵의 맛이 더 좋아져서 소비자들은 많은 혜택을 받는다.

유사도 점수: 0.82

2. Data & Modeling

35 of 105

곰파다 모델링 전체 구조

35

 

 

 

 

2. Data & Modeling

36 of 105

곰파다 모델링 전체 구조

36

 

 

 

 

2. Data & Modeling

37 of 105

키워드 채점 : 키워드 기반 분류

  • HARD Exact Match 가 충분할까?
    1. 가장 엄격한 기준은 Exact Match! BUT 유의어를 고려할 수 없음

37

키워드 : 가격

ex1) 부덕이의 답안 : 어느 곳에 빵의 가격이 낮은 지 알 수 있다.

ex2) 메타몽의 답안 : 어느 곳에 빵의 이 낮은 지 알 수 있다. (매칭 실패)

2. Data & Modeling

38 of 105

키워드 채점 : 키워드 기반 분류

  • 단어의 임베딩!? 단어를 벡터로? Word2Vec?

38

가격

원가

키워드 : 가격

들어온 문장 : 어느 이 낮은 지 알 수 있다.

가격과 유사한 단어 :

2. Data & Modeling

39 of 105

키워드 채점 : 키워드 기반 분류

  • Top-K보다는 일정 유사도 값 이상 넘는 단어만 정답으로 채택!

39

키워드 : 가격

들어온 문장 : 공짜를 좋아하면 대머리됨ㅋ

Top-1 선택 시 공짜가 선택될 수 있음.

부덕이 1

모르겠다. 소비자라는걸 몰른다 ㅇㅈ???????

부덕이 2

돈을 벌 수 있다.

부덕이 3

광고지

부덕이 4

공짜를 좋아하면 대머리됨ㅋ

2. Data & Modeling

40 of 105

곰파다 모델링 전체 구조

40

 

 

 

 

2. Data & Modeling

41 of 105

문맥 유사도 채점 : 문장 유사도 판단 학습

  • 기본적인 문장 유사도 학습 방식
    • 비교할 두 문장 합쳐 모델의 입력으로 넣어주고 회귀 또는 분류 학습

41

우리 곰파다 최고 + [SEP] + 우리 곰파다는 훌륭하네

BERT

head

 

 

 

회귀

분류

2. Data & Modeling

42 of 105

문맥 유사도 채점 : 문장 유사도 판단 학습

  • 유의어, 반의어와 긴 문장으로 구성된 실제 구축 validation 에서 낮은 성능
  • 문장 비교를 잘 하고 있는 것일까?

42

우리 곰파다 최고 + [SEP] + 우리 곰파다는 훌륭하네

BERT

head

 

[1] Reimers, Nils, and Iryna Gurevych. "Sentence-bert: Sentence embeddings using siamese bert-networks." arXiv preprint arXiv:1908.10084 (2019).

BERT 모델

Threshold

출력 확률이 threshold 이상일 시 동일 문장 예측으로 처리, binary accuracy

0.6

0.7

0.8

오픈 벤치마크

validation

0.93

0.92

0.92

실제 구축

validation

2. Data & Modeling

43 of 105

문맥 유사도를 어떻게 효과적으로 파악할까?

  • 각 문장 임베딩의 유사도를 비교하는 SentenceBERT 구조 사용
    • 추가 튜닝 없이 xlm-bert-base-pretrained로 1차 성능 비교

43

실제 구축 validation

Threshold

Similarity가 threshold 이상일 시 동일 문장 예측으로 처리

binary accuracy

0.6

0.7

0.8

BERT

0.62

0.60

0.48

SBERT

0.64 (0.02▲)

0.59 (0.01▲)

0.62 (0.14▲)

[1] Reimers, Nils, and Iryna Gurevych. "Sentence-bert: Sentence embeddings using siamese bert-networks." arXiv preprint arXiv:1908.10084 (2019).

2. Data & Modeling

* xlm : cross-language model

44 of 105

문맥 이해를 더 잘할 수 있게 해보자

  1. 한국어 Pretrained 모델 사용
    • 한국어 이해에 특화된 모델 필요 🡪 한국어로 사전 학습된 모델 사용

44

NLI 분류 학습

Similarity 학습

[1] Reimers, Nils, and Iryna Gurevych. "Sentence-bert: Sentence embeddings using siamese bert-networks." arXiv preprint arXiv:1908.10084 (2019).

2. Data & Modeling

45 of 105

문맥 이해를 더 잘할 수 있게 해보자

② 문맥 비교에 도움될 수 있는 사전 테스크 학습

    • 두 문장의 연결과계를 추론하는 Natural Language Inference(NLI)로 사전 fine-tuning 후 Semantic Text Similarity(STS) 학습

45

NLI 분류 학습

Similarity 학습

[1] Reimers, Nils, and Iryna Gurevych. "Sentence-bert: Sentence embeddings using siamese bert-networks." arXiv preprint arXiv:1908.10084 (2019).

2. Data & Modeling

46 of 105

문맥 이해를 더 잘할 수 있게 해보자

  • BERT 구조 대비 향상된 성능의 문맥 유사도 모델 구축 완료!
    • SBERT 구조 + 한국어 pretrained 모델 + NLI + STS

46

실제 구축 Validation

Threshold

0.6

0.7

0.8

BERT

0.62

0.60

0.48

SBERT

(xlm-bert-base/ 추가 튜닝 X)

0.64

0.59

0.62

SBERT +STS

(xlm-bert-base)

0.66

0.61

0.59

SBERT +NLI+STS

(klue/bert-base)

0.67

(최종 : 0.05▲)

0.65

(최종 : 0.05▲)

0.58

(최종 : 0.10▲)

[1] Reimers, Nils, and Iryna Gurevych. "Sentence-bert: Sentence embeddings using siamese bert-networks." arXiv preprint arXiv:1908.10084 (2019).

2. Data & Modeling

47 of 105

문맥 이해를 더 잘할 수 있게 해보자

  • BERT 구조 대비 향상된 성능의 문맥 유사도 모델 구축 완료!
    • SBERT 구조 + 한국어 pretrained 모델 + NLI + STS

47

모범

답안

경쟁사가 있을 경우 서로의 상품이 잘 팔리게 하기 위해 가격도 낮추고

상품의 품질도 좋아진다. 또 상품의 다양성을 늘리는데도 도움이 된다.

BERT

스코어

SBERT

스코어

답변 1

제품의 가격이 낮아지고, 품질이 좋아진다.

또 제품의 다양성이 증가하고, 소비자들은 더 좋은 혜택을 받을 수 있다.

0.56

0.81

답변 2

서로의 이권을 더 얻기 위해 품질이나 가격경쟁력 따위를 높이기 위해 노력하여

소비자는 더 질 좋으면서도 값싼 상품을 얻을 수 있을 것이다.

0.52

0.75

* 추가 예시 appendix 참고

2. Data & Modeling

48 of 105

Service & Product

49 of 105

시스템 구조

사용자

49

Input: 문제 & 모범 답안 & 키워드 & 학생답변

Output: 학생답변 점수

Frontend

Backend

Preprocessing

Inference

- Keyword checker

- similarity

Postprocessing

modeling

data�processing

3. Service & Product

50 of 105

시스템 프레임워크 선정

50

Frontend 와

Backend의 분리

Streamlit등의 라이브러리는 사용자 커스텀 환경 부족

MVC 패턴으로 분리 어려워 협업의 난이도가 높음

커스터마이징 및 업무 분리를 효과적으로 하기 위해 분리

Vue.js

중규모의 프로젝트 프로토타이핑을 위해서 도입

다양한 외부 라이브러리(NPM)과 그래프, 차트를 적용하기 위해 사용

빠른 프로젝트 프로토타이핑, 필요한 기능 구현 위한 외부 라이브러리

FastAPI

가볍고 강력한 ASGI 툴킷인 Starlette 사용, API Docs를 통한 API 문서 공유 용이, 모델 서빙과 API 단의 구조적 설계를 통한 코드 관리 용이

문서화와 구조적 설계 용이

3. Service & Product

51 of 105

코드 최적화

  • 메모리 캐싱
    • FastAPI 의 app.on_event를 통하여 model, tokenizer등을 server시작 시에 메모리에 올려두고 run_forever 진행
    • 모델 재로딩할 불필요, API 호출시에 inference만 진행 : 20초에서 0.5초로 줄임(* 동일 인풋 사이즈로 측정)
  • 동기/비동기 처리
    • async/await 함수 도입으로 서버의 worker 숫자까지 비동기적으로 처리, 동기 처리 대비 성능 향상을 기대해 볼 수 있음

51

3. Service & Product

52 of 105

Demo

53 of 105

곰파다 시현

  • 기본 정보 추가
  • 문제 추가 디테일
  • 결과 확인
  • 결과 확인 상세

53

3. Service & Product

54 of 105

Summary & Discussion

55 of 105

곰파다를 요약하자면

55

실제 교육현장에서 선생님들의 채점 환경 반영

문맥 유사도

채점

키워드 채점

[1] Brabb, Thea, et al. "Institutional animal care and use committee considerations for animal models of peripheral neuropathy." ILAR journal 54.3 (2014): 329-337.

4. Summary & Discussion

56 of 105

곰파다를 요약하자면

56

단순

Rule-Based Model

딥러닝

채점 모델

키워드 :

가격, 품질, 다양성, 혜택

학생 답안 :

빵을 더 낮은 에 살 수 있고, 의 맛이 더 좋아져서 소비자들은 많은 혜택을 받는다.

4. Summary & Discussion

57 of 105

곰파다의 Further Works : 모델

문장의 Embedding을 어떻게 더 효과적으로 할 수 있을까?

57

Binary

Regression

문장 임베딩

4. Summary & Discussion

58 of 105

곰파다의 Further Works : 모델

58

문장의 Embedding을 어떻게 더 효과적으로 할 수 있을까?

4. Summary & Discussion

59 of 105

곰파다의 Further Works : 모델

59

문장의 Embedding을 어떻게 더 효과적으로 할 수 있을까?

4. Summary & Discussion

영희의 답안 : 고도가 높아짐에 따라 대기압이 낮아진다.

대기압이 낮아진다.

고도가 높아짐에 따라

문장 분해

60 of 105

곰파다의 Further Works : 데이터

  • 답안의 특성 상 반의어, 유의어를 잘 파악할 수 있는 모델 필요!
  • 시도한 점 : 실제 문제 및 데이터 내 빈도 높은 명사, 동사로 의미, 유의어 및 반의어 구축, 이를 통한 rule-based 데이터 제작 시도

60

영희의 답안 : 고도가 높아짐에 따라 대기압이 낮아진다.

철수의 답안 : 고도가 올라가면서 기압이 높아진다.

4. Summary & Discussion

61 of 105

곰파다의 Further Works : 데이터

  • 한국어 반의어 사전의 부족으로 여러 변환 단계가 필요했음
  • 반의어 변환 과정에서 품사가 변화하는 경우가 있었다.
  • 긴 문장에 따른 데이터 구축 부족, 실수 라벨링 기준 모호

61

4. Summary & Discussion

증가

Increase

Decrease

감소하다

번역

영어 반의어

검색

번역

62 of 105

곰파다의 Further Works : 지표, 시스템

62

  • 채점 모델을 위한 평가, 지표의 부재
    • 키워드 모델 threshold의 휴리스틱한 설정
    • 모범답안과의 유사도를 위한 Metric 부재

  • 시스템

    • 선생님들의 피드백 기반 학습을 위한 MLops 구현 부족

4. Summary & Discussion

63 of 105

About US 😆

64 of 105

팀 소개! + Roles

64

5. About US 😆

65 of 105

65

감사합니다

66 of 105

66

Q&A

67 of 105

Appendix

68 of 105

데이터셋 추가 레퍼런스

68

Appendix

69 of 105

Training & Deployment 환경

69

  • Training & Deplyment 서버 환경
    • [OS] Ubuntu 18.04.6 LTS
    • [CPU] Intel(R) Xeon(R) Gold 5220 CPU @ 2.20GHz
    • [GPU] Tesla V100-PCIE

  • BE/FE 테스트 환경
    • Nginx를 이용한 port 분리
    • frontend, backend, model 동일 머신
    • github action 을 통한 빌드 자동화
  • FE 주요 프레임워크
    • Node v14.16.0
    • Vue.js v2.6.14

  • BE 주요 프레임워크
    • python 3.8.10
    • fastapi 0.78.0
    • torch 1.11.0
    • transformers 4.18.0

Appendix

70 of 105

협업 툴

코드 관리 : github,huggingface hub

커뮤니케이션 : slack

아카이브: 노션 & 드라이브

70

Appendix

71 of 105

Timeline

71

3월

4월

5월 1W

5월 2W

5월 3W

5월 4W

6월 1W

아이디에이션 & 사전 연구 조사

- 아이디어 제안

- 채점 관련 서비스 조사

연구조사 심화

  • 채점 기준 조사, 기 연구 조사
  • 하민수 & 최성철 교수님 컨텍

기능 정의

  • UI설계 주요 기능 정의
  • API 문서 정의, 개발 범위 분배

프론트앤드 구현

- 주요 기능 mockup 테스트

백엔드 구현

  • API 문서 구체화, 백엔드 로직 구현 및 기능 추가
  • FE & BE 연결 및 통신 확인

벤치마크 기준

모델 파일럿 테스트

  • BERT 및 오픈 데이터 조사
  • 회귀, 분류로 파일럿 훈련

Validation & 커스텀

데이터 구축

  • Validation 용 pilot tagging 및 직접 구축
  • 훈련용 데이터 크롤링 및 수작업

키워드 모델 고도화

- word2vec 기반 키워드 체커

유사도 모델 고도화

- SBERT 훈련 및 ablation study

테스트

- 로직 구체화, 테스트

Appendix

72 of 105

파일럿 태깅 라벨링 기준

  • 데이터 파악 및 Tagging 기준 통일을 위한 Pilot Tagging 진행

72

*Label 기준

3 = 답변에 포함된 키워드에 대한 모든 논리가 모범답안과 유사하거나 일치함

2 = 키워드에 대한 논리가 틀리다고 할 순 없지만, 맞았다고 하기도 애매함

1 = 키워드에 대한 논리가 틀린 개 1개 이상이고, 맞는 부분도 1개 이상 존재

0 = 키워드에 대한 논리가 모두 틀림

학생 답안

평가자1

평가자2

평가자3

평가자4

평가자5

점점 공기의 온도가 낮아지고 기압이 낮아지기 때문일 것 같다.

2

2

2

3

2

기압이 높아져서 공기의 압력때문에 빵빵해지게 될 것일 것 같다.

1

0

0

0

0

고도가 높아지면 기압이 낮아져서 과자 봉지의 내부 공기팽창한다

3

3

3

3

3

Appendix

73 of 105

키워드 유사도 모델 진행 과정

    • 교사가 제시한 키워드 벡터화
    • 각 문장에서 띄어쓰기로 단어들을 구분
    • 형태소 분류기로 단어를 분리한 후 Noun, Verb, Adjective, Adverb들만 벡터화 및 유사도 검출
    • Threshold 이상일 경우 교사가 제시한 키워드와 관련이 있는 키워드로 분류
    • 점수에 포함시킨다.

73

Appendix

키워드 :

가격, 품질, 다양성

품질

다양성

74 of 105

키워드 유사도 모델 진행 과정

    • 교사가 제시한 키워드 벡터화
    • 각 문장에서 띄어쓰기로 단어들을 구분
    • 형태소 분류기로 단어를 분리한 후 Noun, Verb, Adjective, Adverb들만 벡터화 및 유사도 검출
    • Threshold 이상일 경우 교사가 제시한 키워드와 관련이 있는 키워드로 분류
    • 점수에 포함시킨다.

Appendix

키워드 :

가격, 품질, 다양성

학생 답안 :

빵을 더 낮은 에 살 수 있고..

split

빵을 더 낮은 값에 살 수 있고..

75 of 105

키워드 유사도 모델 진행 과정

    • 교사가 제시한 키워드 벡터화
    • 각 문장에서 띄어쓰기로 단어들을 구분
    • 형태소 분류기로 단어를 분리한 후 Noun, Verb, Adjective, Adverb들만 벡터화 및 유사도 검출
    • Threshold 이상일 경우 교사가 제시한 키워드와 관련이 있는 키워드로 분류
    • 점수에 포함시킨다.

Appendix

키워드 :

가격, 품질, 다양성

학생 답안 :

빵을 더 낮은 값에 살 수 있고..

값에

Mecab 형태소 분류기

/Noun + 에/Josa

76 of 105

키워드 유사도 모델 진행 과정

    • 교사가 제시한 키워드 벡터화
    • 각 문장에서 띄어쓰기로 단어들을 구분
    • 형태소 분류기로 단어를 분리한 후 Noun, Verb, Adjective, Adverb들만 벡터화 및 유사도 검출
    • Threshold 이상일 경우 교사가 제시한 키워드와 관련이 있는 키워드로 분류 🡪 점수 포함

Appendix

키워드 :

가격, 품질, 다양성

학생 답안 :

빵을 더 낮은 값에 살 수 있고..

가격/Noun

/Noun

Word2Vec 유사도 검출기

유사도 0.8

유사도 0.35 이상?

Yes!

77 of 105

왜 직접 구현이 아닌 fastText 선택?

  • 직접 구현한 Word2Vec의 limitation
    1. Corpus 단어 개수 부족
    2. 예측하지 못한 답이 나타났을 때 OOV 현상
    3. 기존 학생 답안 위주의 학습으로 새로운 문제에 대한 유사도 분석 능력이 높지 않음

77

Appendix

  • fastText의 장점
    1. n-gram 기법으로 OOV가 뜨지 않음
    2. 한국어 데이터 기반으로 매우 큰 word2vec이 이미 학습됨

78 of 105

왜 문맥 단어 그대로가 아닌 Tokenizer를 사용했는가?

  • 키워드 유사 모델에서는 어미, 조사를 제외하도록 구현하려고 했기 때문

Tokenizer를 통해 어미와 조사를 분리하지 않으면 단어의 의미가 달라지는 경우 존재

78

“열의”

Okt

Appendix

“열”

“열/Noun”

“의/Josa”

“의”

Okt

“열의Noun”

79 of 105

왜 Tokenizer 중에서 Okt를 선택?

  • 유사 단어 추출 시 Noun, Verb와 같은 간단한 품사 정보만 필요했기에!
  • 또한 Tokenization을 통해 lemmatization 형태로 빠르게 복원해주기 때문에

79

Appendix

“기다리는”

Okt

”기다리다/VERB”

Mecab

“기다리VVB”

“기다리는”

80 of 105

키워드 유사도 모델의 한계점 개선방안

  • 교사가 제시한 키워드에 대해 동일 혹은 유사 키워드의 존재 여부만 검사할 수 있다.

즉, 키워드가 문맥에서 어떻게 사용이 되었는가는 평가해내지 못함

80

Appendix

가격

품질

다양성

혜택

제시된 키워드

Wor2Vec 기반 검출

키워드 검출 🡪 정답처리

빵을 더 높은 에 살 수 있고…

81 of 105

키워드 유사도 모델의 한계점 개선방안

  • 동일 혹은 유사 키워드가 검출되었을 경우 구문 형식의 유사도 검증 방식

ex1) n-gram 방식을 차용해 구문과 모범답안의 키워드 문맥을 비교

ex2) 주체, 객체, 서술어 추출 방식 🡪 구문 검출

81

Appendix

가격

품질

다양성

혜택

빵을 더 높은 에 살 수 있고…

제시된 키워드

키워드 문맥

낮은 가격에 구매

품질이 좋아진다.

다양성이 높아진다.

Wor2Vec 기반 검출

🡪 더 높은

유사도 점수 0.2 🡪 탈락

구문 유사도 모델

82 of 105

문맥 유사도를 어떻게 효과적으로 파악할까?

  • BERT로부터 문장 벡터를 얻을 수 있는 방법

82

[CLS]

우리

파다

[SEP]

T1

T2

T3

T4

T5

BERT

[CLS]

우리

파다

[SEP]

T1

T2

T3

T4

T5

BERT

[CLS]

우리

파다

[SEP]

T1

T2

T3

T4

T5

BERT

A. [CLS] 토큰

B. 토큰 Max pooling

C. 토큰 Mean pooling

2. Data& Modeling

83 of 105

문맥 유사도를 어떻게 효과적으로 파악할까?

  • 기본적인 문장 유사도 판단 학습 limitation
    1. 문장 길이 제약
    2. 모든 pair에 대해 계산 필요
    3. 두 문장을 합쳐서 학습하는 것이 문장의 의미를 잘 파악하고 분류하고 있는걸까?

83

우리 곰파다 최고 + [SEP] + 우리 곰파다는 훌륭하네

BERT

head

 

    • 일반적인 BERT의 token max length 512. 두 개 문장 합쳐서 512 되어야함으로 문장 길이 제약

Appendix

84 of 105

문맥 유사도를 어떻게 효과적으로 파악할까?

  • 기본적인 문장 유사도 판단 학습 limitation
    1. 문장 길이 제약
    2. 모든 pair에 대해 계산 필요
    3. 두 문장을 합쳐서 학습하는 것이 문장의 의미를 잘 파악하고 분류하고 있는걸까?

84

우리 곰파다 최고 + [SEP] + 우리 곰파다는 훌륭하네

BERT

head

 

    • 선생님 답변 N개, 학생 답변 M개 🡪 NM번 계산 필요

Reimers, Nils, and Iryna Gurevych. "Sentence-bert: Sentence embeddings using siamese bert-networks." arXiv preprint arXiv:1908.10084 (2019).

Appendix

85 of 105

문맥 모델 추가 예시 : 짧은 모범답안 1

85

모범 답안 : 지구는 주변을 돈다.

학생 답안

Cosine similarity

Threshold 0.6

지구는 주변을 돌지 않는다.

0.58

0

주변을 지구는 돈다.

0.97

1

지구는 멈춰있다.

0.54

0

멈춰있지 않고 중심을 기준으로 계속 움직인다.

0.47

0

지구는 멈춰있지 않고 중심을 기준으로 계속 움직인다.

0.76

1

부정 표현 Catch!

어순이 달라져도 Catch!

반의어 Catch!

같은 표현이지만 겹치는 단어가 없을 경우 놓침! ‘지구’라는 단어 포함 여부에 따른 성능차이 큼

Appendix

86 of 105

문맥 모델 추가 예시 : 짧은 모범답안 2

86

모범 답안 : 콩팥은 재흡수, 분비 과정을 거쳐 오줌을 통해 노폐물을 몸밖으로 내보낸다.

학생 답안

Cosine similarity

Threshold 0.6

콩팥은 재흡수를 거쳐 오줌을 통해 노폐물을 몸밖으로 내보낸다.

0.99

1

콩팥은 재흡수를 거쳐 오줌을 통해 노폐물을 체외로 보낸다.

0.97

1

신장은 재흡수를 통해 오줌을 통해 노폐물을 체외로 보낸다.

0.91

1

소변을 통해 체외로 노폐물이 빠지는 과정은 신장에서 수행된다.

0.85

1

몸에 필요한 것들은 재흡수가 되고 불필요한 것은 신장에서 내보낸다.

0.71

1

노폐물들이 오줌을 통해서 체외로 내보내진다.

0.82

1

콩팥은 노폐물 배출을 담당하지 않는다.

0.46

0

콩팥은 재흡수, 분비 과정을 거치지 않고 오줌을 통해 노폐물을 몸밖으로 내보낸다.

0.76

1

콩팥은 재흡수, 분비 과정을 거쳐 오줌을 통해 노폐물을 몸 안으로 재흡수한다.

0.97

1

콩팥은 재흡수, 분비 과정을 거쳐 오줌을 통해 중요한 성분을 몸 밖으로 내보낸다.

0.96

1

소변은 간과 연관되어 있고 노폐물들은 크게 영향을 주지 않는다.

0.40

0

모르겠어요.

0.00

0

반의어에 대한 파악을 어려워함

Appendix

87 of 105

문맥 모델 추가 예시 : 긴 모범답안

87

모범 답안 : 콩팥은 재흡수, 분비 과정을 거쳐 오줌을 통해 노폐물을 몸밖으로 내보낸다. 즉 항상성 유지를 위해 호르몬을 생산, 분비하는 내분비 기능을 가지고 있다.

학생 답안

Cosine similarity

Threshold 0.6

콩팥은 재흡수를 거쳐 오줌을 통해 노폐물을 몸밖으로 내보낸다.

0.85

1

콩팥은 재흡수를 거쳐 오줌을 통해 노폐물을 체외로 보낸다.

0.83

1

신장은 재흡수를 통해 오줌을 통해 노폐물을 체외로 보낸다.

0.79

1

소변을 통해 체외로 노폐물이 빠지는 과정은 신장에서 수행된다.

0.81

1

몸에 필요한 것들은 재흡수가 되고 불필요한 것은 신장에서 내보낸다.

0.69

1

노폐물들이 오줌을 통해서 체외로 내보내진다.

0.72

1

콩팥은 노폐물 배출을 담당하지 않는다.

0.37

0

소변은 간과 연관되어 있고 노폐물들은 크게 영향을 주지 않는다.

0.36

0

모르겠어요.

0.00

0

비교 기준이 되는 모범 답안이 더 많은 정보를 포함하고 길어질 수록 학생 답안 비교 점수가 떨어짐

Appendix

88 of 105

성능 분석 : Confusion Matrix

  • False Negative가 크게 감소 : 하지만 채점 입장에서 False Positive 감소가 더 중요하다..! 모델 & 데이터 구축에 Further works 필요!(TT)

88

Predicted

Pos

Neg

Ground truth

Pos

50

7

Neg

29

24

Predicted

Pos

Neg

Ground truth

Pos

36

21

Neg

21

32

BERT 모델 + 회귀

SBERT 모델 + Cosine Loss

Appendix

89 of 105

성능 분석 : 예측 분포

  • SBERT의 FN이 감소한 이유는 회귀에 의한 결과값보다 유사도 점수의 분포가 좀더 높은 값을 가지기 때문

89

BERT

SBERT

회귀 결과값

유사도 값

실제 동일한 pair에 대한 예측

실제 다른 pair에 대한 예측

* 회귀 점수와 유사도값을 비교하는 것은 무리가 있을 수 있으나, 최종값을 사용하는 관점에서 결과 분석 위해 사용

Appendix

90 of 105

데이터 : 문맥 유사도 채점 : 오픈 데이터 특징

90

Train

KorSTS[1]

paraKQC[2]

Kor-sentence[3]

KLUE STS[4]

라벨

0~5 값

0 또는 1

0 또는 1

1. 0 또는 1

2. 0~5 값

특징

짧은 문장.

외국 STS-B 번역. 뉴스, 표현 설명 내용

짧은 문장. 질문중심

짧은 문장.

지식인 질문 포함.

인터넷 용어 다수

짧은 문장.

Airbnb, Policy, paraKQC 포함

데이터 개수

5,749

15,170

61,220

11,668

  • 오픈 데이터
  • Rule based 제작 데이터 : 유의어, 반의어 데이터
    • 라벨 : 0 또는 1
    • 특징 : 짧은 문장 / 유의어, 반의어 Pair를 만들어 데이터 제작
    • 데이터 개수 : 14,390

2. Data& Modeling

91 of 105

커스텀 데이터셋 제작 과정 : 유의어 및 단어 설명

91

기존 자동 채점 연구 데이터[1] 에서

발생하는 명사 추출(총 3,963개)

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수) 

’명사’의 경우 뜻 풀이로 크롤링

단어집 구성

구축 이유 : 학생 답변 중 유의어 파악을 잘 시키면 좋은 임베딩이 되지 않을까?

Appendix

92 of 105

커스텀 데이터셋 제작 과정 : 반의어

92

기존 자동 채점 연구 데이터[1] 에서

발생하는 용언(577), 형용사(112) 추출

[1] 교육부와 한국과학창의재단이 지원한 서술형 평가 지원프로그램 개발 데이터 (연구책임: 하민수 교수)

[2] 우리말샘: https://opendict.korean.go.kr/main

반의어 부재

해당 단어 부재

구축 이유 : 학생 답변 중 중요한 동사가 정반대의 의미를 갖는 경우가 다수!!

Appendix

93 of 105

커스텀 데이터셋 제작 과정 : 반의어

93

  • 번역 과정에는 Papago Translation API, 반의어 검색에는 시소러스 영어사전 사용

  • 복잡한 우회 과정 : 한국어 --> 영어 --> 영어 반의어 --> 한국어 반의어

증가

Increase

Decrease

감소하다

번역

영어 반의어

검색

번역

Appendix

94 of 105

커스텀 데이터셋 제작 과정 : 데이터 생성

94

구축 이유 : 모아진 유의어, 의미 풀이, 반의어로 데이터를 생성해서 학습하면 더 효과적인 negative sample을 만들 수 있지 않을까?

주어’ + ‘조사’ + ‘동사/형용사

명사 뭉치

동사/형용사 뭉치

은/는/이/가

문장 템플릿

 

 

랜덤 선택

랜덤 선택

랜덤 선택

Appendix

95 of 105

커스텀 데이터셋 제작 과정 : 데이터 생성

95

구축 이유 : 모아진 유의어, 의미 풀이, 반의어로 데이터를 생성해서 학습하면 더 효과적인 negative sample을 만들 수 있지 않을까?

생성된 원래 문장 : 하늘 푸르다

Positive Samples

Negative Samples

지평선이나 수평선 위로 보이는 무한대의 넓은 공간 푸르다

지평선이나 수평선 위로 보이는 무한대의 넓은 공간 생활에서 충분한 만족과 기쁨을 느끼어 흐뭇하다.

하늘 푸르다

하늘 누렇다

지평선이나 수평선 위로 보이는 무한대의 넓은 공간

푸르다

Appendix

96 of 105

성능 Ablation : 데이터셋 종류에 따른 성능

96

데이터셋

Threshold

korSTS

paraKQC

생성데이터

kor-sentence

0.6

0.7

0.8

0.9

0.62

0.59

0.48

0.50

0.59

0.60

0.55

0.53

0.55

0.50

0.48

0.43

0.53

0.47

0.45

0.48

0.61

0.61

0.63

0.59

0.52

0.52

0.52

0.52

0.58

0.58

0.57

0.56

예측값이 threshold 이상일 경우 동일한 문장, 미만일 경우 다른 문장으로 처리 후 binary accuracy 책정

모델 : klue/bert-base

BS: 32, lr: 2e-5 (허깅페이스에 보고된 일반적 STS 학습에 사용한 configuration을 따름[1])

[1] https://huggingface.co/rurupang/bert-base-finetuned-sts

korSTS 외에 데이터셋은 binary 임으로 실수정보를 주는 korSTS가 높은 성능을 준 것으로 예측

Appendix

97 of 105

성능 Ablation : 데이터셋 종류에 따른 성능

97

예측값이 threshold 이상일 경우 동일한 문장, 미만일 경우 다른 문장으로 처리 후 binary accuracy 책정

[1] https://huggingface.co/sentence-transformers/stsb-xlm-r-multilingual

[2] https://github.com/BM-K/Sentence-Embedding-Is-All-You-Need/tree/main/KoSBERT

데이터셋

Threshold

korNLI

korSTS

paraKQC

생성

데이터

koSTS

반의어 치환

0.6

0.7

0.8

0.9

pretrained

0.64

0.59

0.62

0.52

0.61

0.63

0.65

0.52

0.66

0.61

0.59

0.53

0.60

0.54

0.55

0.55

0.60

0.56

0.55

0.53

0.52

0.52

0.52

0.52

모델 : stsb-xlm-r-multilingual

BS: 32, lr: 2e-5 (허깅페이스에 보고된 일반적 STS 학습에 사용한 configuration을 따름[2])

Appendix

98 of 105

성능 Ablation : 데이터셋 종류에 따른 성능

98

예측값이 threshold 이상일 경우 동일한 문장, 미만일 경우 다른 문장으로 처리 후 binary accuracy 책정

[1] https://github.com/BM-K/Sentence-Embedding-Is-All-You-Need/tree/main/KoSBERT

데이터셋

Threshold

korNLI

korSTS

klueSTS

paraKQC

생성

데이터

koSTS

반의어 치환

0.6

0.7

0.8

0.9

0.60

0.59

0.54

0.47

0.67

0.65

0.58

0.48

0.63

0.58

0.55

0.50

0.53

0.61

0.61

0.56

0.64

0.59

0.52

0.48

0.65

0.64

0.59

0.57

0.52

0.52

0.52

0.52

모델 : klue/bert-base

BS: 32, lr: 2e-5 (SKT sentence-transformer STS 학습에 사용한 configuration을 따름[1])

Appendix

99 of 105

유저 시나리오

  1. 사용자는 Frontend를 통해 아래 정보 제공
    • Form input : 시험문제. 모범답안, 필수 키워드
    • File CSV input : 학생들의 답안

99

Appendix

100 of 105

유저 시나리오

2. FastAPI에서 정보를 받아 전처리, Text-similarity& 키워드 모델로 결과값 산출

100

Appendix

101 of 105

유저 시나리오

3. 사용자에게 결과값 파일(csv) 반환

4. Frontend : AI 자동 서술형 채점 결과에 대한 통계, 시각적 결과 확인

101

Appendix

102 of 105

프로덕트 기능 – 기본정보 추가

시험 이름 추가 가능

문제 추가 버튼을 통해 채점할 문제 추가 가능

제출 및 결과보기 버튼을 통해 채점 결과 확인

102

Service & Product

103 of 105

프로덕트 기능 – 문제 추가 디테일

문제모범답안, 필수 키워드 입력

103

csv파일 예시

학생 ID와 학생 예시 답안 포함된 csv파일 업로드

Service & Product

104 of 105

프로덕트 기능 – 결과 확인

104

  1. 학생 별 서술형 AI 채점 점수를 확인 가능
  2. 자세히 보기 : 어떤 방식의 채점이 적용됐는지 상세 사항 확인 가능

Service & Product

105 of 105

프로덕트 기능 – 결과 확인 상세

105

  1. 자세히 보기 : 채점 점수
  2. 키워드 : 학생의 답안에 포함된 모범 키워드
  3. 세부점수 탭 : Similarity ScoreKeyword Score 각각 확인
  4. 최종점수 탭 : 각 점수에 적절한 가중치를 곱해 최종 점수 산출

Service & Product