요약
- 임베딩 차원(dimension)은 모델 아키텍처에서 결정되며, 출력 임베딩 크기는 차원 수 × 데이터 타입 크기로 계산된다
- 임베딩 크기 선택은 표현력과 계산 비용 사이의 trade-off이다
본문
임베딩 차원 결정 요소
-
모델 아키텍처에 의해 결정
- 사전 학습된 모델(BERT, GPT 등)은 고정된 임베딩 차원을 가짐
- 예: BERT-base는 768차원, GPT-3는 12288차원
-
경험적 규칙 (Rule of Thumb)
- 어휘 크기의 4제곱근:
dim ≈ vocab_size^0.25 - Google의 권장:
dim = min(50, vocab_size / 2) - 일반적으로 50~300 차원이 많은 태스크에서 효과적
- 어휘 크기의 4제곱근:
-
태스크 복잡도에 따른 조정
- 단순 분류: 낮은 차원 (64~128)
- 복잡한 의미 관계: 높은 차원 (256~1024)
출력 임베딩 사이즈 추정
메모리 크기 = 차원 수 × 데이터 타입 크기 × 벡터 개수
| 데이터 타입 | 크기 |
|---|---|
| float32 | 4 bytes |
| float16 | 2 bytes |
| int8 | 1 byte |
예시 계산:
- 768차원 float32 임베딩 1개:
768 × 4 = 3,072 bytes (약 3KB) - 100만 개 문서의 768차원 임베딩:
768 × 4 × 1,000,000 = 3GB
실무 고려사항
- 저장 공간: 벡터 DB 선택 시 임베딩 크기 고려
- 검색 속도: 차원이 높을수록 유사도 계산 비용 증가
- 양자화(Quantization): float32 → int8로 변환하여 4배 압축 가능