인공지능/자연어 처리

자연어 처리 복습 4 - seq2seq, ELMo, Transformer, GPT, BERT

이게될까 2024. 9. 3. 20:44
728x90
728x90

기존 RNN 모델의 성능이 별로였던 이유 - 입 출력이 고정되어 언어에 활용하기 부족한 점이 있다!

what are you doing now ?
너     지금  뭐해 ?   - ---------

이렇게 비는 경우가 생긴다.

 

Seq2Seq - LSTM으로 이루어진 Encoder와 Decoder을 통해 가변적인 길이의 입 출력을 가능하게 한다.

Encoder - 입력된 문장을 context vector에 압축(인코딩)하여 정보 저장  -> 문장 수준의 벡터 활용 가능
Decoder - context vector를 통해 출력 문장 생성 

한계 - 고정된 크기의 context vector때문에 정보 손실, LSTM을 사용하기 때문에 Vanishing Gradient 문제 발생

attention의 등장으로 입력 시퀸스의 길이가 길어져도 정보를 유지할 수 있게 되었다.

위 사진을 보면 알듯 디코더에서 나온 hidden state를 가지고 encoder의 hidden state와 dot product를 진행하여 각자의 유사도를 구하고, 그 유사도 점수를 다시 encoder의 hidden state와 가중합하여 decoder의 hidden state와 concat합니다.

이렇게 input의 모든 정보를 빠지지않고 잘 쓸 수 있게 됩니다.

 

ELMo - 사전학습을 통해 일반화된 언어 특성을 모델 파라미터 안에 함축

양방향 LSTM을 통해 양쪽 문맥을 다 고려하여 확률을 예측한다.

이렇게 사전학습된 임베딩을 통해 빠른 수렴과 학습 속도를 보인다. == 문맥 내 단어의 정보를 충분히 반영하는 벡터 표현

 

Transformer - attention만으로 구현된 Encoder, Decoder 모델 

순서 정보를 첨가하기 위해 Positional encoding 진행

attention에서 Query, key, value 값이 동일하여 단어에 대한 연관성, score를 확실하게 알 수 있다.

여기서 q,k,v를 나눠서 진행하면 Multi-Head Attention이 진행된다.

decoder에서는 masking을 통해 입력 데이터를 전부 주지 않고, 필요한 것 만 사용한다.

 

GPT - Transformer의 Decoder

대규모 코퍼스로 unsupervised learning 진행 후 특정 작업에 대한 데이터로 fine-tuning

 

 

BERT - Transformer의 Encoder 사용하여 양방향 학습

여기선 position 임베딩 뿐만 아니라 segment 임베딩을 추가하여 문장을 구분해준다,

MLM - 마스킹 된 단어 맞추기
NSP - 다음 문장 맞는지 맞추기 

 

728x90