본문 바로가기
Study/Deep Learning

NLP review[1]-Tranfer learning

by 들숨날숨흡 2022. 7. 27.
728x90

[Transferm learning] 

Transfer learning은 특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법을 가리킨다.

이를 수행했을 때의 장점은 태스크를 처음붵 학습하는 것보다 모델의 학습 속도가 빨라지고, 새로운 태스크를 더 잘 수행하는 경향을 보인다는 것이다.

 

Tranfer learning 개념도

이때, 태스크1을 Upstream 태스크라고 부르고, 태스크2는 이와 대비된 개념으로 Downstream 태스크라고 부른다. 태스크1은 다음 단어 맞히기, 빈칸 채우기 등 대규모 말뭉치의 문맥을 이해하는 과제이며, 태스크2는 문서 분류, 개체명 인식 등 우리가 풀고자 하는 자연어 처리의 구체적인 문제들을 다룬다.


[Upstream task]

대표적인 Upstream task 태스크 가운데 하나는 다음 단어 맞히기이다. 모델이 대규모 말뭉치를 가지고 이런 과정을 반복 수행하여 이전 문맥을 고려했을 때 어떤 단어가 그 다음에 오는 것이 자연스러운지 알 수 있게 된다. 이처럼 다음 다음 단어 맞히기로 Upstream task를 수행한 모델을 언어 모델(language model)이라고 한다.

 

이 언어 모델을 학습하는 것은 다음 단어에 들어가는 단어에 해당하는 확률은 높이고, 나머지 단어들의 확률은 낮추는 방향으로 모델 전체를 업데이트한다.

 

또다른 Upstram 태스크로는 빈칸 채우기가 있다. BERT 계열의 모델이 이런 태스크로 pretraining을 수행한다. 이는 문장에서 빈칸을 만들고 해당 위치에 들어갈 단어가 무엇일지 맞히는 과정에서 학습된다. 모델이 많은 양의 데이터를 가지고 빈칸 채우기를 반복 학습하면 앞뒤 문맥을 보고 빈칸에 적합한 단어를 알 수 있다. 이처럼 빈칸 채우기로 Upstream task를 수행한 모델을 마스크 언어 모델(masked language model)이라고 한다.

 

이 역시 언어 모델과 비슷한 방향으로 학습을 한다. 빈칸에 해당하는 단어의 확률은 높이고, 나머지 단어의 확률은 낮추는 방향으로 전체 모델을 학습한다.

 

이렇게 데이터 내에서 정답을 만들고 이를 바탕으로 모델을 학습하는 방법을 자기지도학습(self-supervised learning)이라고 한다.


[Downstram task]

Downstream task는 우리가 풀어야 할 자연어 처리의 구체적인 과제를 말한다. 보통 Downstream task는 pretraining을 마친 모델을 구조 변경 없이 그대로 사용하거나 여기에 태스크 모듈을 덧붙인 형태로 수행한다. 대부분은 BERT 계열 모델들을 사용한다.

 

이 Downstream task의 학습 방식은 파인튜닝(fine-tuning)이며, 이는 pretrain을 마친 모델을 downstream task에 맞춰 업데이트하는 기법이다. 

 

그 외에도 prompt tuning, in-context learning같은 것이 있다. fine-tuning 외의 2개가 주목을 받고 있는 이유는 최근 언어 모델의 크기가 엄청 커지고 있는데, 모델 전체를 업데이트하는 fine-tuning은 많은 비용이 들기 때문이다. 또한, prompt tuning, in-context learing으로 학습한 모델이 더 좋은 성능을 보이는 경우가 있기 때문이다. 

 

in-context learning에는 다음과 같이 3가지 방법이 있다.

(1) zero-shot learning : downstream task 데이터를 전혀 사용하지 않고, 모델이 바로 downstream task를 수행하는 것

(2) one-shot learning : downstream task 데이터를 1개만 사용하고, 모델은 이 1개의 데이터가 어떻게 수행되는지 참고한 뒤 downstream task를 수행한다.

(3) few-shot learning : downstream task를 몇 건만 사용하고, 모델이 이 몇 건의 데이터가 어떻게 수행되는지 참고한 뒤 downstream task를 수행한다.

728x90