Transformer

Transformer
Transformer Architecture
-Introduced in “Attention is all you need”
-New Architecture: 기계번역에 있어서의 품질과 훈련 비용에 있어서 순환 신경망(RNN)을 능가
ULMFIT
-Introduced in Universal Language Model Fine-Tuning for Text Classification
-다양한 말뭉치로부터 언어 모형을 만든 후 적은 양의 label data로 fine tuning하여 최고 수준의 성능 이끌어냄
-이후 GPT, BERT 발전의 촉매가 됨

GPT
Introduced in Improving Language Understanding by Generative Pre-Training, 2018
BERT
Introduced in BERT: Pre-Training of Deep Bidirectional Transformers for Language Understanding, 2018
-Transformers architecture와 Non-supervised learning을 결합하여 언어 모형 학습
-대부분의 NLP Benchmark 최고의 성능 상회

Encoder Decoder Network

Transformer 이전: NLP의 Sota: LSTM 등 순환신경망(RNN) architecture
-각 step에서 상태(state) 정보를 다음 step에 전달
-이전 step의 정보를 축적하고 이를 사용해 예측
NLP_Transformers2-1
RNN: 기계 번역 시스템에서의 중요한 역할 수행
-Encoding: 인코더의 마지막 은닉 상태
-Decoding: 인코딩된 상태로부터 출력 시퀀스 생성
NLP_Transformers2-2
RNN 약점1: 정보 병목(Information BottleNeck) 현상
-인코딩 결과인 마지막 은닉 상태가 전체 입력 시퀀를 갈무리함
-필연적인 information loss

Attention Mechanism

Encoder의 각 step의 은닉 상태를 디코더에 모두 활용
Attention:
Encoder의 은닉 상태 출력에 가중치(attention)을 할당
NLP_Transformers2-3
기계번역에서의 Attention
-원문장과 번역 문장 간의 들어간 align 학습
-ex.영어-프랑스 번역 모델 간의 attention 시각화(밝을 수록 강한 Attention)
RNN 약점2: 순차적인 연산
-Sequence 전체에 대한 병렬화에 약함
NLP_Transformers2-4
Self-Attention(셀프 어텐션): 순환 구조 제거
-신경망의 같은 층의 모든 상태에 대한 Attention 작동
FFNN(Feed Forward Neural Network)
-병렬성 확보: 자연어처리 분야의 큰 혁명
NLP_Transformers2-5

NLP의 Transfer Learning

Computer Vision에서의 Transfer Learning
ResNet 등의 CNN 모델을 하나의 작업에 대해 훈련 이후 새로운 작업에 대해 Fine tuning
Model:
-Body(바디):풍부한 원래 Domain에서 다양한 특성 학습
(새로운 Domain의 모델 초기값으로 활용)
-Head(헤드): 새로운 도메인에서 집중적으로 학습

Supervised Learning(지도 학습)
-Domain별로 학습
Transfer Learning(전이 학습)
-정보가 풍부한 Domain에서 학습된 Model
-새 Domain 학습 모델의 Body 초기화
-Head는 적극 Tuning
-Body는 약하게 Tuning

Ex. ImageNet
-수백 만개의 Image에 대해 pre-training: 이미지의 공통된 특징을 Modeling
-특정 계열의 꽃 품종 분류: 도메인 특화 Fine Tuning
장점:
주로 동일한 양의 Label Data의 지도 학습보다 정확도가 높음
NLP_Transformers2-6
NLP에서의 Transfer Learning
-ULMFit (2018): NLP 분야의 Transfer Learning Idea 마련
-Pre-training
Language Modeling(언어 모델링): 이전 단어를 바탕으로 다음 단어 예측 (Wikipedia 등 접근 가능한 Test set 이용)
Domain adaptation(도메인 적응): Domain Corpus가 일정 규모 이상 풍부하다면 해당 Corpus에 대해 language modeling
Fine Tuning(파인 튜닝): 분류 문제라면, Classification Head를 별도로 두어 파인 튜닝
(Ex: Movie Review Emotion Classification)
NLP_Transformers2-7
NLP 대성공 원동력
-Attention Mechanism
-RNN 순차 처리를 극복한 병렬 학습
-전이학습 창립

HuggingFace Transformers

새로운 DL 연구 결과 활용 과정
-Model Architecture Coding (Pytorch, Tensorflow)
-Download pre-trained model weights
-Input Pre-processing => Model 전달 => Output Post-processing
-Define Data Loader(데이터 로더), Loss Function(손실 함수), Optimizer(옵티마이져)
HuggingFace
-다양한 Transformer model 표준화된 Interface 제공
-Model 적용 위한 코드와 도구 제공(Pytorch <-> Tensorflow)
-다양한 작업 Type 위한 Model Head 제공

Transformers Application Preview

Feedback about the Online Order
NLP_Transformers2-8 Pipeline(파이프라인): Fine-tuning된 Model 예측을 위한 추상화

Huggingface 생태계

Library
-코드 제공
Tokenizer: 시퀀서 처리기
Transformers: 트랜스포머스 구현체
Datasets: Data Loading / 변환 표준화
Accelerate: Multi-GPU, Multi-Node 등 고성능 훈련 방법
Hub:
-Pre-trained Model weights
-Dataset
-평가 지표를 위한 Script
NLP_Transformers2-17
약 150K 이상의 Model Hosting
-후보 Model 빠른 조회 가능
-Pipleline 등 초 간단 코딩으로도 Model Loading 가능
-Dataset Hosting
-평가지표 Script Hosting
-Model Card
-Dataset Card