정보가 사라지지 않게 이어주는 장치: 잔차 연결과 층 정규화
트랜스포머의 변신: BERT에서 ChatGPT까지
언어를 다루는 인공지능(AI)은 문장에서 단어들이 어떤 순서로 나오는지를 잘 이해할 수 있어야 합니다. 예를 들어, “나는 밥을 먹었다”와 “밥을 나는 먹었다”는 단어 순서는 다르지만 의미는 거의 같다고 느껴집니다.
하지만 “나는 먹었다 밥을”처럼 순서가 너무 어색하면, 듣는 사람이 무슨 뜻인지 헷갈릴 수 있습니다. 마치 친구와 메시지를 주고받을 때 단어 순서를 엉뚱하게 입력하면 친구가 잘 이해하지 못하는 것과 비슷합니다.
이렇게 단어들의 순서와 문장 앞뒤 맥락(문장의 앞뒤 상황과 흐름)은 뜻을 이해하는 데 매우 중요한 역할을 합니다.
예전에는 이런 단어의 순서나 문장 흐름을 잘 이해하기 위해 ’순환 신경망(RNN, Recurrent Neural Network)’이라는 기술을 많이 사용했습니다. 순환 신경망이란 문장을 구성하는 단어들을 차례대로 보면서 앞에 나왔던 단어를 기억하고, 문장의 흐름을 파악하는 방식입니다. 예를 들어, 긴 드라마를 볼 때 처음부터 순서대로 보면서 이전에 나왔던 등장인물의 행동이나 대화를 기억해야 드라마의 전체 내용을 이해할 수 있는 것과 비슷한 원리입니다. 하지만 문장이 길어질수록 앞에 나온 정보가 잘 기억되지 않거나 흐려지는 문제가 있었고, 처리 속도도 느려지는 단점이 있었습니다. 이런 문제를 해결하기 위해 ’장단기 기억 모델(LSTM, Long Short-Term Memory)’이라는 기술이 나오기도 했지만, 근본적인 문제를 완전히 해결하기는 어려웠습니다.
이러한 단점들을 해결하기 위해 등장한 기술이 바로 ’트랜스포머(Transformer)’입니다. 트랜스포머는 단어들을 하나씩 차례차례 보는 방식이 아니라 문장 전체를 한꺼번에 보고 단어들 사이의 관계를 계산하는 방식입니다. 영화나 드라마를 처음부터 끝까지 보는 대신, 모든 장면을 한 번에 펼쳐놓고 가장 중요한 장면부터 빠르게 찾아내는 것과 비슷합니다. 트랜스포머의 핵심 개념은 ‘어텐션(attention)’, 즉 주의 집중입니다. 사람도 문장을 읽을 때 모든 단어에 똑같이 집중하지 않고 중요한 단어에 더 관심을 가지고 의미를 파악합니다. 예를 들어 학교에서 선생님이 “이번 시험에는 10과와 11과가 나온다”고 말하면, 학생들은 ‘시험’, ‘10과’, ‘11과’ 같은 단어들에 집중해서 듣습니다. 이와 마찬가지로 트랜스포머도 각 단어가 문장 속에서 어떤 단어에 더 주목해야 할지를 스스로 판단하고 계산합니다.
원래 이 어텐션 기술은 처음에는 순환 신경망을 보완하는 보조적인 기술로 쓰였습니다. 하지만 나중에 연구자들이 어텐션만으로도 문장의 뜻을 충분히 잘 이해할 수 있다는 것을 알게 되었습니다. 그래서 순환 신경망을 사용하지 않고 어텐션만 이용하는 새로운 기술인 트랜스포머가 만들어졌습니다. 이 새로운 구조는 2017년에 발표된 유명한 논문 「Attention is All You Need」(당신에게 필요한 것은 어텐션뿐이다)에서 처음 소개되었습니다. 이후 트랜스포머는 언어를 다루는 기술뿐 아니라 이미지, 소리, 음악 등 다양한 분야로 빠르게 퍼졌습니다.
트랜스포머의 가장 큰 장점은 기존 방식보다 훨씬 더 빠르게 정보를 처리할 수 있고, 긴 문장에서도 앞뒤 상황을 더 정확하게 기억하고 유지할 수 있다는 것입니다. 특히 어텐션 덕분에 문맥을 더욱 세밀하게 파악할 수 있어서 문장을 더 자연스럽고 정확하게 이해할 수 있게 되었습니다. 현재 많이 사용되고 있는 GPT(사람처럼 자연스럽게 대화를 하는 AI), BERT(검색엔진 등에서 정보를 잘 찾는 AI), T5(여러 가지 문장을 요약하거나 다시 쓰는 AI) 같은 최신 언어 모델들도 모두 이 트랜스포머 기술을 기본으로 만들어졌습니다.
이처럼 트랜스포머는 단어의 순서와 문장 맥락을 이해하는 데 있어서 매우 뛰어난 능력을 가지고 있으며, 오늘날의 인공지능 기술에 가장 중요한 역할을 하고 있습니다.
필요한 정보를 골라서 집중하는 방식: 어텐션의 기본 원리
트랜스포머(Transformer)가 문장의 의미를 잘 이해할 수 있는 가장 큰 이유는 그 안에 ’어텐션(attention)’이라는 구조가 들어 있기 때문입니다. 어텐션이라는 말은 우리말로 “주의 집중”이라는 뜻입니다. 즉, 트랜스포머는 문장을 볼 때 모든 단어를 똑같이 보는 게 아니라 “어떤 단어에 특별히 집중해야 하는지”를 스스로 판단합니다. 다시 말하면, 문장 안의 단어들이 서로 어떤 관계가 있는지를 모델이 직접 찾아서, 중요한 단어에 더 많은 관심을 주는 것입니다.
이 개념을 이해하기 쉽게 교실에서 선생님과 학생이 대화를 나누는 상황을 상상해 보겠습니다. 한 학생이 수업 도중 손을 들고 이렇게 질문합니다. “선생님, 어제 말했던 실험에서 물을 끓이는 온도가 몇 도였죠?” 선생님은 질문을 듣자마자 머릿속에서 관련된 기억을 떠올립니다. 이때 선생님은 모든 기억을 한꺼번에 생각하지 않습니다. 대신 “어제 어떤 실험을 했지?”, “물이 등장한 부분이 어디였지?“처럼 질문에 필요한 기억만 골라서 집중합니다. 이 과정에서 수업과 관계없는 기억들, 예를 들어 점심 메뉴라든가, 오늘 아침 날씨 같은 정보는 자연스럽게 무시합니다. 이것이 바로 ‘주의 집중’, 즉 어텐션입니다.
어텐션이라는 기술도 이와 비슷하게 작동합니다. 문장 속 하나의 단어가 다른 단어들과 연결될 때, 지금 이 순간 가장 중요한 단어를 찾아서 거기에 더 많은 관심을 주는 방식입니다. 이렇게 중요한 단어에 주는 관심 정도를 ’가중치(weight)’라고 합니다. 가중치란 간단히 말하면 “얼마나 중요한지의 정도를 숫자로 표현한 것”입니다.
트랜스포머에서는 이 과정을 세 가지 역할로 나누어서 처리합니다. 각 단어는 동시에 질의(Query), 키(Key), 값(Value)이라는 세 가지 정보를 가집니다. 말이 어렵게 느껴질 수 있지만, 간단히 말하면 각 단어가 동시에 질문도 하고, 질문에 답도 하면서 정보를 주고받는다고 생각하면 됩니다.
구체적인 예시를 들어보겠습니다. 문장 하나를 볼까요? “나는 오늘 아침에 커피를 마셨다.” 여기서 ‘마셨다’라는 단어는 무엇을 마셨는지 알고 싶어 하는 단어입니다. 즉, ‘마셨다’는 문장 속에서 질문을 던지는 역할(질의, Query)을 합니다. 그리고 나머지 단어들인 ‘나는’, ‘오늘’, ‘아침에’, ‘커피를’은 각각 자기만의 열쇠(키, Key)를 가지고 있습니다. 이 단어들은 자신이 가지고 있는 의미를 값(Value)에 담고 있습니다.
이제 트랜스포머는 ‘마셨다’라는 단어가 가진 질문과 문장 안의 다른 단어들의 열쇠를 하나씩 비교해봅니다. 그렇게 비교한 후 가장 잘 맞는 열쇠를 가진 단어를 찾습니다. 여기서는 당연히 ‘커피를’이라는 단어가 가장 잘 어울립니다. 그러면 트랜스포머는 이 ‘커피를’이라는 단어가 가진 값(Value), 즉 의미를 가져와서 ‘마셨다’와 연결합니다. 이런 과정을 거치면서 트랜스포머는 ‘마셨다’라는 단어가 ‘커피’와 연결되어 있다는 걸 알게 되고, 문장의 전체적인 의미를 더 정확하게 이해할 수 있습니다.
트랜스포머의 어텐션 메커니즘은 문장의 모든 단어들이 이렇게 질문을 주고받으면서, 필요한 정보를 골라서 찾아오는 방식으로 이루어져 있습니다. 이런 구조 덕분에 문장의 앞부분과 뒷부분 사이에 거리가 멀리 떨어져 있어도, 중요한 단어들끼리는 언제든지 잘 연결되어 의미를 효과적으로 전달할 수 있습니다.
어텐션은 어떻게 ‘중요한 단어’를 고를까: 유사도 계산의 원리
어텐션(attention)은 문장 안의 단어들 중에서 어떤 단어가 지금 상황에서 중요한지를 스스로 판단하는 방법입니다. 그런데 여기서 중요한 궁금증이 하나 생길 수 있습니다. “어떻게 단어의 중요성을 판단할 수 있을까요?” 어텐션 메커니즘은 이 질문에 대해 ‘유사성’을 기준으로 답합니다. 유사성이란 쉽게 말해 “서로 얼마나 비슷한지”를 나타내는 정도입니다. 다시 말하면, 문장 속에서 어떤 단어가 현재의 맥락(앞뒤 상황)과 얼마나 관련이 있는지를 수치로 계산하고, 가장 관련 있는 단어에 더 많은 주의를 주는 것입니다.
이때 자주 사용하는 유사성 계산 방법이 바로 ’코사인 유사도(cosine similarity)’입니다. 코사인 유사도는 두 대상이 서로 얼마나 비슷한지를 ‘방향’을 기준으로 측정하는 방식입니다. 조금 더 쉽게 설명해 볼까요? 두 친구가 운동장 한가운데 서 있다고 상상해 보세요. 두 친구는 각각 손가락으로 어느 한 지점을 가리킵니다. 만약 두 친구가 손가락으로 같은 곳을 가리키고 있다면, 이 둘의 방향은 완전히 똑같습니다. 이때 코사인 유사도는 1이 되는데, 이 값은 100% 비슷하다는 의미입니다. 반대로 한 친구가 운동장 왼쪽 끝을, 다른 친구가 오른쪽 끝을 가리킨다면, 둘의 방향은 완전히 반대입니다. 이때는 코사인 유사도가 -1이 됩니다. 완전히 다른 방향이란 뜻이죠. 그리고 두 친구가 직각(90도) 방향으로 서로 다른 곳을 가리킨다면 코사인 유사도는 0이 됩니다. 즉, 전혀 관계가 없는 방향이라는 의미입니다.
이 원리를 단어에 적용하면, 각 단어의 의미를 수치로 표현한 것이 ’벡터(vector)’라는 형태로 나타나게 됩니다. 벡터라는 말이 조금 어렵게 느껴질 수 있지만, 쉽게 말하면 각 단어의 뜻을 숫자로 바꿔서 표현한 것이라고 생각하면 됩니다. 예를 들어 ‘커피’와 ‘차’는 둘 다 마시는 음료이기 때문에 숫자로 표현했을 때 비슷한 방향을 가리키게 됩니다. 그러면 이 두 단어 사이의 코사인 유사도는 높게 나옵니다. 반대로 ‘커피’와 ‘자동차’라는 단어는 서로 관련성이 없기 때문에, 유사도는 낮은 숫자가 됩니다.
어텐션 메커니즘은 이 원리를 ’질의(Query)’와 ’키(Key)’라는 두 벡터를 비교하는 데 사용합니다. 질의는 쉽게 말해 “지금 내가 궁금한 정보가 뭘까?“라는 질문에 해당하고, 키는 “내가 어떤 정보를 갖고 있을까?“라는 역할을 합니다. 예를 들어 친구에게 “오늘 점심에 뭐 먹었어?“라고 물어본다면, 질문하는 쪽이 바로 질의고, 친구가 가진 점심 메뉴에 대한 정보가 키가 되는 것입니다.
모델은 이렇게 두 벡터인 질의와 키를 서로 비교해서, 지금 질문한 내용에 가장 잘 어울리는 키를 찾아냅니다. 이렇게 가장 비슷하다고 판단되는 키를 찾으면, 이 키가 갖고 있는 실제 의미인 ’값(Value)’을 가져와서 문장 전체의 의미를 완성해갑니다.
예를 들어 “나는 오늘 아침에 커피를 마셨다”라는 문장이 있다고 해 봅시다. 여기서 ‘마셨다’는 “내가 무엇을 마셨지?“라는 질문을 던지는 질의의 역할을 합니다. 문장에 있는 다른 단어인 ‘나는’, ‘오늘’, ‘아침에’, ‘커피를’ 등은 각각 키의 역할을 합니다. 모델은 이 키들 중에서 ‘마셨다’라는 단어가 가장 궁금해할 만한 키를 찾습니다. 그러면 당연히 ‘커피를’이라는 키가 가장 관련이 높다고 계산될 것입니다. 그러면 모델은 이 ‘커피를’이라는 키가 가진 의미(값)를 가져와 ‘마셨다’와 연결합니다. 이렇게 하면 ‘마셨다’는 ‘커피’와 연결되면서 문장의 전체 의미를 자연스럽게 이해하게 됩니다.
이처럼 어텐션은 단순히 아무 단어나 연결하는 방식이 아니라, 각 단어의 의미를 수치화한 뒤, 그 숫자들 간의 유사성을 정확히 계산하여 가장 관련 있는 단어에 집중하는 원리입니다. 우리가 ‘마셨다’라는 말을 들으면 자연스럽게 ‘커피’나 ‘물’ 같은 음료를 떠올리듯, 인공지능도 이렇게 유사도를 이용해 가장 관련 있는 단어에 주의를 집중합니다.
정리하면, 어텐션 메커니즘은 수학적으로는 벡터 간의 유사도를 계산하는 과정이지만, 의미적으로 보면 문장 속에서 가장 중요한 정보를 스스로 찾아내 집중하는 지능적인 방식이라고 할 수 있습니다.
다양한 시선으로 문장을 읽는 법: 멀티헤드 어텐션
지금까지 설명한 어텐션(attention)의 기본 원리는 문장 안의 단어 하나가 다른 단어들과 연결되며 자신에게 필요한 정보를 찾아오는 방식이었습니다. 그런데 실제로 우리가 대화를 하거나 글을 읽을 때를 떠올려보면, 하나의 질문에 대해 여러 가지 관점으로 생각하는 경우가 많습니다. 예를 들어, 친구의 말을 제대로 이해하려면 친구가 한 말 자체뿐 아니라 표정, 말투, 주변 상황까지 여러 가지를 동시에 생각해야 정확하게 파악할 수 있습니다. 문장을 정확히 이해하는 것도 비슷합니다. 문장 안의 단어들은 서로 다양한 관계를 맺고 있기 때문에, 여러 가지 관점과 뉘앙스를 함께 살펴봐야 합니다.
트랜스포머(Transformer)는 이런 ‘여러 가지 관점’을 효과적으로 활용하기 위해 어텐션 계산을 한 번만 하는 것이 아니라 여러 번 동시에 진행하는 방식을 사용합니다. 이를 멀티헤드 어텐션(Multi-Head Attention)이라고 합니다. 여기서 ‘헤드(head)’는 각각의 어텐션 계산을 말합니다. 즉, 멀티헤드 어텐션이란 여러 개의 어텐션 계산을 동시에 수행해서, 각자 다른 관점에서 문장 속 단어들의 관계를 살펴보는 방식입니다.
이 개념을 쉽게 이해하기 위해 구체적인 예를 들어보겠습니다. “나는 오늘 아침에 커피를 마셨다”라는 문장이 있다고 생각해봅시다. 이 문장을 이해할 때 하나의 어텐션 헤드는 ‘마셨다’라는 행동과 그 행동의 대상인 ‘커피’의 관계에 가장 집중할 수 있습니다. 즉, ‘무엇을 마셨는지’에 관심을 두는 것입니다. 또 다른 헤드는 시간 표현인 ‘오늘’과 ‘아침’이 서로 어떻게 연결되는지 더 깊게 살펴볼 수 있습니다. ‘언제’ 일어난 일인지에 관심을 가지는 것입니다. 또 다른 헤드는 ‘나는’이라는 단어가 문장 안에서 어떤 역할을 하는지, 즉 ‘누가 마셨는지’에 집중할 수도 있습니다.
이렇게 서로 다른 관점을 가진 어텐션이 동시에 문장을 바라보면, 문장 속 단어들 간의 관계를 더 입체적이고 정확하게 이해할 수 있게 됩니다. 사람도 한 가지 시선이 아니라 여러 가지 시선으로 주변을 관찰하면 더 많은 정보를 얻고 더 정확히 판단할 수 있는 것과 비슷한 원리입니다.
멀티헤드 어텐션 덕분에 트랜스포머는 문장 안에서 서로 다양한 단어 관계를 더욱 풍부하게 파악할 수 있게 되었습니다. 문장 안에 담긴 미묘한 의미나 느낌(뉘앙스)까지도 더 정확하게 이해할 수 있게 된 것입니다. 이런 멀티헤드 어텐션은 결국 어텐션이라는 단순한 개념 하나를 훨씬 더 강력하고 정밀하게 확장시켜주는 중요한 기술이라고 할 수 있습니다.
정리하면, 트랜스포머는 문장 속의 모든 단어가 문장 전체를 바라보면서 다양한 시선과 관점으로 문장의 의미를 동시에 이해하는 구조를 가지고 있습니다. 이러한 구조 덕분에 긴 문장이나 복잡한 문장, 뜻이 애매모호한 표현까지도 유연하고 정확하게 처리할 수 있게 된 것입니다. 실제로도 이 멀티헤드 어텐션을 활용한 트랜스포머 모델들이 오늘날 인공지능 분야에서 가장 뛰어난 성과를 보이고 있습니다.
단어의 순서를 알려주는 더 똑똑한 방법
트랜스포머(Transformer)는 문장 안의 모든 단어를 동시에 바라보는 구조이기 때문에 단어의 순서를 따로 기억하지 않습니다. 앞에서 설명했듯이, 이 모델은 문장을 전체적으로 한번에 보기 때문에, “나는 밥을 먹었다”와 “먹었다 나는 밥을”처럼 단어 순서가 다른 문장을 구별할 수 있는 능력이 원래는 없습니다. 그래서 트랜스포머가 단어의 순서를 이해하려면, 따로 단어들의 위치를 알려주는 추가적인 과정이 필요합니다. 이때 쓰이는 방법이 바로 ’위치 정보 부호화(Position Encoding)’입니다.
처음 떠올릴 수 있는 가장 간단한 방법은 각 단어에 순서대로 번호를 붙이는 것입니다. 예를 들어, 문장에서 첫 번째 단어는 숫자 1을 주고, 두 번째 단어는 숫자 2를 주는 방식으로 번호를 붙인 뒤, 이 숫자를 각 단어의 의미를 나타내는 숫자(단어 벡터)에 더해주는 방법입니다. 하지만 이런 방식에는 몇 가지 문제가 있습니다. 예를 들어, 같은 5번이라는 번호라도 짧은 문장에서는 문장 끝부분이지만, 긴 문장에서는 앞부분에 위치할 수도 있습니다. 이렇게 되면 단어 번호만으로는 문장 속에서 단어가 어디쯤 있는지 정확히 알려줄 수 없습니다. 또 문장이 매우 길어지면 숫자가 점점 커져서 모델이 처리하기 어렵습니다.
그래서 연구자들은 조금 더 복잡하지만 훨씬 더 효과적인 방법을 제안했습니다. 그것이 바로 ’사인파(sine wave)’와 ’코사인파(cosine wave)’를 사용하는 방식입니다. 사인파와 코사인파는 수학적으로 주기적으로 반복하는 파형입니다. 쉽게 말하면 물결이나 시곗바늘처럼 일정한 간격으로 계속 반복해서 움직이는 모양을 떠올리면 됩니다. 이 방법은 각 단어가 문장 안에서 어디에 위치하는지, 사인과 코사인 함수에서 특정한 값을 계산해서 표현합니다. 예를 들어 첫 번째 단어의 위치는 사인파의 시작점에서 값을 가져오고, 두 번째 단어는 사인파에서 조금 더 나아간 지점에서 값을 가져오는 방식입니다.
이 방법이 효과적인 이유는 크게 세 가지로 설명할 수 있습니다.
첫째, 값이 안정적입니다. 사인과 코사인 함수는 숫자가 아무리 커지더라도 항상 -1과 1 사이의 값만 나오기 때문에, 값이 너무 커지거나 작아져서 계산에 문제가 생기지 않습니다.
둘째, 서로 다른 단어 위치 간의 거리를 명확히 구분할 수 있습니다. 예를 들어 첫 번째 단어와 다섯 번째 단어는 사인파에서 완전히 다른 값을 가지기 때문에, 두 위치 사이가 얼마나 떨어져 있는지 쉽게 파악할 수 있습니다. 즉, 단어들이 서로 어느 정도 거리가 있는지 모델이 쉽게 이해할 수 있습니다.
셋째, 규칙적인 반복 패턴 덕분에 모델이 위치를 더 잘 학습할 수 있습니다. 마치 놀이공원의 회전목마를 생각해보면 쉽습니다. 회전목마가 계속 일정한 속도로 빙글빙글 돌기 때문에, 우리가 어디쯤 있는지 또는 어떤 자리가 다른 자리에서 얼마나 떨어져 있는지 쉽게 알 수 있습니다. 사인파와 코사인파도 이렇게 반복적으로 움직이는 규칙을 가지고 있어 모델이 단어의 위치 정보를 더 정확하게 이해할 수 있게 해줍니다.
이러한 이유로 트랜스포머는 각 단어의 의미를 나타내는 숫자(단어 벡터)에 사인파와 코사인파에서 얻은 위치 정보를 더해줍니다. 이렇게 하면 트랜스포머는 단어의 의미뿐 아니라 단어의 정확한 위치도 함께 고려할 수 있게 되어, 문장의 흐름과 단어의 상대적인 순서를 정확히 파악할 수 있게 됩니다.
정리하면, 사인파와 코사인파를 이용한 위치 정보 부호화는 트랜스포머가 문장의 구조를 더 자연스럽고 안정적으로 이해할 수 있도록 도와주는 중요한 방법이라고 할 수 있습니다.
정보가 사라지지 않게 이어주는 장치: 잔차 연결과 층 정규화
트랜스포머(Transformer)는 여러 개의 층(layer)을 차례로 쌓아서 만든 구조입니다. 처음 입력된 단어들의 정보는 이 층들을 하나씩 거치면서 점점 더 세밀하게 바뀌고, 단어들 간의 관계도 더 깊이 있게 이해할 수 있게 됩니다. 그런데 이렇게 층을 많이 쌓다 보면 예상치 못한 문제가 나타날 수 있습니다. 처음 입력된 정보가 위쪽 층까지 정확히 전달되지 않거나, 계산 과정에서 정보가 너무 많이 바뀌어서 오히려 정확한 의미를 잃어버리는 문제가 생기는 것입니다. 마치 친구에게 어떤 긴 이야기를 전달할 때, 여러 명을 거쳐 전달하다 보면 원래 이야기가 변하거나 중요한 내용을 잊어버리는 것과 비슷한 상황입니다.
이 문제를 해결하기 위해 트랜스포머는 ’잔차 연결(skip connection)’이라는 특별한 구조를 사용합니다. 잔차 연결이란, 각 층에서 새롭게 계산한 정보에다가 그 전 층에서 가져온 원래 정보를 그대로 더해주는 방식입니다. 쉽게 말하면, 이전 층에서 전달받은 정보를 완전히 새 정보로 바꾸는 게 아니라, 이전 정보와 새 정보를 같이 묶어서 다음 층으로 전달하는 것입니다. 이렇게 하면 모델이 새롭게 바뀐 정보와 원래 정보를 함께 보게 되므로, 어떤 정보가 중요한지를 스스로 학습해서 결정할 수 있게 됩니다.
구체적인 예를 들어 보겠습니다. 문장 “나는 오늘 커피를 마셨다”를 모델이 처리한다고 생각해 봅시다. 중간에 위치한 층에서 ‘커피’라는 단어에 어떤 새로운 해석이나 의미가 추가되더라도, 처음부터 연결되어 있던 ‘마셨다’와 ‘커피’ 사이의 원래 의미는 사라지지 않고 유지됩니다. 마치 친구에게 전달된 이야기에 새로 덧붙이는 내용이 있어도 원래 이야기의 핵심은 그대로 유지되는 것과 비슷합니다. 잔차 연결 덕분에 트랜스포머는 층이 많아져도 중요한 정보가 중간에 사라지지 않고 계속 유지될 수 있는 것입니다.
또한 트랜스포머는 ’층 정규화(layer normalization)’라는 방법도 함께 사용합니다. 층 정규화는 각 층에서 나오는 값이 너무 크거나 너무 작아지지 않도록 적당한 범위 내로 조정하는 기술입니다. 값이 너무 커지면 모델이 불안정해지고 정확한 계산이 어려워집니다. 반대로 값이 너무 작아지면 모델이 거의 아무것도 배우지 못하는 상태가 될 수도 있습니다. 그래서 층 정규화는 각 층의 출력 값을 적절한 크기로 맞추어서, 계산이 안정적으로 진행되도록 도와줍니다.
이 개념을 쉽게 이해하려면 우리의 감정 조절을 생각하면 됩니다. 우리가 너무 기쁘거나 너무 슬플 때, 감정을 조절해서 적당한 상태로 만드는 것이 필요하듯이, 층 정규화도 정보가 너무 튀거나 너무 흐려지지 않도록 적절한 상태로 균형을 맞춰주는 역할을 합니다.
잔차 연결과 층 정규화는 언뜻 보기엔 잘 보이지 않지만, 실제로는 트랜스포머가 여러 층을 깊게 쌓아서 복잡한 계산을 하는 동안에도 중요한 정보가 사라지지 않고 안정적으로 유지되도록 돕는 아주 중요한 역할을 합니다. 만약 어텐션(attention)이 문장에서 중요한 정보를 골라내는 똑똑한 두뇌라면, 잔차 연결과 층 정규화는 그 정보를 놓치지 않고 다음 단계로 잘 전달할 수 있게 하는 기본적인 체력과 같은 장치라고 할 수 있습니다.
트랜스포머의 성능을 높이는 새로운 방법: 전문가 혼합 모델(Mixture of Experts)
트랜스포머는 문장을 잘 이해하고 자연스럽게 만들기 위해 점점 더 크고 복잡한 구조로 발전하고 있습니다. 그런데 이렇게 구조가 커지고 복잡해질수록 처리해야 할 계산이 많아지고 속도도 느려져서 비용과 시간이 많이 듭니다. 이런 문제를 해결하기 위해 최근에는 전문가 혼합 모델(Mixture of Experts)이라는 방법이 등장했습니다.
전문가 혼합 모델(Mixture of Experts)은 쉽게 말해, 특정 분야에 뛰어난 여러 명의 전문가를 두고, 상황에 맞는 가장 적합한 전문가에게만 일을 맡기는 방식입니다. 예를 들어, 우리가 학교 축제를 준비한다고 생각해 봅시다. 축제를 준비할 때는 다양한 분야의 전문가들이 필요합니다. 음향 장비를 설치할 때는 음향 전문가에게 일을 맡기고, 조명을 설치할 때는 조명 전문가가 담당합니다. 무대 장식을 할 때는 미술을 잘하는 전문가에게 부탁하면 됩니다. 모든 사람이 모든 일을 할 필요 없이, 각자의 분야에 뛰어난 전문가가 자기에게 맞는 일만 하면 전체적으로 효율도 높아지고 결과도 좋아지게 됩니다.
전문가 혼합 모델도 마찬가지로, 모델 안에 여러 가지 역할을 할 수 있는 작은 전문가 모델들이 미리 준비되어 있습니다. 새로운 문장이 입력되면 모델은 그 문장의 특징과 상황을 보고, 가장 적합한 전문가에게만 처리를 맡깁니다. 예를 들어 “내일 날씨는 어떨까요?“라는 질문이 들어오면 날씨 정보 처리에 뛰어난 전문가가 선택되고, “지금 듣기 좋은 음악을 추천해 주세요”라는 문장이 들어오면 음악 추천에 가장 강한 전문가가 처리하는 것입니다.
이 방식의 가장 큰 장점은 모든 전문가가 매번 모든 작업을 처리하지 않아도 되기 때문에 계산량을 크게 줄일 수 있다는 점입니다. 덕분에 같은 크기의 일반 트랜스포머 모델보다 더 빠르게 작동하면서도 더 정확한 결과를 낼 수 있게 됩니다. 최근 많은 연구자들은 전문가 혼합 모델을 활용해 더욱 효율적이고 뛰어난 성능의 인공지능을 개발하고 있습니다.
트랜스포머의 변신: BERT에서 ChatGPT까지
초기 트랜스포머는 한 연구 논문에서 제안된 새로운 아이디어에 불과했습니다. 하지만 이 구조가 실제로 얼마나 뛰어난지를 보여주는 다양한 모델들이 곧 나타나기 시작했습니다. 그중에서도 특히 유명한 두 가지 언어 모델이 바로 BERT와 GPT입니다. 이 두 모델은 같은 트랜스포머 구조를 바탕으로 만들어졌지만, 서로 다른 방향으로 발전하면서 각각 특별한 장점을 가지고 있습니다.
먼저, BERT(버트)는 문장을 더 깊고 정확하게 이해하는 데에 초점을 맞춘 모델입니다. 이 모델은 문장을 볼 때 앞뒤를 동시에 확인해서, 각 단어가 그 문장에서 정확히 어떤 의미로 사용되었는지를 더 잘 파악합니다. 예를 들어, “배가 아프다”라는 문장에서 ‘배’가 과일 배인지, 몸의 배인지 정확하게 이해하는 방식입니다. 그래서 BERT는 주로 질문에 정확하게 답을 하거나, 문장의 주제를 찾아내고, 사람 이름이나 장소 이름 같은 특별한 단어를 찾아내는 일에 매우 뛰어난 능력을 보여줍니다.
반대로 GPT(지피티)는 문장을 자연스럽게 이어서 만드는 능력에 초점을 맞춘 모델입니다. GPT는 문장을 읽을 때 왼쪽에서 오른쪽 방향으로 한 단어씩 읽으며, 다음에 어떤 단어가 나올지를 예상하는 방법으로 학습됩니다. 마치 우리가 친구에게 이야기를 해줄 때 한 단어씩 자연스럽게 이어나가는 것과 비슷한 방식입니다. 그래서 GPT는 문장을 직접 만들어 내는 능력이 뛰어나서, 이야기를 창작하거나, 사람과 자연스러운 대화를 주고받는 일에 잘 활용됩니다.
GPT는 2018년에 처음 GPT-1이라는 모델로 등장했습니다. 이 모델은 트랜스포머를 바탕으로 책이나 뉴스, 위키백과 등 다양한 글을 읽고 학습해 문장을 이어 쓰는 능력을 보여주었습니다. 이후에 등장한 GPT-2는 이전 모델보다 규모가 10배나 커졌고, 더욱 자연스러운 문장을 만들어 낼 수 있게 되었습니다. 특히 GPT-2는 긴 글을 써도 앞뒤 내용이 잘 맞고 일관성을 유지할 수 있어서, 사람과 더 비슷한 글쓰기가 가능해졌다는 평가를 받았습니다.
그리고 2020년에 발표된 GPT-3는 약 1,750억 개의 파라미터(모델이 학습한 정보량을 나타내는 단위)를 가진 아주 큰 규모의 모델로, 놀라운 성능을 보여주었습니다. GPT-3는 단순히 글을 쓰는 수준을 넘어서, 번역을 하거나, 글을 요약하고, 질문에 답을 하거나 간단한 수학 문제까지 풀 수 있었습니다. 그리고 이런 여러 가지 일을 별도의 추가 학습 없이도 할 수 있었습니다. 이 모델은 사람이 원하는 것을 문장으로 명령하면, 그 뜻을 스스로 파악하고 처리하는 방식이었는데, 이를 제로샷 학습(zero-shot learning) 또는 프롬프트 기반 학습(prompt-based learning)이라고 부릅니다.
하지만 GPT-3도 완벽하지는 않았습니다. GPT-3가 쓴 글은 겉으로 보기에는 매우 그럴듯했지만, 실제로는 틀린 정보나 부정확한 내용을 포함하는 경우도 있었습니다. 때로는 잘못된 내용이나 위험한 표현을 만들어 내는 문제도 있었습니다. 이런 문제를 해결하기 위해 등장한 것이 InstructGPT (인스트럭트 지피티)입니다. InstructGPT 는 모델이 사람이 주는 지시를 더 잘 이해하고 정확하게 따르도록 특별히 훈련된 모델입니다. 모델의 훈련 과정에서 사람이 직접 작성한 좋은 답변과 좋지 않은 답변을 비교하며, 어떤 답변이 더 적절한지 스스로 판단할 수 있도록 학습했습니다. 이렇게 사람의 평가와 피드백을 활용한 방식은 이후 만들어진 언어 모델 개발의 새로운 표준이 되었습니다.
이렇게 해서 탄생한 것이 바로 ChatGPT (챗지피티) 입니다. ChatGPT 는 GPT-3.5와 같은 강력한 언어 모델의 기반 위에, 인스트럭트 GPT의 방식과 대화에 적합한 기능을 추가한 모델입니다. ChatGPT 는 단순히 문장을 만들어 내는 수준을 넘어, 사람의 질문에 자연스럽게 답하고, 질문한 내용을 잘 이해하며, 실제 사람처럼 자연스럽게 대화를 이어갈 수 있도록 만들어졌습니다.
비유하자면, 기존의 GPT 모델이 혼자서 글을 쓰는 작가였다면, ChatGPT 는 친구처럼 말을 듣고 적절하게 대화를 주고받을 수 있는 파트너에 더 가깝습니다. 그래서 ChatGPT 는 사람들과 다양한 주제로 자연스러운 대화를 나누면서, 사용자와 더 가까운 방식으로 소통하는 새로운 세대의 인공지능으로 주목받고 있습니다.
말과 그림을 동시에 이해하는 인공지능
트랜스포머(Transformer)는 처음에는 사람의 언어를 이해하거나 문장을 만드는 데 주로 사용되었습니다. 하지만 시간이 흐르면서, 이 기술은 점점 더 다양한 영역으로 확대되었습니다. 특히 최근에는 사람처럼 말과 그림을 동시에 이해하고 서로 연결할 수 있는 인공지능이 등장하면서, 트랜스포머의 능력은 한 단계 더 발전하게 되었습니다. 이렇게 말과 그림 같은 서로 다른 종류의 데이터를 동시에 다룰 수 있는 인공지능을 ‘멀티모달(Multimodal)’ 모델이라고 합니다. 멀티모달이란 여러 가지 감각이나 형태를 함께 사용하는 것을 뜻합니다.
예를 들어 DALL·E(달리)라는 모델은 문장을 입력하면 그 내용에 어울리는 그림을 만들어줍니다. “우주복을 입은 토끼가 피자를 먹고 있는 모습”이라는 문장을 입력하면, 정말 그런 장면을 묘사한 그림을 만들어 내는 것입니다. DALL·E는 이미지를 언어처럼 다룹니다. 이미지를 여러 개의 작은 조각으로 나누고, 이 조각들을 마치 문장을 쓰듯이 순서대로 이어 붙여서 전체 그림을 완성합니다.
하지만 이런 초기의 멀티모달 모델들은 한 가지 큰 단점이 있었습니다. 보통 한 가지 방향으로만 작동했다는 점입니다. 예를 들어 문장을 입력하면 이미지를 만들 수 있었지만, 반대로 이미지를 주면 그 이미지를 설명하는 문장을 만들어주는 것은 따로 훈련된 전혀 다른 모델이 필요했습니다. 다시 말해, 한 언어에서 다른 언어로 번역하는 것이 아니라, 한 방향으로만 통역이 가능한 상태와 비슷했던 것입니다.
이 문제를 해결하기 위해 등장한 것이 바로 L-Verse(엘버스)라는 모델입니다. L-Verse는 말과 그림을 양방향으로 자유롭게 번역하듯 오갈 수 있는 능력을 가진 멀티모달 모델입니다. 즉, 한 장의 이미지를 입력하면 그 내용을 설명하는 문장을 만들 수도 있고, 반대로 문장을 입력하면 그 문장에 맞는 그림을 생성할 수도 있습니다.
L-Verse의 작동 원리는 마치 영어를 한국어로, 한국어를 영어로 자연스럽게 번역해주는 뛰어난 통역사와 비슷합니다. 통역사는 영어 문장을 들으면 그 의미를 이해하고 자연스러운 한국어로 바꿔주고, 한국어 문장을 들으면 그 의미를 영어로 바꿔 전달해줍니다. 이 과정에서 중요한 건 단순히 단어를 그대로 옮기는 것이 아니라, 문장 전체의 의미를 정확하게 이해하고 자연스럽게 표현하는 것입니다.
L-Verse도 비슷한 방식으로 동작합니다. 입력된 이미지를 보면, 먼저 이미지를 아주 작은 조각들로 나눕니다. 그 다음 각각의 조각을 숫자(벡터)로 표현하여, 모델이 그 이미지를 마치 언어처럼 이해할 수 있게 합니다. 이렇게 그림의 의미를 숫자로 이해한 뒤에는 그것을 설명하는 문장을 만들어 냅니다. 반대로 문장을 입력받으면, 모델은 그 문장의 의미를 숫자로 표현하고 이해한 뒤, 다시 그것을 그림으로 만들어 줍니다.
즉, 통역사가 두 가지 언어 사이에서 의미를 정확하게 전달하듯, L-Verse는 말과 그림이라는 서로 다른 데이터를 자유롭게 오가며 서로의 의미를 자연스럽게 번역합니다. 이 덕분에 L-Verse는 양방향 생성이 가능한 뛰어난 멀티모달 모델로 인정받게 되었습니다.
최근에는 이와 유사한 멀티모달 능력을 더욱 발전시킨 모델들도 나오고 있습니다. 예를 들어 Flamingo(플라밍고)라는 모델은 이미지를 보고 질문에 답을 하거나, 서로 다른 형태의 데이터를 자연스럽게 연결하고 이해하는 능력을 가지고 있습니다. 이런 모델들은 단지 한 가지 형태의 데이터만을 처리하는 것이 아니라, 그림, 문장, 영상과 같은 다양한 입력을 복합적으로 처리하며, 더 유연한 방식으로 인공지능의 능력을 넓혀가고 있습니다.
이처럼 멀티모달 모델들은 트랜스포머 구조를 바탕으로 말과 그림을 함께 이해하고 처리하는 능력을 계속해서 발전시키고 있습니다. 앞으로는 더 많은 종류의 데이터를 동시에 이해하고 서로 연결해 활용할 수 있는 기술로서 인공지능의 미래를 이끌어갈 것으로 기대됩니다.
이해에서 표현으로
지금까지 이 장에서 살펴본 트랜스포머(Transformer)는 단순한 하나의 기술을 넘어, 인공지능이 세상을 바라보고 이해하는 방식을 완전히 바꾸어 놓았습니다. 예전에는 단어들을 하나씩 순서대로 따라가면서 문장의 의미를 파악하려 했던 인공지능이, 이제는 문장 전체를 한 번에 보면서 그 안에서 가장 중요한 정보에 집중하고 자연스럽게 문맥을 이해할 수 있게 되었습니다. 그 중심에는 ‘어텐션(attention)’이라는 개념이 자리하고 있습니다. 어텐션이란 쉽게 말해, 문장에서 “무엇이 중요한지 스스로 찾아 집중하는 능력”입니다. 이 단순하면서도 강력한 원리가 바로 트랜스포머 구조를 가능하게 만들었습니다.
트랜스포머는 단어들 사이의 관계를 자유롭게 찾아내 연결할 수 있게 했고, 그 덕분에 GPT나 BERT와 같은 뛰어난 모델들이 사람의 언어를 더 유연하고 깊이 있게 이해할 수 있게 되었습니다. 처음에는 문장을 읽고 이해하는 모델에서 출발한 트랜스포머는 점점 그 한계를 넘어, 이제는 그림을 그리거나 그림에 대한 설명을 붙이고, 심지어는 말과 그림 사이를 자유롭게 넘나드는 멀티모달(Multimodal) 인공지능으로까지 발전하게 되었습니다. 예를 들어 DALL·E(달리)라는 모델은 사람의 상상 속 장면을 그림으로 만들어 낼 수 있으며, L-Verse(엘버스)와 같은 모델은 말과 그림 사이를 자연스럽게 번역하듯 오갈 수 있는 능력을 갖추었습니다.
이 모든 발전의 중심에는 어텐션과 트랜스포머가 있습니다. 이 구조가 처음에는 복잡하게 보일 수 있지만, 사실 그 핵심 아이디어는 간단합니다. 바로 “인공지능이 스스로 무엇이 중요한지 찾아 집중하도록 하자”는 것입니다. 이 한 줄의 아이디어가 인공지능이 언어를 배우고 이해하는 방식을 완전히 바꿔놓았습니다. 덕분에 인공지능의 학습 방식과 활용 범위까지 더욱 넓어지고 있습니다.
앞으로 우리가 만나게 될 인공지능은 단지 말을 자연스럽게 이어서 쓰는 수준을 훨씬 넘어서게 될 것입니다. 상황을 이해하고, 그림을 만들어 내며, 사람의 의도를 더 깊이 있게 파악하고 표현할 수 있는 존재로 발전할 것입니다. 그리고 그 모든 가능성은 트랜스포머라는 구조가 열어놓은 길 위에서 계속해서 펼쳐질 것입니다.
결국 트랜스포머는 사람의 언어와 표현을 더 잘 이해하고 더욱 풍부하게 표현하도록 만드는 기술입니다. 그리고 지금 이 순간에도 이 기술은 언어와 이미지를 뛰어넘어 더 많은 분야로 발전을 계속해가고 있습니다. 앞으로 우리는 트랜스포머를 통해 지금은 상상하기 어려운 더 놀라운 인공지능의 미래를 만나게 될지도 모릅니다.
[저작권자ⓒ META-X. 무단전재-재배포 금지]