로컬 LLM 셋업 가이드 (v21)
1. 개요 및 사전 요구사항
로컬 LLM (대형 언어 모델)을 실행하려면 다음과 같은 최소 사양이 필요합니다:
하드웨어 요구사항:
- RAM: 최소 8GB, 권장 16GB 이상
- GPU: NVIDIA RTX 3060 이상 (CUDA 지원), 또는 Apple Silicon M1/M2 이상
- 저장공간: 10GB 이상 여유 공간
운영체제:
- Ubuntu 20.04 이상, 또는 macOS 12 이상
- Python 3.8 이상
필수 패키지 설치:
sudo apt update
sudo apt install git cmake build-essential python3-pip python3-venv
2. 프레임워크 비교
| 프레임워크 | 장점 | 단점 | 적합성 |
|---|---|---|---|
| llama.cpp | 최소 의존성, 직접 컴파일 가능, 높은 성능 | 설치 복잡함, GUI 없음 | 고급 사용자, 성능 중심 |
| Ollama | 간단한 CLI, 웹 인터페이스, 모델 관리 쉬움 | 메모리 사용량 많음 | 개발자, 빠른 실험 |
| vLLM | 최고의 추론 속도, 대규모 모델 지원 | 복잡한 설치, 메모리 요구량 높음 | 엔터프라이즈, 고성능 |
| LocalAI | REST API, 다양한 모델 지원 | 복잡한 구성 필요 | API 기반 통합 |
추천: llama.cpp + Ollama 조합 (성능 + 편의성)
3. 설치 가이드 (llama.cpp + Ollama)
llama.cpp 설치:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
Ollama 설치:
curl -fsSL https://ollama.com/install.sh | sh
Ollama 서비스 시작:
ollama serve &
4. 모델 선택 가이드
| 사용 사례 | 추천 모델 | 크기 | 성능 |
|---|---|---|---|
| 일반 텍스트 생성 | llama3:8b | 4GB | 높음 |
| 코드 생성 | codellama:7b | 4GB | 높음 |
| 번역 | nllb-moe:1.3b | 1GB | 중간 |
| 대화형 챗봇 | mistral:7b | 4GB | 높음 |
모델 다운로드 예시:
ollama run llama3:8b
ollama pull codellama:7b
5. 양자화 유형 설명
Q4_K_M: 4비트 양자화, 최적화된 품질/크기 비율
# llama.cpp에서 Q4_K_M 양자화
./quantize ./models/llama-3-8b.Q4_K_M.gguf ./models/llama-3-8b-f16.gguf Q4_K_M
Q5_K_M: 5비트 양자화, 높은 정확도
Q8_0: 8비트 양자화, 정확도 최우선
성능 비교:
# 모델별 추론 시간 측정
time ./main -m ./models/llama-3-8b.Q4_K_M.gguf -p "Hello world"
6. API 설정 및 통합
Ollama API 사용:
# REST API 테스트
curl http://localhost:11434/api/generate \
-d '{
"model": "llama3:8b",
"prompt": "Write a short poem about coding",
"stream": false
}'
Python 클라이언트 예제:
import requests
def query_llm(prompt):
response = requests.post(
'http://localhost:11434/api/generate',
json={
'model': 'llama3:8b',
'prompt': prompt,
'stream': False
}
)
return response.json()['response']
print(query_llm("Explain quantum computing in simple terms"))
7. Systemd 서비스 설정
서비스 파일 생성:
sudo nano /etc/systemd/system/ollama.service
서비스 내용:
[Unit]
Description=Ollama Service
After=network.target
[Service]
Type=simple
User=your_user
ExecStart=/usr/bin/ollama serve
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
서비스 시작:
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
sudo systemctl status ollama
8. 모니터링 및 성능 조정
CPU/메모리 모니터링:
# 실시간 모니터링
htop
# GPU 사용량 모니터링
nvidia-smi -l 1
# 로그 확인
journalctl -u ollama -f
성능 최적화 설정:
# 환경 변수 설정
export OLLAMA_MAX_VRAM=8000000000
export OLLAMA_NUM_PARALLEL=4
모델별 최적화:
# 메모리 사용량 최적화
./main -m ./models/llama-3-8b.Q4_K_M.gguf \
--ctx-size 2048 \
--n-gpu-layers 35 \
--threads 8
9. 실전 예제 및 벤치마크
모델 추론 벤치마크:
# 시간 측정
time ./main -m ./models/llama-3-8b.Q4_K_M.gguf -p "What is the capital of France?" --repeat-prompt
# 반복 테스트
for i in {1..5}; do
echo "Run $i:"
time ./main -m ./models/llama-3-8b.Q4_K_M.gguf -p "Explain neural networks in one sentence" --repeat-prompt
done
효율성 개선:
# 빠른 시작을 위한 모델 캐싱
./main -m ./models/llama-3-8b.Q4_K_M.gguf \
--cache-file /tmp/llama_cache \
--no-threads \
--batch-size 512
API 성능 테스트:
# 부하 테스트
ab -n 100 -c 10 http://localhost:11434/api/generate
10. 예상 성능 및 추천 사양
성능 기준:
- 8GB RAM: Q4_K_M 모델, 1~2개 동시 요청
- 16GB RAM: Q5_K_M 모델, 3~4개 동시 요청
- 32GB RAM: FP16 모델, 5+ 동시 요청
기본 프로필 설정:
# 최적화된 Ollama 설정
ollama run --model llama3:8b --options '{"temperature": 0.7, "top_p": 0.9}'
이 가이드를 따라하면 로컬에서 효율적으로 LLM을 실행할 수 있습니다. 기본적인 설정만으로도 생산적인 개발 환경을 구축할 수 있으며, 필요에 따라 성능 최적화를 진행할 수 있습니다.
📥 Get the full guide on Gumroad: https://gumroad.com/l/auto ($7)
Top comments (0)