과거의 정보를 순차적으로 처리.
새로운 입력이 들어올 때마다 이전 단계의 정보를 기억하려고 함.
self-attention
메커니즘을 사용 -> 위 rnn의 문제점을 해결.
순차적(x), 병렬 처리(o) -> 학습 속도를 개선, 긴 sequence에서도 각 단어 간의 관계를 효율적으로 모델링 할 수 있음.
각 입력 시퀀스의 단어가 서로 얼마나 관련이 있는지를 계산하는 메커니즘.
각 단어가 sequence 내의 모든 단어와의 관계를 평가하여, 어떤 단어들이 주요한 정보를 가지고 있는지를 결정. 즉, 더 중요한 단어에 더 많은 주의(attention)를 기울이게 됨
시퀀스 내의 각 단어가 자기 자신을 포함한 모든 단어와의 관계를 평가한다는 점. 이를 통해 모델은 문맥을 더 잘 이해하고, 각 단어의 중욘성을 파악하여 보다 정확한 예측을 할 수 있게됨. 이런 처리 과정이 병렬로 수행되기 때문에 긴 시퀀스도 효율적으로 처리할 수 있고 큰 메모리 요구량도 없이 더 깊은 네트워크를 구성할 수 있다.
결국 self-attention 메커니즘을 통해 Transformer 모델은
아키텍처 구조
순환 신경망 vs encoder-decoder 구조(+self attention feedforward layer 등으로 구성)
학습속도와 병렬처리
장기 의존성 모델링
memory 요구량
결국 self attention이 가장 큰 차이
구분 | RNN 기반 언어 모델 | Transformer 기반 언어 모델 |
---|---|---|
아키텍처 구조 | 순환 신경망 구조 | Encoder-Decoder 구조 + Self-Attention, Feed-Forward Layer |
학습 속도 및 병렬 처리 | 순차적 처리로 병렬화 어려움 | Self-Attention을 통한 효율적인 병렬 처리 가능 |
장기 의존성 모델링 | 시퀀스 길이 증가 시 장기 의존성 문제 발생 | Self-Attention을 통해 시퀀스 전체 직접 참조하여 장기 의존성 잘 모델링 |
메모리 요구량 | 이전 단어의 은닉 상태만 메모리 저장 | 전체 시퀀스에 대한 Self-Attention 값을 메모리에 저장 |
핵심 차이점 | 이전 단어의 정보만 활용 | 시퀀스 내 모든 단어 정보를 Self-Attention을 통해 통합 |