VLM 하드웨어별 추천 가이드
1. 하드웨어 요구사항 개요
1.1 VRAM 요구량 기준
| VRAM |
실행 가능 모델 (FP16) |
양자화 시 |
| 4GB |
- |
PaliGemma-3B (INT4) |
| 8GB |
PaliGemma-3B, Qwen2-VL-2B |
LLaVA-7B (INT4) |
| 12GB |
LLaVA-7B, Qwen2-VL-2B |
Qwen2-VL-7B (INT4) |
| 16GB |
LLaVA-1.5-7B, Qwen2-VL-7B |
Pixtral-12B (INT4) |
| 24GB |
LLaVA-1.5-13B, Pixtral-12B |
LLaVA-NeXT-34B (INT4) |
| 48GB |
LLaVA-NeXT-34B, Qwen2-VL-72B (INT4) |
CogVLM2-llama3-chat |
| 80GB+ |
Qwen2-VL-72B, LLaVA-NeXT-72B |
- |
1.2 추론 속도 비교 (토큰/초, A100 80GB 기준)
| 모델 |
FP16 |
INT8 |
INT4 |
| LLaVA-1.5-7B |
45 |
60 |
80 |
| LLaVA-1.5-13B |
30 |
40 |
55 |
| Qwen2-VL-7B |
40 |
55 |
70 |
| Pixtral-12B |
35 |
48 |
65 |
| Qwen2-VL-72B |
8 |
12 |
18 |
2. 소비자용 GPU
2.1 NVIDIA RTX 3060/4060 (12GB)
추천 모델:
| 순위 |
모델 |
양자화 |
성능 |
| 1 |
Qwen2-VL-2B-Instruct |
FP16 |
실용적 |
| 2 |
PaliGemma-3B |
FP16 |
빠름 |
| 3 |
LLaVA-1.5-7B |
INT4 |
느림 |
설정 예시 (vLLM):
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2-VL-2B-Instruct \
--max-model-len 4096 \
--gpu-memory-utilization 0.9
2.2 NVIDIA RTX 3080/4070 Ti (16GB)
추천 모델:
| 순위 |
모델 |
양자화 |
용도 |
| 1 |
Qwen2-VL-7B-Instruct |
INT8 |
범용 |
| 2 |
LLaVA-1.5-7B |
FP16 |
고품질 |
| 3 |
Pixtral-12B |
INT4 |
문서 OCR |
AWQ 양자화 사용:
# Qwen2-VL-7B-Instruct-AWQ
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2-VL-7B-Instruct-AWQ \
--quantization awq \
--max-model-len 8192
2.3 NVIDIA RTX 3090/4090 (24GB)
추천 모델:
| 순위 |
모델 |
양자화 |
성능 등급 |
| 1 |
Qwen2-VL-7B-Instruct |
FP16 |
최적 |
| 2 |
Pixtral-12B |
FP16 |
우수 |
| 3 |
LLaVA-1.5-13B |
INT8 |
양호 |
| 4 |
LLaVA-NeXT-34B |
INT4 |
느림 |
최적 설정:
# Pixtral-12B with vLLM
vllm serve mistralai/Pixtral-12B-2409 \
--tokenizer_mode mistral \
--limit_mm_per_prompt 'image=4' \
--max-model-len 16384
3. 워크스테이션/서버 GPU
3.1 NVIDIA A10/L4 (24GB, 클라우드)
추천 모델:
| 순위 |
모델 |
특징 |
| 1 |
Qwen2-VL-7B |
비용 효율 |
| 2 |
Pixtral-12B |
Apache 라이선스 |
| 3 |
CogVLM2-llama3-chat-19B |
INT4 필요 |
클라우드 비용 (시간당):
- AWS g5.xlarge (A10): ~\(1.00
- GCP L4: ~\)0.70
- Lambda Labs A10: ~$0.60
3.2 NVIDIA A100/H100 (40GB/80GB)
추천 모델:
| GPU |
추천 모델 |
비고 |
| A100 40GB |
Qwen2-VL-72B (INT4) |
양자화 필수 |
| A100 80GB |
Qwen2-VL-72B (INT8) |
고품질 |
| H100 80GB |
Qwen2-VL-72B (FP16) |
최고 성능 |
멀티 GPU 설정:
# 2x A100 80GB for Qwen2-VL-72B FP16
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2-VL-72B-Instruct \
--tensor-parallel-size 2 \
--max-model-len 32768
3.3 멀티 GPU 구성
| 구성 |
총 VRAM |
추천 모델 |
| 2x RTX 4090 |
48GB |
LLaVA-NeXT-34B (FP16) |
| 2x A100 40GB |
80GB |
Qwen2-VL-72B (INT8) |
| 4x A100 40GB |
160GB |
LLaVA-NeXT-110B (INT4) |
| 8x H100 80GB |
640GB |
대규모 배치 처리 |
4. Apple Silicon
4.1 M1/M2/M3 시리즈
| 칩셋 |
통합 메모리 |
추천 모델 |
| M1 8GB |
8GB |
PaliGemma-3B |
| M1 Pro 16GB |
16GB |
LLaVA-1.5-7B |
| M1 Max 32GB |
32GB |
LLaVA-1.5-13B |
| M1 Ultra 64GB |
64GB |
Qwen2-VL-72B (INT4) |
| M2 Ultra 192GB |
192GB |
대부분 모델 FP16 |
MLX 프레임워크 사용:
# MLX 설치
pip install mlx-vlm
# LLaVA 실행
python -m mlx_vlm.generate \
--model mlx-community/llava-1.5-7b-4bit \
--image image.jpg \
--prompt "Describe this image"
4.2 성능 비교 (토큰/초)
| 모델 |
M1 Pro |
M2 Max |
M3 Max |
| LLaVA-1.5-7B (4bit) |
15 |
25 |
35 |
| Qwen2-VL-7B (4bit) |
12 |
20 |
28 |
5. 클라우드 서비스별 추천
5.1 AWS
| 인스턴스 |
GPU |
VRAM |
추천 모델 |
시간당 비용 |
| g4dn.xlarge |
T4 |
16GB |
LLaVA-7B INT8 |
$0.53 |
| g5.xlarge |
A10G |
24GB |
Pixtral-12B |
$1.01 |
| g5.2xlarge |
A10G |
24GB |
Qwen2-VL-7B |
$1.21 |
| p4d.24xlarge |
8xA100 |
320GB |
Qwen2-VL-72B |
$32.77 |
5.2 GCP
| 인스턴스 |
GPU |
추천 모델 |
시간당 비용 |
| n1-standard-4 + T4 |
T4 16GB |
LLaVA-7B |
$0.35 |
| a2-highgpu-1g |
A100 40GB |
Qwen2-VL-72B INT4 |
$3.67 |
| a2-highgpu-8g |
8xA100 |
LLaVA-NeXT-110B |
$29.39 |
5.3 Serverless 옵션
| 서비스 |
지원 모델 |
가격 (1M 토큰) |
| Replicate |
LLaVA, Qwen2-VL |
~$0.50 |
| Together AI |
LLaVA-NeXT |
~$0.20 |
| Fireworks AI |
LLaVA, Pixtral |
~$0.20 |
6. 엣지 디바이스
6.1 Jetson Orin
| 모델 |
Orin Nano (8GB) |
Orin NX (16GB) |
AGX Orin (64GB) |
| PaliGemma-3B |
INT4 |
INT8 |
FP16 |
| LLaVA-7B |
- |
INT4 |
INT8 |
| Qwen2-VL-7B |
- |
INT4 |
FP16 |
6.2 Raspberry Pi 5 (8GB)
제한적 지원:
- PaliGemma-3B INT4: 가능 (매우 느림, ~1 tok/s)
- 권장: 클라우드 API 사용
6.3 스마트폰
| 플랫폼 |
라이브러리 |
지원 모델 |
| Android |
MLC LLM |
Qwen2-VL-2B INT4 |
| iOS |
MLX |
LLaVA-1.5-7B INT4 |
7. 최적화 기법
7.1 양자화 방법 비교
| 방법 |
품질 손실 |
속도 향상 |
VRAM 절감 |
| INT8 |
낮음 |
1.3x |
50% |
| INT4 (AWQ) |
중간 |
1.8x |
75% |
| INT4 (GPTQ) |
중간 |
1.6x |
75% |
| GGUF Q4_K_M |
중-저 |
1.7x |
75% |
7.2 추론 최적화
| 기법 |
효과 |
적용 대상 |
| Flash Attention 2 |
2x 속도, 메모리 절감 |
모든 모델 |
| KV Cache 양자화 |
메모리 절감 |
긴 컨텍스트 |
| Speculative Decoding |
2-3x 속도 |
대형 모델 |
| Continuous Batching |
처리량 증가 |
서버 배포 |
7.3 프레임워크별 특징
| 프레임워크 |
장점 |
단점 |
| vLLM |
최고 처리량, PagedAttention |
CUDA만 지원 |
| TensorRT-LLM |
NVIDIA 최적화 |
설정 복잡 |
| llama.cpp |
CPU/Metal 지원, GGUF |
처리량 낮음 |
| MLX |
Apple Silicon 최적화 |
Mac 전용 |
| Transformers |
호환성 최고 |
느림 |
8. 권장 구성 예시
8.1 개인 개발자 (예산 $1,500)
하드웨어:
- RTX 4070 Ti Super (16GB): ~$800
- 32GB RAM
- 1TB NVMe SSD
추천 스택:
- 모델: Qwen2-VL-7B-Instruct-AWQ
- 프레임워크: vLLM
- 용도: 개발, 테스트, 소규모 서비스
8.2 스타트업 (예산 $10,000)
하드웨어:
- RTX 4090 x2 (48GB): ~$4,000
- 128GB RAM
- 워크스테이션 본체
추천 스택:
- 모델: LLaVA-NeXT-34B (FP16)
- 프레임워크: vLLM + Tensor Parallel
- 용도: 프로덕션 서비스
8.3 엔터프라이즈 (클라우드)
인프라:
- AWS p4d.24xlarge (8x A100 40GB)
- 또는 GCP a2-ultragpu-8g (8x A100 80GB)
추천 스택:
- 모델: Qwen2-VL-72B-Instruct
- 프레임워크: vLLM + Ray Serve
- 용도: 대규모 프로덕션
9. 의사결정 매트릭스
예산/VRAM
|
v
< 12GB -----> PaliGemma-3B / Qwen2-VL-2B
|
12-16GB ----> LLaVA-1.5-7B / Qwen2-VL-7B (INT8)
|
16-24GB ----> Qwen2-VL-7B / Pixtral-12B (FP16)
|
24-48GB ----> LLaVA-1.5-13B / LLaVA-NeXT-34B (INT4)
|
48-80GB ----> Qwen2-VL-72B (INT4) / LLaVA-NeXT-34B (FP16)
|
> 80GB -----> Qwen2-VL-72B (FP16) / LLaVA-NeXT-72B
10. 요약
| 환경 |
최적 모델 |
대안 |
| 저사양 (8-12GB) |
Qwen2-VL-2B |
PaliGemma-3B |
| 중간 (16-24GB) |
Qwen2-VL-7B |
Pixtral-12B |
| 고사양 (48GB+) |
Qwen2-VL-72B |
LLaVA-NeXT-34B |
| Apple Silicon |
LLaVA-1.5-7B (MLX) |
Qwen2-VL-7B |
| 클라우드 API |
상용 API |
Together AI |