BERT, GPT와 같은 self-supervised learning의 가장 큰 수혜자라고 할 수 있는 영역이다.
External Knowledge인 Knowledgebase, knowledge graph와 같은 구조화된 형태의 DB에서 정보를 발췌하여 QA를 진행.
Open-Domain Questino answering은 external knowledge에서 정보를 검색한다. 대부분의 NLP task들은 자연어 형태의 sequence data를 기반으로 정보를 얻고 학습을 진행한다. 이러한 모델들을 fine-tuning 할 때, knowledgebase와 같은 구조화된 data를 사용하고자 하는 시도가 최근 trend다.
Open-Domain Question answering은 knowledgebase든 Wikipedia같은 자연어 데이터든 External Knowledge를 Retriever가 발췌해서 MRC를 진행하는 것이다.
지문에서 답을 찾는 것이 아니라, Pre-training model이 가지고 있는 정보와 external knowldeg만을 활용해 답을 찾는다. 일종의 zero-shot learning이다.
아직까지 chatbot을 위한 정형화된 답은 없다. 보통은 Seq2Seq로 구성한다.
Facebook에서 공개한 Blender Bot 2.0의 구조이다. 모델이 미리 알고 있는 정보와 인터넷의 정보를 결합해서 질의를 하고자 한다.
보통의 번역 task는 라벨링된 데이터를 활용한다. 이러한 task를 라벨링 되지 않은 데이터에 대해서 활용을 하고자 하는 분야다.
CycleGAN, StarGAN 등에서도 활용되는 기법과 동일하다.
Back-translation의 요지는 가령 영어를 프랑스어로, 다시 프랑스어를 영어로 번역했을 때 원본 문장이 생성되는지를 확인하는 것이다. 모델을 이애 대한 차이를 좁히도록 노력한다. 입력과 출력을 비슷하게 생성한다는 점에서 AutoEncoder와 비슷하지만, AutoEncoder처럼 latent vector에 어떤 것이 발생하는지 신경을 끄지 않는다.
중간 생성물인 프랑스어의 결과가 제대로 나오도록 노력하는 것이 핵심이다.
물론 중간생성물이 엉망임에도 입력과 출력 문장이 동일할 수 있다. 이러한 모순을 해결하기 위해 Denoising autoencoder를 사용하거나, decoder 결과물의 결과를 체크하는 등의 테크닉을 활용할 수 있다.
source 문장을 원하는 스타일로 바꾸는 task다. 가령, 문장의 어순을 바꾸거나 캐쥬얼한 문장을 바꾸거나 formal한 문장으로 바꾸는 것과 같은 task다.
encoder, decoder 사이에 style 정보를 넣어주거나 transformer에 x와 style에 대한 정보를 같이 주는 형태로 구현된다. conditional model, conditional generator라고 부르기도 하는 형태의 모델이다.
NLG(Natural language generation)의 지표로 BLEU score가 있다. 하지만 이는 사람이 직접 디자인한 점수일 뿐이고 모델에 대한 복합적인 지표가 아니다. 가령 BLEU score가 50도 되지 않지만 상용 모델로는 과분한 경우도 분명 존재한다. domain에서의 task를 얼만큼 잘 수행했는가에 대한 점수를 직접 디자인하기란 매우 어렵기 때문에 발생하는 문제다.
따라서 Quality Estimation에서는 정형화되지 않고 문장에 대한 다양한 요소들을 고려한 평가하고자 한다. 출력 문장이 좋은지에 대한 평가가 어렵기 때문에 어려운 분야라고 한다.
BERT encoding을 사용해서 평가를 수행한다. ground truth와 평가하고자하느 문장을 유사도를 통해 평가한다.
모든 NLP task를 자연어 생성 task만으로 처리하고자 하는 분야. GPT가 대표적이다.
CNN의 Few-shot과는 약간 다르다고 생각한다. 말 그대로 모든 task를 자연어 생성 task로 처리하기 때문에 task description, examples, prompt 조차도 자연어이다.
물론 번역과 관련된 데이터는 전혀 학습하지 않은 상태이기 때문에 Few-shot인 것은 CNN과 동일하다.
위 도식에서 task description, examples, prompt를 어떻게 썻을 때 원하는 task를 가장 잘 수행하는가를 알아내는 task다.
즉, 답을 얻고자 하는 질의에 사용되는 모든 문장을 optimize하는 task다. Prompt tuning을 위한 별도의 모델을 구성하지만 본래 모델(GPT)는 전혀 Fine-tuning하지 않는다.
Codex: a language model fine-tuning on publicy available python code from Github.
In-Context Learning, Prompt Tuning을 code에도 적용하니 코딩을 잘하더라.
다양한 형태의 정보를 혼용하는 모델.
Generating images from text descriptions. Conditional generator다.
이미지를 n개의 patch 단위로 쪼갠 후 patch들을 Embedding vector처럼 취급한다. Dall-E에서는 n개의 patch를 모아서 하나의 sequence처럼 처리하여 생성한다. transformer 기반으로 생성한다.
Text와 Image가 Semantic하게 유사하다면 Embedding space에서 비슷한 위치에 있어야 한다는 논리로 생성된 모델.
학습 데이터는 이미지와 캡션으로 구성된다. 다른 종류의 이미지에서 나온 캡션은 Embedding space에서 거리를 멀게 하고, 같은 종류의 이미지에서 나온 캡션은 거리를 가깝게 하는 방식으로 학습을 진행한다. 이것또한 transformer 기반이다.
Pre-trained model로써 굉장히 많이 사용한다!
CV, NLP 두 분야에서 모두 사용 가능한 굉장히 범용적인 Pre-trained model이다. 텍스트든 이미지든 뭐든지 encoding 가능하다.
NeRF라고 3D 이미지 생성 모델이 있는데 이게 CLIP을 transfer leraning한 것이라고 한다.