네 가지 레이어 유형에 대해 세 가지 항목을 비교합니다:
Layer Type | Complexity per Layer | Sequential Operations | Max Path Length |
---|---|---|---|
Self-Attention | |||
Recurrent (RNN) | |||
Convolutional | |||
Self-Attention (restricted) |
여기서:
Self-Attention:
모든 토큰이 모든 토큰과 상호작용 →
→ 문장이 길어질수록 빠르게 느려짐
Recurrent (RNN):
각 토큰을 하나씩 처리 →
Convolutional:
토큰마다 주변 개만 처리 →
Restricted Self-Attention:
r개의 이웃만 참조 →
→ Full attention보다 가볍지만 정보 범위 제한
Self-Attention / Convolutional / Restricted Attention:
모든 토큰을 한꺼번에 병렬 처리 가능 →
Recurrent (RNN):
앞 토큰의 결과가 있어야 다음 토큰을 처리 가능 →
→ 병렬화 어려움, 느림
어떤 토큰이 다른 토큰의 정보를 전달받기까지 걸리는 최소 단계 수
Self-Attention:
모든 토큰이 한 번에 서로 연결됨 →
RNN:
앞에서 뒤로 차례대로 전달 →
Convolutional:
커널 크기 인 conv를 단계로 쌓음 →
Restricted Attention:
개씩만 보니까 전체에 도달하려면 단계
항목 | Self-Attention | RNN | CNN | Restricted Attention |
---|---|---|---|---|
연산량 | 많음 () | 중간 | 적당 () | 더 적음 () |
병렬화 | 아주 잘됨 | 잘 안됨 | 잘됨 | 잘됨 |
정보 전달 거리 | 가장 짧음 () | 가장 김 () | 중간 () | 중간 () |
Transformer가 주목받는 이유 중 하나는:
병렬 처리에 강하면서도 전체 정보를 빠르게 전달할 수 있기 때문이에요.