트랜스포머 네트워크 소개
이 글은 트랜스포머 네트워크가 어떻게 작동하는지 A부터 Z까지 설명하고, LSTM과 RNN 같은 신경망 모델보다 뛰어난 이유를 논합니다. 이 글은 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 알려주세요.
Created on September 15|Last edited on September 15
Comment

Stable Diffusion으로 생성됨. 프롬프트: 무대 위의 옵티머스 프라임 트랜스포머, 인간이 소개하는 장면
구체적으로, 트랜스포머의 기원과 그것이 머신러닝 분야에 가져온 극적인 영향을 먼저 살펴본 뒤, 트랜스포머가 어떻게 작동하는지와 왜 LSTM, RNN 같은 다른 신경망 모델을 종종 능가하는지 간단히 설명하겠습니다. RNN 그리고 LSTM.
그다음에는 트랜스포머가 머신러닝에서 어떻게 활용되는지, 다음과 같은 주요 용례들을 소개하겠습니다. 자연어 처리 음성 인식과 같은 작업부터 …에서 활용되는 컴퓨터 비전 고정밀을 위한 분야 객체 탐지또한 딥러닝이 트랜스포머와 어떻게 연결되는지��� 대한 질문에 답하고, 인코더–디코더 아키텍처 모델을 활용할 때 트랜스포머가 어떻게 작동하는지 설명하겠습니다.
이번 글에서 다룰 내용은 다음과 같습니다:
목차
목차트랜스포머의 간략한 역사 트랜스포머 네트워크란 무엇인가? 트랜스포머 네트워크는 어디에 사용되나요?트랜스포머는 딥러닝 알고리즘인가요? 트랜스포머는 어떻게 동작하나요? 트랜스포머는 얼마나 많은 데이터가 필요할까? 트랜스포머의 활용 분야는 무엇일까?트랜스포머가 수행할 수 있는 작업 결론
트랜스포머의 간략한 역사
트랜스포머는 2017년 구글이 발표한 혁신적인 논문 “Attention Is All You Need”에서 처음으로 머신러닝 분야에 소개되었습니다(이 논문은 뒤에서도 여러 번 언급합니다). 이후 몇 년 동안 트랜스포머는 기존의 NLP 모델을 압도적으로 능가하며, RNN과 같은 기존에 널리 사용되던 NLP 및 컴퓨터 비전용 딥러닝 기법의 시대를 사실상 마감시켰습니다.
그렇다면 트랜스포머가 처음 소개된 이후로 추가적인 개선이 있었을까요? 답은 그렇습니다. 대중이 이 새로운 모델을 폭넓게 이해하고 활용하기 시작하면서, 기존 모델의 복잡도, 속도, 그리고 적용 범위를 개선하기 위한 다양한 제안이 이어졌습니다. 이러한 개선 덕분에 트랜스포머는 NLP를 넘어 다른 머신러닝 분야로도 진출할 수 있었습니다.
트랜스포머가 처음 등장했을 때는 음성 인식과 검색 작업을 효율적으로 수행하도록 완전히 최적화되어 있지 않았습니다. 오디오 입력 데이터의 프레임률이 출력되는 텍스트 프레임보다 훨씬 높기 때문에, 이 격차를 줄이는 방법을 재정립하는 것이 트랜스포머가 음성 인식 시장에 성공적으로 진입하기 위한 최우선 과제가 되었습니다. 다행히도 중국 연구팀이 이 문제를 해결하는 개념을 제시했고, 트랜스포머가 처음 발표된 지 오래지 않아 딥러닝 분야에 트랜스포머를 성공적으로 도입하며 이러한 한계를 제거했습니다.
그리고 트랜스포머의 발전은 여기서 끝나지 않습니다. 2021년에 Google은 부동소수점 연산 횟수(머신러닝에서 표준 연산 비용 지표, FLOPs)를 유지하면서 매개변수 수를 대폭 늘리는 새로운 방법을 제안한 논문을 발표했습니다. 이를 통해 모델의 복잡도와 학습 능력이 모두 향상되었습니다.
트랜스포머 네트워크란 무엇인가?
“Attention Is All You Need” 논문에서 제안된 바와 같이, 트랜스포머는 번역과 같은 시퀀스-투-시퀀스 형태의 복잡한 언어 과제를 해결하기 위해 설계된 새로운 아키텍처의 신경망입니다. 질의응답그리고 챗봇까지, 긴 범위의 의존성을 관리하면서 수행합니다.
입력 데이터가 텍스트 형태일 경우, 트랜스포머 모델은 주어진 문장에 있는 서로 다른 단어들 사이의 관계를 추적함으로써 작동합니다. 또한 트랜스포머는 훨씬 더 긴 기억을 유지하여 장기 의존성을 처리할 수 있습니다(이에 대해서는 뒤에서 더 자세히 설명합니다).

트랜스포머 모델은 인코더-디코더 아키텍처를 사용하며, 일반적으로 최대 6개 층으로 구성됩니다. 각 층은 데이터를 처리하여 다음 층의 입력으로 내보내며, 각 층은 다시 두 개의 하위 층으로 나뉩니다. 첫 번째 하위 층은 셀프 어텐션을 수행하고, 그 출력 결과를 다음 하위 층으로 전달하며, 다음 하위 층은 피드포워드 연산을 수행합니다.
피드포워드 과정에서 데이터는 은닉 노드에서 출력 노드로 한 방향(전방)으로만 이동합니다. 입력 변수와 출력 변수가 모두 생성되어 다음 층으로 병렬로 전달되므로, 고속 성능을 구현할 수 있습니다.
트랜스포머 네트워크는 어디에 사용되나요?
트랜스포머는 매우 다양한 작업을 처리하도록 개발되었습니다. 이 섹션에서는 트랜스포머가 RNN과 LSTM 머신러닝 모델을 상당 부분 대체할 수 있었던 두 가지 핵심 이유를 설명합니다.
우리 목록에서 첫 번째 이유는 트랜스포머는 기울기 소실 문제를 해결합니다이 문제는 일반적으로 RNN과 같은 오래된 신경망 모델에서 자주 발생합니다. 그렇다면 기울기 소실이란 정확히 무엇일까요?
간단히 말해, 기울기 소실은 모델이 정보를 얼마나 오래 유지할 수 있는지와 직접적으로 연관됩니다. 예를 들어, RNN 모델이 “나는 지난 몇 년 동안 물리학 학사 과정을 공부해 왔고, 내일 마지막 과제를 제출해야 하는데”라는 문장에서 마지막에 올 단어를 예측하려고 한다고 가정해 봅시다. RNN 모델의 문제는 기억이 짧다는 점입니다. 문장 초반에 내가 물리학을 공부하고 있다고 밝혔더라도, 문장 끝에서 제출해야 할 과제의 종류를 모델이 올바로 추론하리라고 기대하기 어렵습니다.
LSTM의 도입으로 기존 RNN 모델에 더 긴 메모리 시퀀스를 부여할 수 있게 되었습니다. 그렇지만 LSTM을 사용하더라도, 문장이 일정 길이를 넘어서면(대개 수백 단어 수준) 모델이 유지할 수 있는 문맥 길이가 한계에 부딪힙니다. 이 문제는 음성 인식과 같은 NLP 하위 분야에서 효율을 크게 떨어뜨립니다. 이런 지점에서 트랜스포머가 강점을 발휘하는데, 훨씬 더 긴 문맥을 안정적으로 유지할 수 있도록 해줍니다.
RNN 네트워크와 그 개선형인 LSTM의 두 번째 큰 문제는 느린 학습 속도RNN과 같은 모델은 입력을 순차적 데이터로 받아들이기 때문에, 학습에 사용하는 GPU를 충분히 활용하지 못합니다. GPU 사용의 핵심 아이디어는 GPU가 복잡한 텐서 연산에 뛰어나다는 점입니다. 대규모 배치로 입력 값을 처리할 수 있는 GPU는 딥러닝 모델과 상호 보완적이며, 훨씬 빠른 학습 속도를 가능하게 합니다. 이 지점에서 트랜스포머가 특히 유용합니다. 트랜스포머는 구식 신경망 모델과 현대 GPU 사이의 비호환성을 제거합니다. RNN과 LSTM과 달리, 트랜스포머는 대용량 데이터 배치를 한 번에 처리하여 GPU를 최대한으로 활용하고 훨씬 더 좋은 성능을 발휘합니다.
트랜스포머는 딥러닝 알고리즘인가요?
짧게 답하면 그렇습니다. 본질적으로 트랜스포머는 딥러닝 알고리즘(좀 더 기술적으로는 딥러닝 모델)입니다. 이 질문에 더 잘 답하려면, 먼저 딥러닝 알고리즘이 무엇인지부터 물어봐야 합니다.
딥러닝은 간단히 말해 머신러닝의 한 분야입니다. 머신러닝과 비교했을 때 딥러닝의 새로운 점은, 딥러닝 알고리즘이 데이터를 여러 개의 신경망 “레이어”를 통해 처리한다는 것입니다. 각 레이어는 데이터를 단순화한 표현으로 변환해 다음 레이어로 전달합니다. 즉, 대부분의 딥러닝 알고리즘처럼 레이어가 3~4개라면, 각 레이어는 여러 개의 노드를 포함하고 있으며, 이 노드들은 데이터 배치를 입력으로 받아 처리한 뒤 하나의 값을 반환합니다. 이렇게 얻은 값은 다음 레이어의 입력으로 전달되며, 마지막 출력 레이어에 도달해 모델의 최종 결과를 반환할 때까지 이 과정이 반복됩니다.

RNN과 마찬가지로 트랜스포머도 유사한 방식으로 작동합니다. 두 모델 사이에는 주어진 시간에 처리·전달되는 데이터의 양처럼 차이가 여전히 존재하지만, 둘 다 수백 개의 하위 가지에서 시작해 네트워크 형태로 연산을 진행한 뒤 트리의 루트에서 최종 값을 반환한다는 점에서는 공통됩니다.
트랜스포머는 어떻게 동작하나요?
컴퓨터는 숫자만 이해할 수 있기 때문에, 대부분의 트랜스포머 모델에서는 먼저 알파벳으로 된 값(텍스트 데이터)을 숫자 값으로 변환하는 데이터 변환 과정을 적용해야 합니다.
딥러닝 분야에서는 이 과정을 다음과 같이 부릅니다 워드 임베딩워드 임베딩은 각 단어를 의미를 담은 실수 값 벡터로 표현하며, 벡터 공간에서 서로 가까운 단어일수록 의미가 유사할 것으로 기대됩니다. 데이터를 더 이해하기 쉬운 형식으로 변환한 뒤, 임베딩된 데이터를 다음 계층인 자기어텐션 계층.
자기어텐션 계층은 트랜스포머의 주요 처리 계층 중 하나이자, 최종 결과를 크게 좌우하는 핵심 메커니즘입니다. 다음과 같은 기법을 활용하여 어텐션 더 흔히 자기어텐션으로 알려진 이 기법을 통해, 트랜스포머는 멀리 떨어진 데이터 간의 관계를 포착하고 기울기 소실 문제를 완화할 수 있습니다. 즉, 특정 문맥에서 두 단어가 서로 멀리 떨어져 있더라도, 트랜스포머 모델은 그 둘 사이의 관계를 계속 학습할 수 있습니다.
자기어텐션 과정은 주어진 문장에서 특정 단어가 주변 단어들과 얼마나 관련이 있는지를 나타냅니다. 이 관계는 어텐션 벡터라고 부르는 형태로 표현됩니다. 각 단어마다 고유한 어텐션 벡터가 생성된다는 점은 주목할 만합니다. 다만 이런 방식의 문제는, 각 단어가 자신의 어텐션 벡터를 만들 때 다른 단어들보다 스스로의 값을 더 크게 반영하는 경향이 있다는 것입니다. 이 오류를 완화하기 위해 여러 개의 어텐션 벡터를 생성하고, 그 평균 합을 계산하여 해당 단어의 가중치를 추정합니다.

자기어텐션 계층에서는 키, 쿼리, 값 벡터라는 세 가지 추가 유형의 벡터가 생성됩니다. 각 벡터는 입력 벡터와 곱해져 가중치가 적용된 값을 반환합니다.
이 과정 다음에는 각 어텐션 벡터를 입력으로 받아 다음 계층에서 더 쉽게 사용할 수 있는 형태로 변환하는 피드포워드 신경망이 이어집니다. 이후 데이터는 디코더 계층으로 전달되어, 주어진 모델의 출력을 예측합니다.
트랜스포머는 얼마나 많은 데이터가 필요할까?
트랜스포머는 GPU와 TPU에서의 계산과 처리에 더 최적화되어 있어 대규모 데이터셋을 효율적으로 다룰 수 있지만, 완전한 학습을 위해서는 방대한 양의 데이터가 필요합니다. 데이터셋의 충분성을 판단하는 가장 일반적인 방법은 ‘10배 규칙’을 적용하는 것입니다. 이 규칙은 입력 데이터의 양(예: 샘플 수)이 모델이 가진 자유도의 10배 이상이어야 한다는 뜻입니다.
모델에 따라 필요한 데이터셋의 규모가 완전히 다를 수 있다는 점은 주목할 만합니다. 따라서 트랜스포머에 얼마나 많은 데이터가 필요한지 알아보는 가장 좋은 방법은 이미 학습된 트랜스포머 모델들의 실제 사례를 통해 살펴보는 것입니다.
Facebook의 유명한 Data-Efficient Image Transformer(DEiT)는 약 120만 장의 이미지를 포함한 ImageNet 데이터셋을 사용해 최첨단 이미지 분류 성능을 달성했습니다. 이 정도 규모의 데이터셋이면 모델을 학습하기에 충분하며, 높은 정확도를 제공합니다.
대부분의 경우에는 이처럼 방대한 데이터셋을 사용할 필요가 없다는 점을 짚고 넘어가야 합니다. 보통은 약 십만 개 수준의 데이터 포인트만으로도 충분한 경우가 많습니다. 다만, 일반적으로 데이터가 많을수록 모델 성능이 좋아지는 경향이 있다는 사실도 기억해야 합니다(최근 수십억 파라미터를 가진 LLM의 급증을 떠올려 보세요).
트랜스포머는 인코더와 디코더를 어떻게 활용할까?
기존 신경망 모델을 능가한다는 목표로 고안된 트랜스포머는, 다음과 같은 새로운 아키텍처 설계를 통해 소개되었습니다. 인코더-디코더 모델그렇다면 인코더-디코더 모델은 어떻게 작동할까요? 그리고 이런 아키텍처 설계가 트랜스포머가 RNN, LSTM, 그리고 다른 신경망 모델을 능가하도록 만드는 이유는 무엇일까요?

인코더는 트랜스포머에서 자기어텐션이 수행되는 부분입니다. 인코더는 다중 헤드 어텐션 메커니즘을 구현하여 모델이 여러 임베딩 하위 공간에 동시에 접근할 수 있게 합니다. 이후 임베딩된 벡터는 피드포워드 레이어에서 추가 변환을 거치며 더 깊이 처리됩니다. 디코더는 이렇게 처리된 인코더의 출력을 입력으로 받아, 주어진 목표 출력(타깃)을 예측합니다.

간단히 말해, 인코더는 주어진 문장에서 특징을 추출하고, 디코더는 그 특징을 활용해 원하는 출력을 생성합니다.
트랜스포머의 활용 분야는 무엇일까?
트랜스포머는 공개된 이후 Google과 Facebook을 비롯한 전 세계 기업들에서 폭넓게 활용되고 있습니다.

Google는 최첨단 번역 서비스인 Google Translate에서 트랜스포머를 활용합니다. 트랜스포머는 긴 문단처럼 길이가 긴 텍스트에서도 단어와 문장 간의 관계를 효과적으로 학습할 수 있어, 이러한 작업에 특히 유용합니다. 현재 Google Translate는 한 번의 번역에 최대 5,000자까지 처리할 수 있습니다!

Facebook은 자체 비전 트랜스포머 모델을 만들었습니다. 비전 트랜스포머는 멀티헤드 자기어텐션 레이어를 사용합니다. 이 레이어는 서로 다른 위치의 다양한 표현으로부터 정보를 “주목”하기 위해 쿼리, 키, 값 벡터를 활용하는 어텐션 메커니즘을 기반으로 합니다. 이 모델은 이미지를 여러 범주에 따라 구분하고 분류할 수 있습니다. 매일 수천만 장의 사진이 Facebook에 업로드된다는 점을 감안하면, 빠르고 정확한 모델이 무엇보다 중요하다는 것은 두말할 필요가 없습니다.
트랜스포머가 수행할 수 있는 작업
앞서 언급했듯이, 트랜스포머는 주로 자연어 처리와 컴퓨터 비전 응용 분야에서 사용됩니다.
자연어 처리 응용 분야

언어 번역 은 특정 원어를 다른 목표 언어로 빠르고 효율적으로 변환하는 과정입니다. 이러한 번역 모델은 트랜스포머 모델로 손쉽게 구축할 수 있으며, 빠른 번역 속도와 높은 정확도를 제공합니다.
감성 분석 은 문장에 포함된 단어들의 주관적 정보를 정량화하고 분석하기 위해 자연어 처리 기법을 활용합니다. 감성 분석이 사용되는 예로는 인종차별적 발언 탐지가 있습니다. 이 응용은 Facebook, Twitter 같은 소셜 미디어에서 특정 집단을 겨냥한 발언을 탐지하고 삭제하는 데 사용됩니다.
컴퓨터 비전 응용 분야

이미지 분류 이미지에 나타난 다양한 특성에 따라 이미지를 분류하거나 범주화하는 과정입니다. 트랜스포머는 의료 분야에도 성공적으로 적용되어, 예를 들어 영상 속 질병 분류 등에서 활용되고 있습니다.
이미지 압축 는 디지털 이미지에 적용되는 데이터 압축 기법입니다. 주된 목적은 이미지 저장 비용을 줄이는 것입니다. 또한 이미지 압축은 이미지 품질이 약간 저하될 수 있습니다.
결론
이 글에서는 트랜스포머와 관련된 다양한 개념을 폭넓게 다뤘습니다. 유명한 “Attention Is All You Need” 논문에서의 출발점부터 트랜스포머가 실제로 작동하는 방식, 어떤 기존 아키텍처를 개선했는지, 그리고 마지막으로 트랜스포머의 몇 가지 응용 사례까지 정리했습니다.
Add a comment