🔎

exBERT: Extending Pre-trained Models with Domain-specific Vocabulary Under Constrained Training Resources

Posted on Fri, Mar 19, 2021 NLP 논문리뷰

TL;DR

Issue: General Knowledge로 학습한 BERT는 전문성 필요한 Domain에 효율 X

Solution: BERT 얼려두고 새 vocab, embeddings 만들고 추가 module(BERT-like) 붙여서 학습하자!

장점

단점

Idea & Question

이거, 사실 DAPT,TAPT가 아니라 Multilingual, 즉 Single language model을 Multilingual model로 만들수 있는 방법 아닐까?
KcBERT의 한계점이 General Knowledge가 부족한 부분인데, 이 부분을 쉽게(?) 보완할 수 있지 않을까?
모델 구조 자체가 바뀐다는 이슈는 있지만...
General BERT의 output을 사용하지만 새로 붙인 module만 학습한다면.. 따로 각각 학습해 쓰는 것보다 과연 성능이 더 좋을까?
충분히 많은 양의 데이터면 애초에 이런 레버리징을 할 필요도 없긴 함..
이게 BERT 등 PLM의 Online-learning의 길이 될까?
N-days 데이터로 학습해서 모델 사이즈 키워서 넣고 넣고?
하지만 데이터가 부족하면 애초에 new vocab을 위한 embedidng representation 자체가 안될거같은데.....
여기서 사용하는 추가 embedding부분을 단순한 word2vec의 weight로 Initalize & Freeze해서 쓰면?
어차피 Input output만 동일하면 상관없으니까, 학습하는 비용이 상당히 줄어들 듯
ex)"cell" 단어등 General corpus에 등장하는 단어같은 경우 어떻게 잘 학습이 될까??
BERT Model 대신 한국어 모델 없는 케이스에 대해서 '한국어'라는 Domain에 Adaptation
Longformer / T5 등 한국어 없는 모델에 추가해주면!?

Abstract

Introduction

General PLM의 이슈

exBERT!

Related work

exBERT details

exBERT = 
BERT
	+ Extension Embedding Layer 
	+ Domain vocab 
	+ Extension module(each Transformer layer)

Extension vocab & Extension Emb layer

Extension Module (=BERT Layer)

Experiments

exBERT Finetune

Downstream task Finetune

Result (Downstream task Finetune, NER)

macro F1-score on the NER task

1. Extension Vocab + Module

2. Extension Vocab(+emb) only

3. Extension Module only (no vocab)

Result on RE

Pretrain 시간(=computing power)에 따른 성능 향상 비교(NER)

Result on RE

실제 코드 동작하나?

Copy of exBERT - Code ver.