issues
search
subinium
/
Deep-Papers
Deep Learning Paper Simple Review + Helpful Article
48
stars
2
forks
source link
RoBERTa: A Robustly Optimized BERT Pretraining Approach
#10
Closed
subinium
closed
3 years ago
subinium
commented
3 years ago
https://arxiv.org/abs/1907.11692
RoBERTa
subinium
commented
3 years ago
Introduction
초록만 읽어도 짜릿하다.
BERT는 Undertrain 되어있다!. 후속연구는 실험 시간/리소스 소요로 엄밀한 비교가 어려움
Hyperparameter의 선택을 통해 성능을 높일 수 있음
Hyperparameter의 영향을 분석!
BERT vs RoBERTa
Peak Learning rate/ warm up step 조정
Adam beta_2 : 0.999 -> 0.98 (stable at large batch)
Sequence Length
BERT : pretrain에서 90%(길이 128, 256) 마지막 10%(길이512)
RoBERTa : 처음부터 길이 512 tokens
Dataset Size : 16GB -> 160GB
Dynamic Masking
기존 동일한 masking 대신 epoch마다 다른 mask
더 큰 데이터일수록 중요
NSP 제거 (Next Sentence Prediction)
기존 실험은 segment pair를 사용하며 NSP loss 사용 여부로 NSP의 유용성을 증명
NSP를 안쓰면 segment pair도 쓰면 안되는거지! 주장(다양한 입력을 쓰자)
4가지 Input
Segment-Pair : BERT와 동일
Sentence-Pair : Segment가 문장 단위, batch를 늘려 optimize 토큰 수 조정
Full Sentences : 문서 이어 붙여서 사용
Doc Sentences : 한 문서씩 사용. batch size를 dynamic하게 하여 길이 맞춤
입력 다양하게 해보니 NSP 제거 했을 때 더 좋음
Doc 방식이 제일 좋았으나 batch size 조정이 까다로워 Full 방식 사용
XLNet보다는 안좋은 성적이 나왔는데 이는 데이터셋 크기 차이.
Batch Size 조정
256, 2K, 8K 시 2K에 가장 좋은 성능 (perplexity와 downstream task)
32k에서 한 논문도 있다.
이 논문의 핵심은 LAMB optimizer인데 (LARS와 유사)
RoBERTa도 Large Batch에 대해 이를 사용했으면 더 좋은 성능이 나오지 않았을까?
Text Encoding을 character-level BPE -> byte-level BPE
근데 사전 연구에서 byte BPE 사용하면 성능이 떨어지나 universal encoding을 위해 사용
subinium
commented
3 years ago
ETC
최근 읽은 논문들은 연구의 매력이 느껴진다.
Google의 BERT(#4)에 대한 후속 연구를 Facebook에서 우리가 더 잘함!같은 경쟁
Transformer-XL을 리젝 당하고 보충해서
XLNet
을 만드는 칠전팔기의 의지
난 이런 연구자가 될 수 있을까.
논문 목차가 뭔가 이상하다고 느낀다.
(4. Training Procedure Analysis)로 다 이야기하고 (5. RoBERTa)라는 이름으로 그래서 우리가 만든게 RoBERTa야! 라고 하는데.
RoBERTa가 우리가 만든거고, 이런 장점이 있어~ 가 일반적이지 않나
Facebook 논문의 서술은 뭔가 묘하게 나랑 안맞는 것 같기도 (아직 내가 부족해서 그런걸로)
subinium
commented
3 years ago
도움되는 자료
Yeongmin's Blog