효율적인 자기 주의 메커니즘
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능, 머신러닝
대상자
- 대상자: 데이터 과학자, 머신러닝 엔지니어, 자연어 처리(NLP) 연구자
- 난이도: 중급 이상 (선형 대수, softmax, 커널 함수 이해 필요)
핵심 요약
- 자기 주의 메커니즘의 시간/공간 복잡도 개선:
- O(N²) 복잡도를 O(N)으로 줄이는 커널 기반 자기 주의 방식 도입
- 수학적 변환:
- softmax 함수 대신 ϕ(x) = exp(x)와 같은 커널 함수 사용
- ϕ(Qi·Kj)를 통해 행렬 곱 연산 최소화
- 커널의 조건:
- ϕ(x) ≥ 0 (해석 가능성, 수치적 안정성 확보)
섹션별 세부 요약
1. 문제 정의: 전통적 자기 주의의 한계
- 시간/공간 복잡도:
- O(N²) 복잡도로, 문맥 길이(N) 증가 시 성능 저하
- 메모리 사용량: N×N 행렬 저장 필요
- softmax 기반 자기 주의 수식:
- Attention(Q, K, V) = softmax(QKᵀ/√din)·V
- 행렬 곱 연산(QKᵀ) 및 softmax 계산으로 N² 연산 발생
2. 커널 기반 자기 주의 수식 도입
- softmax 대체:
- ϕ(Qi·Kj)를 사용하여 softmax의 지수 계산 생략
- Vi' = [∑ϕ(Qi·Kj)·Vj] / [∑ϕ(Qi·Kj)]
- 커널 함수의 수학적 표현:
- ϕ(x, y) = ⟨ϕ(x), ϕ(y)⟩ (특징 매핑 후 내적)
- Vi' = [∑ϕ(Qi)⊤ϕ(Kj)·Vj] / [∑ϕ(Qi)⊤ϕ(Kj)]
3. 효율성 분석 및 커널 선택 조건
- 복잡도 개선:
- 커널 기반 방식: O(N) 복잡도, 전통적 방식 대비 100배 이상 성능 향상
- 메모리 사용량: N×D 크기의 행렬만 저장 (D: 임베딩 차원)
- 커널의 필수 조건:
- ϕ(x) ≥ 0 (음수 무게 생략 → 해석 가능성, 분모 0 발생 방지)
- 커널은 특징 매핑 후 내적 표현 가능 (예: ϕ(x) = x → softmax와 동일)
결론
- 실무 적용 팁:
- 커널 기반 자기 주의는 장문의 문맥 처리에 적합
- ϕ(x) = x 사용 시 softmax 기반 모델과 동일한 결과
- 커널 선택 시 ϕ(x) ≥ 0 조건 확인 필수 (수치적 안정성 확보)