Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Transformer

Transformer는 셀프 어텐션을 기반으로 시퀀스 전체를 병렬 처리하는 신경망입니다. 작동 원리, 변형 모델, 비전 분야의 활용을 살펴봅니다.

Transformer는 단어나 이미지 패치와 같은 토큰 시퀀스를 처리하는 신경망 아키텍처로, 셀프 어텐션을 통해 각 토큰이 다른 모든 토큰으로부터 정보를 얻습니다. Google 연구진은 2017년 기계 번역을 위해 Attention Is All You Need에서 이 아키텍처를 소개했습니다. 이전의 순환 신경망(RNN)은 문장을 한 번에 한 단어씩 읽었으므로 위치 간 병렬 학습이 불가능했습니다. Transformer는 모든 위치를 한 번에 처리하며, 기본 모델은 8개의 GPU에서 12시간 학습한 뒤 영어-독일어 번역에서 당시 최고 성능을 달성했습니다. 오늘날 Transformer는 대규모 언어 모델(LLM), 비전 Transformer, 음성 인식, 그리고 다양한 객체 탐지 및 이미지 생성 모델의 기반이 됩니다.

Transformer의 작동 방식#

입력 토큰은 먼저 고정된 너비의 벡터(원래 모델에서는 512차원)인 임베딩으로 변환됩니다. 그런 다음 Transformer는 각각 두 개의 하위 레이어로 구성된 동일한 레이어를 여러 개 쌓아 적용합니다.

  • 멀티헤드 셀프 어텐션: 각 토큰은 쿼리, 키, 값 벡터를 생성합니다. 어텐션 메커니즘에서 설명하듯, 토큰의 출력은 쿼리가 각 키와 얼마나 잘 일치하는지에 따라 가중치를 부여한 모든 값 벡터의 가중 평균입니다. 원래 모델에서는 8개인 여러 헤드가 병렬로 실행되므로 각 헤드가 서로 다른 관계를 추적할 수 있습니다.
  • 피드포워드 네트워크: 각 토큰에 개별적으로 적용되는 2계층 네트워크로, 어텐션이 수집한 정보를 변환합니다.

각 하위 레이어를 잔차 연결이 감싸고 레이어 정규화가 활성값을 안정적으로 유지합니다. 원래 모델은 소스 문장을 읽는 인코더에 이러한 레이어 6개를 쌓고, 한 번에 토큰 하나씩 번역문을 작성하는 디코더에도 6개를 쌓았습니다. 각 디코더 레이어에는 미래 토큰을 가리는 마스크드 셀프 어텐션 단계와 인코더의 출력을 읽는 크로스 어텐션 단계가 추가됩니다.

어텐션은 내용만을 기준으로 토큰을 비교하므로 Transformer 레이어에는 내재된 순서 감각이 없습니다. 입력 토큰을 섞으면 출력도 같은 방식으로 섞일 뿐입니다. 따라서 원 논문의 고정 사인·코사인 패턴, BERT와 ViT의 학습된 위치 벡터, 또는 대부분의 최신 LLM에서 사용하는 회전 위치 임베딩(RoPE) 등의 방법으로 위치 정보를 토큰 임베딩에 추가합니다. 이 PyTorch 코드는 인코더 레이어 하나를 사용해 그 효과를 보여 줍니다.

import torch
from torch import nn

# Transformer 인코더 레이어 하나와 토큰 임베딩 5개로 이루어진 시퀀스
torch.manual_seed(0)
layer = nn.TransformerEncoderLayer(d_model=32, nhead=4, batch_first=True).eval()
tokens = torch.randn(1, 5, 32)
reverse = torch.arange(4, -1, -1)

# 셀프 어텐션만으로는 순서를 무시합니다. 입력을 뒤집으면 출력만 뒤집힙니다.
print(torch.allclose(layer(tokens[:, reverse])[:, reverse], layer(tokens), atol=1e-5))

# 위치마다 학습 가능한 벡터 하나를 추가하면 각 출력은 해당 토큰의 위치에 따라 달라집니다.
positions = nn.Embedding(5, 32).weight
reordered = layer(tokens[:, reverse] + positions)[:, reverse]
print(torch.allclose(reordered, layer(tokens + positions), atol=1e-5))

이 코드는 먼저 True을 출력한 다음 False을 출력합니다. 위치 벡터를 추가하기 전에는 토큰을 뒤집으면 출력만 뒤집히지만, 위치 벡터를 추가한 뒤에는 토큰 순서가 각 토큰의 출력을 바꿉니다.

인코더, 디코더 및 인코더-디코더 모델#

원래 스택을 사용하는 세 가지 방식은 서로 다른 용도에 적합합니다.

  • 인코더 전용: 모든 토큰이 양방향에서 입력 전체에 주의를 기울이므로 이해 작업에 적합합니다. 텍스트용 BERT와 이미지용 ViT는 인코더 전용 모델입니다.
  • 디코더 전용: 각 토큰은 앞에 있는 토큰에만 주의를 기울이므로 모델이 한 번에 토큰 하나씩 텍스트를 생성합니다. GPT 모델과 대부분의 최신 LLM은 이 설계를 사용합니다.
  • 인코더-디코더: 인코더가 하나의 시퀀스를 읽고 디코더가 해당 시퀀스에 주의를 기울이며 다른 시퀀스를 작성합니다. 번역 모델, T5, Whisper 음성 인식기가 이러한 방식을 사용합니다.

컴퓨터 비전에서의 Transformer#

비전 Transformer(ViT)는 이미지를 16×16픽셀 패치 시퀀스로 취급해 수정하지 않은 Transformer 인코더를 적용하며, Swin Transformer는 고해상도 이미지로 확장할 수 있도록 어텐션을 로컬 윈도우로 제한합니다. DETR은 탐지를 집합 예측으로 재구성했습니다. Transformer 디코더가 학습된 객체 쿼리의 고정 집합을 박스로 변환하며 쿼리 하나당 객체 하나를 예측하므로 비최대 억제(NMS)와 수작업으로 설계한 앵커가 필요하지 않습니다. Ultralytics 패키지는 Baidu의 RT-DETR을 실행합니다. 이 설계를 실시간으로 구현한 RT-DETR의 하이브리드 인코더는 스트라이드 32의 특징 맵(640×640 이미지 기준 토큰 400개)에만 Transformer 인코더 레이어를 적용하며, 6개 레이어로 구성된 디코더는 객체 쿼리 300개를 정제해 NMS 없이 최종 탐지 결과를 생성합니다. Transformer는 이미지 생성에도 사용됩니다. 확산 Transformer는 최근 텍스트-이미지 및 비디오 모델에서 U-Net을 대체했으며, 비전 언어 모델은 이미지 토큰을 디코더 전용 LLM에 입력합니다.

  • 합성곱 신경망(CNN): 합성곱은 모든 위치에서 동일한 필터를 사용해 작은 주변 영역을 살펴보며, 이러한 내재된 가정은 작은 데이터셋에서 효과적입니다. 어텐션은 한 레이어 안에서 임의의 두 위치를 연결할 수 있지만 데이터로부터 공간 구조를 학습해야 하므로, Transformer가 CNN을 능가하려면 대개 더 많은 학습 데이터나 사전 학습이 필요합니다.
  • RNN과 LSTM: 단계마다 고정 크기의 상태를 전달하므로 토큰당 메모리는 일정하게 유지되지만 학습은 순차적으로 진행됩니다. Transformer는 과거의 모든 토큰을 유지하고 병렬로 학습합니다.
  • 상태 공간 모델: Mamba와 같은 아키텍처는 길이에 따라 비용이 선형적으로 증가하는 순환 상태를 사용해 시퀀스를 처리하며, 하이브리드 모델은 이러한 아키텍처와 어텐션 레이어를 교차 배치합니다.

셀프 어텐션은 모든 토큰을 서로 비교하므로 비용이 시퀀스 길이의 제곱에 비례해 증가합니다. 토큰 4,096개로 이루어진 시퀀스에는 모든 레이어의 모든 헤드에서 쿼리-키 쌍이 약 1,680만 개 생기며, 길이를 8,192개로 두 배 늘리면 약 6,700만 개로 네 배 증가합니다. FlashAttention은 이 연산의 메모리 트래픽을 줄이고, KV 캐시는 이전 토큰의 키와 값을 저장해 디코더가 생성 과정에서 각 토큰을 한 번만 계산하도록 합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요