Self-Attention
딥러닝에서 self-attention의 기본 원리를 살펴봅니다. Query, Key, Value 벡터가 Transformer와 Ultralytics YOLO26을 구동하여 뛰어난 AI 성능을 구현하는 방식을 알아봅니다.
셀프 어텐션은 딥러닝의 핵심 메커니즘으로, 모델이 입력 시퀀스 내 서로 다른 요소의 상대적 중요도를 평가할 수 있도록 합니다. 데이터를 순차적으로 처리하거나 로컬 영역에만 집중하는 기존 아키텍처와 달리, 셀프 어텐션은 신경망이 전체 컨텍스트를 동시에 살펴볼 수 있도록 합니다. 이러한 기능을 통해 시스템은 문장의 단어 또는 이미지의 서로 다른 영역처럼 데이터의 서로 멀리 떨어진 부분 간의 복잡한 관계를 식별할 수 있습니다. 셀프 어텐션은 Transformer 아키텍처의 핵심 구성 요소로, 생성형 AI와 최신 인식 시스템의 비약적인 발전을 이끌었습니다.
셀프 어텐션의 작동 방식#
이 메커니즘은 각 입력 특징에 흔히 "어텐션 점수"라고 하는 가중치를 할당하여 인지적 집중을 모방합니다. 이러한 점수를 계산하기 위해 모델은 일반적으로 임베딩으로 표현되는 입력 데이터를 세 개의 서로 다른 벡터인 Query, Key, Value로 변환합니다.
- Query (Q): 시퀀스의 나머지 부분에서 관련 컨텍스트를 찾는 현재 항목을 나타냅니다.
- Key (K): Query가 대조되는 시퀀스 내 각 항목의 레이블 또는 식별자 역할을 합니다.
- Value (V): 집계될 항목의 실제 정보 콘텐츠를 포함합니다.
모델은 한 요소의 Query를 다른 모든 요소의 Key와 비교하여 호환성을 판단합니다. 이러한 호환성 점수는 softmax 함수로 정규화되어 확률과 유사한 가중치를 생성합니다. 그런 다음 이러한 가중치를 Value에 적용하여 컨텍스트가 풍부한 표현을 생성합니다. 이 프로세스를 통해 대규모 언어 모델 (LLMs)과 비전 시스템은 중요한 정보를 우선시하고 노이즈를 걸러낼 수 있습니다.
실제 적용 사례#
셀프 어텐션의 다재다능함으로 인해 인공지능 (AI)의 다양한 분야에서 널리 채택되었습니다.
- 자연어 처리 (NLP): 기계 번역과 같은 작업에서 셀프 어텐션은 대명사를 해당 지시 대상과 연결하여 모호성을 해결합니다. 예를 들어, "The animal didn't cross the street because it was too tired,"라는 문장에서 모델은 셀프 어텐션을 사용하여 "it"을 "street"가 아니라 "animal"과 강하게 연결합니다. 이러한 컨텍스트 인식 기능은 Google Translate와 같은 도구를 뒷받침합니다.
- 전역 이미지 컨텍스트: 컴퓨터 비전 (CV)에서 Vision Transformer (ViT)와 같은 아키텍처는 이미지를 패치로 나누고 셀프 어텐션을 적용하여 장면을 전역적으로 이해합니다. 이는 복잡한 환경에서 객체 감지를 수행할 때 중요합니다. 객체를 식별하려면 주변 환경을 이해해야 하기 때문입니다.
관련 용어 구분#
서로 유사한 개념과 함께 논의되는 경우가 많지만, 이러한 용어는 기술적으로 서로 다른 정의를 가집니다.
- 어텐션 메커니즘: 모델이 데이터의 특정 부분에 집중할 수 있도록 하는 기법의 포괄적인 범주입니다. 여기에는 모델이 한 시퀀스(예: 디코더 출력)를 사용하여 다른 시퀀스(예: 인코더 입력)를 조회하는 Cross-Attention이 포함됩니다.
- 셀프 어텐션: Query, Key, Value가 모두 동일한 입력 시퀀스에서 생성되는 특정 유형의 어텐션입니다. 단일 데이터셋 내부의 종속성을 학습하도록 설계되었습니다.
- Flash Attention: 스탠퍼드 대학교 연구진이 개발한 최적화 알고리즘으로, 수학적 출력은 변경하지 않으면서 GPU에서 셀프 어텐션 계산을 훨씬 빠르고 메모리 효율적으로 수행하도록 합니다.
코드 예제#
다음 Python 스니펫은 ultralytics 패키지에 포함된 Transformer 기반 객체 감지기 RTDETR을 사용하는 방법을 보여줍니다. 표준 합성곱 네트워크와 달리 이 모델은 시각적 특징을 처리할 때 셀프 어텐션에 크게 의존합니다.
from ultralytics import RTDETR
# Load the RT-DETR model which utilizes self-attention for detection
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects with global context
# Self-attention helps the model understand relationships between distant objects
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected
print(f"Detected {len(results[0].boxes)} objects using Transformer attention.")발전 과정과 향후 영향#
셀프 어텐션은 초기 순환 신경망 (RNNs)을 방해했던 기울기 소실 문제를 효과적으로 해결하여 대규모 파운데이션 모델을 학습할 수 있도록 했습니다. 표준 셀프 어텐션은 매우 효과적이지만, 계산 비용이 시퀀스 길이에 따라 이차적으로 증가합니다. 이를 해결하기 위해 현재 연구는 효율적인 선형 어텐션 메커니즘에 집중하고 있습니다.
Ultralytics는 이러한 발전을 YOLO26과 같은 최신 모델에 통합합니다. YOLO26은 CNN의 속도와 어텐션의 컨텍스트 처리 능력을 결합하여 탁월한 실시간 추론을 제공합니다. 이러한 최적화된 모델은 Ultralytics Platform을 통해 쉽게 학습하고 배포할 수 있어, 차세대 지능형 애플리케이션을 개발하는 개발자의 워크플로를 간소화합니다.









