1. KorQuAD Task
- SQuAD : 미국 스탠퍼드 대학에서 구축한 대용량 데이터셋
- 언어 모델의 성능을 측정하는 가장 표준적인 벤치마크
- KorQuAD(The Korean Question Answering Dataset, 한국어 질의응답 데이터셋)
- 한국어 MRC를 위해 LG CNS에서 구축한 대규모 질의응답 데이터 셋
- 모델 평가 척도
- EM(Exact Match) : 모델이 정답을 정확히 맞춘 비율
- F1 score : 모델이 낸 답안과 정답이 음절 단위로 겹치는 부분을 고려한 부분점수
- 1-example-latency : 질문당 응답속도
- KorQuAD1.0과 2.0의 주요한 차이점
| KorQuAD1.0 | KorQuAD2.0 |
---|
문서의 길이 | 한두 문단 정도 | 위키백과 한 페이지 분량 |
문서의 구조 | | -표와 리스트가 포함 - html 태그를 이해할 수 있어야 함 |
답변의 길이 및 구조 | 단어나 구 단위 | 표와 리스트를 포함한 긴 영역의 답변 가능 |
- Subword Segmentation(단어 분리)
- 하나의 단어는 의미있는 여러 단어들의 조합으로 구성된 경우가 많기 때문에, 단어를 여러 단어로 분리
- ex) '읽었다' ⇨ '읽'+'었다'
koNLP
와 달리 언어마다 다른 문법 규칙을 활용하지 않고 적절한 subword 분절 규칙 학습 또는 통계적인 방법을 사용
- 워드 클라우드(Word Cloud) : 자료의 빈도수를 시각화해서 나타내는 방법
- 장점 : 문서의 핵심 단어 파악, 데이터의 특징 도출에 활용
- 특징 : 빈도수가 높은 단어일수록 글씨 크기가 큼
2. BERT의 모델 구조
- Transformer Encoder 구조만을 활용
- 기본저인 구조는 동일, layer의 갯수 12개 이상으로 증가, 전체 파라미터이 크기가 커짐
Transformer 모델은 Self-Attention 으로 이루어진 Encoder-Decoder 구조로, 번역기 모델 형태를 구현에 적합함
- Mask LM : 단어 간의 연결
- 입력데이터 :
나는 <mask> 먹었다
- BERT 모델 :
<mask>
에 해당하는 단어를 맞추는 언어 모델 ex) <mask>
= 밥을
- Next Sentence Prediction(NSP) : 문장 간의 연결
- 입력데이터 :
나는 밥을 먹었다. <SEP> 그래서 지금 배가 부르다.
- BERT 모델 :
<SEP>
을 경계로 이어지는 문장을 맞추는 언어 모델
- Token Embedding
- Word Piece model이라는 subword tokenizer를 사용하여 텍스트를 tokenizer 함
- 문자 분절 방법
- 문자(char) 단위로 임베딩(기본)
- 자주 등장하는 긴 길이의 subword도 하나의 단위로 만듦
- 자주 등장하지 않는 단어는 다시 subword 단위로 쪼갬 ⇨ OOV(Out-of-vocabulary) 방지
- 최종적으로 Word Piece모델의 각 임베딩이 입력됩니다.
- Segment Embedding : 각 단어가 어느 문장에 포함되는지 그 역할을 규정
- Transformer에 없던 구조
- Question 문장에 속하는지, Context 문장에 속하는지 구분이 필요한 경우 사용
- Position Embedding : 기존의 Transformer에서 사용되던 position embedding과 동일
- lstm 모델 vs bert 모델
- bert 모델 vs bert 사전학습 모델