인공지능 분야의 새로운 패러다임을 제시한 논문 자세히 알려 drill게요
2024.04.15 | vol. 24 | 구독하기 | 지난호 보기
미래에 할 수 있는 경험을 사전 예약하신 퓨처드릴 구독자, 드릴러 여러분 안녕하세요! AI와 UX의 알쏭달쏭한 점을 시원하게 알려 drill 퓨처드릴 에디터 쏭입니다.
오늘은 지금의 인공지능 혁명의 시발점이라고 해도 과언이 아닌 트랜스포머 구조를 제안한 "Attention Is All You Need" 논문(링크)을 함께 살펴보겠습니다.
현재 발행되는 인공지능 논문의 70%는 트랜스포머 모델을 언급하고 있다.
FourWeekMBA에 따르면 현재 코넬대학교의 arXiv 리포지토리에 게시된 AI 논문 중 약 70%가 트랜스포머 모델을 언급하고 있습니다. 작성된 글이 2024년 3월 14일이고 논문이 나온 연도가 2017년도임을 감안할 때 이 논문의 영향력은 현재까지도 계속된다고 볼 수 있습니다. Attention is All you Need의 제목처럼 어텐션이 무엇이기에 어텐션만 있으면 된다고 했는지 이번 뉴스레터에서 자세히 설명해 drill게요~!
모두 follow me ~
위의 이미지에서 분홍색과 파란색으로 구분된 언어 모델의 역사를 보실 수 있습니다. 즉 언어모델의 역사는 트랜스포머 구조 이전과 이후로 나뉠 만큼 트랜스포머는 하나의 모델이라기보다는 패러다임에 가깝습니다.
트랜스포머 아키텍처 이전의 언어 모델은 일반적으로 순환 신경망(RNN)을 기반으로 했습니다. 순환신경망이란 말처럼 순차적으로 입력되는 단어 하나가 처리된 후 다음 단어를 처리하는 레이어에 다시 입력됩니다. RNN은 이런 순환신경망을 통해 순차적 데이터를 누적하여 처리할 수 있는 능력이 있지만 단어를 하나하나 처리해야 하는 만큼 속도가 느리고 많은 단어가 주어진 긴 텍스트에서 단어의 문맥을 인식할 수 없다는 단점이 있습니다. 이런 단점을 보완하기 위해 LSTM과 같은 모델이 제안되기도 했지만, 여전히 긴 텍스트에서 단어의 문맥 정보를 보존하는 능력은 좋지 않았습니다.
즉 트랜스포머 이전의 순환신경망은 긴 텍스트 시퀀스 처리에 적합하지 않았고 이러한 구조적 한계점은 긴 문장에서 서로 멀리 떨어져 있는 단어 사이의 문맥 정보를 추출할 수 없다는 큰 단점을 낳았습니다. 이러한 순환신경망의 한계를 보완하기 위해 트랜스포머 구조가 제안되었습니다. 트랜스포머 구조는 '어텐션 메커니즘'을 통해 매우 긴 텍스트 시퀀스에서 정방향 및 역방향으로 단어 관계를 추적하여 효율적으로 문맥 정보를 추출합니다.
트랜스포머 구조는 입력으로 들어오는 "나는 학생입니다"라는 프랑스어 문장을 영어 문장으로 번역할 수 있는 인공지능 모델입니다. 지금은 블랙박스로 꼭꼭 감춰져 있지만 아래에서 트랜스포머 구조가 어떤 식으로 이루어져 있는지 조금 더 자세히 설명해 드릴게요.
트랜스포머 구조는 크게 인코더와 디코더로 이루어져 있습니다. 여기서 인코더는 우리가 입력한 문장을 컴퓨터가 이해할 수 있는 숫자로 바꾸고 문장에서 핵심이 되는 특성들을 추출하는 역할을 담당합니다. 디코더는 이렇게 인코더가 추출한 핵심 정보를 바탕으로 이것을 우리가 원하는 문장 "I am a student"로 생성하는 역할을 담당합니다.
즉 인코더는 입력의 특성 추출, 디코더는 추출된 특성을 바탕으로 우리가 원하는 목표 문장 생성을 담당합니다.
트랜스포머 구조는 인코더 스택과 디코더 스택으로 이루어져 있습니다. 스택이라는 말은 일종의 묶음으로 생각하시면 쉽습니다. 인코더 묶음 안에 여러 개의 인코더가 존재하고 여러 인코더 레이어들을 거치면서 우리가 입력한 "나는 학생입니다"라는 문장이 순차적으로 처리됩니다. 디코더 묶음 또한 그 안에 여러 개의 디코더 레이어가 존재하고 이것들이 순차적으로 처리됩니다.
개별 인코더와 디코더를 살펴보면 핵심이 되는 Self-Attention 메커니즘이 인코더와 디코더 모두에 들어있습니다. 아래에서 어텐션 메커니즘이 무엇인지 조금 더 자세히 살펴보겠습니다.
위의 예시에서 나온 문장을 입력 문장이라고 가정하겠습니다. "The animal didn't cross the street because it was too tired"
이 문장에서 "그것(it)"은 무엇을 의미하나요? 거리(street)를 가리키는 건가요, 아니면 동물(animal)을 가리키는 건가요? 사람에게는 간단한 질문이지만 기계에는 그리 간단하지 않습니다.
트랜스포머 모델이 "그것(it)"이라는 단어를 처리할 때 어텐션 메커니즘을 이용하면 "그것(it)"을 "동물(animal)"과 연관시킬 수 있습니다. 즉 여기서 말하는 어텐션이란 해당 단어와 나머지 단어 사이의 연관성에 집중(attention)해 단어 사이의 거리에 상관없이 적절한 문맥 정보를 도출하는 메커니즘을 의미합니다. 이렇게 적절한 문맥 정보가 도출된다면 그것(it)에 대한 더 정확한 특성을 추출할 수 있겠죠.
트랜스포머 구조 이전의 순환신경망에서의 가장 큰 한계는 바로 긴 문장을 처리할 때 앞쪽의 정보를 적절히 보존할 수 없어 문맥 정보를 잃어버린다는 것에 있었습니다. 트랜스포머에서는 바로 이 한계를 어텐션 메커니즘을 통해 해결하였습니다.
인터넷에 보존된 엄청나게 많은 자료가 인공지능 모델 학습을 위해 사용됩니다. 만약 트랜스포머 구조가 세상에 나오지 않았다면 아무리 많은 자료가 있다고 하더라도 트랜스포머만큼 효율적으로 긴 길이의 텍스트를 처리할 수 없었을 것입니다.
이제 왜 Attention is All you need인지 감이 오시나요? 물론 변형된 순환신경망 모델들을 통해 최대한 문맥 정보를 유지할 수도 있었지만, 트랜스포머 구조만큼의 효율과 성능은 나오지 않았을 것입니다. 문맥 정보 유지를 위해 모델에 여러 가지 메커니즘들을 추가하면서 학습하는 데 시간이 너무 오래 걸린다는 단점이 치명적이기도 했습니다. 그렇기에 논문의 저자들은 순환신경망 구조와 이것을 해결하기 위한 여타의 부분들은 이제 필요가 없고 이 문제를 해결하기 위해서는 오직 어텐션만 있으면 된다는 아주 당돌한 구조를 제안하게 되었습니다.
기본 트랜스포머 구조 발표 이후 트랜스포머 구조는 크게 세 가지 유형으로 분화되었습니다. 위에서 트랜스포머는 크게 인코더와 디코더로 이루어졌다고 말씀드렸는데 우리가 집중하고자 하는 태스크 종류에 따라 인코더만 사용하는 유형, 디코더만 사용하는 유형, 인코더, 디코더를 함께 사용하는 유형이 있습니다.
제일 왼쪽에 있는 파란색 부분의 인코더만 사용하는 모델(Encoder-Only Transformer)은 디코더가 없기 때문에 출력을 생성하는 기능은 없고 입력 문장의 특성을 추출하는 데 집중합니다.
제일 오른쪽에 있는 빨간색 부분의 디코더만 사용하는 모델 (Decoder-Only Transformer)은 인코더가 없기 때문에 특성 추출은 하지 않고 출력 생성에 필요한 시작 단어를 주면 이를 참조하여 다음 단어를 생성합니다.
중간 회색 부분의 둘 다 사용하는 모델 (Encoder-Decoder Transformer)은 인코더와 디코더를 모두 사용하여 번역, 요약, 질문 응답 등의 작업에 사용됩니다.
트랜스포머 구조의 폭발적 성장으로 트랜스포머를 단순히 언어 처리에만 사용하는 것이 아닌 이미지 처리에도 사용하자는 아이디어가 나왔습니다. 바로 Visual Transformer입니다. 이 모델은 트랜스포머 구조를 이미지 처리에 적용한 것으로, 이미지 내의 픽셀을 직접 다루는 대신 이미지에 대한 특성을 추출하여 처리합니다. 이 모델은 텍스트나 언어 처리에서 사용되는 트랜스포머와 유사한 메커니즘을 사용하지만, 이미지 데이터에 적합하도록 조정되었습니다.
트랜스포머는 2017년도에 제안된 모델이지만 아직도 끊임없이 진화하고 있습니다. 처음 소개해 드렸던 세 가지 유형에서 비전 분야에도 활용되는 트랜스포머까지 이제는 언어 분야를 넘어 멀티 모달을 처리하는 분야에도 트랜스포머 구조가 적극 활용되고 있습니다. 그림의 오른쪽을 보시면 우리에게 아주 익숙한 Chat-GPT도 보입니다. 샘 올트만이 이름이 너무 별로지만 이제는 너무 익숙해져서 바꿀 수 없다는 GPT의 T도 바로 Transformer에서 가져왔습니다.
Chat-GPT 위쪽을 보시면 Dall-E와 같은 이미지 생성 모델도 볼 수 있는데요, 이렇게 하나의 핵심 아이디어에서 시작된 패러다임이 다른 분야에도 큰 영향을 미쳐서 지금의 인공지능 혁명 시대가 왔다 해도 과언이 아닌 것 같습니다.
오늘 내용 어떠셨나요? 물론 인공지능 시대의 사용자 경험을 핵심 주제로 삼고 있긴 하지만 저는 인공지능에 대한 명확한 이해가 더 나은 사용자 경험을 설계하는 데 필수적이라고 생각합니다. 저희가 직접적으로 기술을 다루는 사람들은 아니지만 그렇기에 오히려 핵심이 되는 개념들을 정확히 알고 있을 때 그 기술을 다루는 사람들과도 더 명확히 소통할 수 있고 이 기술의 한계는 무엇인지 어떤 가능성을 가졌는지 알 수 있다고 생각합니다.
제목처럼 오늘 논문은 116,439회 인용된 논문인데요, 10만 번이 넘도록 인용된 논문이 지닌 가치가 무엇이고 또 정신없이 흘러가는 발전의 시대에 우리에게 어떤 시사점을 줄 수 있는지 이 글을 읽는 순간만큼이라도 고민해 볼 수 있는 시간이 되었으면 좋겠습니다.
오늘도 길고 어려운 글을 끝까지 읽어주셔서 감사합니다. 앞으로도 트렌드에 휘둘리지 않고 본질에 집중한 글로 찾아뵙겠습니다.
추신) 트랜스포머 구조에 들어가는 다른 핵심 기능들은 오늘 다 다루지 못했습니다. https://jalammar.github.io/illustrated-transformer/ 링크에 들어가시면 그림과 함께 아주 친절하게 설명된 트랜스포머 구조의 핵심을 볼 수 있습니다. 관심 있으신 분들의 일독을 권합니다.
오늘의 단어: 트랜스포머(Transformer)
트랜스포머 구조는 최근 몇 년 동안 자연어 처리 분야에서 혁신적인 발전을 이룬 딥러닝 모델 중 하나입니다. 이 모델은 문장 내 단어들 사이의 상호작용을 더 잘 이해하기 위해 어텐션 메커니즘을 사용합니다. 어텐션 메커니즘은 입력 문장의 모든 단어를 동시에 고려하여 각 단어의 중요성을 부여하고, 이를 통해 문맥을 보다 정확하게 파악할 수 있습니다.
트랜스포머는 인코더와 디코더라는 두 가지 주요 구성 요소로 이루어져 있습니다. 인코더는 입력 문장을 특성 벡터로 변환하여 모델에 정보를 제공하고, 디코더는 이러한 특성 벡터를 기반으로 출력 문장을 생성합니다. 이 과정에서 인코더는 입력 문장의 각 단어를 벡터로 변환하고, 디코더는 생성되는 출력 문장의 다음 단어를 예측합니다.
트랜스포머는 번역, 요약, 질문 응답 등의 자연어 처리 작업에 널리 사용되며, 그 성능과 유연성으로 많은 관심을 받고 있습니다. 또한 트랜스포머의 아이디어는 자연어 처리뿐만 아니라 음성 인식, 이미지 처리 등 다양한 분야에도 확장되어 적용되고 있으며, 이러한 특징들은 트랜스포머를 현대 인공지능의 중요한 기반 기술로 만들고 있습니다.
AI Experience (AIX)의 이모저모를 전해드리는 '퓨처드릴'입니다!
퓨쳐드릴은 네 명의 에디터가 매주 돌아가면서 글을 작성하고 있습니다.
퓨쳐드릴 뉴스레터는 월요일 아침 8시에 발송됩니다.
새로운 뉴스레터를 받아보고 싶으시다면 https://futuredrill.stibee.com/ 여기서 구독해 주세요:)