🧠 Dense vs Sparse Model: 개념과 차이점 정리
딥러닝/머신러닝 모델은 그 연산 구조와 파라미터 표현 방식에 따라 크게 Dense Model(조밀 모델)과 Sparse Model(희소 모델)로 나눌 수 있습니다. 이 두 구조는 모델의 효율성, 성능, 하드웨어 활용도에 중요한 영향을 미칩니다.
✅ 1. Dense Model (조밀 모델)
📌 정의
모든 가중치(weight)와 연산이 비어있지 않고 연속적인(dense) 형태로 존재하는 구조입니다.
→ 대부분의 기존 모델(CNN, MLP, Transformer 등)이 해당됩니다.
⚙️ 주요 특징
-
파라미터 대부분이 유효
- 거의 모든 weight가 0이 아니며, 학습과 추론에 적극적으로 참여
-
연산 패턴이 규칙적
- Dense Matrix × Dense Matrix 형태
- GPU/TPU에서 최적화 용이 (GEMM, Conv 연산)
-
메모리 사용량이 큼
- 모든 weight를 저장하므로, 큰 모델은 메모리 부담 ↑
-
예시
- GPT, BERT, ResNet, ViT 등 대부분의 기본 모델
✅ 2. Sparse Model (희소 모델)
📌 정의
모델의 파라미터나 활성화 값 중 대부분이 0이고, 0이 아닌 값만을 활용하여 연산하는 구조입니다.
🔧 Sparse를 만드는 방법
- Pruning: 중요하지 않은 weight를 0으로 만들어 제거
- Sparse Attention: 일부 key-query pair만 연산
- Mixture of Experts (MoE): 일부 layer만 선택적으로 활성화
⚙️ 주요 특징
-
메모리/연산 효율 향상
- 0인 값은 연산/저장을 생략할 수 있어 이론적 FLOPs 절감 가능
-
연산 패턴이 불규칙
- Sparse Matrix 연산은 메모리 접근 비효율성 존재
- 일부 GPU만 특정 sparsity 패턴을 최적화함 (ex: 2:4 structured sparsity)
-
모델 경량화
- Mobile, Edge 디바이스에서 latency, memory 측면에서 유리
-
예시
- Pruned ResNet
- Sparse Transformer, Longformer
- Switch Transformer (MoE 기반)
✅ 3. Dense vs Sparse 핵심 비교표
항목 | Dense Model | Sparse Model |
---|
파라미터 구조 | 대부분 유효 (0 아님) | 대부분 0 (희소) |
연산 패턴 | 규칙적 (GEMM, Conv 등 최적화 쉬움) | 불규칙 (Sparse 연산은 별도 최적화 필요) |
메모리 사용량 | 큼 | 작음 |
연산 효율 | GPU/TPU에서 최대 효율 | 하드웨어 최적화 여부에 따라 다름 |
예시 | GPT, BERT, ViT, ResNet | Pruned Net, Sparse Transformer, Switch MoE |
🧾 정리 요약
-
Dense Model
- 연산 구조가 간단하고 빠름
- 하지만 메모리 요구량이 크고, 대규모 학습에 비용이 큼
-
Sparse Model
- 메모리와 연산량을 줄일 수 있어 효율적
- 하지만 불규칙한 구조 때문에 최적화된 하드웨어가 필요함