자연어 처리(NLP)에서 전이 학습은 사전 학습된 모델을 활용하여 새로운 태스크를 해결하는 강력한 기법이다.
이 글에서는 전이 학습의 정의, 주요 기법, 활용 사례, 그리고 한계를 다룬다.
전이 학습은 한 태스크에서 학습한 지식을 새로운 태스크에 적용하는 방법이다.
NLP에서는 대규모 텍스트 코퍼스에서 사전 학습된 모델을 다양한 다운스트림 태스크에 적용한다.
대규모 코퍼스를 사용하여 일반적인 언어 표현을 학습한다.
문장: "The cat is on the [MASK]."
예측: "mat"
사전 학습된 모델을 특정 태스크에 맞게 조정한다.
사전 학습된 모델의 특정 층에서 추출한 벡터를 다운스트림 모델에 입력으로 사용한다.
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")
inputs = tokenizer("This is an example.", return_tensors="pt")
outputs = model(**inputs)
features = outputs.last_hidden_state
모델 전체를 학습 가능한 상태로 두고 태스크 데이터로 추가 학습을 진행한다.
사전 학습된 모델의 원래 가중치를 동결한 상태로, 소규모 추가 레이어를 학습한다.
사전 학습된 BERT 모델을 미세 조정하여 리뷰 데이터의 긍정/부정을 분류.
from transformers import AutoModelForSequenceClassification, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
inputs = tokenizer("I love this product!", return_tensors="pt")
outputs = model(**inputs)
print(outputs.logits)
사전 학습된 모델을 사용하여 특정 문서에서 질문에 대한 답을 추출.
T5와 같은 모델을 사용하여 문서를 요약.
전이 학습은 NLP의 혁신을 이끈 핵심 기술로, 다양한 태스크에서 활용 가능하다.
효율적인 사전 학습과 미세 조정 전략을 통해 더 나은 성능을 달성할 수 있다.