트랜스퍼 러닝(transfer learning)
트랜스퍼 러닝이란 특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법을 가리킨다.
다음 그림처럼 태스크2를 수행하는 모델을 만든다고 가정하면 트랜스퍼 러닝이 도움이 될 것이다.
모델이 태스크2를 배울 때 태스크1을 수행해 봤던 경험을 재활용하기 때문이다!
트랜스퍼 러닝이란 특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법이다.
트랜스퍼 러닝을 적용하면 기존 보다 모델의 학습 속도가 빨라지고 새로운 태스크를 더 잘 수행하는 경향이 있다.
BERT, GPT 등도 트랜스퍼 러닝이 적용되었다.
그림 1-6에서
태스크1은 업스트림 태스크라고 부르고
태스크2는 다운스트림 태스크 라고 부른다.
태스크1은 다음 단어 맞히기, 빈칸 채우기 등의
대규모 말뭉치의 문맥을 이해하는 과제
태스크2는 문서 분류, 개체명 인식 등
우리가 풀고자 하는 자연어 처리의 구체적인 문제들
업스트림 태스크를 학습하는 과정을 Pretrain 이라고 한다.
다운스트림 태스크를 본격적으로 수행하기에 앞서 학습한다는 의미에서 이런 용어가 붙었다.
업스트림 태스크
다음 단어 맞히기
GPT 계열 모델
예를 들어 '티끌 모아 __'라는 문맥이 주어지고
학습 데이터 말뭉치에 티끌 모아 태산이라는 구(Phrase)가 많다고 하면
모델은 이를 바탕으로 다음에 올 단어를 태산으로 분류하도록 학습
모델이 대규모 말뭉치를 가지고 이런 과정을 반복수행하면
이전 문맥을 고려했을 때
어떤 단어가 그 다음에 오는 것이 자연스러운지 알 수 있게 된다.
단어 맞히기로 업스트림 태스크를 수행한 모델을
언어 모델(language model)
빈칸 채우기
BERT 계열 모델
모델이 많은 양의 데이터를 가지고 빈칸 채우기를 반복 학습하면
앞뒤 문맥을 보고 빈칸에 적합한 단어 예측
'티끌 __ 태산'
빈칸 채우기로 업스트림 태스크를 수행한 모델을
마스크 언어 모델(masked language model)
자기지도학습(self-supervised learning)
사람이 일일이 정답(레이블)을 만들어 줘야 하는 지도 학습에 비해
업스트림 태스크는 수작업 없이도
다량의 학습 데이터를 아주 싼값에 만들어 낼 수 있다.
이처럼 데이터 내에서 정답을 만들고
이를 바탕으로 모델을 학습하는 방법을
자기지도학습(self-supervised learning)
다운스트림 태스크
다운스트림 태스크는 우리가 풀어야 할 자연어 처리의 구체적인 과제들
프리트레인을 마친 모델을 구조 변경 없이 그대로 사용하거나
여기에 태스크 모듈을 덧붙인 형태로 수행
대부분의 다운스트림 태스크 학습 방식은 모두 파인튜닝(fine-tuning)
문서 분류
자연어를 입력받아 해당 입력이
어떤 범주(긍정, 중립, 부정 등) 에 속하는 지 확률값 반환
프리트레인 마친 마스크 언어 모델(노란색 실선 박스) 위에 작은 모듈(초록색 실선 박스) 하나 더 쌓아
문서 전체 범주 분류
그림에서 CLS,SEP는 문장 시작과 끝에 붙이는 특수 토큰(token)
자연어 추론
문장 2개를 입력받아 두 분장 사이의 관계가
참, 거짓, 중립 등 어떤 범주인지 확률값 반환
프리트레인 마친 마스크 언어 모델(노란색 실선 박스) 위에 작은 모듈(초록색 실선 박스)을 하나 더 쌓아
두 문장의 관계범주 분류
개체명 인식
자연어를 입력받아 단어별로 기관명, 인명, 지명 등
어떤 개체명 범주에 속하는 지 확률값 반환
프리트레인 마친 마스크 언어 모델(노란색 실선 박스) 위에 작은 모듈(초록색 실선박스)을 쌓아
단어 각각의 개체명 범주 분류
질의응답
자연어(질문+지문)를 입력받아 각 단어가
정답의 시작일 확률값과 끝일 확률값 반환
프리트레인 마친 마스크 언어 모델(노란색 실선 박스) 위에 단어별로 작은 모듈을 쌓아
전체 단어 가운데 어떤 단어가 시작(초록색 실선박스) 인지 끝(붉은색 실선 박스)인지 분류
문장생성
GPT계열 언어 모델이 널리 사용
자연어(문장)를 입력 받아 어휘 전체에 대한 확률값 반환
이 확률값은 입력된 다음 문장에 올 단어로 얼마나 적절한지 나타내는 점수
프리트레인을 마친 언어 모델을 구조 변경 없이 그대로 사용해, 문맥에 이어지는 적절한 다음 단어로 분류하는 방식
'AI-LAB > NLP_Basic' 카테고리의 다른 글
NLP_6_미리 학습된 모델 (0) | 2023.06.26 |
---|---|
NLP_4_토큰화란? (0) | 2023.06.21 |
NLP_3_파인튜닝 외의 다운스트림 태스크 학습법 (0) | 2023.06.21 |
NLP_1_딥러닝 기반 자연어 처리 모델 (0) | 2023.06.20 |