rainbow/자연어처리
트랜스퍼 러닝 transfer learning (feat. 업스트림 태스크 vs 다운스트림 태스크)
윌_
2023. 3. 4. 10:26
개념
특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용 하는 기법.
쉽게, 한 분야의 문제를 해결하기 위해서 얻은 지식과 정보를 다른 문제를 푸는데 사용하는 방식을 의미한다.
아무 지식없이 처음부터 학습하는 것보다 익힌 것을 활용한다면 학습 속도가 더 빠른 것과 같다.
예시
자연어에서 예로 들기엔 설명이 복잡하여 하나의 포스팅으로 빼고 링크를 걸어두겠다.
https://brunch.co.kr/@geumjaelee/4
이미지 분류 를 예로 들어보자.
'이미지 분류' 문제를 해결하는데 사용했던 뉴럴 네트워크를 다른 문제, 데이터셋에 적용시켜 푸는 것을 의미한다.
전이학습을 수행하지 않은 모델들보다 당연히 빠르고 높은 정확도를 달성할 수 있다.
ImageNet과 같은 대량의 데이터셋으로 이미 학습한 모델은
다양한 이미지의 보편적인 특징 혹은 feature들을 학습했기 때문.
업스트림 태스크 vs 다운스트림 태스크
업스트림 태스크 (다음 단어 맞추기 :: GPT 계열, 빈칸 채우기 :: BERT 계열)
- 자연어의 다양한 문맥을 내재화한 모델, 이것을 향후 다양한 다운스트림 태스크에 활용함
- 업스트림 태스크 학습하는 과정을 프리트레인(pretrain)이라고 함
- 예시 :
- 다음 단어 맞추기
- '트렌드 코리아' 다음에 올 단어 맞추기
- 대규모 코퍼스(말뭉치) 내에 '트렌드 코리아 2023'이라는 구가 많다면 다음에 올 단어로 '2023'로 분류하도록 학습
- 이전 문맥을 고려할 수 있는 다음 단어 맞히기로 업스트림 태스크 수행한 모델 → 언어모델(language model)
- 빈칸 채우기
- '트렌드 ____ 2023' 사이에 올 단어 맞추기
- 해당 업스트림 태스크도 동일하게 '트렌드 코리아 2023'라는 구가 많다면 사이에 올 단어로 '코리아'로 분류하도록 학습
- 앞뒤 문맥을 고려할 수 있는 빈칸채우기로 업스트림 태스크를 수행한 모델 → 마스크 언어모델(masked language model)
- 다음 단어 맞추기
- 웹 문서와 같이 사람이 하나하나 레이블링을 해주지 않아도 되는 데이터를 대량으로 모아 학습 테스크로 활용하였기에, 저렴하게 데이터를 구할 수 있다는 장점이 있고, 이로써 업스트림 태스크 성능이 월등히 좋아졌다고 한다.
다운스트림 태스크 ( 문서 분류, 자연어 추론, 개체명 인식, 질의응답, 문장 생성 등 )
- 프리트레인을 마친 모델에 태스크 모듈만 덧붙인 형태로 구체적으로 풀고자 하는 문제를 의미한다.
- 프리트레인 마친 모델을 가지고 다운스트림 태스크를 학습하는 방식은 다양하다.
참고
https://dacon.io/codeshare/4438?dtype=recent
Do it! BERT와 GPT로 배우는 자연어 처리트랜스포머 핵심 원리와 허깅페이스 패키지 활용법