본문 바로가기
ML&DATA/책 & 강의

NLP with Transformers - Ch1

by sun__ 2022. 3. 28.

Ch1. Hello Transformers

 

Transformer: 2017년 'Attention is all you need' 논문에서 소개. 퀄리티와 비용 모든 측면에서 RNN의 성능을 초월함. 

ULMFiT: LSTM네트워크 기반 학습에서 효과적인 '전이학습' 방법 소개

 

The Encoder-Decoder Framework

LSTM 구조에서 출력벡터를 hidden state라고 함.

 

기계번역 분야에선 encoder-decoder 구조 또는 sequence-to-sequence 구조를 많이 사용함. 'encoder'는 입력 시퀀스로부터 정보를 last hidden state라고 부르는 숫자 표현으로 인코딩한다. 이 state는 'decoder'로 전달되어 출력 시퀀스를 생성한다.

 

attention이 없는 RNN기반 간단한 encoder-decoder구조에서는 encoder의 마지막 hidden state가 'information bottleneck'을 만드는 문제가 있다. 이는 decoder가 입력 시퀀스의 전체에 접근 가능해야 하는데, 긴 시퀀스를 입력받는 경우 생기는 큰 오버헤드를 의미한다. 이 문제는 attention을 적용해서 해결할 수 있다.

 

Attention Mechanisms

모든 encoder 레이어의 hidden state에 decoder가 접근 가능하도록 하고, 어떤 state를 사용할지 우선순위를 부여하는 것이 핵심 아이디어이다. encoder와 decoder가 공유하는 이런 attention에 관한 연산은, 순차적으로 진행해야 하고 병렬처리가 불가능하다.

 

self-attention은 같은 블럭의 레이어에 대해 사용한다. self attention으로만 이뤄진 RNN transformer는 좀 더 빠르게 학습 가능하다. 

 

Transfer Learning in NLP

'body'는 기본 도메인의 전반적인 특징을 학습하고 'head'는 task-specific 네트워크이다. 전이학습에서 pretrain이란, 빅데이터로부터 도메인의 전박적인 기본 특징을 학습하는 과정이다. pretrain모델을 현실적인 적은 데이터로 fine-tuning(domain adaptation)하여 사용한다.

 

NLP에서의 pretraining을 'language modeling'이라고 한다.

 

GPT는 트랜스포머의 decoder 블럭만 사용한다.

 

BERT는 트랜스포머의 encoder 블럭만 사용한다. masked language modeling 작업을 잘 하는 것으로 알려짐.

 

A Tour of Transformer Applications

트랜스포머 모델은 다음과 같은 분야에 사용할 수 있다.

  • Text Classification (ex, sentiment analysis)
  • Named Entity Recognition
    • real world object(New York, optimus Prime, dog 등)를 named entity라고 하는데, 입력 시퀀스에서 이걸 추출하는 작업을 의미한다.
  • Question Answering
    • context와 question을 넣으면 question에 맞는 내용을 context에서 찾아서 답해주는 작업을 의미
  • 요약
  • 번역
  • Text Generation
  • 그 외 수많은 작업들

 

Hugging Face Tokenizers

허깅페이스의 tokenizer는 토크나이징 뿐만 아니라, 입력 정규화나 de-embedding 등의 전처리 후처리 작업을 할 수 있다.

 

Main Challenges with Transformers

  • 영어가 아닌 다른 언어 처리
  • 전이학습을 적용해도 데이터가 너무 많이 필요한 문제
  • 긴 문장에 대한 처리
  • 설명 가능성
  • bias, 인터넷 등에서 인종차별, 성차별적인 부적절한 내용 학습하는 문제

 

 

 

 

 

'ML&DATA > 책 & 강의' 카테고리의 다른 글

Deep Learning with PyTorch - Ch6  (0) 2022.03.28
Deep Learning with PyTorch - Ch5  (0) 2022.03.26
Deep Learning with PyTorch - ~Ch3  (0) 2022.03.16