BERT, GPT-2
- BERT - Bidirectional Encoder Representations Transformer
- GPT-2 - Generative Pre-trained Transformer 2
리뷰
딥러닝의 계산적 특성
- 대부분의 계산이 행렬곱으로 구성
- 심층신경망, 합성곱 신경망, 트랜스포머의 학습 및 추론에서 가장 큰 비중을 차지하는 것이 행렬곱
계산 강도와 루프라인 모델
BERT (2018, Google)
개 요
- 학습데이터 : 33억 개 토큰
- 구조 : 트랜스포머 인코더 12개(base), 24개(large)
- 임베딩 벡터 크기 : 768(base), 1024(large)
- 인코더별 어텐션 헤드의 수 : 12개(base), 16개(large)
- 학습가능한 모수의 수 : 1.1억개(base), 3.3억개(large)
- 특징
- Masked Language Model : 빈 칸을 맞추는 것으로 학습
- 범용성 확보를 위해 문장 2개를 입력으로 받음
- 당시 11개의 서로 다른 자연어 처리과업에서 SOTA 달성
입력
- 주어진 문장을 WordPiece 토큰화 ➔ 최대 512개의 토큰이 입력
- 문장의 처음에는 [CLS], 끝에는 [SEP]의 특수 문자가 대응
- 트랜스포머와 유사한 위치 임베딩 활용 / 문장 구분을 위한 세그먼트 임베딩
사전 학습 모델 : 마스크 언어 모델
- 입력 문장의 토큰 중 15%를 무작위로 [MASK] 토큰으로 설정
- 무작위로 선정된 토큰은 80%를 [MASK], 10%는 다른 무작위 토큰, 10%는 그대로 둠
- My dog is hairy 에서 hariy가 선택된경우
80%는 [MASK]로 대체
10%는 무작위(예-apple) 대체
10%는 그대로 둠
- 무작위는 전체의 1.5% 수준
- [MASK] 토큰은 FC층을 거쳐 예측
→ 손실을 계산하여 가중치 업데이트
사전 학습 모델 : 문장 예측
- 두 문장의 관계를 통한 자연어 처리 과업에 대응
- 두 문장의 입력은 50%가 연속된 문장, 50%는 무작위
Fine Tuning
- 배치 사이즈 : 16, 32
- 학습률(adam) : 5e-5, 3e-5, 2e-5
- Epoch : 2, 3, 4
- 10만개 수준의 재학습 데이터가 확보된 경우 초모수 선정에 자유로움
- 어텐션 마스크 추가
- [PAD] 토큰에 대해서 0으로 부여
- 불필요한 연산을 하지 않도록 함
GPT-2 (2019, OpenAI)
개 요
- 학습데이터 : 7,000권의 도서 말뭉치(GPT-1), 40GB WebText(GPT-2)
- 구조 : 트랜스포머 디코더 12개(GPT-1), 48개(GPT-2)
- 임베딩 벡터 크기 : 768(GPT-1), 1,600(GPT-2)
- 인코더별 어텐션 헤드의 수 : 12개(GPT-1), 12개(GPT-2)
- 학습가능한 모수의 수 : 1.17억개(GPT-1), 15억개(GPT-2)
- 특징
- 디코더 기반의 단방향 언어 생성으로 학습
- GPT-1 → GPT-2의 구조적 확장을 통한 성능향상
- 제로샷 학습으로 범용성을 증명
입력
- 토크화 : 50,257개의 vocabulary (Byte Pair Encoding)
- 최대 토큰수 : 1,024 (임베딩 벡터의 크기는 1,600)
- 토큰수 만큼 사전정보를 줄 수 있다는 점에서 제로샷이 가능
- 위치 인코딩은 최대 토큰 수 만큼 (1,024)
디코더의 셀프 언텐션의 역할
인코더 어텐션 vs 디코더 어텐션
출력
재학습
T5 (2020, Google)
개요
- 학습데이터 : C4(Colossal Clean Crawled Corpus)
- 구조 : 인코더-디코더 각각 12개(base)
- 임베딩 벡터 크기 : 768(base)
- 인코더별 어텐션 헤드의 수 : 12개(base)
- 학습가능한 모수의 수 : 2.2억개(base)
- 특징
- 다양한 크기의 빈칸 채우기에 좋은 성능 보유
- 공개 당시 디코더 구조보다 성능이 우수함
- 계산량이 관건이라는 결론..
댓글남기기