본문 바로가기
AI 논문 분석

[AI 논문 분석] 트랜스포머 모델의 핵심기술, 어텐션 메커니즘

by James AI Explorer 2024. 1. 14.
    728x90

    안녕하세요. 오늘은 자연어 처리 분야에서 혁신적인 변화를 가져온 주요 연구 중 하나이며, 대규모 언어 모델의 핵심이론인 트랜스포머 아키텍처에 대한 구글 리서치의 논문에 대해 살펴보겠습니다. 논문에서 제안한 트랜스포머 아키텍처는 모델이 입력의 특정 부분에 더 집중하도록 하는 어텐션 메커니즘(Attention Mechanism)을 다양하게 활용합니다. 이 블로그에서는 자연어 처리 모델의 핵심인 트랜스포머 아키텍처의 구조어텐션 메커니즘, 피드 포워드 신경망 등에 대해서 확인하실수 있습니다. 

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    논문 개요 및 목적

    이 논문의 목적은 기존의 자연어 처리 모델에서 사용되던 인코더-디코더 아키텍처에서 벗어나, 어텐션 메커니즘을 중심으로 하는 트랜스포머 모델을 제시하는 것입니다. 기존의 방식에서 나타나는 연산 복잡성과 효율성 문제를 해결하면서 높은 성능을 유지하는 것이 핵심 목표입니다. 

    Attention Is All You Need - 논문발췌

    어텐션 메커니즘(Attention Mechanism)은 모델이 입력 데이터의 특정 부분에 더 집중하도록 하는 방법입니다. 기존의 모델에서는 전체 입력에 대해 일괄적으로 처리되었지만, 어텐션은 각 입력 위치에 가중치를 부여하여 의미적으로 더 중요한 특정 부분에 더 집중할 수 있게 합니다. 입력 시퀀스의 각 요소에 동적으로 가중치를 부여함으로써 문맥을 파악하고, 번역 및 기타 자연어 처리 작업에서 뛰어난 성능을 보입니다.

    728x90

    https://fornewchallenge.tistory.com/

    논문의 연구내용 및 결과

    이 논문에서 제시한 기술은 트랜스포머라는 소프트웨어 모델 아키텍처입니다. 이 모델은 어텐션 메커니즘을 사용하여 인코더와 디코더 사이의 정보 전달을 효과적으로 수행합니다. 특히, 어텐션을 이용한 멀티헤드 어텐션 메커니즘은 모델의 성능 향상에 기여합니다. 

    트랜스포머(Transformer) 모델 아키텍처 

    트랜스포머 모델은 기계어 번역, 텍스트 요약, 대화형 시스템, 음성변환과 같은 시퀀스 변환 작업에 사용되는 딥러닝 아키텍처로, 주로 자연어 처리(Natural Language Processing, NLP) 분야에서 기계 번역 및 기타 시퀀스 기반 작업에 활용됩니다. 다음 그림은 트랜스포머 모델의 아키텍처를 나타낸 것입니다. 

     

    "Transformer"라는 이름은 이 모델이 입력과 출력 간의 관계를 변형(Transform)하고, 이 변형에 어텐션 메커니즘이 주요한 역할을 하는 구조라는 의미를 가집니다. 인코더는 입력 시퀀스를 임베딩하고, 디코더는 이 임베딩된 정보를 활용하여 출력 시퀀스를 생성합니다.

    트랜스포머 모델 아키텍처

    다음은 트랜스포머 모델 아키텍처에 대한 설명입니다. 

    트랜스포머 모델은 인코더와 디코더로 구성되며, 각각은 여러 층의 어텐션과 피드포워드 신경망로 구성됩니다. 인코더는 입력 시퀀스를 받아 특성을 추출하고, 디코더는 인코더의 출력과 이전의 디코더 상태를 이용하여 출력 시퀀스를 생성합니다. 어텐션 특정 위치의 입력에 집중(attention)하여 출력에 반영하는 방식으로 동작합니다. 이것은 주로 시퀀스에서 특정 위치의 정보에 더 많은 가중치를 부여하는 데 사용되며, 자연어 처리 작업에서 문장의 특정 단어에 더 집중하는 데 유용합니다.

     

    트랜스포머 모델은 인코더와 디코더로 구성된 스택을 사용하여 시퀀스 변환 작업을 수행하며, 각각의 인코더와 디코더는 여러 층으로 이루어져 있습니다. "인코더"와 "디코더"에서 각각의 "층"은 입력 데이터를 받아 일련의 수학적 연산을 통해 다음 층으로 전달되는 것을 의미합니다. 다음은 인코더 스택의 구성요소와 동작개요입니다. 

    1. 인코더: 인코더는 각각의 입력 요소(단어, 토큰 등)를 고정된 차원의 실수 벡터로 변환하는 임베딩 작업과, 이를 여러 층의 셀프 어텐션 및 피드포워드 신경망으로 처리합니다. 
    2. 셀프 어텐션 레이어: 입력 시퀀스의 각 단어가 문장 내 다른 단어들과 어떻게 상호 작용하는지를 모델링합니다. 
    3. 피드포워드 신경망: 셀프 어텐션의 출력을 활용하여 각 위치에서의 정보를 더 세밀하게 조정하고 인코딩합니다. 각 인코더 층은 잔차 연결(residual connection)과 층 정규화 (layer normalization)라는 기법을 사용하여 입력과 출력을 연결하고 정규화합니다. 이를 통해 그래디언트 소실 또는 폭주를 막고, 효과적인 학습을 가능하게 합니다. 
    더보기

    Residual connection(잔차 연결): 신경망에서 사용되는 기법으로, 네트워크의 깊이가 증가할 때 발생할 수 있는 그래디언트 소실(gradient vanishing) 문제를 해결하고 학습을 효율적으로 진행하기 위한 방법

    Layer Normalization(층 정규화): 신경망에서 활성화 값의 정규화(normalization)를 수행하는 기술로, 각 층에서의 입력을 정규화하여 학습을 안정화하고, 학습 속도를 향상시키기 위한 방법

    다음은 디코더 스택의 구성요소와 동작요입니다. 

    1. 디코더: 디코더는 인코더의 출력과 이전의 디코더 층의 출력을 활용하여 시퀀스를 생성합니다. 
    2. 셀프 어텐션 레이어: 디코더의 입력 시퀀스에 대한 셀프 어텐션을 수행하여 각 위치에서의 단어들 간의 상호 작용을 모델링합니다. 
    3. 인코더-디코더 어텐션 레이어: 현재 디코더 위치의 단어가 인코더의 출력 중 어떤 단어에 주의를 기울여야 하는지를 결정합니다. 
    4. 피드포워드 신경망: 셀프 어텐션 및 인코더-디코더 어텐션의 출력을 활용하여 디코더의 현재 위치에서의 정보를 더 세밀하게 조정하고 디코딩합니다. 디코더도 인코더와 마찬가지로 잔차 연결 층 정규화를 사용하여 입력과 출력을 연결하고 정규화합니다.

    이렇게 구성된 인코더 및 디코더 스택은 서로 다른 위치에서의 어텐션을 활용하여 입력 시퀀스를 효과적으로 인코딩하고 디코딩하여 시퀀스 변환 작업을 수행합니다.

    https://fornewchallenge.tistory.com/

    어텐션 메커니즘

    이 모델은 기존의 순환 신경망(RNN)이나 합성곱 신경망(CNN) 대신 어텐션 메커니즘을 기반으로 하여 시퀀스 간의 의존성을 처리합니다. 다음은  순환 신경망(RNN), 합성곱 신경망(CNN), 어텐션 메커니즘의 비교표입니다. 

    특징 순환 신경망 RNN 합성곱 신경망 CNN
    어텐션 메커니즘
    주요 용도 시퀀스 데이터 처리 이미지 처리
    시퀀스 간 관계 모델링
    입력 처리 방식 순차적으로 이전 타임 스텝의 출력을 사용 지역적 패턴에 대한 커널 적용 및 풀링
    가중치를 사용하여 입력 간 상호 작용 모델링
    시퀀스
    의존성 학습
    장기 의존성에 어려움 있음 고정 크기 입력에 적합하며 지역적 패턴 추출
    멀티헤드 어텐션을 통해 효과적으로 학습
    긴 시퀀스 처리 어려움 (그라디언트 소실 또는 폭발 가능성) 어려움 (계층적 특징 학습 가능)
    효과적으로 처리
    (멀티헤드 어텐션 사용)
    입력 크기에 대한 유연성 유연하지 않음
    (고정된 타임 스텝)
    유연하지 않음
    (고정된 입력 크기)
    유연하게 처리 (가변적인 시퀀스 길이 및 위치)
    확장성 및
    병렬 처리
    어려움 (순차적 계산) 가능 (합성곱 및 풀링 연산)
    높은 확장성 및 병렬 처리 가능

     

    트랜스포머 모델에서 사용된 어텐션 메커니즘은 셀프 어텐션(self-attention)이라고도 불리며, 입력 시퀀스 내에서 단어들 간의 상호작용을 통해 서로에게 집중(attention)하게 됩니다. 이것은 특정 위치의 정보에 민감하게 반응하면서도 전체적으로 문맥을 파악하는 데에 도움이 됩니다. 

     

    어텐션 메커니즘을 이해하기 위해 간단한 예제를 살펴보겠습니다. 예를 들어, "나는 학교에 갔다"라는 문장이 있다고 가정해 봅시다. 이 문장에 대해 셀프 어텐션을 수행하는 경우를 생각해 보겠습니다.

    • 1. 입력 문장의 임베딩: 문장의 각 단어는 임베딩 과정을 통해 벡터로 표현됩니다. 예를 들어, "나는", "학교에", "갔다"라는 단어들이 각각 벡터로 변환됩니다.
    • 2. 어텐션 가중치 계산: 셀프 어텐션을 수행하면 각 단어 벡터는 다른 모든 단어 벡터들에 대해 얼마나 주의(attention)를 기울일지를 계산합니다. 이 가중치는 각 단어 간의 관련성을 나타냅니다. 예를 들어, "나는"이라는 단어가 "학교에"에 높은 주의를 기울이면서 "학교에"와 관련 있는 정보를 얻게 됩니다.
    • 3. 가중합 계산: 어텐션 가중치를 사용하여 각 단어 벡터를 가중합 하여 새로운 문맥 벡터를 생성합니다. 이 새로운 벡터는 입력 문장의 전체 문맥을 포함하게 됩니다.
    • 4. 최종 출력: 최종적으로 얻어진 문맥 벡터는 다음 단계(예를 들면 디코더에서의 다음 단어 예측)로 전달됩니다.

    이러한 과정을 통해 어텐션 메커니즘은 각 단어가 문장 내 다른 단어들과 어떤 관련성을 가지는지를 학습하고, 이를 통해 문장의 문맥을 잘 파악할 수 있습니다. 이는 특히 기존의 순차적인 모델보다 효율적으로 긴 문장의 의미를 이해하는 데 도움이 됩니다.

     

    셀프 어텐션은 문장 또는 시퀀스 내에서 각 단어가 서로 다른 영향을 미칠 수 있으므로, 각 원소에 대해 쿼리(Query), 키(Key), 밸류(Value)의 세 가지 정보를 사용하여 어텐션 스코어를 계산합니다. 이로써 각 원소는 다른 모든 원소와의 상호 작용을 고려할 수 있게 되며, 이것이 트랜스포머의 강력한 시퀀스 처리 능력 중 하나입니다.

     

    멀티헤드 셀프 어텐션은 셀프 어텐션 메커니즘을 여러 개의 헤드(head)로 분할하여 사용하는 것입니다. 일반적인 셀프 어텐션은 하나의 어텐션 헤드를 사용하여 문맥을 파악하고 가중치를 계산하는데 반해, 멀티헤드 셀프 어텐션은 여러 헤드를 사용하여 병렬로 다양한 관점의 어텐션 정보를 얻습니다.

     

    인코더-디코더 어텐션은 멀티헤드 어텐션 메커니즘에서 사용되는 여러 헤드 중 하나로, 인코더와 디코더 간의 상호 작용을 캡처하여 더욱 효과적인 시퀀스 변환을 도와줍니다. 이러한 어텐션 메커니즘은 특히 기계 번역과 같은 작업에서 문장의 맥락을 잘 이해하고 해석하는 데 도움이 됩니다.

     

    스케일 내적 어텐션은 주어진 쿼리(Query), 키(Key), 밸류(Value)로 이루어진 세 가지 벡터 세트에 대한 어텐션을 계산합니다. 주로 인코더와 디코더의 어텐션 메커니즘에서 사용되며, 입력 시퀀스의 각 위치에 대해 중요한 정보를 추출합니다.

    • 어텐션 스코어 계산: 쿼리(Query)와 키(Key) 간의 내적을 계산한 후, 스케일링을 통해 어텐션 스코어를 조절합니다. 스케일링은 내적 결과를 키(Key)의 차원 수로 나눈 값으로 이루어집니다. 이는 어텐션 스코어의 크기를 제어하여 그래디언트 소실이나 폭주를 방지합니다.
    • 소프트맥스 함수: 어텐션 스코어에 소프트맥스 함수를 적용하여 각 위치의 중요도(가중치)를 얻습니다. 소프트맥스 함수를 통해 어텐션 분포가 생성되며, 이는 입력 시퀀스의 어떤 위치에 더 집중할지 결정합니다.
    • 가중합 계산: 소프트맥스 함수의 출력(가중치)과 밸류(Value)를 가중합하여 어텐션 결과를 얻습니다. 이 결과는 입력 시퀀스의 각 위치에 대한 어텐션 가중합 벡터로 사용됩니다.

    피드포워드 신경망

    다음으로 트랜스포머 내에서 피드포워드 신경망은 각 인코더와 디코더 층에 적용되는 중요한 부분입니다. 트랜스포머의 인코더와 디코더는 여러 개의 층(layer)으로 구성되어 있으며, 각 층 내에는 피드포워드 신경망이 존재합니다.

    • 인코더 내의 피드포워드 신경망: 각 인코더 층은 두 개의 서브 레이어(sub-layer)로 구성되어 있습니다. 첫 번째 서브 레이어는 멀티헤드 셀프 어텐션 메커니즘입니다. 두 번째 서브 레이어는 피드포워드 신경망입니다. 이 신경망은 각 위치(position)의 특성을 독립적으로 처리합니다.
    • 디코더 내의 피드포워드 신경망: 디코더 층도 마찬가지로 세 개의 서브 레이어로 구성됩니다. 첫 번째 서브 레이어는 멀티헤드 셀프 어텐션 메커니즘입니다. 두 번째 서브 레이어는 인코더-디코더 어텐션 메커니즘으로 인코더의 출력을 활용합니다. 세 번째 서브 레이어는 피드포워드 신경망입니다.

    피드포워드 신경망은 주로 위치별로 독립적인 특성을 추출하고, 이를 다음 층으로 전달함으로써 전체 시퀀스에 대한 표현을 풍부하게 만듭니다. 이러한 피드포워드 신경망은 각 위치의 특성을 높은 차원의 복잡한 비선형 표현으로 매핑하는 데 기여함으로써, 모델이 다양한 시퀀스 패턴을 학습할 수 있도록 도와주게 됩니다.

    https://fornewchallenge.tistory.com/

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    논문의 결론 및 전망

    논문의 결과 부분은 트랜스포머 모델의 성능 결과와 다양한 기준에서의 평가에 대한 내용이 포함되어 있습니다. 기계번역 부분에서는 WMT 2014 영어-독일어 및 영어-프랑스어 번역 작업에 대한 성과를 다룹니다. 큰 규모의 트랜스포머 모델은 이전의 모델을 능가하여 번역결과 품질 평가에서 새로운 기록을 수립했습니다. 영어-독일어 번역 작업에서는 28.4의 점수를 기록하여 이전의 최고 성능을 상당히 뛰어넘었습니다. 영어 문장의 구조를 분석하는 작업에서도 트랜스포머가 기존 모델들을 뛰어넘는 성과를 보여주며 특히 작은 데이터 셋에 대해서도 높은 성능을 보였습니다.

     

    이 논문은 전통적인 인코더-디코더 모델의 한계를 극복하고 효율적인 학습을 가능케 하는 트랜스포머 아키텍처를 제안함으로써 자연어 처리 분야에서 높은 수준의 성능을 달성할 수 있음을 입증하였으며, 향후 이 모델의 성능 향상과 다양한 응용 분야에 어떻게 활용될지에 대한 기대가 커지고 있습니다.

     

    이 블로그 글을 통해 트랜스포머 모델의 주요 내용과 혁신적인 기술에 대한 이해에 도움이 되셨기를 바라면서 저는 다음 시간에 더 유익한 자료를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

    2024.01.08 - [AI 논문 분석] - Mobile ALOHA: 저렴한 전신 원격운전 양손 조작 학습 로봇

     

    Mobile ALOHA: 저렴한 전신 원격운전 양손 조작 학습 로봇

    안녕하세요! 오늘은 저렴한 비용으로 전신(Whole-Body) 원격운전을 통해 인간의 복잡한 동작을 학습하여 스스로 양손 조작이 가능한 움직이는 로봇, Mobile ALOHA를 만나보겠습니다. 가사, 요리, 인간-

    fornewchallenge.tistory.com

    https://fornewchallenge.tistory.com/

     

     

    728x90