-
NLP에서 전이학습 transfer learning자연어처리 공부 2024. 1. 28. 18:13
자연어처리에서 전이학습에 대해서 알아보겠습니다.
▶︎ transfer learning 이란?
→ 학습된 모델(pretrained model)을 다른 관련 작업에 활용하는 머신 러닝 기법입니다. 공부를 할 때는 내가 가지고 있는 데이터를 가지고 해당 분야에서 유명한 딥러닝 모델을 쓰지만, 모델 성능과 학습 속도, 비용면에서 pretrained model을 사용하는 것이 좋습니다. 추가로 사전에 학습된 모델을 통해 나의 테스크에 더 맞게 파인튜닝해서 많이 사용합니다.
▶︎ pretrained model을 쓰는 이유?
→ 특히 자연어 처리, 이미지 인식, 음성 처리 분야에서 transfer learning을 많이 사용합니다. 그 이유는 해당 분야에서는 데이터의 양이 학습 성능을 좌우할 정도로 중요합니다. 레이블이 지정되어 학습하기 좋은 데이터를 가지고 있으려면 엄청난 수작업이나 시스템이 있어야 합니다. 수작업은 사실말이 안되죠! 그래서 플랫폼으로 서비스하는 구글, 페이스북, openai 등의 대기업만이 가능하고 거기서 만든 모델을 가져다 쓰는 겁니다. 또한 이런 모델들은 일반적인 데이터를 가져다 쓰기 때문에 다양한 분야에서 사용할 수 있습니다. Pretrained 모델을 초기 가중치로 사용하고, 가지고 있는 나의 데이터로 좀 더 특화된 학습을 진행함으로써 모델 성능을 향상시키는 겁니다.
▶︎ 자연어처리에서 pretrained model 종류는?
→ 구글의 BERT (인코더 모델, 양방향 교육을 사용, 문장의 맥락을 이해하기 위해 양방향에서 문장을 읽습니다.)
→ Openai의 GPT(디코더 언어 모델, 다음 단어를 잘 예측할 수 있도록 학습된 언어모델, 문장 생성에 최적화 되어 있습니다.)
→ ELMo (언어 모델로 하는 임베딩 모델, 문맥을 고려한 단어 임베딩)
참고 자료
pretrained model : https://wikidocs.net/157001
ELMo 예제 : https://wikidocs.net/33930
kogpt2 (SKT) : https://github.com/SKT-AI/KoGPT2
kogpt2 + fine tuning 예제 : https://github.com/sohyeon98720/KoGPT2-finetuning
kogpt2 + fine tuning 예제 : https://github.com/JLake310/pytorch-kogpt2-example
'자연어처리 공부' 카테고리의 다른 글
[ChatGPT] 왜 프롬프트 지니를 써야할까? (0) 2024.01.09 [자연어처리] Transformer 쉽게 풀어서 정리해드립니다. (0) 2024.01.05 [자연어처리] N-gram으로 아이오아이 너무너무너무 언어모델 학습하기. 다음에 올 가사 생성하기 (0) 2024.01.03 [자연어처리] Text-CNN 구현하기 (코드 위주) (0) 2024.01.02 [자연어처리] 문자를 숫자로 변환하는 방법 (BOW, TF-IDF, Word-Embedding) (0) 2024.01.02