트랜스포머 (기계 학습)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
트랜스포머는 2017년 구글이 제안한 기계 학습 모델로, 순환 신경망(RNN) 대신 어텐션 메커니즘만을 사용하여 병렬 처리를 가능하게 하여 학습 속도를 크게 향상시켰다. 인코더-디코더 구조를 기반으로 하며, 어텐션 메커니즘을 통해 입력 시퀀스의 각 부분이 출력 시퀀스의 특정 부분과 얼마나 관련되어 있는지 계산한다. 자연어 처리 분야에서 획기적인 발전을 가져왔으며, BERT, GPT, T5 등 다양한 모델의 기반이 되었다. 텍스트 외에도 이미지, 오디오, 로봇 공학 등 다양한 분야에 적용되고 있으며, 효율적인 구현을 위한 다양한 기술들이 개발되고 있다.
더 읽어볼만한 페이지
| 트랜스포머 (기계 학습) | |
|---|---|
| 모델 정보 | |
![]() | |
| 유형 | 인공 신경망 |
| 설계자 | 구글 |
| 발표일 | 2017년 |
| 이전 모델 | 순환 신경망 |
| 후속 모델 | BERT, GPT |
| 기술 정보 | |
| 사용 분야 | 자연어 처리, 컴퓨터 비전, 음성 인식 |
| 핵심 요소 | 어텐션 메커니즘, 셀프 어텐션, 멀티 헤드 어텐션 |
| 장점 | 병렬 처리 가능, 장거리 의존성 모델링에 효과적 |
| 단점 | 계산 복잡도, 긴 시퀀스에 대한 메모리 요구량 |
| 상세 설명 | |
| 주요 레이어 | 인코더, 디코더 |
| 어텐션 유형 | 스케일드 닷-프로덕트 어텐션 |
| 활성화 함수 | ReLU |
| 최적화 알고리즘 | Adam |
| 활용 사례 | |
| 자연어 처리 | 기계 번역, 텍스트 요약, 질의 응답 |
| 컴퓨터 비전 | 이미지 분류, 객체 감지 |
| 음성 인식 | 자동 음성 인식 |
| 로봇 공학 | 학습을 통한 던지기 |
| 체스 | 검색 없이 그랜드마스터 레벨 체스 가능 |
| 관련 연구 | |
| 주요 논문 | Attention is All You Need |
| 관련 모델 | GPT, BERT, ViT |
| 기타 | |
| 특징 | RNN 기반 모델의 단점을 극복하고 병렬 처리를 통해 효율성을 높임 |
| 참고 자료 | Attention Is All You Need 논문 BERT 소개 (Google AI Blog) GPT 소개 (OpenAI Blog) |
2. 역사
트랜스포머는 2017년 구글의 "Attention is All You Need" 논문에서 처음 소개되었다. 트랜스포머 등장 이전에는 순환 신경망(RNN)에 어텐션 메커니즘을 추가한 모델이 자연어 처리 분야에서 널리 사용되었다. 그러나 이러한 모델은 여전히 순차적 처리 방식을 사용했기 때문에 긴 문장을 처리하는 데 어려움이 있었다.
논문의 공동 저자 중 한 명은 2017년 봄 "Attention is all you need" 논문 발표 이전에 이미 트랜스포머 아키텍처의 "디코더 전용" 변형을 적용하여 허구의 위키백과 기사를 생성하기도 했다.[33]
이후 트랜스포머 아키텍처는 AI 붐에 기여하는 많은 생성적 인공지능 모델에 사용되고 있다. 언어 모델링 분야에서는 ELMo(2018)가 bag of words 및 word2vec의 연구를 개선한 양방향 LSTM으로 컨텍스트화된 단어 임베딩을 생성했다. 그 후 인코더 전용 트랜스포머 모델인 BERT(2018)가 등장했다.[34] 구글은 2019년 10월부터 검색 쿼리 처리에 BERT를 사용하기 시작했으며,[35] 2020년에는 구글 번역에서 이전의 RNN-인코더–RNN-디코더 모델을 트랜스포머-인코더–RNN-디코더 모델로 대체했다.[36]
2018년부터는 OpenAI의 GPT 시리즈 디코더 전용 트랜스포머가 자연어 생성 분야에서 최고 수준의 성능을 보였다. 특히 2022년에는 GPT-3 기반의 챗봇인 ChatGPT가 큰 인기를 얻으면서[37] 거대 언어 모델을 중심으로 한 붐이 일어났다.[38][39]
2020년 이후, 트랜스포머는 텍스트 외의 분야에도 적용되기 시작했다. vision transformer,[40] 음성 인식,[99] 로봇 공학,[41] 멀티모달 학습[42] 등 다양한 분야에서 활용되고 있다. Vision transformer는 합성곱 신경망의 새로운 발전을 이끌기도 했다.[43] DALL-E(2021), Stable Diffusion 3(2024),[44] Sora(2024)와 같은 이미지 및 비디오 생성기도 트랜스포머 아키텍처를 기반으로 한다.
2. 1. 순환 신경망(RNN)의 한계
순환 신경망(RNN)은 오랫동안 시퀀스 모델링 및 생성에 사용되었다. 초기 예시로는 엘만 네트워크(1990)가 있다. 이론적으로 RNN은 한 토큰의 정보를 시퀀스 전체로 전파할 수 있지만, 실제로는 기울기 소실 문제로 인해 긴 문장의 끝에서 모델의 상태는 이전 토큰에 대한 정확한 정보를 갖지 못하게 된다.[12]장단기 기억 네트워크(LSTM)(1995)는 이러한 기울기 소실 문제를 극복하기 위해 다양한 혁신을 사용했다. 그중 하나는 다른 뉴런의 출력을 곱하는 뉴런, 즉 '곱셈 유닛'을 사용하는 어텐션 메커니즘이었다.[12] LSTM은 2017년 트랜스포머가 발표될 때까지 긴 시퀀스 모델링의 표준 아키텍처였다.
그러나 LSTM은 대부분의 다른 RNN과 마찬가지로 여전히 순차적 처리를 사용했다. RNN은 처음부터 끝까지 한 번에 하나의 토큰을 처리하며, 시퀀스의 모든 토큰을 병렬로 처리할 수 없다.
어텐션 메커니즘은 모델이 문장의 이전 시점의 상태를 직접 보고 거기서 정보를 얻을 수 있게 해준다. 어텐션 층은 이전의 모든 상태에 접근하여 현재 토큰과의 관련성에 따라 가중치를 부여하여 멀리 떨어진 관련 토큰에 대한 정보를 제공한다.
어텐션의 효과는 번역에서 잘 나타난다. 예를 들어, 영어에서 프랑스어로 번역하는 시스템에서, 프랑스어 출력의 첫 번째 단어는 영어 입력의 첫 번째 단어에 가장 크게 의존한다. 그러나 고전적인 인코더/디코더 LSTM 모델에서는 프랑스어 출력의 첫 번째 단어를 생성하기 위해 영어 입력의 '''마지막''' 단어의 상태 벡터만 주어진다. 어텐션 메커니즘이 도입되면 모델은 프랑스어 출력 시작을 생성할 때 초기 영어 토큰의 상태를 학습하여 번역을 더 잘 수행할 수 있다.
2. 2. 어텐션 메커니즘의 도입
RNN(순환 신경망)은 오랫동안 시퀀스 모델링 및 생성에 널리 사용되었다. 초기 예시로는 엘만 네트워크(1990)가 있다. 이론적으로는 한 토큰의 정보가 시퀀스 전체로 전파될 수 있지만, 실제로는 소실되는 기울기 문제로 인해 긴 문장의 끝에서 모델의 상태는 이전 토큰에 대한 정확한 정보를 갖지 못하게 된다.LSTM(장단기 기억 네트워크)(1995)은 소실되는 기울기 문제를 극복하기 위한 혁신적인 방법으로 긴 시퀀스 모델링을 효율적으로 학습할 수 있게 해주었다. 그중 하나가 어텐션 메커니즘이었으며, 이는 다른 뉴런의 출력을 곱하는 뉴런, 즉 ''곱셈 유닛''을 사용하는 것이었다.[12] 곱셈 유닛을 사용하는 신경망은 ''시그마-파이 네트워크''[13] 또는 ''고차 네트워크''라고 불렸다.[14] LSTM은 2017년 트랜스포머가 발표될 때까지 긴 시퀀스 모델링의 표준 아키텍처였다. 그러나 LSTM은 대부분의 다른 RNN과 마찬가지로 여전히 순차적 처리를 사용했다.
2014년, 기계 번역을 위해 seq2seq 모델에 어텐션 메커니즘을 도입하여 병목 현상을 해결하고 장거리 의존성을 더 쉽게 처리할 수 있게 되었다.[4] 이 모델은 "디코딩 중 소스 문장을 검색하는 것을 흉내 내기" 때문에 ''RNNsearch''라고 불렸다. 어텐션 메커니즘은 입력 시퀀스의 모든 부분을 동시에 참조할 수 있도록 하여 RNN의 순차적 처리 문제를 해결했다.
어텐션 메커니즘 도입 이전의 초기 seq2seq 모델은 상태 벡터를 소스 텍스트의 ''마지막'' 단어가 처리된 후에만 접근할 수 있었다. 이론적으로 이러한 벡터는 전체 원본 문장에 대한 정보를 유지하지만, 실제로는 정보가 제대로 보존되지 않았다. 입력이 길면 출력 벡터는 관련된 모든 정보를 담을 수 없어 출력이 저하되었는데, 입력 문장을 반전시키면 seq2seq 번역이 개선되었다는 것이 그 증거이다.[25]
어텐션(self-attention 포함)이 적용된 Seq2seq 모델은 여전히 순환 신경망과 동일한 문제, 즉 병렬화가 어려워 GPU 가속을 방해한다는 문제에 직면해 있었다.
신경망 분야에서, 어텐션 메커니즘(attention mechanism영어) 또는 '''어텐션'''(Attention영어)은 시퀀스 신호의 가중 통합이다. 어텐션의 기본은 다음 모델식으로 나타낸다.
시퀀스 신호에 대해, 번째 신호 로부터 벡터 값 와 스칼라 가중치 를 계산하고, 시퀀스 전체에 걸쳐 가중 합한 것이 어텐션이다. 시퀀스의 특정 시간에 큰 가중치를 두는 것을 동물에서의 주의에 비유하여 어텐션이라고 명명되었다.
LSTM이나 GRU와 같은 순환 신경망에 어텐션 메커니즘을 추가한 모델이 고성능의 자연어 처리 시스템에서 채택되어 왔다. 게이트 순환 신경망은 토큰을 순차적으로 처리하며, 각 토큰 다음에 표시되는 데이터의 표현을 포함하는 상태 벡터를 유지한다. 번째 토큰을 처리할 때, 모델은 문장의 번째 토큰까지를 표현하는 상태와 새로운 토큰의 정보를 결합하여 새로운 상태를 생성한다. 그리고 이 새로운 상태가 문장의 번째 토큰까지를 표현한다. 이론적으로는, 어떤 토큰에 관한 정보를 모든 시점에서 계속 인코딩하는 경우, 시퀀스의 임의의 길이까지 전파할 수 있다. 그러나 실제로는 기울기 소실 문제를 한 요인으로 하여 이 메커니즘은 불완전하며, 긴 문장의 끝에서의 상태에서는, 초기의 토큰에 관한 정보의 많은 부분이 부정확하거나 추출 불가능하다.
어텐션 메커니즘은 모델이 문장의 이전의 임의의 시점의 상태를 직접 보고, 거기에서 이끌어낼 수 있게 하였다. 어텐션 층은 이전의 모든 상태에 접근할 수 있으며, 현재 토큰과의 관련성의 학습된 값에 따라 그것들을 가중하여, 멀리 떨어진 관련 토큰에 관한 명료한 정보를 제공한다.
2. 3. 트랜스포머의 등장과 발전
2017년 봄, "Attention is all you need" 논문이 발표되기 전에 이미 공동 저자 중 한 명이 트랜스포머 아키텍처의 "디코더 전용" 변형을 적용하여 허구의 위키백과 기사를 생성했다.[33] 트랜스포머 아키텍처는 현재 진행 중인 AI 붐에 기여하는 많은 생성적 인공지능 모델에 사용되고 있다.트랜스포머 등장 이전에는 자연어 처리 분야에서 어텐션(Attention) 메커니즘을 순환 신경망 모델에 추가하는 모델이 널리 사용되었다. 언어 모델링에서 ELMo(2018)는 컨텍스트화된 단어 임베딩을 생성하는 양방향 LSTM으로, bag of words 및 word2vec의 연구를 개선했다. 이후 인코더 전용 트랜스포머 모델인 BERT(2018)가 등장했다.[34] 2019년 10월, 구글은 검색 쿼리를 처리하기 위해 BERT를 사용하기 시작했다.[35] 2020년, 구글 번역은 이전의 RNN-인코더–RNN-디코더 모델을 트랜스포머-인코더–RNN-디코더 모델로 대체했다.[36]
2018년부터 OpenAI의 GPT 시리즈 디코더 전용 트랜스포머가 자연어 생성 분야에서 최고 수준이 되었다. 2022년에는 GPT-3 기반의 챗봇인 ChatGPT가 예상외로 인기를 얻으면서,[37] 거대 언어 모델을 중심으로 붐이 일어났다.[38][39]
2020년 이후, 트랜스포머는 텍스트 외의 분야, 즉 vision transformer,[40] 음성 인식,[99] 로봇 공학,[41] 및 멀티모달 분야에도 적용되었다.[42] Vision transformer는 다시 합성곱 신경망의 새로운 발전을 자극했다.[43] DALL-E(2021), Stable Diffusion 3(2024),[44] 및 Sora(2024)와 같은 이미지 및 비디오 생성기는 트랜스포머 아키텍처를 기반으로 한다.
3. 기본 구조
트랜스포머는 시퀀스-투-시퀀스 모델과 마찬가지로 인코더-디코더 구조를 사용한다. 인코더는 입력 시퀀스를 처리하여 각 토큰의 문맥 정보를 담은 벡터 표현을 생성하고, 디코더는 이 벡터 표현과 이전 출력 토큰을 바탕으로 출력 시퀀스를 생성한다.[51][52]

인코더 레이어는 셀프 어텐션(self-attention) 메커니즘을 통해 입력 토큰 간의 관계를 파악한다. 디코더 레이어는 인코더의 출력과 현재까지 생성된 토큰 간의 관계를 파악하는 교차 어텐션 메커니즘을 사용한다. 인코더와 디코더 레이어 모두 출력을 추가 처리하기 위한 피드포워드 신경망을 포함하며, 잔차 연결 및 레이어 정규화 단계를 거친다.[52]
트랜스포머의 핵심은 스케일드 닷-프로덕트 어텐션 유닛이다. 이 유닛은 입력 문장의 모든 토큰 간 어텐션 가중치를 계산하여 각 토큰에 대한 임베딩을 생성한다. 이 임베딩에는 토큰 자체 정보와 다른 관련 토큰과의 관계가 포함된다. 어텐션 유닛은 쿼리, 키, 값 가중치 행렬을 학습하여 어텐션 가중치를 계산하고, 토큰 간 관계를 파악한다.
트랜스포머 모델은 여러 개의 어텐션 헤드를 사용하여 "관련성"의 다양한 측면을 파악한다. 각 어텐션 헤드는 병렬 계산이 가능하여 빠른 처리가 가능하다.
3. 1. 인코더(Encoder)
인코더는 임베딩 레이어와 여러 개의 인코더 레이어로 구성된다.각 인코더 레이어는 셀프 어텐션(self-attention) 메커니즘과 피드 포워드(feed-forward) 신경망이라는 두 가지 주요 구성 요소로 구성된다.[52] 입력 벡터 시퀀스를 입력으로 받아 셀프 어텐션 메커니즘을 적용하여 중간 벡터 시퀀스를 생성한 다음, 각 벡터에 개별적으로 피드 포워드 레이어를 적용한다.
간략하게 표현하면 다음과 같다.
:
여기서 은 "피드 포워드 네트워크"를 나타낸다. 이를 더욱 간결하게 다음과 같이 쓸 수 있다.
:
암묵적으로 이 행렬의 각 행에 개별적으로 적용된다는 규칙이 있다.
인코더 레이어는 쌓여 있다. 첫 번째 인코더 레이어는 임베딩 레이어에서 입력 벡터 시퀀스를 받아 벡터 시퀀스를 생성한다. 이 벡터 시퀀스는 두 번째 인코더에서 처리되고, 이런 식으로 진행된다. 마지막 인코더 레이어의 출력은 디코더에서 사용된다.
인코더는 전체 입력을 한 번에 처리하므로 모든 토큰이 다른 모든 토큰에 어텐션을 수행할 수 있으며 (전체 대 전체 어텐션), 인과적 마스킹이 필요하지 않다.
각 인코더 레이어는 2개의 하위 레이어, 즉 셀프 어텐션과 피드 포워드 네트워크를 포함한다.


마지막 세부 사항은 잔차 연결과 층 정규화(LayerNorm, 또는 LN)이며, 개념적으로는 불필요하지만 수치적 안정성과 수렴에 필요하다. 피드 포워드 네트워크 모듈이 각 벡터에 개별적으로 적용되는 방식과 유사하게, LayerNorm도 각 벡터에 개별적으로 적용된다.
현재 사용되는 두 가지 일반적인 규칙이 있다: ''post-LN'' 및 ''pre-LN'' 규칙이다. post-LN 규칙에서 각 하위 레이어의 출력은
:이며 여기서 는 하위 레이어 자체에서 구현된 함수이다.
pre-LN 규칙에서 각 하위 레이어의 출력은
:이다.
2017년 오리지널 트랜스포머는 post-LN 규칙을 사용했다. 학습이 어려웠고, 신중한 하이퍼파라미터 조정과 학습률의 "warm-up" (작게 시작하여 점진적으로 증가)이 필요했다. 2018년에 여러 번 제안된 pre-LN 규칙[56]은 warm-up이 필요하지 않고 더 빠른 수렴을 유도하여 학습이 더 쉽다는 것을 알게 되었다.[45]
각 인코딩 레이어의 기능은 입력의 어느 부분이 서로 관련되어 있는지에 대한 정보를 포함하여 입력을 처리하고 인코딩을 생성하는 것이다. 각 인코딩 레이어는 일련의 인코딩을 다음 인코더 레이어에 입력으로 전달한다.
Point-wise Feed-forward 서브 레이어에서는, 위치 에서의 입력 벡터 에 대해 피드 포워드 전결합 네트워크(MLP])를 적용한다.[116] 가중치 , 는 위치 에 의존하지 않고 공유된다(다른 레이어에서는 다른 가중치).[117] 즉, 특징량을 채널로 하는 위치 방향으로의 2-layer pointwise Conv1d와 등가인 처리를 수행한다.[118]
:
FFN은 층 내의 병렬 계산이 가능하다. 그러므로 이 서브 레이어는 위치 방향으로 병렬 계산이 가능하며, Transformer의 목표인 높은 병렬성의 학습이 가능하게 된다.[119]
서브 레이어는 Residual connection 내에서 사용되기 때문에, 입출력 차원을 일치시키는 것이 바람직하다. 원 논문에서는 입출력 차원을 로 고정한 다음[120] 중간층의 차원을 입출력보다 크게 했다.[121]
첫 번째 인코더는 인코딩 대신 위치 정보와 입력 시퀀스의 임베딩을 입력으로 받는다. 다른 부분에서는 위치 정보를 사용하지 않기 때문에 위치 정보는 Transformer가 시퀀스의 순서를 사용하는 데 필수적이다.[122]
3. 2. 디코더(Decoder)
디코더는 임베딩 레이어, 여러 개의 디코더 레이어, 언임베딩 레이어로 구성된다. 각 디코더는 인과적으로 마스킹된 셀프 어텐션 메커니즘, 교차 어텐션 메커니즘, 피드 포워드 신경망의 세 가지 주요 구성 요소를 가진다. 디코더는 인코더와 유사하게 작동하지만, 인코더에서 생성된 인코딩에서 관련 정보를 추출하는 ''인코더-디코더 어텐션''이라고 불리는 추가적인 어텐션 메커니즘이 삽입된다.[1][52]첫 번째 디코더는 인코딩이 아닌 출력 시퀀스의 위치 정보와 임베딩을 입력으로 받는다. 트랜스포머는 현재 또는 미래의 출력을 사용하여 출력을 예측해서는 안 되므로, 역방향 정보 흐름을 방지하기 위해 출력 시퀀스를 부분적으로 마스킹해야 한다.[1] 이를 통해 자기 회귀 텍스트 생성이 가능하다. 디코딩의 경우, 모든 토큰이 아직 생성되지 않은 토큰을 참조할 수 없으므로 모든 대 모든 어텐션은 부적절하다. 따라서 디코더의 셀프 어텐션 모듈은 인과적으로 마스킹된다.
반면, 교차 어텐션 메커니즘은 디코더가 디코딩을 시작하기 전에 계산된 인코더의 출력 벡터를 참조한다. 결과적으로 교차 어텐션 메커니즘에서는 마스킹이 필요하지 않다.
개략적으로 다음과 같다:
:
:여기서 는 행이 인코더의 출력 벡터인 행렬이다.
마지막 디코더 다음에는 최종 언임베딩 레이어가 있어 어휘집에 대한 출력 확률을 생성한다. 그런 다음 확률에 따라 토큰 중 하나가 샘플링되고, 디코더는 다음 토큰을 생성하기 위해 다시 실행될 수 있으며, 자기 회귀적으로 출력 텍스트를 생성한다.


각 디코더 레이어는 인과 관계가 있는 마스크된 셀프 어텐션, 교차 어텐션 및 피드 포워드 네트워크의 3개의 하위 레이어를 포함한다.
마지막 세부 사항은 잔차 연결과 층 정규화(LayerNorm, 또는 LN)이며, 개념적으로는 불필요하지만 수치적 안정성과 수렴에 필요하다. 피드 포워드 네트워크 모듈이 각 벡터에 개별적으로 적용되는 방식과 유사하게, LayerNorm도 각 벡터에 개별적으로 적용된다.
현재 사용되는 두 가지 일반적인 규칙은 ''post-LN'' 및 ''pre-LN'' 규칙이다. post-LN 규칙에서 각 하위 레이어의 출력은
:이며 여기서 는 하위 레이어 자체에서 구현된 함수이다.
pre-LN 규칙에서 각 하위 레이어의 출력은
:이다.
2017년 오리지널 트랜스포머는 post-LN 규칙을 사용했다. 학습이 어려웠고, 신중한 하이퍼파라미터 조정과 학습률의 "warm-up" (작게 시작하여 점진적으로 증가)이 필요했다. 2018년에 여러 번 제안된 pre-LN 규칙[56]은 warm-up이 필요하지 않고 더 빠른 수렴을 유도하여 학습이 더 쉽다는 것을 알게 되었다.[45]
각 디코더 레이어에는 인코딩으로부터 정보를 얻기 전에 이전 디코더 레이어로부터 정보를 얻기 위한 어텐션 메커니즘이 있다.
3. 3. 어텐션 메커니즘(Attention Mechanism)
트랜스포머 아키텍처에서 사용되는 어텐션 메커니즘은 스케일링된 점곱 어텐션 유닛이다. 각 유닛에 대해, 트랜스포머 모델은 쿼리 가중치 , 키 가중치 , 그리고 값 가중치 세 개의 가중치 행렬을 학습한다.이 모듈은 쿼리 시퀀스, 키 시퀀스, 그리고 값 시퀀스, 세 개의 시퀀스를 입력으로 받는다. 쿼리 시퀀스는 길이가 인 시퀀스이며, 각 항목은 차원이 인 벡터이다. 키 시퀀스와 값 시퀀스도 마찬가지이다.
쿼리 시퀀스의 각 벡터 는 행렬 와 곱해져 쿼리 벡터 를 생성한다. 모든 쿼리 벡터의 행렬은 쿼리 행렬이다:마찬가지로, 키 행렬 와 값 행렬 를 구성한다.
일반적으로 모든 는 정사각 행렬이며, 이는 등과 같다.
어텐션 가중치는 쿼리 벡터와 키 벡터를 사용하여 계산된다. 토큰 에서 토큰 로의 어텐션 가중치 는 와 사이의 점곱이다. 어텐션 가중치는 키 벡터의 차원의 제곱근인 으로 나누어져 학습 중 기울기를 안정화시키고, 가중치를 정규화하는 소프트맥스를 통과한다. 와 가 서로 다른 행렬이라는 사실은 어텐션을 비대칭적으로 만들 수 있다. 토큰 가 토큰 에 어텐션한다면(즉, 가 크다면), 이것이 반드시 토큰 가 토큰 에 어텐션한다는 것을 의미하지는 않는다(즉, 는 작을 수 있다). 토큰 에 대한 어텐션 유닛의 출력은 각 토큰에 대한 토큰 의 어텐션 에 의해 가중된, 모든 토큰의 값 벡터의 가중 합이다.
모든 토큰에 대한 어텐션 계산은 소프트맥스 함수를 사용하여 하나의 큰 행렬 계산으로 표현될 수 있으며, 이는 행렬 연산을 빠르게 계산하는 계산 행렬 연산 최적화로 인해 학습에 유용하다. 행렬 , 및 는 각각 번째 행이 벡터 , 및 인 행렬로 정의된다. 그러면 어텐션을 다음과 같이 나타낼 수 있다.[1]
여기서 소프트맥스는 행렬의 각 행에 적용된다.


쿼리 벡터의 차원 수는 ''쿼리 크기'' 이며, ''키 크기'' 및 ''값 크기'' 도 마찬가지이다. 어텐션 헤드의 출력 차원은 ''헤드 차원'' 이다. 어텐션 메커니즘은 다음 세 가지 등식이 성립해야 한다:
하지만 그 외에는 제약이 없다.
어텐션 헤드가 셀프 어텐션 방식으로 사용되는 경우, 이다. 어텐션 헤드가 교차 어텐션 방식으로 사용되는 경우, 일반적으로 이다. 이론적으로는 세 가지가 모두 다를 수 있지만, 실제로는 드문 경우이다.
행렬의 한 세트를 ''어텐션 헤드''라고 하며, 트랜스포머 모델의 각 레이어는 여러 개의 어텐션 헤드를 갖는다. 각 어텐션 헤드는 각 토큰과 관련된 토큰에 주의를 기울이는 반면, 여러 개의 어텐션 헤드를 사용하면 모델이 "관련성"의 서로 다른 정의에 대해 이를 수행할 수 있다. 특히, 어텐션 점수 계산에 관여하는 쿼리 및 키 투영 행렬 및 는 "관련성"을 정의한다. 한편, 값 투영 행렬 는 출력 투영 행렬 의 일부와 결합하여 어텐션된 토큰이 후속 레이어와 궁극적으로 출력 로짓에 전달되는 정보에 영향을 미치는 방식을 결정한다. 또한, 각 어텐션 헤드에 의해 캡처된 토큰 관계의 범위, 즉 어텐션의 범위는 토큰이 연속적인 레이어를 통과함에 따라 확장될 수 있다. 이를 통해 모델은 더 깊은 레이어에서 더 복잡하고 장거리 의존성을 캡처할 수 있다. 많은 트랜스포머 어텐션 헤드는 인간에게 의미 있는 관련성 관계를 인코딩한다. 예를 들어, 일부 어텐션 헤드는 주로 다음 단어에 어텐션할 수 있고, 다른 헤드는 동사에서 직접 목적어로 주로 어텐션할 수 있다.[54] 각 어텐션 헤드에 대한 계산은 병렬로 수행할 수 있으며, 이를 통해 빠른 처리가 가능하다. 어텐션 레이어의 출력은 피드포워드 신경망 레이어로 전달하기 위해 연결된다.


구체적으로, 여러 어텐션 헤드를 로 색인화하면 다음을 얻을 수 있다.[1]
여기서 행렬 는 단어 임베딩의 연결이고, 행렬 는 개별 어텐션 헤드 가 소유한 "투영 행렬"이며, 는 전체 멀티 헤드 어텐션 헤드가 소유한 최종 투영 행렬이다.
이론적으로 각 어텐션 헤드가 서로 다른 헤드 차원 을 갖는 것이 가능하지만 실제로 그런 경우는 거의 없다.
어떤 단어 쌍 사이의 어텐션 링크를 잘라낼 필요가 있을 수 있다. 예를 들어, 위치의 토큰을 디코딩할 때 디코더는 위치의 토큰에 접근할 수 없어야 한다. 이는 소프트맥스 단계 전에 어텐션 링크를 잘라내야 하는 항목에는 를, 다른 항목에는 을 갖는 마스크 행렬 을 더하여 수행할 수 있다.[1]
마스크되지 않은 어텐션 모듈은 마스크의 모든 항목이 0인 마스크된 어텐션 모듈로 간주될 수 있다.
예를 들어, 다음 행렬은 "인과 마스킹"이라고 하는 디코더 셀프-어텐션 모듈에서 일반적으로 사용된다.
다시 말해, 각 토큰은 자기 자신과 그 앞의 모든 토큰에 주의를 기울일 수 있지만 그 뒤의 토큰에는 주의를 기울일 수 없다.
4. 구성 요소
트랜스포머 모델은 다음과 같은 주요 구성 요소로 이루어져 있다.
- 토크나이저(Tokenizers): 텍스트를 모델이 처리할 수 있는 토큰으로 변환한다.
- 임베딩 계층(Embedding layer): 토큰과 토큰의 위치를 벡터 표현으로 변환한다.
- 트랜스포머 계층(Transformer layers): 어텐션 및 피드포워드 신경망 계층을 번갈아 사용하여 벡터 표현을 반복적으로 변환하고 언어 정보를 추출한다. 인코더 계층과 디코더 계층 두 가지 주요 유형이 있다.
- 언-임베딩 계층(Un-embedding layer): 최종 벡터 표현을 토큰에 대한 확률 분포로 다시 변환한다.
트랜스포머는 인코더-디코더 구조를 가지며, 인코더는 입력을 반복적으로 처리하고, 디코더는 인코더의 출력을 처리하여 출력 시퀀스를 생성한다.[113] 각 인코더와 디코더 레이어는 어텐션 메커니즘을 활용하여 입력 간의 관련성을 파악하고 정보를 추출한다.[114]
또한 각 인코더와 디코더 레이어에는 출력을 더 처리하기 위한 피드포워드 신경망이 있으며, 잔차 연결과 레이어 정규화를 포함한다. 잔차 연결은 각 하위 계층(셀프 어텐션 및 피드포워드 네트워크)의 입력과 출력을 더한다.[45] 층 정규화(LayerNorm)는 각 벡터에 개별적으로 적용되어 수치적 안정성과 수렴에 기여한다.[45]
4. 1. 토크나이저(Tokenizers)
트랜스포머 아키텍처는 텍스트가 아닌 숫자 데이터를 처리하므로 텍스트와 토큰 간의 변환이 필요하다. 토큰은 문자 또는 짧은 문자 세그먼트를 나타내는 정수이다. 입력 측면에서 입력 텍스트는 토큰 시퀀스로 구문 분석된다. 마찬가지로, 출력 측면에서 출력 토큰은 다시 텍스트로 구문 분석된다. 텍스트와 토큰 시퀀스 간의 변환을 수행하는 모듈은 토크나이저이다.모든 토큰의 집합은 토크나이저의 어휘이며, 그 크기는 ''어휘 크기'' 이다. 어휘 밖의 토큰에 직면했을 때, 일반적으로 "[UNK]"로 작성된 특수 토큰이 "알 수 없음"으로 사용된다.
일반적으로 사용되는 토크나이저에는 바이트 쌍 인코딩, WordPiece, SentencePiece가 있다.
4. 2. 임베딩(Embedding)
토큰은 룩업 테이블을 통해 임베딩 벡터로 변환된다. 이는 토큰의 원-핫 표현을 임베딩 행렬 과 곱하는 것과 같다. 예를 들어, 입력 토큰이 이면 원-핫 표현은 이고, 해당 임베딩 벡터는 다음과 같다.토큰 임베딩 벡터는 각 위치 인코딩 벡터(아래 참조)에 더해져 입력 벡터 시퀀스를 생성한다.
임베딩 벡터의 차원 수는 '은닉 크기' 또는 '임베딩 크기'라고 하며 로 표기한다.[34] 이 크기는 원본 트랜스포머 논문에서는 로 표기된다.[1]
4. 3. 위치 인코딩(Positional Encoding)
트랜스포머 모델은 입력 시퀀스에서 단어의 위치 정보를 파악하기 위해 위치 인코딩(Positional Encoding)을 사용한다. 이는 트랜스포머가 순차적인 정보를 처리하지 않기 때문에, 단어의 위치 정보를 추가하여 입력 시퀀스의 순서에 대한 편향을 유도하기 위함이다. 예를 들어, "man bites dog"와 "dog bites man"을 다르게 처리할 수 있게 한다.위치 인코딩은 유형의 함수로 정의되며, 여기서 는 양의 짝수 정수이다. 원래 논문에서는 다음과 같은 사인파 함수를 사용한 위치 인코딩을 정의했다.[1]
여기서 이며, 은 자유 매개변수로 원래 논문에서는 을 사용했다.

이 함수를 복소 함수로 표현하면 더 간단하게 나타낼 수 있다.
여기서 이다.
이 위치 인코딩 함수를 사용하는 주된 이유는 시프트가 선형 변환이기 때문이다.
여기서 는 시프트하려는 거리이다. 이를 통해 트랜스포머는 인코딩된 위치를 가져와 행렬 곱셈으로 n단계 앞 또는 뒤의 위치 인코딩을 찾을 수 있다.
선형 합을 취하면 모든 컨볼루션도 선형 변환으로 구현할 수 있다.
임의의 상수 에 대해. 이를 통해 트랜스포머는 인코딩된 위치를 가져와 이웃의 인코딩된 위치의 선형 합을 찾을 수 있다. 이 인코딩된 위치의 합은 어텐션 메커니즘에 공급될 때, 컨볼루션 신경망 언어 모델에서 일어나는 것과 매우 유사하게 이웃에 대한 어텐션 가중치를 생성한다. 저자는 "모델이 상대적인 위치에 의해 쉽게 어텐션하는 것을 배울 수 있을 것이라고 가설을 세웠습니다."라고 언급했다.
일반적인 구현에서는 모든 연산이 복소수가 아닌 실수 위에서 수행되지만, 복소수 곱셈은 실수 2x2 행렬 곱셈으로 구현될 수 있기 때문에 이는 표기상의 차이일 뿐이다.
트랜스포머는 사인파 외의 다른 위치 인코딩 방식을 사용할 수 있다.[67]
원 논문에서는 학습된 위치 인코딩도 사용했지만,[68] 사인파 인코딩보다 뛰어나지 않다고 보고했다.[1] 이후 연구에서는 인과적 마스킹 자체가 트랜스포머 디코더에 충분한 신호를 제공하여 위치 인코딩 모듈 없이도 절대 위치 인코딩을 암묵적으로 수행하도록 학습할 수 있다는 것을 발견했다.[69]
다양한 위치 인코딩 방식
- 회전 위치 임베딩 (RoPE, Rotary Positional Embedding)[70]: 2차원 벡터 목록을 회전시켜 위치 정보를 나타낸다. RoPE의 장점은 두 벡터의 내적이 상대적 위치에만 의존한다는 것이다.
- ALiBi (Attention with Linear Biases, 선형 바이어스를 사용한 어텐션)[71]: 어텐션 메커니즘에 선형 바이어스를 추가하여 위치 정보를 제공한다. ALiBi는 짧은 컨텍스트 창에서 사전 훈련을 수행한 다음 더 긴 컨텍스트 창에서 미세 조정할 수 있다.
4. 4. 피드포워드 네트워크(Feedforward Network)
트랜스포머의 피드포워드 네트워크(FFN) 모듈은 2계층 다층 퍼셉트론이다.[116] 수식은 다음과 같다.:
여기서 는 활성화 함수이다. 원래 트랜스포머는 ReLU 활성화를 사용했다.

중간 계층의 뉴런 수는 '중간 크기'(GPT),[53] '필터 크기'(BERT),[34] 또는 '피드포워드 크기'(BERT)라고 한다.[34] 이는 일반적으로 임베딩 크기보다 크다. 예를 들어, GPT-2 시리즈와 BERT 시리즈 모두에서 모델의 중간 크기는 임베딩 크기의 4배이다: .
트랜스포머는 원래 ReLU 활성화 함수를 사용했다. 이후 다른 활성화 함수들이 개발되었다. Llama 시리즈는 SwiGLU를 사용했고,[61] GPT-1과 BERT[34]는 GELU를 사용했다.[62] 대체 활성화 함수는 종종 피드포워드 모듈에서 게이트 선형 유닛과 함께 사용된다.[63]
Point-wise Feed-forward 서브 레이어에서는, 위치 에서의 입력 벡터 에 대해 피드 포워드 전결합 네트워크(MLP])를 적용한다.[116] 가중치 , 는 위치 에 의존하지 않고 공유된다(다른 레이어에서는 다른 가중치).[117] 즉, 특징량을 채널로 하는 위치 방향으로의 2-layer pointwise Conv1d와 등가인 처리를 수행한다.[118]
FFN은 층 내의 병렬 계산이 가능하다. 그러므로 이 서브 레이어는 위치 방향으로 병렬 계산이 가능하며, 트랜스포머의 목표인 높은 병렬성의 학습이 가능하게 된다.[119]
서브 레이어는 Residual connection 내에서 사용되기 때문에, 입출력 차원을 일치시키는 것이 바람직하다. 원 논문에서는 입출력 차원을 로 고정한 다음[120] 중간층의 차원을 입출력보다 크게 했다.[121]
4. 5. 잔차 연결(Residual Connection)
잔차 연결은 각 하위 계층(셀프 어텐션 및 피드포워드 네트워크)의 입력과 출력을 더하는 방식으로 동작한다. 즉, 각 하위 계층의 출력은 `LayerNorm(x + Sublayer(x))` 또는 `x + Sublayer(LayerNorm(x))` 형태로 표현된다. (여기서 `x`는 하위 계층의 입력, `Sublayer(x)`는 하위 계층의 연산 결과이다.) 이러한 잔차 연결은 기울기 소실 문제를 완화하고 학습을 안정화하는 데 도움을 준다.[45]잔차 연결과 함께 층 정규화(LayerNorm, LN)가 사용되는데, 이는 각 벡터에 개별적으로 적용되어 수치적 안정성과 수렴에 기여한다. 층 정규화와 잔차 연결의 적용 순서에 따라 'post-LN'과 'pre-LN' 두 가지 방식이 존재한다.
- post-LN: 각 하위 계층의 출력에 층 정규화를 적용한다. (`LayerNorm(x + Sublayer(x))`) 2017년 초기 트랜스포머 모델에서 사용되었으나, 학습이 어렵고 학습률 조정(warm-up)이 필요했다.
- pre-LN: 각 하위 계층의 입력에 층 정규화를 적용한 후, 하위 계층의 연산 결과를 더한다. (`x + Sublayer(LayerNorm(x))`) 2018년에 제안되었으며, 학습률 조정(warm-up) 없이도 학습이 빠르고 쉽다는 장점이 있다.[56]
4. 6. 레이어 정규화(Layer Normalization)
트랜스포머는 층 정규화(LayerNorm) 외에도 다양한 정규화 방식을 사용한다. 2018년에 제안된 pre-LN 규칙은 학습을 안정화하고 빠른 수렴을 유도하며, warm-up이 필요 없다.[45]RMSNorm[64], 캡슐 정규화(CapsuleNorm)[65], 스케일 정규화(ScaleNorm),[66] 픽스 정규화(FixNorm)[66] 등이 연구되고 있다.
5. 학습
트랜스포머는 대규모 데이터셋에서 먼저 자기 지도 학습 방식으로 사전 학습(Pre-training)을 진행한 후, 특정 작업에 맞게 지도 학습으로 미세 조정(Fine-tuning)된다.[11] 사전 학습에는 레이블이 없는 데이터를 사용하며, 더 파일과 같은 대규모 코퍼스가 활용된다.
사전 학습 및 미세 조정 단계에서 수행되는 일반적인 작업은 다음과 같다:
T5 트랜스포머 보고서[46]에서는 다음과 같은 다양한 자연어 사전 훈련 작업을 소개한다.
- 불완전하거나 손상된 텍스트 복원 및 수정
- 자연어 간 번역
- 자연어의 실용적 수용성 판단[47]
이러한 작업들은 인간에게는 쉽지만, 이전 세대의 기계 학습 모델에게는 어려운 과제였다.
트랜스포머는 일반적으로 레이블이 있는 훈련 데이터가 제한적이기 때문에, 미세 조정보다 훨씬 큰 데이터 세트에서 사전 학습을 수행한다.
5. 1. 학습 방법
원 논문[1]에서는 학습률 웜업(Learning Rate Warm-up)을 사용할 것을 권장했다. 학습률 웜업은 학습 초기에 학습률을 0에서 최댓값까지 선형적으로 증가시킨 후 다시 감소시키는 방법이다. 이는 학습의 처음 부분(일반적으로 총 훈련 단계의 2%로 권장됨)에 적용된다.2020년 논문에서는 레이어 정규화를 다중 헤드 어텐션 및 피드포워드 계층 ''후''에 사용하는 것이 학습률 웜업 없이도 훈련을 안정화시키는 것으로 나타났다.[45]
트랜스포머는 일반적으로 먼저 대규모 일반 데이터 세트에 대해 자기 지도 학습으로 사전 훈련(Pre-train)을 거친 다음, 소규모의 작업별 데이터 세트에 대해 지도 학습 미세 조정(Fine-tuning)을 거친다. 사전 훈련 데이터 세트는 일반적으로 더 파일과 같은 레이블이 없는 대규모 코퍼스이다.
사전 훈련 및 미세 조정 작업에는 일반적으로 다음이 포함된다.
T5 트랜스포머 보고서[46]는 많은 수의 자연어 사전 훈련 작업을 문서화했는데, 몇 가지 예는 다음과 같다.
- 불완전하거나 손상된 텍스트 복원 또는 수정.
- 자연어 간의 번역 (기계 번역)
- 자연어의 실용적 수용성 판단.[47]
이러한 각 작업은 해당 언어의 인간 원어민에게는 사소하거나 분명하지만, 이전 세대의 기계 학습 아키텍처에서는 일반적으로 어려움이 있었다는 점에 유의해야 한다.
트랜스포머는 일반적으로 반지도 학습(비지도 학습을 통한 사전 학습과 이후의 지도 학습을 통한 미세 조정)을 거친다. 레이블이 지정된 훈련 데이터의 가용성이 제한적이므로, 사전 학습은 미세 조정보다 훨씬 더 큰 데이터 세트에 대해 수행되는 경우가 많다. 사전 학습 및 미세 조정 작업은 다음과 같다.
5. 2. 학습 과제
트랜스포머는 대규모 데이터 세트에서 자기 지도 학습으로 사전 훈련을 거친 후, 특정 작업에 맞게 지도 학습 미세 조정을 거친다.[11] 사전 훈련에는 일반적으로 다음 작업이 포함된다.일반적으로 언어 모델링에는 "마스크",[48] "자기 회귀",[49] "prefixLM"[59]의 3가지 유형이 있다.
마스크 작업에서는 하나 이상의 토큰이 가려지고, 모델은 문맥을 기반으로 가려진 토큰을 예측한다. BERT 모델 시리즈는 마스크된 토큰 예측 및 다른 작업을 위해 훈련된다.
자기 회귀 작업에서 전체 시퀀스는 처음에 가려지고 모델은 첫 번째 토큰에 대한 확률 분포를 생성한다. 그런 다음 첫 번째 토큰이 공개되고 모델은 두 번째 토큰을 예측하는 식으로 진행된다. GPT 모델 시리즈는 자기 회귀 작업으로 훈련된다.
prefixLM 작업에서 시퀀스는 두 부분으로 나뉜다. 첫 번째 부분은 문맥으로 제시되고 모델은 두 번째 부분의 첫 번째 토큰을 예측한다. 그런 다음 해당 토큰이 공개되고 모델은 두 번째 토큰을 예측하는 식으로 진행된다. T5 모델 시리즈는 prefixLM 작업으로 훈련된다.
"마스크 언어 모델링"의 "마스크"는 "마스크된 어텐션"의 "마스크"와 다르며, "prefixLM"(prefix 언어 모델링)은 "prefixLM"(prefix 언어 모델)과 다르다.
6. 개선 및 확장
트랜스포머 모델은 계산 복잡도를 줄이고, 다양한 분야에 적용하기 위한 연구가 활발히 진행되고 있다.
표준 어텐션은 입력 시퀀스 길이에 대해 2차 함수적으로 증가하기 때문에, 트랜스포머 기반 아키텍처의 학습은 특히 긴 입력을 처리할 때 비용이 많이 들 수 있다.[87] 이를 개선하기 위해 다양한 방법이 연구되었다. Reformer(2020)는 지역 민감 해싱과 가역 레이어를 사용하여 계산 부하를 으로 줄였다.[87][89][90] 희소 어텐션은 보다 느리게 증가하는 어텐션 그래프를 사용하며, BigBird(2020)는 으로 증가하는 무작위 스몰 월드 네트워크를 사용한다.[91][92] 랜덤 특징 어텐션(2021)은 푸리에 랜덤 특징을 사용하여 선형 시간 복잡도를 달성하며,[94] 퍼포머(Performer)(2022)는 동일한 랜덤 특징 어텐션을 사용하지만, 그람-슈미트 과정을 통해 정규화한다.[95]
트랜스포머는 텍스트 외의 다른 모달리티(입력 또는 출력)에도 적용될 수 있는데, 일반적으로 모달리티를 "토큰화"하는 방법을 찾아서 수행한다. 멀티모달 모델은 처음부터 훈련하거나 미세 조정하여 훈련할 수 있다. 2022년 연구에 따르면 자연어만으로 사전 훈련된 트랜스포머는 단 0.03%의 파라미터로 미세 조정될 수 있으며 다양한 논리 및 시각적 작업에서 LSTM과 경쟁할 수 있으며, 이는 전이 학습을 보여준다.[96] 비전 트랜스포머[40]는 입력 이미지를 일련의 패치로 분해하고, 이를 벡터로 변환하고, 표준 트랜스포머의 토큰처럼 처리하여 컴퓨터 비전에 트랜스포머를 적용한다. Conformer[99]와 Whisper[100]는 음성 인식을 위해 음성 신호를 스펙트럼으로 변환한 다음, 이미지를 처리하는 것처럼 처리한다. Perceiver[101][102]는 멀티모달리티를 위해 설계된 트랜스포머의 변형이다.
6. 1. 효율적인 구현
트랜스포머 모델은 텐서플로우와 파이토치와 같은 표준 딥러닝 프레임워크에서 구현되었다.[10] 허깅 페이스에서 제작한 ''Transformers'' 라이브러리는 트랜스포머 기반 아키텍처와 사전 훈련된 모델을 제공한다.[10]FlashAttention[74]은 GPU에서 트랜스포머 어텐션 메커니즘을 효율적으로 구현하는 알고리즘이다. 이 알고리즘은 행렬 곱셈을 블록 단위로 수행하여 GPU의 캐시를 효율적으로 사용하고, 데이터 이동을 최소화하여 속도를 향상시킨다. 더 긴 컨텍스트 길이를 처리하기 위해 개선된 버전인 FlashAttention-2[75][76][77]가 개발되었다. FlashAttention-2는 A100 GPU에서 최대 230 TFLOPs/s를 달성하여 기존 FlashAttention보다 2배 빠르다.
FlashAttention-2의 주요 발전 사항은 다음과 같다:[78]
- 비(非)행렬 곱셈 FLOPs 감소
- 시퀀스 길이 차원에서 개선된 병렬 처리
- GPU 워프 간 더 나은 작업 분할
- 최대 256까지의 헤드 차원 및 멀티 쿼리 어텐션(MQA) 및 그룹화된 쿼리 어텐션(GQA) 지원
벤치마크 결과 FlashAttention-2는 FlashAttention보다 최대 2배, PyTorch의 표준 어텐션 구현보다 최대 9배 빠르다.[78]
멀티 쿼리 어텐션(Multi-Query Attention)은 멀티 헤드 어텐션 메커니즘을 변경한 것이다.[79] 일반적인 멀티 헤드 어텐션에서는 각 헤드마다 다른 키()와 값() 벡터를 사용하지만, 멀티 쿼리 어텐션에서는 하나의 키와 값 벡터를 모든 헤드가 공유한다. 이는 모델 품질과 학습 속도에는 큰 영향을 주지 않지만, 추론 속도를 향상시킨다.
그룹화된 쿼리 어텐션(GQA)은 어텐션 헤드를 그룹으로 나누고, 각 그룹이 키-값 쌍을 공유하는 방식이다.[80] MQA는 GQA의 특수한 경우(그룹이 하나)이며, 표준 멀티 헤드 어텐션은 GQA의 또 다른 특수한 경우(그룹이 최대)이다.
자기 회귀 변환기가 텍스트 생성과 같은 추론에 사용될 때, 키와 값 벡터는 각 단계마다 다시 계산할 필요가 없다. '''KV 캐싱'''은 각 어텐션 블록에서 계산된 키와 값 벡터를 저장하여 재계산을 방지한다. '''페이징 어텐션'''은 KV 캐싱에 메모리 페이징을 적용한 기술이다.[81][82][83]
트랜스포머가 내장된 프롬프트를 사용하는 경우, 프롬프트에 대한 키와 값 벡터를 미리 계산하여 디스크에 저장할 수 있다. 이는 온라인 챗봇과 같이 짧은 상호 작용이 많은 경우 계산 비용을 크게 절감할 수 있다.
추측적 디코딩(Speculative Decoding)[84][85]은 대규모 언어 모델의 디코딩 속도를 높이는 기술이다. 작은 모델을 사용하여 여러 토큰을 예측하고, 큰 모델로 한 번에 검증하여 병렬 처리를 가능하게 한다. CPU의 추측적 실행과 유사하게, 미래 토큰을 추측하여 계산하고 추측이 틀리면 폐기한다.
추측적 디코딩의 과정은 다음과 같다:
1. 작은 모델 또는 휴리스틱을 사용하여 몇 개의 추측 토큰을 생성한다.
2. 큰 모델을 통해 추측 토큰을 실행하여 검증한다.
3. 허용된 토큰은 유지하고, 거부된 토큰은 대체하거나 폐기한다.
4. 모든 토큰이 생성될 때까지 반복한다.
비탐욕적 디코딩의 경우에도 추측적 디코딩을 사용할 수 있으며, 추측 토큰은 확률적으로 허용되거나 거부되어 최종 출력 분포를 유지한다.[84][86]
6. 2. 2차 미만 트랜스포머(Sub-quadratic Transformers)
트랜스포머 기반 아키텍처의 학습은 특히 긴 입력을 처리할 때 비용이 많이 들 수 있다.[87] 표준 어텐션은 입력 시퀀스 길이에 대해 2차 함수적으로 증가하기 때문이다.Reformer(2020)[87][89]는 지역 민감 해싱과 가역 레이어를 사용하여 계산 부하를 으로 줄인다.[90]
희소 어텐션[91]은 보다 느리게 증가하는 어텐션 그래프를 사용한다. 예를 들어 BigBird(2020)[92]는 으로 증가하는 무작위 스몰 월드 네트워크를 사용한다.
랜덤 특징 어텐션(2021)[94]은 푸리에 랜덤 특징을 사용하여 선형 시간 복잡도를 달성한다. 퍼포머(Performer)(2022)[95]는 동일한 랜덤 특징 어텐션을 사용하지만, 그람-슈미트 과정을 통해 정규화한다.
Reformer는 로컬리티 센서티브 해싱과 가역층을 사용하여 계산 부하를 줄이는 대안 아키텍처로 제시되었다.[127][128]
6. 3. 다중 모달 트랜스포머(Multimodal Transformers)
트랜스포머는 텍스트 외의 다른 모달리티(입력 또는 출력)에도 적용될 수 있는데, 일반적으로 모달리티를 "토큰화"하는 방법을 찾아서 수행한다.멀티모달 모델은 처음부터 훈련하거나 미세 조정하여 훈련할 수 있다. 2022년 연구에 따르면 자연어만으로 사전 훈련된 트랜스포머는 단 0.03%의 파라미터로 미세 조정될 수 있으며 다양한 논리 및 시각적 작업에서 LSTM과 경쟁할 수 있으며, 이는 전이 학습을 보여준다.[96] LLaVA는 언어 모델(Vicuna-13B)[97]와 시각 모델(ViT-L/14)로 구성된 비전-언어 모델이며, 선형 레이어로 연결된다. 선형 레이어만 미세 조정된다.[98]
비전 트랜스포머[40]는 입력 이미지를 일련의 패치로 분해하고, 이를 벡터로 변환하고, 표준 트랜스포머의 토큰처럼 처리하여 컴퓨터 비전에 트랜스포머를 적용한다.
Conformer[99]와 이후 Whisper[100]는 음성 인식을 위해 동일한 패턴을 따른다. 먼저 음성 신호를 스펙트럼으로 변환한 다음, 이미지를 처리하는 것처럼 처리한다. 즉, 일련의 패치로 분해하고, 벡터로 변환하여 표준 트랜스포머의 토큰처럼 처리한다.
Perceiver[101][102]는 멀티모달리티를 위해 설계된 트랜스포머의 변형이다.
이미지 생성의 경우, 주목할 만한 아키텍처로는 DALL-E 1 (2021), Parti (2022),[103] Phenaki (2023),[104] 및 Muse (2023)가 있다.[105] 이후 모델과 달리 DALL-E는 확산 모델이 아니다. 대신, 자체 회귀 방식으로 텍스트를 생성한 다음 이미지의 토큰 표현을 생성하는 디코더 전용 트랜스포머를 사용하며, 이는 변형 자동 인코더에 의해 이미지로 변환된다.[106] Parti는 인코더-디코더 트랜스포머로, 인코더는 텍스트 프롬프트를 처리하고, 디코더는 이미지의 토큰 표현을 생성한다.[107] Muse는 마스크되지 않은 이미지 토큰에서 마스크된 이미지 토큰을 예측하도록 훈련된 인코더 전용 트랜스포머이다. 생성 과정에서 모든 입력 토큰은 마스크되며, 모든 토큰이 예측될 때까지 다음 반복에 가장 신뢰도가 높은 예측이 포함된다.[105] Phenaki는 텍스트-비디오 모델이다. 사전 계산된 텍스트 토큰을 조건으로 하는 양방향 마스크된 트랜스포머이다. 생성된 토큰은 비디오로 디코딩된다.[104]
7. 응용
트랜스포머는 자연어 처리, 컴퓨터 비전, 음성 처리 등 다양한 분야에서 활용되고 있다. 2020년에는 트랜스포머 아키텍처를 사용한 GPT-2를 미세 조정하여 체스를 플레이할 수 있다는 것이 밝혀졌다.[137]
7. 1. 자연어 처리(NLP)
트랜스포머는 기계 번역이나 시계열 예측과 같은 자연어 처리 분야에서 주로 응용되어 왔다.[132] GPT(GPT-1, GPT-2, GPT-3, GPT-4, ChatGPT), BERT, XLNet, RoBERTa 등 많은 사전 훈련된 모델은 트랜스포머가 이러한 자연어 처리 관련 다양한 작업을 수행하는 능력을 입증했으며, 현실 세계의 과제에 응용할 수 있다.[133][134][135]- 기계 번역: 한 언어를 다른 언어로 번역하는 작업이다.
- 자동 요약: 긴 텍스트를 짧게 요약하는 작업이다.
- 자연어 생성: 텍스트를 생성하는 작업이다.
- 개체명 인식(NER): 텍스트에서 사람, 장소, 기관 등 특정 개체를 인식하는 작업이다.[136]
- 생물학적 배열 분석
7. 2. 컴퓨터 비전(Computer Vision)
2020년 구글 연구팀이 발표한 Vision Transformer에서는 트랜스포머의 아키텍처를 이미지 인식 분야에 적용하여, 컨볼루션 신경망을 능가하는 성적을 거두었다.[138]7. 3. 음성 처리(Speech Processing)
트랜스포머는 기계 번역이나 시계열 예측과 같은 자연어 처리 분야에서 주로 응용되어 왔다.[132] 요약에 따르면, 트랜스포머는 음성 처리 분야에서 다음과 같은 작업들을 수행할 수 있다.- 음성 인식(Speech Recognition): 음성을 텍스트로 변환하는 작업이다.
- 음성 합성(Speech Synthesis): 텍스트를 음성으로 변환하는 작업이다.
참조
[1]
논문
Attention is All you Need
https://proceedings.[...]
Curran Associates, Inc.
2017
[2]
논문
Long Short-Term Memory
1997-11-01
[3]
웹사이트
Better Language Models and Their Implications
https://openai.com/b[...]
2019-02-14
[4]
arXiv
Neural Machine Translation by Jointly Learning to Align and Translate
2014-09-01
[5]
arXiv
Effective Approaches to Attention-based Neural Machine Translation
2015-08-17
[6]
논문
Stabilizing Transformers for Reinforcement Learning
https://proceedings.[...]
PMLR
2020-11-21
[7]
arXiv
Robust Speech Recognition via Large-Scale Weak Supervision
[8]
논문
Learning to Throw With a Handful of Samples Using Decision Transformers
https://ieeexplore.i[...]
2023-02
[9]
arXiv
Grandmaster-Level Chess Without Search
2024-02-07
[10]
서적
Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations
[11]
웹사이트
Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
http://ai.googleblog[...]
2018-11-02
[12]
논문
Connectionist models and their properties
https://www.scienced[...]
1982-07-01
[13]
서적
Parallel Distributed Processing, Volume 1: Explorations in the Microstructure of Cognition: Foundations, Chapter 2
https://stanford.edu[...]
Bradford Books
1987-07-29
[14]
논문
Learning, invariance, and generalization in high-order neural networks
https://opg.optica.o[...]
1987-12-01
[15]
논문
Learning to control fast-weight memories: an alternative to recurrent nets.
https://archive.org/[...]
1992
[16]
간행물
The correlation theory of brain function
http://cogprints.org[...]
MPI Biophysical Chemistry
1981
[17]
간행물
Dynamic connections in neural networks
1982-12
[18]
논문
Using Fast Weights to Deblur Old Memories
https://escholarship[...]
1987
[19]
학술대회
Transformers are RNNs: Fast autoregressive Transformers with linear attention
https://proceedings.[...]
PMLR
2020
[20]
학술대회
Linear Transformers Are Secretly Fast Weight Programmers
Springer
2021
[21]
서적
Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP)
Association for Computational Linguistics
2014-10
[22]
arXiv
Sequence to sequence learning with neural networks
2014-12-14
[23]
arXiv
Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling
[24]
citation
Are GRU cells more specific and LSTM cells more sensitive in motive classification of text?
[25]
논문
Sequence to Sequence Learning with Neural Networks
https://proceedings.[...]
Curran Associates, Inc.
2014
[26]
arXiv
Effective Approaches to Attention-based Neural Machine Translation
2015
[27]
arXiv
Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
2016-09-01
[28]
뉴스
The Great A.I. Awakening
https://www.nytimes.[...]
2016-12-14
[29]
arXiv
A Decomposable Attention Model for Natural Language Inference
2016-09-25
[30]
간행물
8 Google Employees Invented Modern AI. Here's the Inside Story
https://www.wired.co[...]
[31]
서적
Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing
Association for Computational Linguistics
2016-11
[32]
citation
RWKV: Reinventing RNNs for the Transformer Era
2023-12-10
[33]
간행물
Was Linguistic A.I. Created by Accident?
https://www.newyorke[...]
2024-08-23
[34]
arXiv
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
2018-10-11
[35]
웹사이트
Google: BERT now used on almost every English query
https://searchengine[...]
2020-10-15
[36]
웹사이트
Recent Advances in Google Translate
http://research.goog[...]
2024-05-08
[37]
웹사이트
The inside story of how ChatGPT was built from the people who made it
https://www.technolo[...]
2024-08-06
[38]
웹사이트
Improving language understanding with unsupervised learning
https://openai.com/r[...]
2023-03-18
[39]
간행물
finetune-transformer-lm
https://github.com/o[...]
OpenAI
2023-05-01
[40]
arXiv
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
2021-06-03
[41]
간행물
Decision Transformer: Reinforcement Learning via Sequence Modeling
2021-06-24
[42]
간행물
Rethinking Attention with Performers
2022-11-19
[43]
Conference
A ConvNet for the 2020s
https://openaccess.t[...]
2022
[44]
간행물
Scaling Rectified Flow Transformers for High-Resolution Image Synthesis
2024-03-05
[45]
arXiv
On Layer Normalization in the Transformer Architecture
2020-06-29
[46]
journal
Exploring the limits of transfer learning with a unified text-to-text transformer
https://dl.acm.org/d[...]
2020-01-01
[47]
arXiv
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
2019
[48]
웹사이트
Masked language modeling
https://huggingface.[...]
2023-10-05
[49]
웹사이트
Causal language modeling
https://huggingface.[...]
2023-10-05
[50]
간행물
Using the Output Embedding to Improve Language Models
https://arxiv.org/ab[...]
2024-10-21
[51]
웹사이트
Sequence Modeling with Neural Networks (Part 2): Attention Models
https://indico.io/bl[...]
2019-10-15
[52]
웹사이트
The Illustrated Transformer
http://jalammar.gith[...]
2019-10-15
[53]
웹사이트
Keras documentation: GPT2Backbone model
https://keras.io/api[...]
2024-08-08
[54]
journal
What Does BERT Look at? An Analysis of BERT's Attention
https://www.aclweb.o[...]
Association for Computational Linguistics
2020-05-20
[55]
journal
XLNet: Generalized Autoregressive Pretraining for Language Understanding
https://proceedings.[...]
Curran Associates, Inc.
2019
[56]
간행물
Learning Deep Transformer Models for Machine Translation
2019-06-04
[57]
간행물
Formal Algorithms for Transformers
2022-07-19
[58]
journal
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
http://jmlr.org/pape[...]
2020
[59]
간행물
UL2: Unifying Language Learning Paradigms
2023-02-28
[60]
웹사이트
Recent Advances in Google Translate
http://research.goog[...]
2024-08-07
[61]
arXiv
GLU Variants Improve Transformer
2020-02-01
[62]
arXiv
Gaussian Error Linear Units (GELUs)
2016-06-27
[63]
arXiv
GLU Variants Improve Transformer
2020-02-14
[64]
journal
Root Mean Square Layer Normalization
https://proceedings.[...]
Curran Associates, Inc.
2019
[65]
journal
Mean-Field-Type Transformers
https://doi.org/10.3[...]
2024
[66]
journal
Transformers without Tears: Improving the Normalization of Self-Attention
https://aclanthology[...]
Association for Computational Linguistics
2019-11-02
[67]
journal
Position Information in Transformers: An Overview
2022-06-06
[68]
journal
Convolutional Sequence to Sequence Learning
https://proceedings.[...]
PMLR
2017-07-17
[69]
간행물
Transformer Language Models without Positional Encodings Still Learn Positional Information
2022-12-05
[70]
arXiv
RoFormer: Enhanced Transformer with Rotary Position Embedding
2021-04-01
[71]
arXiv
Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation
2021-08-01
[72]
arXiv
Self-Attention with Relative Position Representations
2018
[73]
간행물
Rethinking Positional Encoding in Language Pre-training
2021-03-15
[74]
journal
FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
https://proceedings.[...]
2022-12-06
[75]
웹사이트
Stanford CRFM
https://crfm.stanfor[...]
2023-07-18
[76]
웹사이트
FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning
https://princeton-nl[...]
2023-07-18
[77]
웹사이트
Introducing Together AI Chief Scientist Tri Dao, as he releases FlashAttention-2 to speed up model training and inference
https://together.ai/[...]
2023-07-18
[78]
arXiv
GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
2023-12-23
[79]
arXiv
PaLM: Scaling Language Modeling with Pathways
2022-04-01
[80]
간행물
GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
2023-12-23
[81]
서적
Proceedings of the 29th Symposium on Operating Systems Principles
Association for Computing Machinery
2023-10-23
[82]
간행물
vllm-project/vllm
https://github.com/v[...]
vLLM
2024-06-20
[83]
웹사이트
vLLM: Easy, Fast, and Cheap LLM Serving with PagedAttention
https://blog.vllm.ai[...]
2024-06-20
[84]
간행물
Fast Inference from Transformers via Speculative Decoding
2023-05-18
[85]
웹사이트
Towards 100x Speedup: Full Stack Transformer Inference Optimization
https://yaofu.notion[...]
2023-12-13
[86]
간행물
Accelerating Large Language Model Decoding with Speculative Sampling
2023-02-02
[87]
arXiv
Reformer: The Efficient Transformer
[88]
arXiv
Long Range Arena: A Benchmark for Efficient Transformers
2020-11-08
[89]
웹사이트
Reformer: The Efficient Transformer
http://ai.googleblog[...]
2020-10-22
[90]
journal
The Reversible Residual Network: Backpropagation Without Storing Activations
https://proceedings.[...]
Curran Associates, Inc.
2017
[91]
간행물
Generating Long Sequences with Sparse Transformers
2019-04-23
[92]
웹사이트
Constructing Transformers For Longer Sequences with Sparse Attention Methods
https://ai.googleblo[...]
2021-05-28
[93]
arXiv
An Attention Free Transformer
2021-09-21
[94]
arXiv
Random Feature Attention
2021-03-19
[95]
arXiv
Masked Language Modeling for Proteins via Linearly Scalable Long-Context Transformers
2020-09-30
[96]
journal
Frozen Pretrained Transformers as Universal Computation Engines
https://ojs.aaai.org[...]
2022-06-28
[97]
웹사이트
Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality {{!}} LMSYS Org
https://lmsys.org/bl[...]
2024-08-11
[98]
journal
Visual Instruction Tuning
https://proceedings.[...]
2023-12-15
[99]
arXiv
Conformer: Convolution-augmented Transformer for Speech Recognition
[100]
arXiv
Robust Speech Recognition via Large-Scale Weak Supervision
[101]
arXiv
Perceiver: General Perception with Iterative Attention
2021-06-22
[102]
arXiv
Perceiver IO: A General Architecture for Structured Inputs & Outputs
2021-08-02
[103]
웹사이트
Parti: Pathways Autoregressive Text-to-Image Model
https://sites.resear[...]
2024-08-09
[104]
journal
Phenaki: Variable Length Video Generation from Open Domain Textual Descriptions
https://openreview.n[...]
2022-09-29
[105]
arXiv
Muse: Text-To-Image Generation via Masked Generative Transformers
2023-01-02
[106]
논문
Zero-Shot Text-to-Image Generation
2021-02-26
[107]
논문
Scaling Autoregressive Models for Content-Rich Text-to-Image Generation
2022-06-21
[108]
간행물
Precision information extraction for rare disease epidemiology at scale
2023
[109]
ArXiv
Attention Is All You Need
2017-06-12
[110]
ArXiv
Attention Is All You Need
2017-06-12
[111]
웹사이트
Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
https://ai.googleblo[...]
2019-08-25
[112]
웹사이트
Better Language Models and Their Implications
https://openai.com/b[...]
2019-08-25
[113]
웹사이트
Sequence Modeling with Neural Networks (Part 2): Attention Models
https://indico.io/bl[...]
2019-10-15
[114]
웹사이트
The Illustrated Transformer
http://jalammar.gith[...]
2019-10-15
[115]
간행물
What Does BERT Look at? An Analysis of BERT's Attention
https://www.aclweb.o[...]
Association for Computational Linguistics
2019-08
[116]
문서
[117]
문서
[118]
문서
[119]
문서
[120]
문서
[121]
문서
[122]
ArXiv
Attention Is All You Need
2017-06-12
[123]
ArXiv
Attention Is All You Need
2017-06-12
[124]
웹사이트
The Illustrated Transformer
http://jalammar.gith[...]
2019-10-15
[125]
ArXiv
Attention Is All You Need
2017-06-12
[126]
ArXiv
Reformer: The Efficient Transformer
[127]
웹사이트
Task with long sequences
https://www.coursera[...]
2020-11-20
[128]
웹사이트
Reformer: The Efficient Transformer
https://ai.googleblo[...]
2020-10-22
[129]
웹사이트
Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
https://ai.googleblo[...]
2019-08-25
[130]
웹사이트
Better Language Models and Their Implications
https://openai.com/b[...]
2019-08-25
[131]
간행물
GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding
Association for Computational Linguistics
2018
[132]
웹사이트
What is a Transformer?
https://medium.com/i[...]
2019-10-21
[133]
웹사이트
Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
https://ai.googleblo[...]
2019-08-25
[134]
웹사이트
Better Language Models and Their Implications
https://openai.com/b[...]
2019-08-25
[135]
서적
XLNet: Generalized Autoregressive Pretraining for Language Understanding
2019-06-19
[136]
웹사이트
10 Applications of Artificial Neural Networks in Natural Language Processing
https://medium.com/@[...]
2019-10-21
[137]
ArXiv
The Chess Transformer: Mastering Play using Generative Language Models
2020-08-21
[138]
웹사이트
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
https://arxiv.org/ab[...]
2020-11-19
[139]
ArXiv
Attention Is All You Need
2017-06-12
[140]
웹인용
Transformer in CV
https://towardsdatas[...]
Towards Data Science
2021-12-31
[141]
서적
Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations
[142]
간행물
Long Short-Term Memory
1997-11-01
[143]
웹인용
Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
http://ai.googleblog[...]
2018-11-02
[144]
웹인용
Better Language Models and Their Implications
https://openai.com/b[...]
2019-02-14
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
