본 게시글은 충남대 정상근 교수님의 강의자료를 바탕으로 작성한 글입니다.
트랜스포머는 Seq2Seq 구조를 위해 만들어졌으며, RNN+Attention에 기반한 인코더+디코더 구조 대체를 위한 것이다.
근데.. 기존 문제를 조금 변형해서 생각해볼 수 있다.
원래는
"나는 학교에 간다"를 인코더에 넣어 "I go to school"을 디코더가 생성해내는 방식이었다면,
"Translate Kor to Eng : 나는 학교에 간다 => I go to school"라는 문장이 자연스럽게 생성될 확률,
P(I go to school | Translate Kor to Eng : 나는 학교에 간다)을 모델링하는 방식을 생각해볼 수 있다.
이 방식을 Autoregressive 문제로 접근해볼 수 있다. 이전 데이터를 기반으로 다음 데이터를 예측하는 방식인데,
번역에서는 이전 한국어 입력과 추가 문맥을 통해 영어 번역 결과를 예측하는 것이다.
GPT
따라서 디코더가 입력 시퀀스의 문맥을 활용해 출력 시퀀스를 생성하도록 디코더만으로 모델링할 수 있다는 것이다.
이 방식을 적극적으로 채용한 것이 GPT이다. 각 입력 단어의 위치 정보로 문맥을 파악하고, 이를 기반으로 다음 단어를 예측한다.
일단 다양한 텍스트에서 대규모 사전 학습을 거친 후 특정 생성에 적합하도록 미세 조정됨
인터넷에 수많은 텍스트 자원을 통해 조건부확률로 다음 단어 예측, P(next word | given words)... Autoregressive
사람이 구체적인 라벨링을 할 필요가 없고, 사람이 썼을 법한 시퀀스를 생성해낼 수 있다.
Good
- 자연스러운 텍스트 생성
- 강력한 문맥 이해
- 유연한 언어 사용
- 데이터 효율성
Bad
- 생성 속도 제한
- 초기 오류 전파 문제
- 학습 자원 많이 필요
- 긴 의존성 문제
GPT-1은 디코더 온리, GPT-2는 모델 확장 및 데이터 증가와 제로샷, GPT-3는 거대 모델로 퓨샷 및 제로샷 능력 향상
이미지처리, 음악 생성에도 이용
BERT
이와 반대로, 만약 데이터를 숫자로만 변환하고 싶은 task(감정 분석, 주가 예측 등)에서는 인코더만으로 모델링이 가능하다.
이 대표적인 예시는 BERT가 있다. BERT는 문맥에 민감한 특성을 파악할 수 있다.
Masked Language Model : 문장에서 일부 마스킹된 단어를 예측해내는 것 - 주변 문맥으로부터 어휘 예측
Next Sentence Prediction : 두 문장이 이어질 문장인가? - 맥락에 대한 이해를 하도록
Segment Embedding : 두 문장을 구분할 수 있는 정보 제공 - NSP에 유용, [SEP] 토큰이 두 문장의 경계 명확히
[CLS] 토큰 : 트랜스포머의 셀프어텐션으로 CLS에 모든 단어 정보 집약
Learnable Positional Embedding : sin/cos 함수 말고 학습 가능한 파라미터 도입
=> 이 임베딩을 모두 더해서 전체 임베딩 벡터 계산
BERT Pooler
전체 토큰의 정보를 하나로 추상화 혹은 요약해주는 부분
BioBERT(생물학분야), ChemBERTa(화학분야), SciBERT(과학적 문서)
공통점
(1) Self-Supervised Learning 기반 Pretraining + Fine-tuning 패턴
label이 없는 데이터를 기계학습에 적용할 수 있도록 한다.
일단 대규모 데이터에 대한 사전학습을 수행하여 언어의 패턴과 구조를 미리 학습해두는 방식 채택
(2) Downstream task
기계 번역, 질문 응답, 감정 분석 등 특정 목적의 작업 포함
'AI > 자연어처리' 카테고리의 다른 글
| PEFT(Parameter Efficient Fine-Tuning) (1) | 2025.06.11 |
|---|---|
| 언어모델 (0) | 2025.04.29 |
| Transformer (0) | 2025.04.29 |
| S2S, Seq2Seq, Sequence to Sequence Learning (0) | 2025.04.29 |
| 표현학습 (1) | 2025.04.29 |