BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
subinium opened this issue · comments
Subin An commented
Subin An commented
Concept
-
인용수가 15000회가 넘어가는 최근 NLP의 근본이 아닐까 싶다. (대NLP의 시대의 서막)
-
우선 제목에서 3가지가 핵심이다.
- Pre-training : 이 논문을 시작으로 대규모 Pre-training
- Bidirectional : ELMo와 유사하게 양방향이고, transformer를 사용했다.
- ELMo를 이은 세서미스트리트 시리즈. 이 때부터인가요 논문 작명 보는 것만으로도 기대하게 된게..
-
이전에도 Transformer + 대규모 데이터셋은 GPT로 그 가능성을 맛봄
- 하지만 GPT는 uni-direction이고 단방향은 사전학습에 제한적이다.
- 양방향 컨텍스트를 통합하는 QA 테스크 등에 부적합.
- 그래서 이제 양방향 transformer encoder를 만들어봄
-
훈련은 unsupervised task 2가지로 진행
- Masked LM (MLM)
- 입력의 특정 퍼센트의 단어를 랜덤으로 왜곡
- 논문에서는 15% 마스킹하며, 이중 80% [MASK], 10%는 치환, 10%만 유지
- 왜곡 이후 Transformer Encoding을 거친후에 해당 파트를 예측하는 구성
- 빈칸 뚫어놓고 맞추기를 사용하여 컨텍스트 이해를 도왔다고 생각하면 된다.
- Next Sentence Prediction (NSP)
- 대량 Corpus에서 한 문장과 다른 문장을 이어 붙여 이게 이어지는 문장인지 아닌지 classsification
- balanced하게 50:50으로 맞추어 훈련 진행
- Masked LM (MLM)
-
BERT의 Input Embedding
- Token Embedding
- WordPiece Tokenizing : Bye Pair Encoding 알고리즘 이용, 빈도수 기반 Vocab(subword) 추출
- [CLS], [SEP] = 시작 토큰, 문장 구분 토큰
- [UNK] = 처음보는 토큰
- Segment Embedding : 문장 2개에서 앞문장인지 뒷문장인지
- Position Embedding : 위치 정보 제공
- Token Embedding
-
성과로 보여주는 구글. GLUE+SQuAD 등 11개 task에서 기존 논문들(ELMo, GPT)를 압도...
-
pre-trained model을 공개했고, 이를 downstream task에 fine-tuning해서 쓰기만 하면 된다.
Subin An commented
ETC
-
BERT와 GPT에서는 Activation Function을 GELU를 사용했다. 왜 이게 잘될까?
- 해보니까 잘된다. 이외의 답을 찾을 수 있을까?
- 좀 더 근본적으로 task에 따라 적합한 activation의 이유가 궁금... (관련 자료가 있다면 이슈로 달아주시면 감사하겠습니다.)
-
BERT를 중심으로 한 논문은 thunlp/PLMpapers에 많다.
- 속도, 효율성, 다른 task 적용 등의 여러 고민점을 개선한 논문들.
-
대표적으로 읽어야 하는 몇 개 논문. 대략적인 컨셉만 알거나, 모르는 논문이라 다른 이슈에서 또 다뤄볼 예정
-
자연어에 크게(?) 관심없지만 읽다보면 대규모 모델의 Interpretability + Explainability의 아이디어를 찾을 수 있지 않을까.
Subin An commented
도움되는 자료
- 제 첫 이해에는 김성현님 : [토크ON세미나] 자연어 언어모델 ‘BERT’ 3강 - BERT | T아카데미이 이해하기 가장 좋았습니다. 😄
- Jay Alammar : The Illustrated BERT
- BERT+Visualization :
- huggingface/transformers에서 좀 많은 공부를 할 수 있을 듯하다.
- graykode/nlp-roadmap
- GELU 찾다가 찾은 좋은 activation function 설명 자료