어텐션 메커니즘이란 무엇인가요?

작성자

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

어텐션 메커니즘이란 무엇인가요?

어텐션 메커니즘은 딥 러닝 모델이 입력 데이터에서 가장 관련성이 높은 부분에 우선순위를 부여(또는 주의)하도록 지시하는 머신 러닝 기법입니다. 어텐션 메커니즘의 혁신은 ChatGPT와 같은 인기 애플리케이션을 구동하는 최신 대규모 언어 모델(LLM)을 탄생시킨 트랜스포머 아키텍처를 가능하게 했습니다.

이름에서 알 수 있듯이 어텐션 메커니즘은 인간(및 다른 동물)이 눈에 띄는 세부 사항에 선택적으로 더 많은 주의를 기울이고 그 순간 덜 중요한 세부 사항은 무시하는 능력에서 영감을 얻었습니다. 모든 정보에 액세스하되 가장 관련성이 높은 정보에만 집중하면 의미 있는 세부 정보를 놓치지 않으면서도 제한된 메모리와 시간을 효율적으로 사용할 수 있습니다.

수학적으로 말하면, 어텐션 메커니즘은 해당 작업에 대한 입력 시퀀스의 각 부분의 상대적 중요성을 반영하는 어텐션 가중치를 계산합니다. 그런 다음 해당 어텐션 가중치를 적용하여 입력의 각 부분의 영향력을 각각의 중요도에 따라 증가(또는 감소)시킵니다. 어텐션 모델(즉, 어텐션 메커니즘을 사용하는 인공 지능 모델)은 대규모 예제 데이터 세트에 대한 지도 학습 또는 자기 지도 학습을 통해 정확한 어텐션 가중치를 할당하도록 훈련됩니다.

어텐션 메커니즘은 원래 2014년 Bahdanau et al에 의해 기계 번역에 사용된 당시 최첨단 순환 신경망(RNN) 모델의 단점을 해결하는 기술로 도입되었습니다. 이후의 연구에서는 이미지 캡션 및 시각적 질의응답과 같은 작업에 사용되는 합성 신경망(CNN)에 어텐션 메커니즘을 통합했습니다.

2017년, "Attention is All You Need"이라는 획기적인 논문에서 재귀와 합성곱을 완전히 피하고 오로지 어텐션 레이어와 표준 피드포워드 레이어만 사용하는 트랜스포머 모델을 소개했습니다. 이후 트랜스포머 아키텍처는 현재 진행 중인 생성형 AI 시대를 뒷받침하는 최첨단 모델의 근간이 되었습니다.

어텐션 메커니즘은 주로 요약, 질문 답변, 텍스트 생성감정 분석과 같은 자연어 처리(NLP) 작업에 사용되는 LLM과 관련이 있지만, 어텐션 기반 모델은 다른 영역에서도 널리 사용됩니다. 이미지 생성에 사용되는 주요 확산 모델에는 종종 어텐션 메커니즘이 통합되어 있습니다. 컴퓨팅 비전 분야에서 비전 트랜스포머(ViT)는 물체 감지,1 이미지 분할2 및 시각적 질문 답변을 포함한 작업에서 우수한 결과를 달성했습니다.3

어텐션 메커니즘이 중요한 이유는 무엇인가요?

트랜스포머 모델과 이를 구동하는 어텐션 메커니즘은 딥 러닝의 거의 모든 하위 영역에서 최첨단 결과를 달성했습니다. 어텐션 메커니즘의 특성은 컨볼루션 신경망(CNN)에 사용되는 컨볼루션 메커니즘과 순환 신경망(RNN)에 사용되는 순환 루프에 비해 상당한 이점을 제공합니다.

  • 시간 경과에 따른 유연성: RNN이 순차적 데이터를 처리하는 방식은 본질적으로 직렬화되며, 이는 RNN이 특정 순서로 시퀀스의 각 시간 단계를 개별적으로 처리한다는 것을 의미합니다. 이로 인해 RNN은 데이터 과학 용어로 종속성이라고 하는 상관 관계를 식별하기 어렵게 되며, 이들 사이에는 많은 단계가 있습니다. 반대로, 어텐션 메커니즘은 전체 시퀀스를 동시에 검사하고 특정 단계에 초점을 맞출 순서에 대한 결정을 내릴 수 있습니다.

  • 공간에 대한 유연성: CNN은 본질적으로 지역적이며, 합성곱을 사용하여 한 번에 하나씩 입력 데이터의 작은 하위 집합을 처리합니다. 이는 CNN이 서로 인접하지 않은 단어(텍스트) 또는 픽셀(이미지) 간의 상관 관계와 같이 멀리 떨어진 종속성을 식별하기 어렵게 만듭니다. 어텐션 메커니즘은 완전히 다른 방식으로 데이터를 처리하기 때문에 이러한 제한이 없습니다.

  • 병렬화: 어텐션 집중 메커니즘의 특성상 직렬화된 방식이 아닌 많은 계산 단계를 한 번에 수행해야 합니다. 이를 통해 GPU가 제공하는 성능과 속도를 활용하여 고도의 병렬 컴퓨팅을 수행할 수 있습니다.

딥 러닝의 어텐션 메커니즘이 어떻게 작동하는지, 그리고 왜 생성형 AI의 혁명을 촉발하는 데 도움이 되었는지 이해하려면 먼저 어텐션이 처음 도입된 이유, 즉 기계 번역에 사용되는 RNN 기반 Seq2Seq 모델을 개선하기 위해 어텐션이 처음 도입된 이유를 이해하는 것이 도움이 됩니다.
 

어텐션 메커니즘 없이 Seq2Seq가 작동하는 방식

RNN은 '메모리'에 해당하는 반복 루프를 갖춘 신경망으로, 순차적인 데이터를 처리할 수 있습니다. RNN은 정해진 입력 벡터의 시퀀스를 받아 시간 단위로 처리합니다. 각 타임스텝이 끝나면 숨겨진 상태라고 하는 결과 네트워크 상태가 다음 입력 벡터와 함께 루프에 다시 제공됩니다.

RNN은 훈련 중에 그래디언트가 사라지거나 폭발하는 문제를 빠르게 겪습니다. 이로 인해 RNN은 처리할 수 있는 입력 문장의 길이가 크게 제한되었기 때문에 많은 NLP 작업에서 실용적이지 않았습니다.4 이러한 한계는 "장기" 메모리를 보존하기 위해 게이팅 메커니즘을 추가하는 장단기 메모리 네트워크(LSTM)라는 향상된 RNN 아키텍처로 어느 정도 완화되었습니다.

주목받기 전에는 Seq2Seq 모델이 기계 번역을 위한 최첨단 모델이었습니다. Seq2Seq은 인코더-디코더 아키텍처에서 두 개의 LSTM을 사용합니다.

  • 인코더인 첫 번째 LSTM은 소스 문장을 단계별로 처리한 다음 최종 타임스텝의 숨겨진 상태를 아웃풋합니다. 이 아웃풋인 컨텍스트 벡터는 전체 문장을 하나의 벡터 임베딩으로 인코딩합니다. 단어 수가 다양한 문장을 유연하게 처리할 수 있도록 Seq2Seq은 컨텍스트 벡터의 길이를 항상 동일하게 유지합니다.

  • 디코더인 두 번째 LSTM은 인코더의 벡터 임베딩 아웃풋을 초기 인풋으로 삼아 이를 한 단어씩 제2언어로 디코딩합니다.

고정된 수의 차원으로 입력 시퀀스를 인코딩하면 Seq2Seq가 다양한 길이의 시퀀스를 처리할 수 있지만 중요한 결함이 발생했습니다.

  • 이는 더 짧고 간단한 문장과 동일한 수준의 세부 정보를 가진 길거나 복잡한 시퀀스를 나타냅니다. 이는 더 긴 시퀀스에 대한 정보 병목 현상을 일으키고 더 짧은 시퀀스에 대한 리소스를 낭비합니다.

  • 이 벡터는 인코더 네트워크의 최종 숨겨진 상태만을 나타냅니다. 이론적으로, 이후의 각 숨겨진 상태는 이전 숨겨진 상태에서 제공하는 정보를 포함해야 하며, 이는 다시 이전 시간 단계의 정보를 포함해야 하는 등 이런 식으로 첫 번째 단계로 돌아갑니다. 실제로 컨텍스트 벡터는 필연적으로 초기 시간 단계의 정보를 "잊어버리고", 더 긴 시퀀스에서 모델 성능을 방해합니다.
     

어텐션 메커니즘이 Seq2Seq를 개선한 방법

Bahdanau et al은 2014년 논문 "정렬 및 변환을 위한 공동 학습을 통한 신경망 기계 변환"에서 인코더와 디코더 간의 커뮤니케이션을 개선하고 정보 병목 현상을 제거하기 위해 어텐션 메커니즘을 제안했습니다.

인코더의 최종 숨겨진 상태인 컨텍스트 벡터만 디코더에 전달하는 대신, 이 모델은 모든 인코더의 숨겨진 상태를 디코더에 전달했습니다. 어텐션 메커니즘 자체는 디코더가 수행하는 각 번역 단계에서 어떤 숨겨진 상태, 즉 원본 문장의 어떤 단어가 가장 관련성이 높은지를 결정하는 데 사용되었습니다.

"이렇게 하면 모델이 전체 소스 문장을 고정 길이 벡터로 인코딩할 필요가 없으며, 다음 목표 단어 생성과 관련된 정보에만 집중할 수 있습니다."라고 논문에서는 설명합니다. "이는 신경망 기계 번역 시스템이 긴 문장에서 좋은 결과를 산출하는 능력에 큰 긍정적인 영향을 미칩니다."5

이후의 NLP 연구는 주로 재귀 모델에서 어텐션 메커니즘의 성능 개선과 사용 사례 확장에 초점을 맞췄습니다. 2017년, 어텐션만으로 구동되는 트랜스포머 모델이 발명되면서 결국 RNN은 NLP에 거의 쓸모없게 되었습니다.

Mixture of Experts | 12월 12일, 에피소드 85

AI 디코딩: 주간 뉴스 요약

세계적인 수준의 엔지니어, 연구원, 제품 리더 등으로 구성된 패널과 함께 불필요한 AI 잡음을 차단하고 실질적인 AI 최신 소식과 인사이트를 확인해 보세요.

어텐션 메커니즘은 어떻게 작동하나요?

어텐션 메커니즘의 주요 목적은 입력 시퀀스의 여러 부분의 상대적 중요성을 결정한 다음 모델이 중요한 부분에 집중하고 중요하지 않은 부분은 무시하도록 영향을 주는 것입니다.

주의 집중 메커니즘에는 사용 사례와 우선순위에 따라 다양한 변형과 카테고리가 있지만, 모든 주의 집중 메커니즘에는 세 가지 핵심 프로세스가 있습니다.

  1.  원시 데이터 시퀀스를 "읽고" 이를 벡터 임베딩으로 변환하는 프로세스로, 시퀀스의 각 요소는 자체 기능 벡터로 표현됩니다.

  2. 각 벡터 간의 유사성, 상관 관계 및 기타 종속성(또는 그 부족)을 정확하게 결정하는 프로세스로, 정렬 점수(또는 어텐션 점수)로 정량화하여 정렬 정도(또는 정렬되지 않음)를 반영합니다. 그런 다음 정렬 점수를 사용하여 소프트맥스 함수를 사용하여 어텐션 가중치를 계산합니다. 이 함수는 모든 값을 0~1 사이의 범위로 정규화하여 모두 합산하면 1이 됩니다. 예를 들어, 요소에 어텐션 가중치 0을 할당하는 것은 무시해야 함을 의미합니다. 어텐션 가중치 1은 다른 모든 요소의 어텐션 가중치가 0이기 때문에(모든 가중치의 합이 1이어야 하기 때문에) 해당 요소가 100% 어텐션을 받아야 함을 의미합니다. 본질적으로 소프트맥스 함수의 아웃풋은 확률 분포입니다.

  3. 이러한 어텐션 가중치를 사용하여 모델이 예측하는 방식에 대한 특정 입력 요소의 영향을 강조하거나 무시하는 프로세스입니다. 즉, 어텐션 가중치를 사용하여 모델이 정보에 집중하거나 무시하도록 돕는 수단입니다.

쿼리, 키 및 값

획기적인 "Attention is All You Need" 논문은 관계형 데이터베이스의 용어인 쿼리, , 값을 사용하여 어텐션 메커니즘을 설명했습니다. 관계형 데이터베이스는 관련 데이터의 저장 및 검색을 간소화하도록 설계되었습니다. 각 데이터에 고유 식별자("키")를 할당하고 각 는 해당 과 연결됩니다. NLP에서 모델의 "데이터베이스"는 훈련 데이터 세트에서 학습한 토큰의 어휘입니다.

"Attention is All You Need"이라는 논문의 막대한 영향으로 인해 이전의 어텐션 메커니즘조차도 종종 이러한 용어로 소급하여 설명되었습니다. 일반적으로 말하자면, 이 어텐션 개념은 시퀀스의 각 토큰에 대한 세 가지 유형의 벡터 표현 간의 상호 작용을 수반합니다.

  • 쿼리 벡터는 주어진 토큰이 찾고자 하는 정보를 나타냅니다.
  • 키 벡터는 각 토큰에 포함된 정보를 나타냅니다. 쿼리와 키 간의 정렬은 어텐션 가중치를 계산하는 데 사용됩니다.

  • (또는 값 벡터)은 키 벡터의 어텐션 가중치 정보를 적용합니다. 쿼리와 밀접하게 연관된 키의 기여도는 더 큰 가중치를 부여합니다. 쿼리와 관련이 없는 키의 기여도는 0에 가깝게 가중치가 적용됩니다.

특정 어텐션 메커니즘 변형은 주로 벡터가 인코딩되는 방식, 정렬 점수가 계산되는 방식 및 모델에 관련 정보를 제공하기 위해 어텐션 가중치가 적용되는 방식에 따라 구별됩니다.
 

추가 어텐션

Badhanau의 어텐션 메커니즘은 기계 번역을 위해 특별히 설계되었습니다. 양방향 RNN을 사용하여 각 입력 토큰을 인코딩하고, 입력 순서를 정방향과 역방향으로 처리하여 결과를 서로 연결합니다. 이 접근 방식은 예를 들어 원어와 번역어의 명사 및 형용사 순서 규칙이 다른 경우에 특히 유용합니다.

여기서, 번역된 문장의 각 타임스텝에서의 디코더 숨김 상태는 쿼리 벡터와 동일하고, 소스 문장의 각 스텝에서의 인코더 숨김 상태는 키 벡터와 동일합니다.

그런 다음 정렬 점수는 나머지 모델과 함께 공동으로 학습된 간단한 피드포워드 신경망인 어텐션 계층에 의해 결정됩니다. 이 어텐션 계층은 최대 3개의 학습 가능한 모델 가중치 하위 집합으로 구성됩니다. 숨겨진 디코더 상태("Wq")에 대한 쿼리 가중치, 숨겨진 인코더 상태("Wk")에 대한 키 가중치, 최종 아웃풋을 확장하는 값 가중치("wv")입니다. 이러한 가중치는 모델의 "지식"입니다. 손실 함수를 최소화하기 위해 학습하는 동안 이러한 가중치의 특정 값을 조정함으로써 모델은 정확한 변환을 하는 법을 학습합니다.

각 단계에서 추가 어텐션은 다음과 같이 작동합니다.

  • 쿼리 벡터(Wq를 곱한 값)가 키 벡터(Wk를 곱한 값)에 더해집니다. 두 벡터가 정렬된 경우 합산하면 큰 값이 산출됩니다. 서로 관련이 없는 경우 두 벡터를 더하면 작은 값 또는 음수 값이 산출됩니다.

  • 결과 수는 에 입력됩니다tanh 활성화 함수로, -1과 1 사이의 숫자로 모든 인풋을 매핑합니다.

  • 그런 다음 tanh 함수의 아웃풋에 가중치 wv를 곱합니다. 이렇게 하면 쿼리 벡터와 해당 키 벡터 간의 정렬 점수가 산출됩니다.
  • 그런 다음 정렬 점수가 소프트맥스 함수에 입력되어 해당 키 벡터에 대한 어텐션 가중치가 산출됩니다.

디코더가 번역된 문장을 생성하는 데 사용하는 컨텍스트 벡터는 각 키 벡터의 어텐션 가중치 합으로 계산됩니다. 가산 어텐션의 한 가지 장점은 쿼리와 키 벡터의 길이가 같을 필요가 없다는 것입니다.

점곱 어텐션

2015년에 Luong et al은 기계 번역을 위한 Badhanau의 어텐션 메커니즘을 단순화하고 개선하기 위해 여러 가지 새로운 방법론을 도입했습니다. 아마도 가장 주목할 만한 기여는 덧셈 대신 곱셈을 사용한 새로운 정렬 점수 함수였을 것입니다. 또한 tanh 함수를 사용하지 않고, 숨겨진 상태 벡터 간의 유사도를 점곱을 사용하여 계산합니다. 이러한 이유로, 종종 점곱 어텐션 또는 곱셈 어텐션이라고 합니다.

점곱을 사용하여 쿼리 벡터를 비교하는 직관력은 수학적이고 실용적입니다.

  • 만약 Q 및 K 벡터가 정렬된 경우, 즉 쿼리와 키가 서로 의미가 유사한 경우 두 벡터를 곱하면 큰 값이 산출됩니다. 소프트맥스 후, 이 큰 값은 해당 키에 대한 큰 어텐션 가중치를 생성합니다. 두 벡터가 잘 정렬되지 않은 경우, 점곱은 작거나 음수가 되고, 이후 소프트맥스 함수는 작은 어텐션 가중치를 생성합니다.

  • 실제로 곱셈은 행렬 곱셈을 사용하여 더 적은 단계로 구현할 수 있으므로 신경망에서 덧셈 연산보다 훨씬 빠르고 계산 효율이 높습니다.6

점곱 어텐션을 사용하는 한 가지 결과는 점곱 계산에서 두 벡터가 동일한 수의 차원 dk를 가져야 한다는 것입니다. dk .

가산 어텐션은 키 벡터의 가중치 합으로 컨텍스트 벡터를 계산하는 반면, 점곱 어텐션은 키 벡터의 가중치 평균으로 컨텍스트 벡터를 계산합니다.
 

확장된 점곱 어텐션

"Attention is All You Need"의 저자들은 점곱 어텐션이 가산 어텐션보다 더 빠르고 계산 효율이 높지만, 가산 어텐션이 더 긴 벡터에 대해 기존의 점곱 어텐션보다 성능이 우수하다고 지적했습니다.

그들은 이론적으로 dk 가 매우 크면 결과 점곱도 매우 커진다는 이론을 세웠습니다. 소프트맥스 함수가 이러한 매우 큰 값을 0-1 사이에 맞추기 위해 모두 압축하면 역전파는 최적화하기 어려운 매우 작은 그라데이션을 생성합니다. 실험 결과, 소프트맥스 정규화 전에 길이가 dk 인 두 벡터의 점곱을   스케일링하면1dk그래디언트가 더 커지고 훈련이 더 원활해진다는 사실이 밝혀졌습니다.

트랜스포머 모델에 사용되는 스케일링된 점곱 어텐션 함수는 다음과 같이 작성됩니다. Attention(Q,K,V)=softmax(QKTdk)V .

 

셀프 어텐션

초기의 어텐션 메커니즘은 모두 현재 교차 어텐션으로 분류되는 기능을 수행했습니다. 교차 어텐션에서 쿼리와 키는 서로 다른 데이터 소스에서 가져옵니다. 예를 들어 기계 번역 작업에서 키는 한 언어의 텍스트 코퍼스에서, 쿼리는 다른 언어에서 가져오며, 음성 인식 작업에서 쿼리는 오디오 데이터이고 키는 해당 오디오를 전사하기 위한 텍스트 데이터입니다.

셀프 어텐션에서 쿼리, 키 및 값은 모두 동일한 소스에서 가져옵니다. Bahdanau와 Luong의 어텐션 메커니즘은 모두 기계 번역을 위해 명시적으로 설계된 반면, Cheng 은 일반적으로 기계 판독을 개선하는 방법으로 셀프 어텐션(이들은 "인트라 어텐션"이라고 부름)을 제안했습니다. 2016년 논문에 설명된 이들의 어텐션 메커니즘은 입력 요소가 전체 시퀀스에 어떻게 기여하는지가 아니라, 다양한 입력 토큰이 서로 어떻게 관련되어 있는지 살펴보았습니다.

어떤 언어 모델이
“on Friday, the judge issued a sentence.”

  • 앞의 단어the 다음과 같이 제안합니다judge 라는 영어 문장을 해석하면서 'judge'를 감정하거나 의견을 결정한다는 의미의 동사가 아니라 법적 재판을 주재하는 사람과 같은 명사로 판단한다고 생각해 봅시다.

  • 단어의 컨텍스트judge 다음과 같이 제안합니다sentence 'sentence'는 문법적인 “문장”이 아니라 법적 처벌을 의미하는 것으로 해석됩니다.

  • 단어issued 나아가, 이 문장이 문법 개념이 아닌 법적 개념을 이야기하고 있음을 암시합니다.

  • 따라서 단어를 해석할 때sentence 모델은 다음 사항에 세심한 주의를 기울여야 합니다judgeissued . 또한 다음과 같은 단어에 주의를 기울여야 합니다the . 다른 단어는 어느 정도 무시할 수 있습니다. 잘 학습된 셀프 어텐션 메커니즘은 그에 따라 주의력 가중치를 계산합니다.

Cheng et al의 논문은 텍스트를 읽고 이해하는 셀프 어텐션의 능력에만 초점을 맞추었지만, 곧 시퀀스 내 관계를 모델링하는 것도 텍스트를 쓰는 데 강력한 툴이 될 수 있다는 사실이 밝혀졌습니다. 셀프 어텐션의 발전과 이를 가능하게 한 트랜스포머 모델은 원본 텍스트를 생성할 수 있는 현대적 생성형 AI와 자기 회귀 LLM의 출현으로 직접 이어졌습니다.
 

셀프 어텐션 및 기계 번역

자기회귀 LLM은 셀프 어텐션을 사용하여 기계 번역을 수행할 수도 있지만, 작업에 다른 방식으로 접근해야 합니다. 교차 어텐션은 원문 문장과 번역된 문장을 두 개의 별개의 시퀀스로 취급하는 반면, 셀프 어텐션은 원문과 번역된 텍스트를 하나의 시퀀스로 취급합니다.

자기 회귀적 셀프 어텐션 기반 LLM이 텍스트를 번역할 수 있으려면 모델이 학습에서 마주치는 모든 단어(모든 언어에서)가 하나의 큰 다국어 토큰 어휘의 일부로 학습되어야 합니다. 모델은 시퀀스에 "[언어 1의 단어]를 언어 2로 번역"과 같은 명령이 포함되어 있을 때 시퀀스의 다음 단어는 언어 2의 토큰이어야 한다는 것을 간단히 깨닫습니다.

본질적으로, 자기 회귀적 LLM은 반드시 그 자체로 다른 언어가 있다는 것을 이해하지 못합니다. 대신, 단순히 토큰의 특정 그룹(이 경우 같은 언어의 단어에 해당하는 토큰)이 서로 어떻게 어텐션을 기울이는지 이해합니다. 이러한 맥락적 이해는 명령어 조정과 같은 기술을 통해 더욱 강화됩니다.

트랜스포머 모델에서의 주의 사항

Viswani et al이 작성한 ''Attention is All You Need" 논문은 셀프 어텐션에서 영감을 받아 새로운 신경망 아키텍처인 트랜스포머를 도입했습니다. 이들의 트랜스포머 모델은 컨볼루션과 재귀를 완전히 피하고 대신 어텐션 계층과 표준 선형 피드포워드 계층만 사용했습니다.

저자의 모델은 RNN 기반 이전 모델과 유사한 인코더-디코더 구조를 따랐습니다. 이후 트랜스포머 기반 모델은 인코더-디코더 프레임워크에서 벗어났습니다. 트랜스포머 논문의 여파로 출시된 최초의 획기적인 모델 중 하나인 BERT(트랜스포머의 양방향 인코더 표현의 약자)는 인코더 전용 모델입니다. GPT(Generative Pretrained Transformer) 모델과 같이 텍스트 생성에 혁명을 일으킨 자기 회귀 LLM은 디코더 전용입니다.

"Attention is All You Need"는 어텐션 메커니즘에 대한 여러 혁신을 제안했습니다. 그 중 하나는 확장된 점곱 어텐션으로, 성능을 개선하고 어텐션을 완전히 새로운 모델 구조에 적응시키기 위한 것입니다.
 

위치 인코딩

단어의 상대적 순서와 위치는 그 의미에 중요한 영향을 미칠 수 있습니다. RNN은 기본적으로 숨겨진 상태를 한 단어씩 연속적으로 계산하여 각 토큰의 위치에 대한 정보를 보존하는 반면, 트랜스포머 모델은 위치 정보를 명시적으로 인코딩해야 합니다.

위치 인코딩을 사용하면 모델은 입력이 어텐션 메커니즘에 들어가기 전에 상대적 위치에서 파생된 각 토큰의 임베딩에 값 벡터를 추가합니다. 이 위치 벡터는 일반적으로 토큰 임베딩 자체보다 차원이 훨씬 적으므로 토큰 임베딩의 작은 하위 집합만 위치 정보를 받습니다. 수학은 다소 복잡하지만 논리는 간단합니다.

  • 두 토큰이 가까울수록 위치 벡터가 더 비슷해집니다.

  • 각 위치 벡터가 유사할수록 해당 위치 벡터를 추가한 후 각 토큰 임베딩 간의 유사성이 증가합니다.

  • 위치 업데이트된 임베딩이 유사할수록 정렬 점수가 높아져 두 토큰 간의 어텐션 가중치가 커집니다. 따라서 모델은 근처 토큰에 더 많은 셀프 어텐션을 기울이는 방법을 학습합니다.

Viswani et al은 짝수 위치의 토큰에는 사인 함수를 사용하고 홀수 위치의 토큰에는 코사인을 사용하는 간단한 알고리즘을 설계했습니다. 회전 위치 인코딩(RoPE)과 같은 이후 알고리즘은 매우 긴 시퀀스에 대한 위치 정보를 효과적으로 인코딩하는 기능을 개선했으며, 이는 더 큰 컨텍스트 창을 가진 LLM을 활성화하는 데 도움이 되었습니다.
 

트랜스포머 모델의 셀프 어텐션 메커니즘

각 토큰 임베딩이 위치 정보로 업데이트되면, 각 토큰 임베딩은 첫 번째 어텐션 계층에 선행하는 3개의 병렬 선형(피드포워드) 신경망 계층 각각에 원본 토큰 임베딩을 전달하여 3개의 새로운 벡터를 생성하는 데 사용됩니다. 각 병렬 계층에는 방대한 텍스트 데이터 세트에 대한 자체 지도 사전 학습을 통해 특정 값을 학습한 고유한 가중치 행렬이 있습니다.

  • 임베딩에는 가중치 매트릭스가 곱해집니다 WQ 쿼리 벡터를 생성하려면 (Q), 이는 dk 차원

  • 임베딩에는 가중치 매트릭스가 곱해집니다 WK 키 벡터를 생성하려면 (K), 치수 포함 dk 

  • 임베딩에는 가중치 매트릭스가 곱해집니다 WV 값 벡터를 생성하려면 ( V ), 치수 포함  dv
트랜스포머 모델의 어텐션 메커니즘 다이어그램 트랜스포머 어텐션 메커니즘의 단순화된 다이어그램: 입력 문장의 토큰에 대한 원래 벡터 임베딩에 W, K 및 V 가중치 행렬을 곱하여 각각의 W, K 및 V 벡터를 산출합니다.

어텐션 메커니즘의 주요 기능은 각 토큰 간의 쿼리-키 쌍의 중요성에 가중치를 부여하는 것입니다. 입력 시퀀스의 각 토큰 x에 대해 트랜스포머 모델은 다음과 같이 어텐션 가중치를 계산(및 적용)합니다.

  1. 토큰 x의 쿼리 벡터 Qx에 다른 토큰의 키 벡터를 곱합니다. K관련성이 높은 토큰의 경우 결과 점곱이 커지고, 관련성이 낮은 토큰의 점곱은 작거나 음수가 됩니다.

  2. 각 점곱은 확장됩니다. 즉, 1dk값이 곱해집니다. 그 결과로 토큰 x와 다른 토큰 간의 정렬 점수가 나옵니다.
  3. 이러한 정렬 점수는 각 점수를 0에서 1 사이의 값으로 정규화하여 합이 1이 되도록 소프트맥스 함수에 입력됩니다. 이는 토큰 x와 다른 토큰 간의 어텐션 가중치입니다. 이제 각 토큰은 해당 어텐션 가중치 벡터가 있다고 생각할 수 있습니다. 여기서 해당 벡터의 각 요소는 다른 토큰이 영향을 미치는 정도를 나타냅니다.

  4. 이제 각 토큰의 가치 벡터에 각각의 어텐션 가중치가 곱해집니다.

  5. 이러한 어텐션 가중치 값 벡터는 모두 함께 평균화됩니다. 결과 벡터는 각 키 벡터의 모든 어텐션 가중치 기여도의 평균을 나타냅니다.

  6. 마지막으로, 각 토큰의 변경 결과 벡터가 토큰 x의 원래 벡터 임베딩에 추가됩니다. 본질적으로 토큰 X의 벡터 임베딩은 시퀀스에서 다른 토큰이 제공하는 컨텍스트를 더 잘 반영하도록 업데이트됩니다.

멀티헤드 어텐션

각 어텐션 가중 기여도를 개별적으로 계산하는 대신 다른 토큰의 어텐션 가중 기여도를 평균화하는 것이 수학적으로 효율적이지만 세부 사항이 손실됩니다. 트랜스포머 아키텍처는 멀티헤드 어텐션을 구현하여 이 문제를 해결합니다.

토큰 간의 다면적인 관계를 고려하면서도 평균화의 효율성을 누리기 위해, 트랜스포머 모델은 네트워크의 각 어텐션 계층에서 병렬로 여러 번 셀프 어텐션 연산을 계산합니다. 각 원래 입력 토큰 임베딩은 h의 균일한 크기의 하위 집합으로 분할됩니다. 임베딩의 각 부분은 각각 쿼리 헤드, 키 헤드 또는 값 헤드라고 하는 Q, K V 가중치의 h 병렬 행렬 중 하나에 입력됩니다. 이러한 쿼리, 키 값 헤드의 병렬 3중항 각각에서 출력된 벡터는 해당 어텐션 헤드에 입력됩니다.

멀티헤드 어텐션 다이어그램 "Attention is All You Need"에서 유명해진 단순화된 멀티헤드 어텐션 다이어그램

어텐션 블록의 마지막 계층에서, 이러한 h 병렬 회로의 아웃풋은 결국 다시 연결됩니다. 실제로 모델 학습은 각 회로가 의미적 의미의 개별적인 측면을 포착하는 다른 가중치를 학습하는 결과를 낳습니다. 이를 통해 모델은 다른 단어의 맥락이 단어의 의미에 영향을 미칠 수 있는 다양한 방식을 처리할 수 있습니다. 예를 들어, 한 어텐션 헤드는 시제의 변화에 특화되어 있고, 다른 어텐션 헤드는 주변 단어가 어조에 영향을 미치는 방식에 특화되어 있을 수 있습니다.

멀티헤드 어텐션에서의 연결 각 어텐션 헤드의 아웃풋 "Z"는 서로 연결됩니다. 이 예에서 h = 8입니다.

여기서는 표준 트랜스포머의 어텐션 블록에 있는 전체 행렬 곱셈 회로를 보여줍니다. 멀티쿼리 어텐션, 그룹화된 쿼리 어텐션 등 트랜스포머의 어텐션 메커니즘이 나중에 진화하면서 프로세스의 일부 요소를 단순화하거나 결합하여 계산 요구를 줄였다는 점은 주목할 만합니다.

멀티헤드 어텐션 블록 다이어그램 Jay Alammar의 "The Illustrated Transformer"에서 파생된 멀티헤드 어텐션 블록(h = 8)의 모든 행렬 곱셈에 대한 단순화된 다이어그램입니다. 여기서 "+"는 더하기가 아니라 연결을 의미합니다.

아웃풋 생성

트랜스포머 모델의 마지막 몇 계층에서 어텐션 헤드는 특정 예측을 수행하도록 훈련되는 경우가 많습니다. 예를 들어, LLM의 마지막 계층에 있는 한 어텐션 헤드는 Named Entity Recognition을 전문으로 하고 다른 어텐션 헤드는 감정 분석을 전문으로 할 수 있습니다.

자기 회귀 LLM에서 마지막 두 번째 계층은 완전히 변환된 벡터를 수신하고 모델이 어휘의 각 토큰에 대해 학습한 벡터 임베딩과 일치하는 크기로 투영하는 선형 계층입니다. 이를 통해 결과 벡터가 해당 어휘의 각 토큰과 얼마나 밀접하게 일치하는지를 나타내는 점수를 계산할 수 있습니다. 마지막 계층은 소프트맥스 계층으로, 이러한 점수를 확률(1점 만점)로 변환하고 이러한 확률을 사용하여 이전 단어를 기반으로 가장 가능성이 높은 다음 토큰을 출력합니다.

관련 솔루션
IBM watsonx.ai

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.

AI 서비스 살펴보기
다음 단계 안내

AI 개발 라이프사이클 전반에 걸친 기능에 원스톱으로 액세스하세요. 사용자 친화적인 인터페이스, 워크플로, 업계 표준 API 및 SDK에 대한 액세스를 통해 강력한 AI 솔루션을 제작할 수 있습니다.

  1. watsonx.ai 살펴보기
  2. 라이브 데모 예약하기
각주

1. “Leaderboard: Object Detection on COCO test-dev,” Papers With Code, 2024년 11월 18일 접속
2. “Leaderboards: Image Segmentation” Papers With Code, 2024년 11월 18일 접속
3. “Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev,” Papers With Code, 2024년 11월 18일 접속
4. “Learning long-term dependencies with gradient descent is difficult,” IEE Transactions on Neural Networks 5(2): 157-66, 1994년 2월
5. “Neural Machine Translation by Jointly Learning to Align and Translate,” arXiv, 2014년 9월 1일
6. “Multiplicative Attention,” Papers With Code