ch12 - transformers
NLP 판 뒤엎은 게임 체인저
transformers
- Self-attention: 문맥 왕, 관계 파악
- 트랜스포머를 완성하는 3가지 필수 업그레이드
- 트랜스포머의 3가지 얼굴: BERT, GPT, 그리고 원조
- 이미지까지 정복한 vision transformer
- 정리
기존의 RNN이 문장이 길어지면 앞 내용을 까먹는 '단기 기억상실' 문제가 있었떤 반면, 트랜스포머는 문장의 처음과 끝이 아무리 멀리 떨어져 있어도 관계를 파악하는 능력으로 이 문제를 해결함.
Self-attention: 문맥 왕, 관계 파악
트랜스포머의 심장 = Self-attention. 단어의 의미는 그 자체로 결정되는 게 아니라 문장 내 다른 단어들과의 관계 속에서 결정된다는 아이디어에서 출발.
회의에서 내 업무를 더 명확ㅎ게 하려면, 다른 팀원들의 의견을 들어야 한다. 이때,
- Query, Q: 내 업무와 관련된 나의 질문
- Key, K: 다른 팀원들이 가진 전문성이나 의견의 주제
- Value, V: 그 주제에 대한 팀원들의 실제 의견 내용
어텐션 작동 방식
- 나의 질문(Query)을 들고 모든 팀원의 주제(Key)와 비교하며 유사도(어텐션 점수)를 계산. "이 사람 의견이 내 업무랑 관련이 있나?"를 따져봄.
- 이 점수를 바탕으로 "누구의 의견을 얼마나 비중 있게 들을지" 가중치를 정함(softmax)
- 정해진 가중치대로 모든 팀원의 "실제 의견 내용(Value)"들을 종합해 문맥이 반영된 나의 새로운 업무 정의를 만든다.
결과적으로, 문장 안의 모든 단어가 다른 모든 단어와 이런 Q-K-V 상호작용을 거치면서, 'it'이 'restaurant'을 가리키는 것과 같은 문맥적 관계를 파악한다.
트랜스포머를 완성하는 3가지 필수 업그레이드
셀프 어텐션만으로는 부족하고, 실제 트랜스포머는 몇 가지 중요한 업그레이드를 포함한다.
- Multi-Head attention
- 팀 회의를 한번만 하는 게 아니라, 여러 주제(문법적 관계, 의미적 관계 등)에 대해 동시에 여러 팀이 회의를 진행하는 것과 같다. 각 '헤드'가 서로 다른 종류의 관계에 집중하고, 그 결과들을 합쳐서 더 풍부한 문맥을 파악하게 된다.
- Positional encoding
- 셀프 어텐션은 단어들의 관계만 볼 뿐, 순서는 모른다. "고양이가 여자를 먹었다"와 "여자가 고양이를 먹었다"를구분하지 못한다. 이를 해결하기 위해 각 단어의 임베딩에 '위치 정보'를 담은 고유한 벡터를 더해준다.
- skip connection & layer norm
- 11장의 ResNet 핵심 아이디어가 그대로 들어간다. 어텐션 연산 전후로 잔차 연결과 레이어 정규화를 적용해, 아주 깊은 트랜스포머도 안정적으로 학습할 수 있게 만든다.
트랜스포머의 3가지 얼굴: BERT, GPT, 그리고 원조
트랜스포머는 구조에 따라 크게 3가지로 나뉜다.
- Encoder 모델 - 문해력 왕, BERT
- 특징: 문장 전체를 한 번에 보고 양방향으로 문맥을 이해한다.
- 학습방식: 문장의 단어를 무작위로 가리고
<mask>
, 그 단어를 맞추는 '빈칸 채우기' 퀴즈로 학습(Masked Language Model) - 용도: 문장 분류, 개체명 인식 등 문장의 의미를 이해하는 작업에 탁월하다.
- Decoder 모델 - 창의적인 소설가, GPT
- 특징: 왼쪽에서 오른쪽으로, 다음에 올 단어를 순차적으로 예측(Autoregressive)
- 학습 방식: 학습시 정답을 미리 볼 수 없도록, 현재 단어는 이전 단어들만 참고하게 만든다.(masked self-attention)
- 용도: 이름 귿로 텍스트 생성애 특화되어 있다.
- encoder-decoder 모델 - 통역사, 원조 트랜스포머
- 특징: 인코더가 소스 문장(예: 영어를 이해해서 벡터로 만들고, 디코더가 이 벡터를 참고해 타겟 문장(예: 한국어)을을 생성한처다.
- 핵심: 디코더에 cross-atention이 추가되어, 번역할 단어를 생성할때마다 원본 영어 문장의 어느 부분에 집중하리 결정한다.
- 용도: 기계 번역, 챗봇, 문서 요약 등 하나의 시퀀스를 다른 시퀀스로 변환하는 작업에 사용됨
이미지까지 정복한 vision transformer
최근에는 트랜스포머가 NLP를 넘어 이미지 영역까지 정복하고 있다. Vision Transformer(ViT)는 이미지를 여러 개의 작은 patch로 자른 뒤, 이배치들의 시퀀스로 간주하여 트랜스포머에 입력하는 방식을 사용한다.
정리
- 트랜스포머의 심장은 셀프 어텐션(QKV)이며, 문장 내 단어 간의 관계를 파악해 문맥을 이해한다.
- 구조에 따라 BERT(인코더, 이해), GPT(디코더, 설명), encoder-decoder(번역/변환)로 나뉨
- RNN의 장기 기억 문제를 해결하며 NLP의 새 시대를 열었고, 이제는 이미지(ViT) 등 다른 분야까지 넘보는 현시대 최고의 아키텍처
self-attention: 문장과 같은 시퀀스 내의 각 단어가 다른 모든 단어와의 관계를 바탕으로 자신의 의미를 재정의하는 과정.