Embedding: Transformer (2017)
3. 문장의 맥락을 파악해보자
- 문장 내 단어들의 관계 특성, 문장 내 중요한 단어를 고려한 배열을 생성하는데, 배열 생성을 조금씩 다른 방식으로 수십 번을 수행한 후 이를 합하여 문장을 배열로 나타낸다.
- 보통 위 과정을 1회에 끝내지 않고, 배열 생성 방식 자체를 또 수십 번 반복하여 최종적인 문장 배열을 생성한다.
- 2017년 이후 가장 좋은 성능을 내는 언어모델은 모두 이 transformer를 기반으로 하고 있다.
Transfer Learning
- Transfer learning: 미리 대량의 텍스트로 언어 모델을 한 번 학습해 두고(pre-training), 이 결과값에 관심있는 task에 적합한 모델을 붙여 다양한 문제를 푸는 모델을 만들어 보자 (fine-tuning)
- 언어를 이해하는 부분: Pre-training
- 개인용 GPU로는 너무 오랜 시간이 걸리며, 수십 개(최신 논문은 수천 개)의 GPU를 연결하거나, 구글 TPU을 사용하여 학습한다. 경험이 없다면 관련된 여러 변수를 테스트 해보는데도 비용이 많이든다(수 천만원 단위).
- 하지만 대부분의 경우 이렇게 pre-training된 언어 모델을 가져와 자신이 풀고 싶은 문제에 적용(fine-tuning)하는 것으로 충분하다.
- 다양한 pre-training 방법을 한국어에 적용하여 학습한 결과를 깃헙에 공유 (Bert, Albert, Electra, Gpt3 등).
- 태스크에 관한 부분: Fine-tuning
- Devlin et al. (2018) BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- Original Bert 논문에는 한 번의 pre-training으로 다음과 같은 4가지 형태의 fine-tuning이 가능함을 보임
- Sequence pair classification (문장 2개 관계 판단)
- Single Sentence Classification (문장 분류)
- Question Answering (질의응답)
- Single Sentence Tagging (개체 분석)
Autoencoding & Autoregressive
Application (Digital Marketing) 예시
Seq2Seq
'NLP' 카테고리의 다른 글
[NLP #2] Word2Vec & Fasttext & Doc2Vec (0) | 2024.02.05 |
---|---|
[NLP #1] 인공지능 동향, Bag of words와 TFIDF, 문서 유사도 분석 (2) | 2024.02.05 |