트랜스포머 모델이란?
(참조 자료: What is a transformer model?)
트랜스포머 모델(Transformer Model)은 한 유형의 입력을 다른 유형의 출력으로 자동 변환할 수 있는 신경망 아키텍처입니다. 이 용어는 2017년 Google이 발표한 논문 “Attention Is All You Need”에서 처음 언급되었습니다. 이 연구 논문을 작성한 8명의 과학자들은 다른 신경망 대비 4분의 1의 훈련 시간만으로 영어를 프랑스어로 번역하는 신경망을 더 정확하게 훈련할 수 있는 방법을 찾아낸 방법을 소개하였습니다.
트랜스포머 모델은 일련의 구어나 문어, 혹은 화학 구조 간의 관계와 같은 순차적인 데이터에서 관계를 설정하여 그 문맥과 의미를 파악하는 데 특히 능숙합니다. 트랜스포머 모델에 사용되는 수학적 기법을 어텐션(Attention) 또는 셀프 어텐션(Self-Attention)이라고하며, 이 모델을 통해 데이터 요소들이 서로 연관되는 방식을 결정할 수 있습니다.
특히 어텐션(Attention) 개념은 1990년대부터 처리 기법으로 존재해 왔는데요, 그러나 2017년에 구글 팀은 이 어텐션을 이용해 단어의 의미와 주어진 언어의 구조를 직접 인코딩할 수 있다고 밝혔습니다. 이는 이전에는 별도의 신경망을 통해 추가 인코딩 단계를 거쳐야 했던 것을 대체한 혁신적인 접근 방식이였습니다. 또한, 이로 인해 사실상 모든 종류의 정보를 모델링할 수 있는 길이 열렸고, 이후 등장한 놀라운 AI 혁신들을 가능케 한 장본인이 되었습니다.
이 기법은 저자들이 예상했던 것보다 훨씬 더 일반화 가능함이 증명되었으며, 트랜스포머(Transformer)는 텍스트 생성, 이미지 생성, 로봇에 대한 명령어 생성 등에 활용되고 있습니다. 또한 자연어 명령을 이미지나 로봇 명령으로 변환시키는 등 서로 다른 데이터 모드 간의 관계를 모델링하는 멀티모달 인공지능(Multimodal AI)에도 적용됩니다. 트랜스포머 모델의 광범위한 활용과 일반화 되어가고 있는 트렌드는 이들을 ‘파운데이션 모델(Foundation Models)’로 자리매김하게 했으며, 이는 기업들이 특정 목적에 맞게 기존에 학습된 모델을 빠르고 쉽게 파인튜닝하고 활용할 수 있도록 해 줍니다. 이것이 새로운 모델을 처음부터 구축하는 것보다 훨씬 효율적인 방식이기도 합니다.
현재 자연어 처리(NLP)를 사용하는 거의 모든 애플리케이션은 내부적으로 트랜스포머 모델을 사용하고 있는데요, 이는 트랜스포머가 이전 방식들보다 더 뛰어난 성능을 보이기 때문입니다. AI 연구자들은 또한 트랜스포머 모델이 화학 구조를 다루거나, 단백질 접힘을 예측하거나, 대규모 의료 데이터를 분석하는 데에도 활용될 수 있음을 발견했습니다. 트랜스포머는 OpenAI의 ChatGPT, Google Search, OpenAI의 Dall-E, Microsoft Copilot 등 거의 모든 거대 언어 모델(LLM) 애플리케이션에서 핵심적인 역할을 하고 있습니다.
트랜스포머 모델으로 무엇을 할 수 있는가?
트랜스포머는 점차적으로 기존에 널리 사용되던 다양한 딥러닝 신경망 아키텍처, 예를 들어 순환 신경망(RNN, Recurrent Neural Networks)과 합성곱 신경망(CNN, Convolutional Neural Networks)을 여러 분야에서 대체하고 있습니다. RNN은 음성, 문장, 코드와 같이 연속적인 데이터 스트림을 처리하는 데 이상적이었지만, 한 번에 짧은 문자열만 처리할 수 있었습니다. 또한 LSTM(Long Short-Term Memory)과 같은 새로운 기법들은 더 긴 문자열을 지원할 수 있도록 고안된 RNN 방식이었지만, 여전히 한계가 있고 속도도 느렸지요. 반면, 트랜스포머는 더욱 긴 시퀀스를 처리할 수 있고 각 단어나 토큰을 병렬로 처리할 수 있어 더 효율적으로 확장할 수 있게 되었습니다.
CNN은 사진의 여러 영역을 병렬로 분석하여 선, 형태, 질감 등 특징의 유사성을 파악하는 등 데이터를 처리하는 데 매우 효과적인데요, 이러한 네트워크는 특히 인접한 영역을 비교 분석하는 데 최적화되어 있습니다. 반면, 2021년에 소개된 비전 트랜스포머(Vision Transformer)와 같은 트랜스포머 모델은 멀리 떨어진 영역을 비교하는 데 더 뛰어난 성능을 보이며, 실제로 컴퓨터 비전 분야에서 그 효과가 입증되었습니다. 또한 트랜스포머는 라벨이 없는 데이터(Unlabeled data)를 다루는 데도 더 뛰어난 성능을 보이고 있습니다.
트랜스포머는 더 많은 양의 라벨이 없는 데이터를 분석함으로써 텍스트의 의미를 효율적으로 표현하는 법을 학습할 수 있는데요, 이를 통해 AI 연구자들은 트랜스포머를 수백억, 심지어 수조 개의 특성들을 지원하도록 확장할 수 있습니다. 실제로 라벨이 없는 데이터로 사전학습(Pretrained)된 모델은 특정 작업에 맞춰 라벨이 있는 데이터로 추가 정제하는 출발점 역할만 합니다. 하지만 이 2차 단계는 더 적은 전문지식과 처리 능력만 필요하기 때문에 충분히 실용적으로 활용할 수 있습니다.
트랜스포머 모델은 다음과 같은 다양한 AI 분야에서 적극적으로 활용되고 있습니다.
- NLP 작업: 트랜스포머는 인간의 언어를 거의 실시간으로 받아들이고, 이해하며, 번역하고, 복제할 수 있습니다.
- 금융 및 보안: 트랜스포머는 방대한 금융 데이터나 네트워크 트래픽 데이터를 처리 및 분석하여 이상 징후를 탐지하고 보고함으로써, 사기 및 보안 위반을 방지하는 데 도움을 줄 수 있습니다.
- 아이디어 분석: 트랜스포머 모델은 방대한 정보를 수집하고 처리하여 적절한 요약이나 개요를 생성할 수 있습니다. 예를 들어, 책, 컬렉션, 심지어 전체 주제에 대한 CliffsNotes(요약본)와 같은 역할을 할 수 있습니다.
- 시뮬레이션된 AI 엔터티: 챗봇과 같은 소프트웨어 프로그램은 언어, 분석, 요약 기능을 결합해 사람들과 상호작용하고, 질문에 답변하며, 문제 해결을 지원할 수 있습니다. Google Gemini가 그 예입니다.
- 신약 분석과 설계: 트랜스포머 모델은 연구자들이 화학 및 DNA 분석을 수행하는 데 도움을 주어, 강력한 신약 발견을 가속화할 수 있습니다.
- 미디어 생성: 트랜스포머 모델은 사용자의 텍스트 프롬프트를 바탕으로 생성형 이미지, 동영상, 음악을 만들어낼 수 있습니다. OpenAI의 Dall-E가 그 예입니다.
- 프로그래밍 작업: 트랜스포머 모델은 코드 세그먼트를 완성하거나, 코드를 분석 및 최적화하고, 광범위한 테스트를 실행할 수 있습니다.
트랜스포머 모델 아키텍처
트랜스포머 아키텍처는 함께 작동하는 인코더와 디코더로 구성되어 있습니다. 어텐션 메커니즘은 트랜스포머가 다른 단어나 토큰의 추정 중요도를 기반으로 단어의 의미를 인코딩할 수 있게 해주는데요, 이를 통해 트랜스포머는 모든 단어나 토큰을 병렬로 처리할 수 있어 성능이 빨라지고, 점점 더 대규모의 LLM(거대 언어 모델) 발전을 이끌게 됩니다.
어텐션 메커니즘을 활용해 인코더 블록은 각 단어나 토큰을 다른 단어에 의해 가중치가 부여된 벡터로 변환합니다. 예를 들어, 다음 두 문장에서 filled가 emptied로 바뀌면서 it의 의미가 다르게 가중치가 적용됩니다.
- 그는 주전자(pitcher)의 물을 컵에 따라 it(그것)을 채웠다.(He poured the pitcher into the cup and filled it.)
- 그는 주전자(pitcher)의 물을 컵에 따라 it(그것)을 비웠다.(He poured the pitcher into the cup and emptied it.)
어텐션 메커니즘은 첫 번째 문장에서는 it을 채워진 컵과 연결하고, 두 번째 문장에서는 it을 비워진 주전자와 연결합니다.
디코더는 본질적으로 대상 도메인에서 이 과정을 역으로 수행합니다. 원래의 활용 사례는 영어를 프랑스어로 번역하는 것이었지만, 같은 메커니즘으로 짧은 영어 질문이나 지시를 더 긴 답변으로 변환할 수도 있습니다. 반대로, 더 긴 기사를 더 간결한 요약으로 번역하는 데에도 사용할 수 있습니다.
일반적인 트랜스포머 모델에는 6가지 주요 요소가 있으며, 모델에는 일부 요소의 여러 인스턴스가 포함될 수 있습니다:
- 입력(Input): 입력 임베딩은 로우 데이터 스트림을 모델이 처리할 수 있는 데이터 집합으로 변환시킵니다. 예를 들어, 음성이나 문자를 데이터로 변환할 수 있습니다. 이 변환을 통해 생성된 데이터는 단어의 의미(시맨틱)와 문법(신택스) 등 입력의 특징을 포착합니다. 이러한 데이터는 모델 학습 과정에서 중요한 역할을 하며, 이후 모델의 나머지 부분이 이 데이터를 처리할 수 있게 합니다.
- 위치 인코딩(Positional encoding): 트랜스포머 모델은 입력의 위치나 순서를 본래 인식하지 못하기 때문에, 위치 인코딩이 이 데이터를 보완하고 입력 데이터의 위치 정보를 제공합니다. 예를 들어, 트랜스포머는 문장 내 단어의 순서를 알지 못하므로, 위치 인코딩이 각 단어의 위치를 모델에 알려줍니다. 이를 통해 모델은 단어의 순서를 평가할 수 있는 추가적인 통찰을 얻게 됩니다.
- 어텐션 메커니즘(Attention mechanism): 트랜스포머 모델의 핵심은 어텐션 메커니즘이며, 보통 고급 멀티헤드 셀프 어텐션(Multihead self-attention) 방식이 사용됩니다. 이 메커니즘은 모델이 각 데이터 요소의 중요도를 판단하거나 모니터링할 수 있게 해줍니다. 멀티헤드란 여러 번 반복적으로 이 메커니즘이 병렬로 작동함을 의미하며, 이를 통해 모델은 데이터 간의 다양한 관계를 살펴보고 가장 가능성 높거나 합리적인 관계를 결정할 수 있습니다.
- 피드포워드 신경망(Feed-forward neural networks): 비선형 신경망이 어텐션 메커니즘에 의해 구축된 표현을 변환합니다. 이러한 신경망은 트랜스포머 모델이 데이터 내의 복잡한 패턴과 뉘앙스를 학습할 수 있게 하며, 이는 어텐션 메커니즘만으로는 얻을 수 없는 더 정교하고 정확한 학습을 가능하게 합니다.
- 정규화 기법(Normalization techniques): 데이터 정규화는 모델이 처리하는 데이터 값을 표준화하거나 일정 범위 내로 제한합니다. 이를 통해 극단적인 데이터 값이나 비정상적인 변동으로 인해 변환 과정이 왜곡되어 잘못된 결과가 나오는 것을 방지할 수 있습니다. 추가적인 정규화 기법으로는 잔차 연결(residual connections) 등이 있으며, 이는 모델 학습이 어려워지는 소실 기울기(vanishing gradients) 문제를 해결하는 데 사용됩니다.
- 출력(Output): 출력 메커니즘은 모델의 최종 출력을 생성하는 역할을 합니다. 여기에는 일반적으로 선형 변환과 소프트맥스(softmax) 함수가 포함되어, 벡터 숫자를 확률 분포로 변환합니다. 예를 들어, 영어-프랑스어 번역기라면 프랑스어 단어를 선택해 순서대로 배열합니다. 출력은 보통 단어 단위로 생성되지만, 고급 트랜스포머는 한 번에 전체 문장이나 단락을 생성할 수도 있습니다. 텍스트는 바로 표시되거나, 추가적인 음성 변환(text-to-speech) 과정을 통해 음성으로 출력될 수도 있습니다.
트랜스포머 모델 학습
트랜스포머를 훈련시키는 데에는 두 가지 주요 단계가 있습니다. 첫 번째 단계에서는 트랜스포머가 대량의 라벨이 없는 데이터를 처리하여 언어의 구조나 단백질 접힘과 같은 현상의 구조, 그리고 인접한 요소들이 서로 어떻게 영향을 미치는지 학습합니다. 이 과정은 비용과 에너지가 많이 드는 단계로, 가장 큰 모델을 훈련시키는 데에는 수백만 달러가 소요될 수 있습니다.
모델이 훈련된 후에는 특정 작업에 맞게 파인튜닝(fine-tuning)하는 것이 유용한데요, 예를 들어, 한 기술 기업은 챗봇이 고객의 지식 수준에 따라 다양한 상세도로 고객 서비스 및 기술 지원 문의에 응답하도록 조정할 수 있습니다. 법률 사무소는 계약서를 분석하기 위해 모델을 조정할 수 있고, 개발팀은 자신들의 방대한 코드 라이브러리와 고유한 코딩 규칙에 맞게 모델을 파인튜닝할 수 있습니다.
이같은 파인튜닝 과정은 훨씬 적은 전문성과 처리 능력만 필요합니다. 트랜스포머 모델의 지지자들은 대규모 범용 모델(파운데이션 모델)을 훈련하는 데 드는 막대한 비용이 다양한 활용 사례에 맞게 각각의 모델을 커스터마이즈하는 데 드는 시간과 비용을 절감해주기 때문에 충분히 가치가 있다고 주장합니다.
모델의 성능을 평가할 때 때때로 피처(특징) 수가 지표로 사용되기도 하지만, 실제로는 더 중요한 척도들이 있습니다. 피처 수, 즉 모델의 크기가 성능이나 유용성과 직접적으로 연관되어 있지는 않습니다. 더 많은 파라미터를 가진 모델을 훈련하더라도, 더 적은 파라미터로 훈련된 동일한 모델보다 덜 정확한 결과를 낼 수 있습니다. 실제로는, 대용량 데이터로 훈련된 모델이 정밀도가 다소 떨어지더라도 더 폭넓은 기능을 제공하는 데 유용한 경우가 많습니다.
트랜스포머 모델 구현
트랜스포머 모델의 구현은 크기 면에서나, 의료, 과학, 비즈니스 애플리케이션 등 새로운 사용 사례나 다양한 도메인 지원 측면에서 점점 발전하고 있습니다. 다음은 가장 주목할 만한 트랜스포머 구현 사례들입니다.
- Google의 BERT(Bidirectional Encoder Representations from Transformers)는 트랜스포머 기반 최초의 거대 언어 모델(LLM) 중 하나입니다. BERT에는 BERT base, BERT large, RoBERTa, DistilBERT, TinyBERT, ALBERT, ELECTRA, FinBERT 등 다양한 버전이 존재합니다.
- OpenAI의 GPT 시리즈도 트랜스포머 기반으로 개발되었으며, GPT-2, GPT-3, GPT-3.5, GPT-4, GPT-4o 등 여러 차례 업그레이드되었습니다. 현재 GPT-5도 개발 중입니다.
- Meta의 Llama는 기존 모델보다 10배 작은 크기로도 동등한 성능을 달성합니다. 2024년 12월에 출시된 Llama 3.3은 이전 모델을 능가하는 성능을 보여줍니다.
- Google의 Pathways Language Model(PaLM)은 텍스트, 이미지, 로봇 제어 등 다양한 도메인에서 작업을 수행할 수 있도록 범용화된 모델입니다. PaLM 2와 함께 인기 있는 Gemini 모델도 제공되고 있습니다.
- OpenAI의 Dall-E 3는 짧은 텍스트 설명만으로 이미지를 생성할 수 있습니다.
- 플로리다 대학교와 NVIDIA가 공동 개발한 Gatortron은 의료 기록의 비정형 데이터를 분석하는 모델로, NVIDIA의 Megatron 트랜스포머 기반 언어 모델링 프레임워크와 1,000개 이상의 A100 GPU를 탑재한 DGX SuperPOD에서 구동됩니다.
- Google DeepMind의 AlphaFold 3는 단백질 접힘을 예측하고, 단백질과 다른 분자 간의 상호작용까지 예측할 수 있습니다.
- AstraZeneca와 NVIDIA의 MegaMolBART는 화학 구조 데이터를 기반으로 새로운 소분자 신약 후보를 생성하는 데 활용됩니다.
특히 AI는 헬스케어 분야에서 특정 질병의 위험을 예측하는 데 널리 사용되고 있습니다. UCLA 연구진이 3차원 영상 분석을 위한 AI 모델을 개발한 방법을 알아보세요.
자료 문의: parkmg85@hanmail.net