SlideShare uma empresa Scribd logo
1 de 39
Copyright© 2017 by ETRI
2019. 09. 05.
임 준 호
언어지능연구실 / 한국전자통신연구원
국가전략프로젝트– 엑소브레인 SW 개발
NLU Tech Talk with KorBERT
Copyright© 2017 by ETRI
목차
• (1) BERT 기술 소개
• (2) KorBERT 소개
• (3) Some Questions
Copyright© 2017 by ETRI
시작하기에 앞서
• Paper Reading Tip
– (1) 논문에서 해결하고자 하는 문제가 무엇인가?
• 기존 연구 / 제안 방법 / 실험 결과
– (2) 딥러닝 모델의 경우,
• 곱하기/더하기 대상이 무엇인가? 차원(dimension)이 어떻게 바뀌는가?
– CNN (with max-pooling)
– RNN
– Self-Attention
– (3) 모델을 구성 요소 별로 나눠서 생각해보기
• 필수적인 요소와 부가적인 요소 구분하여 생각해보기
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• BERT에서 해결하고자 하는 문제 = contextual representation
– 문제점
• 딥러닝 자연어처리에서 단어를 벡터로 표현하는 워드임베딩은 필수적임
– 심볼인 단어를 실수 벡터로 표현해야 뉴럴넷(i.e. FFNN) 적용 가능
• 기존 워드임베딩 접근 방법은 문맥을 고려하지 못하는 한계를 지님
– 접근 방법
• 입력 문장(N개 단어)에 대해서, 뉴럴넷을 적용한 결과(N개 출력)를 단어의
문맥 반영 벡터로 활용
<기존 워드임베딩 접근방법 >
(context free manner)
open a bank account
open a bank account
open a bank account
bank 문맥벡터
<BERT 접근방법 >
(contextual representation)
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• Contextual Representation 적용 전/후
– 적용 전
• 응용 태스트 별 별도의 딥러닝 모델과 학습 데이터를 이용하여 모델 개발
– 적용 후
• 1) 대용량 Raw 데이터로부터 공통 언어모델(Language Model) 미리 학습
(pre-train)
• 2) 학습된 공통 모델을 응용 태스크 별로 재학습(fine-tuning)하여 적용
Task 학습데이터
Task 별 딥러닝 모델
(예: MRC의 경우, 단락-질문 사이 Attention)
대용량 Raw 데이터
Self-Attention 기반 딥러닝 모델
(N개의 입력 토큰 사이의 N x N Attention)
Task 학습데이터
<기존 접근방법> <BERT 접근방법>
Task
Supervision
Task
Supervision
Language
Model
Self-Supervision
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• Pre-training 단계 (언어모델 학습)
– 1) 공백 단어 예측
• 입력 문장 중, 15%의 단어를 masking 후 해당 단어를 맞추는 태스크
• BERT 특징: 양방향 정보를 이용한 단어 예측
– 기존 연구: 단어 예측 시, 단일 방향의 정보만 고려
– 2) 문장 선후관계 예측
• 임의의 두 문장에 대해, 두 문장이 선/후 관계가 맞는지 맞추는 태스크
– (비고) 두 태스크 모두 별도의 정답 말뭉치 없이 대용량 원시 말뭉치로부
터 자동으로 생성 가능
양방향 기반 단어 예측을 위하여
BERT에서 제안한 학습방법
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• Pre-training 학습 난이도
Word2Vec (fastText) BERT
Vocab. 332,733 개 (한국어 형태소) 30,000 개
입력
좌/우 n개 단어 (예: 좌/우 4개)
- target 단어 미입력
512 sequence
- target word masking + two sentences
출력 Target 단어
Masked LM task: target 단어
Next Sentence Prediction task: next sentence 여부
함수
Domain 및 Range
Cardinality
Domain: 332,7334 (약 1.23e22)
Range: 332,733
Domain: 30,000512 (약 1.93e2292)
Range of masked LM task: 30,000
Range of NSP task 2
모델 FFNN (dim X vocab) Transformer (12 layer / 24 layer)
데이터 150M 형태소 (위키백과) Wikipedia (2.5B words) + BookCorpus (800M words)
open a [MASK] account
open a [MASK] account
open a [MASK] account
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• Transformer 모델
백설공주가
독사과를
먹었다.
FFNNQ (FFNNK)T
FFNNV
Softmax ( )
Weight of
독사과를 - 백설공주가
Weight of
독사과를 – 먹었다.
Weighted
sum
BERT base 모델 파라미터
- 512 sequence
- 12 layer
- 768 hidden / 12 heads (64 per head)
BERT base 모델
- Input ∈ R512*768
[per each layer]
- FFNNQ, FFNNK ∈ R768*64 (12개)
- FFNNV ∈ R768*64 (12개)
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• BERT 모델 Pre-training 입력/출력
NSP Mask LM Mask LM Mask LM
Masked Sentence A Masked Sentence B
MASK
원문: my dog is cute / he likes playing
MASK MASK
MASK MASK MASK
Transformer Layer #1
Transformer Layer #12
…
Weight 학습
(NSP +
Mask LM loss)
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• Pre-training 학습 instance 예제
INFO:tensorflow:*** Example ***
INFO:tensorflow:tokens: [CLS] 장 서 희/NNP_ 는/JX_ 지나/VV_ [MASK] [MASK] [MASK] '/SS_ 인 /VV_ [MASK] 아 가 씨/NNG_ [MASK] 에서
/JKB_ 악 녀/NNG_ 은 아리 영/NNG_ [MASK] [MASK] 하/XSV_ 어/EC_ 연기/NNG_ 대상/NNG_ 의/JKG_ 대상/NNG_ [MASK] 차지/NNG_ 하/XSV_ 었
/EP_ 고/EC_ ,/SP_ 고 현정/NNP_ 은/JX_ '/SS_ 미 실/NNG_ æ 로/JKB_ 2009/SN_ MBC/SL_ 연기/NNG_ 대상/NNG_ 에서/JKB_ 대상/NNG_ [MASK] 를
/JKO_ 품/NNG_ 에/JKB_ 안/VV_ 았/EP_ 다/EF_ ./SF_ [SEP] 순 스케/NNP_ 는/JX_ "/SS_ 맨유/NNG_ 가/JKS_ 셀 틱 전/NNG_ 에/JKB_ 후보/NNG_ 선수
/NNG_ 들/XSN_ 을/JKO_ [MASK] [MASK] ㄴ다/EF_ 고 하/VV_ 어도/EC_ 톱/NNG_ 클래스/NNG_ 의/JKG_ inematic/SL_ 이/VCP_ 라는/ETM_ [MASK]
을/JKO_ 부인/NNG_ [MASK] [MASK] [MASK] 없/VA_ [MASK] [MASK] 때문/NNB_ 에/JKB_ 16/SN_ 강/NNG_ 진출/NNG_ 의/JKG_ 가능/NNG_ 성
/XSN_ 이/JKS_ 0/SN_ [MASK] 가/JKS_ 될 때/NNG_ 까지/JX_ coph [MASK] 하/XSV_ 지/EC_ 않/VX_ 겠/EP_ 다/EF_ "/SS_ 는/JX_ 각오/NNG_ 를/JKO_
전하/VV_ [MASK] 다/EF_ ./SF_ [SEP]
INFO:tensorflow:input_ids: 2 331 253 894 18 115 4 4 4 26 326 206 4 186 201 2924 4 27 1544 1822 620 7279 1028 4 4 9 20 637 527 13 527
4 926 9 12 23 17 194 7844 21 26 227 912 16312 31 1204 953 637 ... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (512개)
INFO:tensorflow:input_mask: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... 0 0 0 0 0 (512개)
INFO:tensorflow:segment_ids: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 ... (512개)
INFO:tensorflow:masked_lm_positions: 6 7 8 12 16 23 24 31 39 43 51 74 75 81 83 86 89 90 91 93 94 105 110 111 122 0 0 ... (77개)
INFO:tensorflow:masked_lm_ids: 10 2010 39 20 26 28 471 11 21 26 7896 907 3058 7125 121 33 40 35 55 8 7 81 638 3803 12 0 0 ... (77개)
INFO:tensorflow:masked_lm_weights: 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0
0.0 0.0 ... (77개)
INFO:tensorflow:next_sentence_labels: 1
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• 비고: Masking 전략
– 15% of the token positions at random for prediction
• 80% of the time, replace with [MASK]
• 10% of the time, replace random word
• 10% of the time, keep same
학습 데이터: 33억 단어
사전: 3만 vocab
Masking:15% random (40 epoch)
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• 비고: Random Short Sequence
def create_instances_from_document(
all_documents, document_index, max_seq_length, short_seq_prob,
masked_lm_prob, max_predictions_per_seq, vocab_words, rng):
"""Creates `TrainingInstance`s for a single document."""
document = all_documents[document_index]
# Account for [CLS], [SEP], [SEP]
max_num_tokens = max_seq_length – 3
# We *usually* want to fill up the entire sequence since we are padding
# to `max_seq_length` anyways, so short sequences are generally wasted
# computation. However, we *sometimes*
# (i.e., short_seq_prob == 0.1 == 10% of the time) want to use shorter
# sequences to minimize the mismatch between pre-training and fine-tuning.
# The `target_seq_length` is just a rough target however, whereas
# `max_seq_length` is a hard limit.
target_seq_length = max_num_tokens
if rng.random() < short_seq_prob:
target_seq_length = rng.randint(2, max_num_tokens)
…
truncate_seq_pair(tokens_a, tokens_b, max_num_tokens, rng)
…
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• Fine-tuning 단계 (응용 태스크 적용)
– 언어처리, 텍스트 분류, 기계독해 등에 적용
• 언어처리: 개체명인식, 구문분석 등 언어처리 문제에 적용
• 문장분류: 단일 문장 주제 분류 또는 두 문장 사이의 유사성 분석 문제에 적용
• 기계독해: 질문과 단락을 입력 받은 후, 단락에서 정답 경계 인식 문제에 적용
Copyright© 2017 by ETRI
(1) BERT 기술 소개
• 실험 결과
– 한 줄 요약: SOTA @ 2018-10
Copyright© 2017 by ETRI
(2) KorBERT 소개
• (2.1) BERT 이후 최근 연구 결과
• (2.2) 한국어에 적합한 Vocab. 생성 및 KorBERT 학습
• (2.3) KorBERT 활용
Copyright© 2017 by ETRI
(2) KorBERT 소개에 앞서
• 엑소브레인 프로젝트 소개
– 전문가(예: 변호사, 변리사)와 지식 소통이 가능한 언어지능 SW
• 한국어 분석, 단답형QA 기술의
OpenAPI 공개를 통한
생태계 활성화 병행
• 엑소브레인 OpenAPI 소개
– 중소·벤처 기업, 학교, 개인 개발자 등의 다양한 응용 개발 촉진과 관련 산업
의 생태계 활성화 및 인력 양성 지원 목적
• http://aiopen.etri.re.kr/
• 2017.10.30 서비스 시작
– API 사용 통계 (2019.08.27 기준)
• 기관 수: 1,004 기관
• 사용자 수: 2,617 명
• 누적 일 평균 사용량: 39,820건
• 최근 7일 일 평균 사용량: 69,848건
• KorBERT 다운로드: 251건
Copyright© 2017 by ETRI
(2.1) BERT 이후 최근 연구 결과
• BERT pre-training 관련 최근 연구 결과
– (2019.04) ERNIE: Enhanced Representation through
Knowledge Integration
– (2019.05) BERT update: Whole word masking model
– (2019.07) SpanBERT: Improving Pre-training by Representing
and Predicting Spans
– (2019.07) RoBERTa: A Robustly Optimized BERT Pretraining
Approach
Copyright© 2017 by ETRI
(2.1) BERT 이후 최근 연구 결과
• (기타) 언어모델 pre-training 관련 최근 연구 결과
– (2019.06) XLNet: Generalized Autoregressive Pretraining for
Language Understanding
– (2019.05) Unified Language Model Pre-training for Natural
Language Understanding and Generation
– (2019.05) MASS: Masked Sequence to Sequence Pre-training
for Language Generation
– (2019.03) Cloze-driven Pretraining of Self-attention Networks
Copyright© 2017 by ETRI
(2.1) BERT 이후 최근 연구 결과
• ERNIE: Enhanced Representation through Knowledge Integration
(Baidu)
– Key points: masking strategy
• Basic-level masking
• Entity-level masking
• Phrase-level masking
Copyright© 2017 by ETRI
(2.1) BERT 이후 최근 연구 결과
• BERT update: Whole word masking model (Google)
– Key points
Input Text the man jumped up , put his basket on phil ##am ##mon ' s head
Original
Masked Input
[MASK] man [MASK] up , put his [MASK] on phil [MASK] ##mon ' s head
Whole Word
Masked Input
the man [MASK] up , put his basket on [MASK] [MASK] [MASK] ' s head
Copyright© 2017 by ETRI
(2.1) BERT 이후 최근 연구 결과
• SpanBERT: Improving Pre-training by Representing and Predicting
Spans (Univ. Washington, Univ. Princeton, Facebook)
– Key points
• Span Masking
• Span Boundary Objective
• Single-Sequence Training
Copyright© 2017 by ETRI
(2.1) BERT 이후 최근 연구 결과
• RoBERTa: A Robustly Optimized BERT Pretraining Approach
(Facebook)
– Key points
• Static vs. Dynamic Masking
• Model Input Format and Next Sentence Prediction
– SEGMENT-PAIR+NSP
– SENTENCE-PAIR+NSP
– FULL-SENTENCES (no NSP)
– DOC-SENTENCES (no NSP)
• Training with large batches
Copyright© 2017 by ETRI
(2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습
• (1) 대용량 말뭉치 수집
– 총 23.5GB / 약 47억개 형태소 수집
– 유형: 위키백과 및 신문기사 (약 15년 분량) 등
• (2) Vocab 구축
– 형태소 단위 모델 및 wordpiece 단위 모델 병렬 구축 및 비교
• (3) Pre-training 학습 데이터 생성
– 대용량 말뭉치 대상 Mask LM 및 NSP task 데이터 생성
• (4) Pre-training 학습 수행
Copyright© 2017 by ETRI
(2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습
• Vocab. 구축 고려사항
– 수량: 최대 3만 여개의 vocab. 구축
– Vocab entry가 통계적으로 일정 빈도 이상 발생 필요
– UNK 발생 최소화
• Vocab 구축 후보
– (1) 음절 단위 사전 구축
• 예: 한 / 국 / 어_ / 단 / 어 / 는_ / 형 / 태 / 소 / 로_ / 구 / 성 / 된 / 다 / ._ (15
token)
– 영어 character based LM과 유사
– 사전 entry 수 감소 및 표현력 저하
– 동일한 512 seq이더라도, 더 짧은 문장 표현 한계
– (2) Wordpiece 단위 사전 구축
• 예: 한국 / ##어 / 단 / ##어는 / 형태 / ##소로 / 구 / ##성된 / ##다. (9 token)
– 조사/어미가 이전 형태소와 결합되는 경우 빈번
– (3) 형태소 단위 사전 구축
• 예: 한국어/NNP_ 단어/NNG_ 는/JX_ 형태소/NNG_ 로/JKB_ 구성/NNG_
되/XSV_ ㄴ다/EF_ ./SF_ (9 token)
– 형태소 분석기 적용 필요
Copyright© 2017 by ETRI
(2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습
• Vocab. 구축 세부 내용
– (1) 어절의 시작 표현 / 끝 표현 구분
• 시작 구분: 한국 ##어 단 ##어는 ...
• 끝 구분: 한국 어_ 단 어는_
– (2) 형태소 단위 사전 구축 시, 형태소 태그 사용 여부
• 태그 사용: 한국어/NNP_ 단어/NNG_ 는/JX_ ...
• 태그 미사용: 한국어_ 단어_ 는_ ... 구성_ 되_ ㄴ다_ ._
– 사전 구축 결과
• BPE 알고리즘 사용
• 형태소 기반 사전: 30,349 vocabs
• Wordpiece 기반 사전: 30,797 vocabs
비고: TTA표준 호환 형태소분석기 사용 필요
<형태소 분석 결과 예>
(1) 사용하다: 사용/NNG + 하/XSV <-> 사용하/VV
(2) 산다: 살/VV + ㄴ다/EF <-> 산/VV + 다/EF
(3) 연구원: 연구/NNG + 원/XSN <-> 연구원/NNG
Copyright© 2017 by ETRI
(2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습
• Pre-training 학습 데이터 생성
– 중요 파라미터
• max_seq_length / masked_lm_prob / max_predictions_per_seq
• dupe_factor
– Training epoch 보다 큰 dupe factor 사용  Dynamic Masking
– (초기) word masking  (후기) whole-word masking
• Pre-training 학습 수행
– Base 모델 파라미터
• 512 sequence / 12 layer / 768 hidden/ 12 heads (64 per head)
– 중요 학습 파라미터
train_batch_size 가능한 최대 크기 (메모리 부족 시, gradient accumulation 적용)
max_seq_length 학습 데이터 생성 시 파라미터 (초기 256, 후기 512)
max_predictions_per_seq 학습 데이터 생성 시 파라미터
num_train_steps 학습 데이터 생성 instance 수 기반 계산
num_warmup_steps 처음 학습 시 10,000 step (추가 학습 시 -1)
learning_rate 처음 학습 시 1e-4 (추가 학습 시 3e-5)
weight_decay_rate 0.01
Copyright© 2017 by ETRI
(2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습
• KorBERT 구축 모델 평가
Copyright© 2017 by ETRI
(2.3) KorBERT 활용
• 법률분야 질의응답 시스템
Copyright© 2017 by ETRI
(2.3) KorBERT 활용
• 법률분야 대상 추가 pre-training
– 일반분야 언어모델 기반 법률분야 언어모델 구축
• 법률분야 원시 말뭉치: 186MB
– 법률분야 기계독해 성능
• 평가셋: 법률분야 GS1000 평가셋
• (법률분야 모델) EM52.0% / F1 79.20%
• (일반분야 모델) EM 50.5% / F1 77.19%
• KorBERT 기반 검색 단락 재순위화 모듈 개발
– IR 대비 Top1 +16.7% 성능 (IR: 57.0% / 재순위화: 73.7%)
– 질문: 대한민국헌법에서 대통령의 임기는 얼마인가?
검색
순위
재순위
순위
재순위
점수
정답 근거단락
1 4 0.0002 70일 내지 40일전
①대통령의 임기가 만료되는 때에는 임기만료 70일 내지 40일전에 후임자
를 선거한다.
2 2 0.0011 4년
②원장은 국회의 동의를 얻어 대통령이 임명하고, 그 임기는 4년으로 하며,
1차에 한하여 중임할 수 있다.
3 3 0.0004
중임변경을 위한
헌법개정
②대통령의 임기연장 또는 중임변경을 위한 헌법개정은 그 헌법개정 제안
당시의 대통령에 대하여는 효력
4 1 0.9997 5년 대통령의 임기는 5년으로 하며, 중임할 수 없다.
Copyright© 2017 by ETRI
(2.3) KorBERT 활용
• 한컴오피스 2020 신규버전에 위키백과QA 탑재 예정 (2019.10)
• 클라우드 오피스 문서 기반 질의응답 시스템(ODWiseQA) 개발 예정
Copyright© 2017 by ETRI
(3) Some Questions
• 실시간 서비스를 위한 속도 개선
– Parameter tuning
– Quantization, Weights pruning, Knowledge distillation
• (1) BERT 모델 구조적 한계
– Fixed sequence length & Expensive computation cost
• (2) 외부 지식 / 메모리 활용 필요
– BERT 모델 110M / 340M 파라미터에 모든 지식 저장
• (3) Cross-Encoding 방식 한계
– 사용자 질문마다 모든 정답 후보 단락을 새로 계산해야 함
• (4) 미해결 문제 (selected from too many items)
– Document-level QA / Multi-hop QA / IR
Copyright© 2017 by ETRI
(3) Some Questions
• (1) Fixed sequence length & Expensive computation cost
– Adaptive Attention Span in Transformers (Facebook)
• Transformer 모델 기반 character level LM task
z : each attention head span (학습 대상)
R : 파라미터 (32)
Copyright© 2017 by ETRI
(3) Some Questions
• (2) 외부 지식 / 메모리 활용 필요
– Large Memory Layers with Product Keys (Facebook)
H=4 memory heads / k = 32 keys per head / |K| = 5122 memory slots
Table 3: Perplexity and memory usage for different memory
positions in a transformer with 6 layers. Adding a memory in
positions 4 or 5 maximizes the performance (layer 1 is the worst).
Copyright© 2017 by ETRI
(3) Some Questions
• (3) Cross-Encoding 방식 한계
– #1: Real-Time Open-Domain Question Answering with Dense-Sparse
Phrase Index ( today talk by Minjoon Seo)
– #2: Real-time Inference in Multi-sentence Tasks with Deep Pretrained
Transformers (Facebook)
• Given a dialogue context (i.e. conversation history), selects the
best next sentence to output from N possible candidates.
정답 단락 BERT 결과
사전 색인 가능
Copyright© 2017 by ETRI
(3) Some Questions
• (3) Cross-Encoding 방식 한계
– #2: Real-time Inference in Multi-sentence Tasks with Deep Pretrained
Transformers (Facebook)
Pre-training on Reddit, which is a
dataset more adapted to dialogue
Copyright© 2017 by ETRI
(3) Some Questions
• (4) 미해결 문제 (selected from too many items)
– [Document-level QA] Google Natural Questions
Source of questions
The questions consist of real anonymized, aggregated queries issued
to the Google search engine. Simple heuristics are used to filter
questions from the query stream. Thus the questions are “natural”, in
that they represent real queries from people seeking information.
Task definition
The input to a model is a question together with an entire Wikipedia
page. The target output from the model is: 1) a long-answer (e.g., a
paragraph) from the page that answers the question, or alternatively
an indication that there is no answer on the page; 2) a short answer
where applicable. The task was designed to be close to an end-to-end
question answering application.
Copyright© 2017 by ETRI
(3) Some Questions
• (4) 미해결 문제 (selected from too many items)
– [Multi-hop QA] HotpotQA
• A Dataset for Diverse, Explainable Multi-hop Question Answering
Key features
- require finding and reasoning over multiple
supporting documents to answer
- provide sentence-level supporting facts
required for reasoning, allowing QA systems to
reason with strong supervision and explain the
predictions
Copyright© 2017 by ETRI
(3) Some Questions
• (4) 미해결 문제 (selected from too many items)
– [IR] Latent Retrieval for Weakly Supervised Open Domain
Question Answering (Google)
Table 5: Main results:
End-to-end exact match
for open-domain question
answering from question-
answer pairs only. Datasets
where question askers
know the answer behave
differently from datasets
where they do not.
BERTQ / BERTB : inverse close
task (ICT) pre-training
Top-k Retrieval : use Locality
Sensitive Hashing algorithm
Copyright© 2017 by ETRI
감사합니다

Mais conteúdo relacionado

Mais procurados

大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
Takuya Akiba
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
 

Mais procurados (20)

Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
 
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 
La sclerose en plaques
La sclerose en plaquesLa sclerose en plaques
La sclerose en plaques
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향
 
cours de spectroscopie
cours de spectroscopiecours de spectroscopie
cours de spectroscopie
 
L'hémogramme
L'hémogrammeL'hémogramme
L'hémogramme
 
包括脳2016 nodd iturorial_jpn_20160123_slideshare
包括脳2016 nodd iturorial_jpn_20160123_slideshare包括脳2016 nodd iturorial_jpn_20160123_slideshare
包括脳2016 nodd iturorial_jpn_20160123_slideshare
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
 
それでも私が研究を続ける理由
それでも私が研究を続ける理由それでも私が研究を続ける理由
それでも私が研究を続ける理由
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
2015年因果フェススライド
2015年因果フェススライド2015年因果フェススライド
2015年因果フェススライド
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
 
数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化数独のアルゴリズムを考える ― 各種法の改善と高速化
数独のアルゴリズムを考える ― 各種法の改善と高速化
 
【DL輪読会】CLIPORT: What and Where Pathways for Robotic Manipulation (CoRL 2021)
【DL輪読会】CLIPORT: What and Where Pathways for Robotic Manipulation (CoRL 2021)【DL輪読会】CLIPORT: What and Where Pathways for Robotic Manipulation (CoRL 2021)
【DL輪読会】CLIPORT: What and Where Pathways for Robotic Manipulation (CoRL 2021)
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 

Semelhante a NLU Tech Talk with KorBERT

Semelhante a NLU Tech Talk with KorBERT (20)

파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_ppt
 
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled AttentionDeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
 
Mt
MtMt
Mt
 
Papago/N2MT 개발이야기
Papago/N2MT 개발이야기Papago/N2MT 개발이야기
Papago/N2MT 개발이야기
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
서울 R&D 캠퍼스 자연어 수업자료
서울 R&D 캠퍼스 자연어 수업자료서울 R&D 캠퍼스 자연어 수업자료
서울 R&D 캠퍼스 자연어 수업자료
 
Phrase Tagger, 구문 태거
Phrase Tagger, 구문 태거Phrase Tagger, 구문 태거
Phrase Tagger, 구문 태거
 
자연어5 | 1차강의
자연어5 | 1차강의자연어5 | 1차강의
자연어5 | 1차강의
 
GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
 
Albert
AlbertAlbert
Albert
 
파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초파이썬을 활용한 자연어분석 기초
파이썬을 활용한 자연어분석 기초
 
파이썬을 활용한 자연어 분석 - 2차
파이썬을 활용한 자연어 분석 - 2차파이썬을 활용한 자연어 분석 - 2차
파이썬을 활용한 자연어 분석 - 2차
 
KorQuAD v1.0 참관기
KorQuAD v1.0 참관기KorQuAD v1.0 참관기
KorQuAD v1.0 참관기
 
[saltlux] KorQuAD v1.0 참관기
[saltlux] KorQuAD v1.0 참관기[saltlux] KorQuAD v1.0 참관기
[saltlux] KorQuAD v1.0 참관기
 

NLU Tech Talk with KorBERT

  • 1. Copyright© 2017 by ETRI 2019. 09. 05. 임 준 호 언어지능연구실 / 한국전자통신연구원 국가전략프로젝트– 엑소브레인 SW 개발 NLU Tech Talk with KorBERT
  • 2. Copyright© 2017 by ETRI 목차 • (1) BERT 기술 소개 • (2) KorBERT 소개 • (3) Some Questions
  • 3. Copyright© 2017 by ETRI 시작하기에 앞서 • Paper Reading Tip – (1) 논문에서 해결하고자 하는 문제가 무엇인가? • 기존 연구 / 제안 방법 / 실험 결과 – (2) 딥러닝 모델의 경우, • 곱하기/더하기 대상이 무엇인가? 차원(dimension)이 어떻게 바뀌는가? – CNN (with max-pooling) – RNN – Self-Attention – (3) 모델을 구성 요소 별로 나눠서 생각해보기 • 필수적인 요소와 부가적인 요소 구분하여 생각해보기
  • 4. Copyright© 2017 by ETRI (1) BERT 기술 소개 • BERT에서 해결하고자 하는 문제 = contextual representation – 문제점 • 딥러닝 자연어처리에서 단어를 벡터로 표현하는 워드임베딩은 필수적임 – 심볼인 단어를 실수 벡터로 표현해야 뉴럴넷(i.e. FFNN) 적용 가능 • 기존 워드임베딩 접근 방법은 문맥을 고려하지 못하는 한계를 지님 – 접근 방법 • 입력 문장(N개 단어)에 대해서, 뉴럴넷을 적용한 결과(N개 출력)를 단어의 문맥 반영 벡터로 활용 <기존 워드임베딩 접근방법 > (context free manner) open a bank account open a bank account open a bank account bank 문맥벡터 <BERT 접근방법 > (contextual representation)
  • 5. Copyright© 2017 by ETRI (1) BERT 기술 소개 • Contextual Representation 적용 전/후 – 적용 전 • 응용 태스트 별 별도의 딥러닝 모델과 학습 데이터를 이용하여 모델 개발 – 적용 후 • 1) 대용량 Raw 데이터로부터 공통 언어모델(Language Model) 미리 학습 (pre-train) • 2) 학습된 공통 모델을 응용 태스크 별로 재학습(fine-tuning)하여 적용 Task 학습데이터 Task 별 딥러닝 모델 (예: MRC의 경우, 단락-질문 사이 Attention) 대용량 Raw 데이터 Self-Attention 기반 딥러닝 모델 (N개의 입력 토큰 사이의 N x N Attention) Task 학습데이터 <기존 접근방법> <BERT 접근방법> Task Supervision Task Supervision Language Model Self-Supervision
  • 6. Copyright© 2017 by ETRI (1) BERT 기술 소개 • Pre-training 단계 (언어모델 학습) – 1) 공백 단어 예측 • 입력 문장 중, 15%의 단어를 masking 후 해당 단어를 맞추는 태스크 • BERT 특징: 양방향 정보를 이용한 단어 예측 – 기존 연구: 단어 예측 시, 단일 방향의 정보만 고려 – 2) 문장 선후관계 예측 • 임의의 두 문장에 대해, 두 문장이 선/후 관계가 맞는지 맞추는 태스크 – (비고) 두 태스크 모두 별도의 정답 말뭉치 없이 대용량 원시 말뭉치로부 터 자동으로 생성 가능 양방향 기반 단어 예측을 위하여 BERT에서 제안한 학습방법
  • 7. Copyright© 2017 by ETRI (1) BERT 기술 소개 • Pre-training 학습 난이도 Word2Vec (fastText) BERT Vocab. 332,733 개 (한국어 형태소) 30,000 개 입력 좌/우 n개 단어 (예: 좌/우 4개) - target 단어 미입력 512 sequence - target word masking + two sentences 출력 Target 단어 Masked LM task: target 단어 Next Sentence Prediction task: next sentence 여부 함수 Domain 및 Range Cardinality Domain: 332,7334 (약 1.23e22) Range: 332,733 Domain: 30,000512 (약 1.93e2292) Range of masked LM task: 30,000 Range of NSP task 2 모델 FFNN (dim X vocab) Transformer (12 layer / 24 layer) 데이터 150M 형태소 (위키백과) Wikipedia (2.5B words) + BookCorpus (800M words) open a [MASK] account open a [MASK] account open a [MASK] account
  • 8. Copyright© 2017 by ETRI (1) BERT 기술 소개 • Transformer 모델 백설공주가 독사과를 먹었다. FFNNQ (FFNNK)T FFNNV Softmax ( ) Weight of 독사과를 - 백설공주가 Weight of 독사과를 – 먹었다. Weighted sum BERT base 모델 파라미터 - 512 sequence - 12 layer - 768 hidden / 12 heads (64 per head) BERT base 모델 - Input ∈ R512*768 [per each layer] - FFNNQ, FFNNK ∈ R768*64 (12개) - FFNNV ∈ R768*64 (12개)
  • 9. Copyright© 2017 by ETRI (1) BERT 기술 소개 • BERT 모델 Pre-training 입력/출력 NSP Mask LM Mask LM Mask LM Masked Sentence A Masked Sentence B MASK 원문: my dog is cute / he likes playing MASK MASK MASK MASK MASK Transformer Layer #1 Transformer Layer #12 … Weight 학습 (NSP + Mask LM loss)
  • 10. Copyright© 2017 by ETRI (1) BERT 기술 소개 • Pre-training 학습 instance 예제 INFO:tensorflow:*** Example *** INFO:tensorflow:tokens: [CLS] 장 서 희/NNP_ 는/JX_ 지나/VV_ [MASK] [MASK] [MASK] '/SS_ 인 /VV_ [MASK] 아 가 씨/NNG_ [MASK] 에서 /JKB_ 악 녀/NNG_ 은 아리 영/NNG_ [MASK] [MASK] 하/XSV_ 어/EC_ 연기/NNG_ 대상/NNG_ 의/JKG_ 대상/NNG_ [MASK] 차지/NNG_ 하/XSV_ 었 /EP_ 고/EC_ ,/SP_ 고 현정/NNP_ 은/JX_ '/SS_ 미 실/NNG_ æ 로/JKB_ 2009/SN_ MBC/SL_ 연기/NNG_ 대상/NNG_ 에서/JKB_ 대상/NNG_ [MASK] 를 /JKO_ 품/NNG_ 에/JKB_ 안/VV_ 았/EP_ 다/EF_ ./SF_ [SEP] 순 스케/NNP_ 는/JX_ "/SS_ 맨유/NNG_ 가/JKS_ 셀 틱 전/NNG_ 에/JKB_ 후보/NNG_ 선수 /NNG_ 들/XSN_ 을/JKO_ [MASK] [MASK] ㄴ다/EF_ 고 하/VV_ 어도/EC_ 톱/NNG_ 클래스/NNG_ 의/JKG_ inematic/SL_ 이/VCP_ 라는/ETM_ [MASK] 을/JKO_ 부인/NNG_ [MASK] [MASK] [MASK] 없/VA_ [MASK] [MASK] 때문/NNB_ 에/JKB_ 16/SN_ 강/NNG_ 진출/NNG_ 의/JKG_ 가능/NNG_ 성 /XSN_ 이/JKS_ 0/SN_ [MASK] 가/JKS_ 될 때/NNG_ 까지/JX_ coph [MASK] 하/XSV_ 지/EC_ 않/VX_ 겠/EP_ 다/EF_ "/SS_ 는/JX_ 각오/NNG_ 를/JKO_ 전하/VV_ [MASK] 다/EF_ ./SF_ [SEP] INFO:tensorflow:input_ids: 2 331 253 894 18 115 4 4 4 26 326 206 4 186 201 2924 4 27 1544 1822 620 7279 1028 4 4 9 20 637 527 13 527 4 926 9 12 23 17 194 7844 21 26 227 912 16312 31 1204 953 637 ... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (512개) INFO:tensorflow:input_mask: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... 0 0 0 0 0 (512개) INFO:tensorflow:segment_ids: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 ... (512개) INFO:tensorflow:masked_lm_positions: 6 7 8 12 16 23 24 31 39 43 51 74 75 81 83 86 89 90 91 93 94 105 110 111 122 0 0 ... (77개) INFO:tensorflow:masked_lm_ids: 10 2010 39 20 26 28 471 11 21 26 7896 907 3058 7125 121 33 40 35 55 8 7 81 638 3803 12 0 0 ... (77개) INFO:tensorflow:masked_lm_weights: 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 ... (77개) INFO:tensorflow:next_sentence_labels: 1
  • 11. Copyright© 2017 by ETRI (1) BERT 기술 소개 • 비고: Masking 전략 – 15% of the token positions at random for prediction • 80% of the time, replace with [MASK] • 10% of the time, replace random word • 10% of the time, keep same 학습 데이터: 33억 단어 사전: 3만 vocab Masking:15% random (40 epoch)
  • 12. Copyright© 2017 by ETRI (1) BERT 기술 소개 • 비고: Random Short Sequence def create_instances_from_document( all_documents, document_index, max_seq_length, short_seq_prob, masked_lm_prob, max_predictions_per_seq, vocab_words, rng): """Creates `TrainingInstance`s for a single document.""" document = all_documents[document_index] # Account for [CLS], [SEP], [SEP] max_num_tokens = max_seq_length – 3 # We *usually* want to fill up the entire sequence since we are padding # to `max_seq_length` anyways, so short sequences are generally wasted # computation. However, we *sometimes* # (i.e., short_seq_prob == 0.1 == 10% of the time) want to use shorter # sequences to minimize the mismatch between pre-training and fine-tuning. # The `target_seq_length` is just a rough target however, whereas # `max_seq_length` is a hard limit. target_seq_length = max_num_tokens if rng.random() < short_seq_prob: target_seq_length = rng.randint(2, max_num_tokens) … truncate_seq_pair(tokens_a, tokens_b, max_num_tokens, rng) …
  • 13. Copyright© 2017 by ETRI (1) BERT 기술 소개 • Fine-tuning 단계 (응용 태스크 적용) – 언어처리, 텍스트 분류, 기계독해 등에 적용 • 언어처리: 개체명인식, 구문분석 등 언어처리 문제에 적용 • 문장분류: 단일 문장 주제 분류 또는 두 문장 사이의 유사성 분석 문제에 적용 • 기계독해: 질문과 단락을 입력 받은 후, 단락에서 정답 경계 인식 문제에 적용
  • 14. Copyright© 2017 by ETRI (1) BERT 기술 소개 • 실험 결과 – 한 줄 요약: SOTA @ 2018-10
  • 15. Copyright© 2017 by ETRI (2) KorBERT 소개 • (2.1) BERT 이후 최근 연구 결과 • (2.2) 한국어에 적합한 Vocab. 생성 및 KorBERT 학습 • (2.3) KorBERT 활용
  • 16. Copyright© 2017 by ETRI (2) KorBERT 소개에 앞서 • 엑소브레인 프로젝트 소개 – 전문가(예: 변호사, 변리사)와 지식 소통이 가능한 언어지능 SW • 한국어 분석, 단답형QA 기술의 OpenAPI 공개를 통한 생태계 활성화 병행 • 엑소브레인 OpenAPI 소개 – 중소·벤처 기업, 학교, 개인 개발자 등의 다양한 응용 개발 촉진과 관련 산업 의 생태계 활성화 및 인력 양성 지원 목적 • http://aiopen.etri.re.kr/ • 2017.10.30 서비스 시작 – API 사용 통계 (2019.08.27 기준) • 기관 수: 1,004 기관 • 사용자 수: 2,617 명 • 누적 일 평균 사용량: 39,820건 • 최근 7일 일 평균 사용량: 69,848건 • KorBERT 다운로드: 251건
  • 17. Copyright© 2017 by ETRI (2.1) BERT 이후 최근 연구 결과 • BERT pre-training 관련 최근 연구 결과 – (2019.04) ERNIE: Enhanced Representation through Knowledge Integration – (2019.05) BERT update: Whole word masking model – (2019.07) SpanBERT: Improving Pre-training by Representing and Predicting Spans – (2019.07) RoBERTa: A Robustly Optimized BERT Pretraining Approach
  • 18. Copyright© 2017 by ETRI (2.1) BERT 이후 최근 연구 결과 • (기타) 언어모델 pre-training 관련 최근 연구 결과 – (2019.06) XLNet: Generalized Autoregressive Pretraining for Language Understanding – (2019.05) Unified Language Model Pre-training for Natural Language Understanding and Generation – (2019.05) MASS: Masked Sequence to Sequence Pre-training for Language Generation – (2019.03) Cloze-driven Pretraining of Self-attention Networks
  • 19. Copyright© 2017 by ETRI (2.1) BERT 이후 최근 연구 결과 • ERNIE: Enhanced Representation through Knowledge Integration (Baidu) – Key points: masking strategy • Basic-level masking • Entity-level masking • Phrase-level masking
  • 20. Copyright© 2017 by ETRI (2.1) BERT 이후 최근 연구 결과 • BERT update: Whole word masking model (Google) – Key points Input Text the man jumped up , put his basket on phil ##am ##mon ' s head Original Masked Input [MASK] man [MASK] up , put his [MASK] on phil [MASK] ##mon ' s head Whole Word Masked Input the man [MASK] up , put his basket on [MASK] [MASK] [MASK] ' s head
  • 21. Copyright© 2017 by ETRI (2.1) BERT 이후 최근 연구 결과 • SpanBERT: Improving Pre-training by Representing and Predicting Spans (Univ. Washington, Univ. Princeton, Facebook) – Key points • Span Masking • Span Boundary Objective • Single-Sequence Training
  • 22. Copyright© 2017 by ETRI (2.1) BERT 이후 최근 연구 결과 • RoBERTa: A Robustly Optimized BERT Pretraining Approach (Facebook) – Key points • Static vs. Dynamic Masking • Model Input Format and Next Sentence Prediction – SEGMENT-PAIR+NSP – SENTENCE-PAIR+NSP – FULL-SENTENCES (no NSP) – DOC-SENTENCES (no NSP) • Training with large batches
  • 23. Copyright© 2017 by ETRI (2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습 • (1) 대용량 말뭉치 수집 – 총 23.5GB / 약 47억개 형태소 수집 – 유형: 위키백과 및 신문기사 (약 15년 분량) 등 • (2) Vocab 구축 – 형태소 단위 모델 및 wordpiece 단위 모델 병렬 구축 및 비교 • (3) Pre-training 학습 데이터 생성 – 대용량 말뭉치 대상 Mask LM 및 NSP task 데이터 생성 • (4) Pre-training 학습 수행
  • 24. Copyright© 2017 by ETRI (2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습 • Vocab. 구축 고려사항 – 수량: 최대 3만 여개의 vocab. 구축 – Vocab entry가 통계적으로 일정 빈도 이상 발생 필요 – UNK 발생 최소화 • Vocab 구축 후보 – (1) 음절 단위 사전 구축 • 예: 한 / 국 / 어_ / 단 / 어 / 는_ / 형 / 태 / 소 / 로_ / 구 / 성 / 된 / 다 / ._ (15 token) – 영어 character based LM과 유사 – 사전 entry 수 감소 및 표현력 저하 – 동일한 512 seq이더라도, 더 짧은 문장 표현 한계 – (2) Wordpiece 단위 사전 구축 • 예: 한국 / ##어 / 단 / ##어는 / 형태 / ##소로 / 구 / ##성된 / ##다. (9 token) – 조사/어미가 이전 형태소와 결합되는 경우 빈번 – (3) 형태소 단위 사전 구축 • 예: 한국어/NNP_ 단어/NNG_ 는/JX_ 형태소/NNG_ 로/JKB_ 구성/NNG_ 되/XSV_ ㄴ다/EF_ ./SF_ (9 token) – 형태소 분석기 적용 필요
  • 25. Copyright© 2017 by ETRI (2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습 • Vocab. 구축 세부 내용 – (1) 어절의 시작 표현 / 끝 표현 구분 • 시작 구분: 한국 ##어 단 ##어는 ... • 끝 구분: 한국 어_ 단 어는_ – (2) 형태소 단위 사전 구축 시, 형태소 태그 사용 여부 • 태그 사용: 한국어/NNP_ 단어/NNG_ 는/JX_ ... • 태그 미사용: 한국어_ 단어_ 는_ ... 구성_ 되_ ㄴ다_ ._ – 사전 구축 결과 • BPE 알고리즘 사용 • 형태소 기반 사전: 30,349 vocabs • Wordpiece 기반 사전: 30,797 vocabs 비고: TTA표준 호환 형태소분석기 사용 필요 <형태소 분석 결과 예> (1) 사용하다: 사용/NNG + 하/XSV <-> 사용하/VV (2) 산다: 살/VV + ㄴ다/EF <-> 산/VV + 다/EF (3) 연구원: 연구/NNG + 원/XSN <-> 연구원/NNG
  • 26. Copyright© 2017 by ETRI (2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습 • Pre-training 학습 데이터 생성 – 중요 파라미터 • max_seq_length / masked_lm_prob / max_predictions_per_seq • dupe_factor – Training epoch 보다 큰 dupe factor 사용  Dynamic Masking – (초기) word masking  (후기) whole-word masking • Pre-training 학습 수행 – Base 모델 파라미터 • 512 sequence / 12 layer / 768 hidden/ 12 heads (64 per head) – 중요 학습 파라미터 train_batch_size 가능한 최대 크기 (메모리 부족 시, gradient accumulation 적용) max_seq_length 학습 데이터 생성 시 파라미터 (초기 256, 후기 512) max_predictions_per_seq 학습 데이터 생성 시 파라미터 num_train_steps 학습 데이터 생성 instance 수 기반 계산 num_warmup_steps 처음 학습 시 10,000 step (추가 학습 시 -1) learning_rate 처음 학습 시 1e-4 (추가 학습 시 3e-5) weight_decay_rate 0.01
  • 27. Copyright© 2017 by ETRI (2.2) 한국어에 적합한 Vocab. 구축 및 KorBERT 학습 • KorBERT 구축 모델 평가
  • 28. Copyright© 2017 by ETRI (2.3) KorBERT 활용 • 법률분야 질의응답 시스템
  • 29. Copyright© 2017 by ETRI (2.3) KorBERT 활용 • 법률분야 대상 추가 pre-training – 일반분야 언어모델 기반 법률분야 언어모델 구축 • 법률분야 원시 말뭉치: 186MB – 법률분야 기계독해 성능 • 평가셋: 법률분야 GS1000 평가셋 • (법률분야 모델) EM52.0% / F1 79.20% • (일반분야 모델) EM 50.5% / F1 77.19% • KorBERT 기반 검색 단락 재순위화 모듈 개발 – IR 대비 Top1 +16.7% 성능 (IR: 57.0% / 재순위화: 73.7%) – 질문: 대한민국헌법에서 대통령의 임기는 얼마인가? 검색 순위 재순위 순위 재순위 점수 정답 근거단락 1 4 0.0002 70일 내지 40일전 ①대통령의 임기가 만료되는 때에는 임기만료 70일 내지 40일전에 후임자 를 선거한다. 2 2 0.0011 4년 ②원장은 국회의 동의를 얻어 대통령이 임명하고, 그 임기는 4년으로 하며, 1차에 한하여 중임할 수 있다. 3 3 0.0004 중임변경을 위한 헌법개정 ②대통령의 임기연장 또는 중임변경을 위한 헌법개정은 그 헌법개정 제안 당시의 대통령에 대하여는 효력 4 1 0.9997 5년 대통령의 임기는 5년으로 하며, 중임할 수 없다.
  • 30. Copyright© 2017 by ETRI (2.3) KorBERT 활용 • 한컴오피스 2020 신규버전에 위키백과QA 탑재 예정 (2019.10) • 클라우드 오피스 문서 기반 질의응답 시스템(ODWiseQA) 개발 예정
  • 31. Copyright© 2017 by ETRI (3) Some Questions • 실시간 서비스를 위한 속도 개선 – Parameter tuning – Quantization, Weights pruning, Knowledge distillation • (1) BERT 모델 구조적 한계 – Fixed sequence length & Expensive computation cost • (2) 외부 지식 / 메모리 활용 필요 – BERT 모델 110M / 340M 파라미터에 모든 지식 저장 • (3) Cross-Encoding 방식 한계 – 사용자 질문마다 모든 정답 후보 단락을 새로 계산해야 함 • (4) 미해결 문제 (selected from too many items) – Document-level QA / Multi-hop QA / IR
  • 32. Copyright© 2017 by ETRI (3) Some Questions • (1) Fixed sequence length & Expensive computation cost – Adaptive Attention Span in Transformers (Facebook) • Transformer 모델 기반 character level LM task z : each attention head span (학습 대상) R : 파라미터 (32)
  • 33. Copyright© 2017 by ETRI (3) Some Questions • (2) 외부 지식 / 메모리 활용 필요 – Large Memory Layers with Product Keys (Facebook) H=4 memory heads / k = 32 keys per head / |K| = 5122 memory slots Table 3: Perplexity and memory usage for different memory positions in a transformer with 6 layers. Adding a memory in positions 4 or 5 maximizes the performance (layer 1 is the worst).
  • 34. Copyright© 2017 by ETRI (3) Some Questions • (3) Cross-Encoding 방식 한계 – #1: Real-Time Open-Domain Question Answering with Dense-Sparse Phrase Index ( today talk by Minjoon Seo) – #2: Real-time Inference in Multi-sentence Tasks with Deep Pretrained Transformers (Facebook) • Given a dialogue context (i.e. conversation history), selects the best next sentence to output from N possible candidates. 정답 단락 BERT 결과 사전 색인 가능
  • 35. Copyright© 2017 by ETRI (3) Some Questions • (3) Cross-Encoding 방식 한계 – #2: Real-time Inference in Multi-sentence Tasks with Deep Pretrained Transformers (Facebook) Pre-training on Reddit, which is a dataset more adapted to dialogue
  • 36. Copyright© 2017 by ETRI (3) Some Questions • (4) 미해결 문제 (selected from too many items) – [Document-level QA] Google Natural Questions Source of questions The questions consist of real anonymized, aggregated queries issued to the Google search engine. Simple heuristics are used to filter questions from the query stream. Thus the questions are “natural”, in that they represent real queries from people seeking information. Task definition The input to a model is a question together with an entire Wikipedia page. The target output from the model is: 1) a long-answer (e.g., a paragraph) from the page that answers the question, or alternatively an indication that there is no answer on the page; 2) a short answer where applicable. The task was designed to be close to an end-to-end question answering application.
  • 37. Copyright© 2017 by ETRI (3) Some Questions • (4) 미해결 문제 (selected from too many items) – [Multi-hop QA] HotpotQA • A Dataset for Diverse, Explainable Multi-hop Question Answering Key features - require finding and reasoning over multiple supporting documents to answer - provide sentence-level supporting facts required for reasoning, allowing QA systems to reason with strong supervision and explain the predictions
  • 38. Copyright© 2017 by ETRI (3) Some Questions • (4) 미해결 문제 (selected from too many items) – [IR] Latent Retrieval for Weakly Supervised Open Domain Question Answering (Google) Table 5: Main results: End-to-end exact match for open-domain question answering from question- answer pairs only. Datasets where question askers know the answer behave differently from datasets where they do not. BERTQ / BERTB : inverse close task (ICT) pre-training Top-k Retrieval : use Locality Sensitive Hashing algorithm
  • 39. Copyright© 2017 by ETRI 감사합니다