
#Transformer 모델
Transformer는 문장의 의미를 이해하고 생성하는 데 탁월한 능력을 가진 AI 모델입니다.
마치 우리가 문장을 읽을 때 각 단어의 관계를 파악하고 전체적인 맥락을 이해하는 것처럼, Transformer도 비슷한 방식으로 작동한다고 볼 수 있습니다.
- RNN: 순차적 데이터를 처리하기 위해 설계된 신경망으로, 이전 단계의 정보를 현재 단계로 전달해 계산에 활용합니다. 하지만 먼 과거의 정보를 효과적으로 활용하지 못하는 한계를 갖고 있습니다.
- LSTM: RNN의 장거리 의존성 한계를 해결하기 위해 개발된 모델로, 정보를 선택적으로 기억하고 잊을 수 있는 구조로 긴 시계열 데이터의 예측 정확도를 높였습니다.
- GRU: LSTM을 단순화한 모델로, LSTM과 비슷한 성능을 보이면서 계산 효율성을 개선했습니다.
1) 순차적 처리 vs 병렬 처리
기존 모델: RNN, LSTM, GRU는 순차적으로 데이터를 처리합니다. 마치 책을 한 단어씩 차례대로 읽는 것과 같습니다.
Transformer: 문장의 모든 단어를 동시에 처리할 수 있습니다. 책의 전체 페이지를 한 번에 훑어보는 것과 비슷합니다.

2) 장거리 의존성 문제
기존 모델: 문장이 길어질수록 먼 거리에 있는 단어 간의 관계를 포착하기 어려워집니다. LSTM과 GRU는 이 문제를 어느 정도 개선했지만, 여전히 한계가 있습니다.
Transformer: 셀프 어텐션 메커니즘을 통해 문장 내 모든 단어 간의 관계를 직접적으로 계산하므로, 장거리 의존성 문제를 효과적으로 해결합니다.
3) 계산 복잡도
기존 모델: 순차적 처리로 인해 문장 길이에 비례하여 계산 복잡도가 증가합니다. 즉, 문장이 길어질수록 처리 시간이 크게 늘어납니다.
Transformer: 병렬 처리가 가능해 문장 길이에 덜 민감합니다. 다만, 셀프 어텐션 연산의 복잡도는 문장 길이의 제곱에 비례합니다.
4) 메모리 사용


1) 쿼리(Query), 키(Key), 값(Value) 벡터
- 쿼리 - 무엇을 찾는가
- 키 - 어떤 정보를 가지고 있는가
- 실제로 어떤 정보를 전달하는가
2) 어텐션 점수 계산
- 두 벡터가 얼마나 유사한지, 또는 얼마나 같은 방향을 가리키는지를 나타내는 지표)을 계산
- 해당 단어가 다른 단어들에 얼마나 '어텐션'해야 하는지 그 수치적인 정도
3) 소프트맥스 적용
- 계산된 점수에 소프트맥스 함수(숫자를 0과 1 사이의 값으로 바꾸고, 모든 값의 합이 1이 되도록 만드는 함수)를 적용하여 확률 분포로 변환.
- 큰 값은 더 큰 확률, 작은 값은 더 작은 확률. 중요도를 이해 합니다.
4) 가중합 계산
셀프 어텐션을 여러 번 병렬로 수행하는 기법입니다. 각 "헤드"는 서로 다른 관점에서 입력 데이터를 분석합니다.
작동 원리
- 입력 데이터를 여러 개의 헤드로 나눕니다.
- 각 헤드는 독립적으로 셀프 어텐션을 계산합니다.
- 모든 헤드의 결과를 결합하여 최종 출력을 생성합니다.
장점
1) 병렬 처리 능력
문장의 모든 단어를 동시에 처리할 수 있어 학습 속도가 빠릅니다.
대규모 데이터셋에서의 학습이 가능해지며, 모델 성능 향상으로 이어졌습니다.
2) 장거리 의존성 문제 해결
장문의 이해나 복잡한 문맥 파악에 있었던 문제를 해결하였습니다.
셀프 어텐션 메커니즘을 통해 문장 내 멀리 떨어진 단어 사이의 관계도 직접적으로 모델링합니다.
3) 모델 구조의 유연성
Transformer는 인코더/디코더라는 두 가지 구성요소로 이루어져있습니다.
인코더 : 입력데이터(예: 원본 문장)을 받아 컴퓨터가 이해할 수 있도록 변환
디코더 : 인코더 변환 정보를 받아 출력(예: 번역된 문장)을 생성
Transformer의 장점이나 특이한 점은 인코더와 디코더 수를 자유롭게 조절할 수 있다는 점입니다.
이를 통해 테스크에 따라 모델의 크기와 복잡도를 조정할 수 있습니다. 이로 인해 BERT(인코더만 사용), GPT(디코더만 사용) 곽 같은 변형 모델 탄생으로 이끌었습니다. = AI의 활용 범위를 크게 확장
BERT : 주로 텍스트 이해 작업(예: 문장 분류, 질문 답변)에 사용
GPT : 주로 텍스트 생성 작업(예: 문장 완성, 창작 글쓰기)에 사용됨
4) 전이학습(Transfer Learning)의 용이성 향상
참조
https://blog.kakaocloud.com/91
https://wikidocs.net/31379