GAN의 원리에 착안한 ELECTRA와 학습하지 않아도 응용을 잘하는 GPT-3
1. GPT-3
1-1) introduction
특별한 구조 변경없이 GPT-2에 비해 비교할 수 없을 정도로 self-attention block을 늘려 parameter수를 압도적으로 늘렸다.
더욱 많은 데이터와 더욱 큰 batch size를 사용함
GPT-2와는 model size 격차가 엄청나다.
1-2) few shot learner
GPT-3가 놀라운 점은 GPT-2가 보여주었던 zero shot learning의 가능성을 높은 수준으로 끌어올렸다는 점이다.
pre-train한 GPT-3에게 여러가지 setting에서 번역 task를 수행시켰다.
여기서 translation 데이터는 전혀 학습하지 않았다.
먼저 task description으로 ‘Translate English to French:’를 주고 Cheese >를 주면 cheese를 French로 번역해준다. 이것을 zero shot setting라고 부른다.
pre-train으로 학습한 사전지식을 통해 시험 문제인 task description을 이해하고 번역문을 정확히 생성하는 것이다.
이번에는 task description을 주고 하나의 완성된 예시로 sea other > loutre de mer을 주는 것이다.
그 후 cheese > 로 번역을 시켜보는 방식이 있다. 이것이 one shot setting이다.
pre-train으로 많은 양의 언어 지식을 이해한 GPT-3가 순간적으로 단 하나의 예시만 보고 번역을 수행하는 것이다.
few shot setting은 하나의 예시가 아닌 여러가지 예시를 주는 것이다.
여기서 중요한 점은 예시 데이터를 보는 순간에도 가중치 업데이트 같은 특별한 학습은 일어나지 않는다는 점이다.
예시도 조금 주는 것이라고 생각하기 쉬운데 few shot setting은 충분히 많은 예시를 주나보다
https://littlefoxdiary.tistory.com/44
1-3) GPT-3의 놀라운 점
down stream task data를 학습하지 않고도 방대한 언어 데이터를 pre train한 GPT-3가 task description을 이해하고 일부의 예시를 순간적으로 보면 task를 잘 수행한다는 점이다.
일반적으로 down stream task를 수행하기 위해 fine-tune 과정을 거쳤다.
pre-train 구조에 이전 output layer를 걷어내고 downstream task를 위한 output layer를 새로 만든 뒤 downstream task data를 학습하여 layer의 가중치를 미세조정하는 과정을 거쳤다.
이렇게 task에 따라 매번 다른 fine-tune과정을 거친다는 것이 기존 모델이 가지는 한계점이다.
그러나 GPT-3는 모델의 구조 변경없이도 inference 과정에서 순간적으로 일부 예시데이터만 빠르게 보고<이 순간에도 가중치 업데이트는 일어나지 않는다> 주어진 단어의 번역을 정확히 수행했다는 점이 놀라운 부분이다.
이 과정이 가능해야하는 이유는 첫번째로 label된 data는 한정되어 있어서 down stream task를 위한 데이터를 모으기 쉽지않다.
두번째로 사람은 자기가 가지고 있던 지식을 활용하여 일부 예시 언어를 보고 빠르게 이해할 수 있는 능력을 가졌기 때문이다.
1-4) GPT-3의 성능 측정
문맥에 섞인 랜덤한 기호를 제거하는 문제에서 각 setting별로 GPT-3 성능을 측정함.
성능을 측정하면서 보는 예시 데이터를 이용해 가중치 업데이트가 이루어지지 않는다는 점이 중요한 특징이다.
오직 예시 데이터를 잘 활용하느냐에 따라 성능이 결정된다는 것이다.
parameter 수가 많을수록 예시 데이터를 그만큼 잘 활용한다는 의미
parameter수를 늘릴수록 setting 방식에 무관하게 성능은 끝을모르고 증가함
말 그대로 parameter가 많으면 예시 데이터를 잘 활용한다는 의미다.
2. ELECTRA
2-1) model의 특징
Masked language modeling을 사용하여 pre-train을 한 Generator와 Generator의 예측 결과를 새로운 모델에 넣어 기존 문장의 원래 단어와 일치하는지(original) 그렇지 않은지(replaced)를 구분하는 Discriminator를 이용했다.
Generative Adversarial Network의 기본 아이디어에 착안한 것이다. Generator와 Discriminator는 적대적인 학습 관계를 가진다.
---------------------------------------------------------------------------------------------------------------------------------------
적대적인(adversarial) 학습관계란?
generator가 mask로 가려진 단어를 생성하고 discriminator가 정확히 구별해내면 generator는 구별을 더 못하게 더욱 정교하게 생성하고 discriminator는 더 정확히 구별해낼려고 고도화시키는 two min max game
-----------------------------------------------------------------------------------------------------------------------------------------
2-2) discriminator
ELECTRA의 핵심인 pre-train network는 discriminator이다.
generator가 학습하는 방식이 masked language modeling으로 mask된 단어를 예측하는 학습이라면
discriminator는 replaced token detection pre-training으로 mask에서 치환된 단어가 replace인지 original인지 탐지하는 학습이다.
BERT를 이용한 Generator를 학습하여 mask를 예측한 결과를 discriminator에 넣는다.
ground truth는 알고있기 때문에 결과에 맞춰 구별 결과에 대한 loss를 최소화하는 방향으로 학습을 진행한다.
이 과정을 반복하여 discriminator를 고도화시킨다.
이렇게 학습시키면 generator와 discriminator 2개를 얻는데 핵심은 discriminator로
이것을 실제 pre-train network로 쓰며 downstream task에 fine-tuning하는 과정으로 사용함
2-3) discriminator의 효과
실제로 replace token detection pre-training으로 학습하는 discriminator가 효과가 있을까? 그래야 의미가 있는데
GLUE data에서 학습 계산량에 따라 성능이 끝없이 오르는데
동일한 model size, data 등에서 replaced token detection pre-training을 한 ELECTRA가
masked language modeling pre-training을 한 BERT보다 성능이 좋다는 것이 나타난다.
'딥러닝 > NLP' 카테고리의 다른 글
NLP에서 경량화를 시도하려는 연구들 알아보기 (0) | 2022.10.28 |
---|---|
BERT를 가볍게 만드려는 시도 - ALBERT 모델 공부하기 (0) | 2022.10.27 |
BERT의 Transfer learning 활용 예시 알아보기 (0) | 2022.10.25 |
현대 NLP 모델의 근간이 되는 BERT의 기본적인 특징 (0) | 2022.10.24 |
괴물 언어모델 GPT-1에서 더 강력해진 GPT-2 파헤치기 (0) | 2022.10.21 |