Transformer 모델 히스토리
- 2018.06 : GPT
- 2018.10 : BERT
- 2019.02 : GPT-2 , 개선된(및 더 큰) 버전의 GPT(윤리적인 문제로 바로 공개되지 않음)
- 2019.10 : DitilBERT, BERT보다 60% 더 빠르고, 메모리는 40% 덜 사용하면서도 성능의 97%를 유지하는 모델
- 2019.10 : BART와 T5, 원래 Transformer 모델과 동일한 아키텍처를 사용하는 두 개의 사전 훈련된 모델(최초)
- 2020.05 : GPT-3, fine-tuning 없이 다양한 작업을 잘 수행할 수 있는 GPT-2의 더 큰 버전(zero-shot learning)
Transformer 모델 분류
최근 유명한 모델은 세 가지 범주로 분류할 수 있습니다.
(모든 종류의 Transformer 모델을 포함하는 분류는 아닙니다.)
- GPT 계열 : auto-regressive Transformer
- BERT 계열 : auto-encoding Transformer
- BART/T5 계열 : sequence-to-sequence Transformer
Self-supervised learning & Transfer learning
Transformer 모델은 언어 모델로 개발되었습니다.
Self-supervised learning(자기 지도 학습)은 모델의 입력으로부터 목표가 자동으로 계산되는 훈련 유형으로 언어 모델에 적합한 방식입니다.
실제 특정 작업에서 더 좋은 성능을 내기 위해 Transfer learning(전이 학습) 단계를 거칩니다.
특정 작업에 대해 지도 방식, 즉 사람이 주석을 추가한 레이블을 사용하여 fine-tuned(미세 조정)됩니다.
Pretraining & Fine-tuning
Pretraining은 가중치를 무작위로 선정하여 모델을 처음부터 학습시키는 것을 의미합니다.
반면 Fine-tuning은 Pretrained(사전 훈련된) 후에 학습시키는 것을 의미합니다.
언어 모델을 학습시킬 땐 많은 시간과 자원이 필요합니다. Pretraining을 통해 언어에 대한 일종의 통계적인 지식을 갖도록 하여 실제 작업에 대해 학습시킬 땐 훨씬 적은 시간과 자원을 사용하도록 합니다.
일반적인 아키텍처
자세한 아키텍처는 다른 포스트에서 추가로 다룰 예정입니다. 여기에서는 공통적이고 기초적인 아키텍처만 소개합니다.
인코더와 디코더
- 인코더 : 모델에 넣을 수 있는 입력으로 바꿔줍니다.
- 디코더 : 모델 결과를 출력합니다.
활용할 작업에 따라 인코더 혹은 디코더만, 인코더와 디코더를 동시에 사용할 수 있습니다.
- 인코더만 활용한 모델 : 문장 분류, 개체명 인식(NER)과 같은 입력에 대한 이해가 필요한 작업
- 디코더만 활용한 모델 : 문장 생성과 같은 생성 작업
- 인코더-디코더 모델(sequence-to-sequence) : 번역, 요약과 같이 입력이 필요한 생성 작업
Attention 레이어
Transformer의 주요 특징은 attention layer라는 특수 레이어로 구성된다는 것입니다.
간단하게 설명하면 문장 중 중요한 단어에는 특별히 주의를 기울이고, 중요하지 않은 부분은 넘어가도록 하는 기능을 합니다.
Self-Attention, Multi-Head Attention, Content-Based Attention 등 다양한 유형이 있습니다.
원래 아키텍처
Transformer를 처음 발표한 논문인 Attention Is All You Need의 아키텍처입니다.
원래는 번역용으로 설계되었습니다. 왼쪽의 인코더는 특정 언어로 된 입력(문장)을 받고, 오른쪽은 디코더는 번역을 원하는 언어로 된 동일한 입력(문장)을 받습니다. 인코더는 문장의 모든 단어를 사용할 수 있지만, 디코더는 이미 번역이 완료된 문장의 단어만 사용할 수 있습니다.
용어 : Architectures vs. checkpoints
- Architecture : 모델의 뼈대
- Checkpoints : 아키텍처에 로드될 가중치
- Model : 아키텍처와 체크포인트처럼 명확하지 않은 개념. 둘 다를 의미할 수 있어서 모호성을 줄이기 위해서는 아키텍처와 체크포인트를 사용하는 것이 좋음.
본 포스트는 Hugging Face NLP Course를 번역하고, 일부 내용을 추가하여 작성하였습니다.
How do Transformers work? - Hugging Face NLP Course
2. Using 🤗 Transformers 3. Fine-tuning a pretrained model 4. Sharing models and tokenizers 5. The 🤗 Datasets library 6. The 🤗 Tokenizers library 9. Building and sharing demos new
huggingface.co
'금융 데이터 분석가 > text-analysis' 카테고리의 다른 글
[NLP Transformers] NLP 작업 순서 - Tokenizer, Model, Post Processing (0) | 2023.11.03 |
---|---|
[NLP Transformers] Encoder, Decoder, Encoder-Decoder 모델 (2) | 2023.11.02 |
[NLP] MBart fine-tuning을 위한 데이터 생성 (2) | 2023.10.28 |
BERT 입력 데이터 규칙 및 코드 (0) | 2023.10.24 |
[NLP] BERT 기반 영어-한글 번역 (0) | 2023.10.24 |