로컬 LLM 셋업 가이드 (v15)
요약
DevOps 기반으로 로컬 환경에서 LLM 인프라를 구축하는 실전 가이드입니다. llama.cpp를 중심으로 프레임워크 비교, 모델 양자화, API 서버 설정 및 OpenAI 호환 API 통합 방법을 상세히 다룹니다.
핵심 포인트
- llama.cpp, Ollama, vLLM 등 주요 프레임워크의 장단점 비교
- 시스템 사양에 따른 최적의 모델 및 양자화 유형 추천
- llama.cpp 기반의 소스 컴파일 및 Python 바인딩 설치 방법
- OpenAI API 규격을 준수하는 로컬 API 서버 구축 및 테스트
로컬 LLM 셋업 가이드 (v15) DevOps 기반의 로컬 LLM 인프라를 빠르게 구축하는 실전 가이드 1. 개요 및 전제 조건 이 가이드는 로컬에서 LLM을 효율적으로 실행하기 위한 실전 가이드입니다. Linux 기반 머신 이 필요하며, GPU 지원이 있으면 더 빠른 성능을 얻을 수 있습니다. 요구사항: RAM : 최소 8GB, 권장 16GB 이상 CPU : 64비트 x86_64 (Intel/AMD) GPU : CUDA 지원 (NVIDIA) 또는 ROCm 지원 (AMD) 디스크 : 최소 20GB 여유 공간 (모델 다운로드 및 저장) 운영체제 : Ubuntu 22.04 LTS 이상 또는 CentOS 9 사전 준비: sudo apt update && sudo apt upgrade -y sudo apt install git build-essential cmake python3-pip -y 2. 프레임워크 비교: llama.cpp vs Ollama vs vLLM vs LocalAI 프레임워크 장점 단점 추천 사용 사례 llama.cpp 최소 의존성, 높은 성능, 직접 컴파일 가능 사용자 친화적 UI 부족 고급 사용자, 시스템 수준 최적화 필요 Ollama 간편 설치, Docker 기반, GUI 지원 메모리 사용량 높음 빠른 개발/테스트 vLLM 초고속 추론, 멀티 GPU 지원 복잡한 설정 필요 대규모 배포, 실시간 추론 LocalAI OpenAI API 호환, 다양한 모델 지원 느린 초기 로딩 프로덕션 API 서버 필요 최종 추천 : llama.cpp + llama-cpp-python + systemd 3. 추천 설정 설치 (llama.cpp 기반) 3.1 소스 코드 다운로드 및 컴파일 git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp make 3.2 Python 바인딩 설치 pip3 install llama-cpp-python 3.3 기본 실행 예제 ./main -m ./models/llama-2-7b-chat.Q5_K_M.gguf -p "Hello, world!" --temp 0.2 4. 모델 선택 가이드 모델 파라미터 추천 사용 사례 추천 quantization Llama-2 7B 7B 일반 챗봇, 코드 생성 Q5_K_M Mistral 7B 7B 다중 언어 처리 Q5_K_M Phi-3 Mini 3.8B 가볍고 빠른 추론 Q4_K_M Mixtral 8x7B 47B 고급 추론 Q5_K_M 실제 다운로드 예제: mkdir -p models cd models wget https://huggingface.co/TheBloke/Mistral-7B-v0.1-GGUF/resolve/main/mistral-7b-v0.1.Q5_K_M.gguf 5. 양자화 유형 설명 유형 설명 성능 크기 Q4_K_M Kahan summation, 최적화된 메모리 사용 빠름 최소 Q5_K_M Q4 기반 + 높은 정밀도 매우 빠름 중간 Q8_0 8-bit 정밀도 정확도 높음 크기 큼 F16 반정밀도 (FP16) 최고 정확도 가장 큼 양자화 예제: # 원본 모델을 Q5_K_M로 변환 python3 convert.py ./models/llama-2-7b-chat.bin --outtype q5_k_m 6. API 설정 및 기존 도구와 통합 6.1 API 서버 실행 python3 -m llama_cpp.server --model ./models/mistral-7b-v0.1.Q5_K_M.gguf \ --host 0.0.0.0 --port 8000 \ --n_ctx 4096 \ --n_threads 8 6.2 OpenAI 호환 API 테스트 curl http://localhost:8000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "mistral-7b", "prompt": "Write a function to calculate fibonacci in Python", "max_tokens": 200 }' 6.3 VSCode 연결 { "openai.apiKey" : "sk-xxx" , "openai.baseUrl" : "http://localhost:8000/v1" } 7. 24/7 운영을 위한 Systemd 서비스 7.1 서비스 파일 생성 sudo nano /etc/systemd/system/llm.service [Unit] Description = Local LLM Server After = network.target [Service] Type = simple User = ubuntu WorkingDirectory = /home/ubuntu/llama.cpp ExecStart = /home/ubuntu/llama.cpp/main -m /home/ubuntu/models/mistral-7b-v0.1.Q5_K_M.gguf \ --host 0.0.0.0 --port 8000 \ --n_ctx 4096 \ --n_threads 8 Restart = always RestartSec = 10 [Install] WantedBy = multi-user.target 7.2 서비스 시작 sudo systemctl daemon-reload sudo systemctl enable llm.service sudo systemctl start llm.service sudo systemctl status llm.service 8. 모니터링 및 성능 튜닝 8.1 성능 모니터링 스크립트 #!/bin/bash # monitor.sh while true ; do echo "=== Memory ===" free -h echo "=== CPU ===" top -bn1 | grep "Cpu(s)" echo "=== Load ===" uptime sleep 30 done 8.2 성능 최적화 파라미터 # CPU 코어 수 확인 nproc # 추론 최적화 옵션 ./main -m model.gguf \ --n_threads 8 \ --n_batch 512 \ --n_ctx 4096 \ --rope_freq_base 10000.0 \ --rope_freq_scale 1.0 \ --temp 0.2 \ --repeat_penalty 1.1 8.3 성능 벤치마크 # 테스트 모델 로드 시간 time ./main -m ./models/mistral-7b-v0.1.Q5_K_M.gguf -p "Test" --temp 0.1 # 추론 시간 측정 time ./main -m ./models/mistral-7b-v0.1.Q5_K_M.gguf \ -p "Explain quantum computing in simple terms" \ --temp 0.2 \ --n_predict 100 9. 실전 예제 커맨드 9.1 커스텀 텍스트 생성 ./main -m ./models/mistral-7b-v0.1.Q5_K_M.gguf \ -p "Write a 3-line poem about AI and humans" \ --temp 0.7 \ --n_predict 50 9.2 JSON 파싱 도우미 ./main -m ./models/mistral-7b-v0.1.Q5_K_M.gguf \ -p "Parse this JSON and extract the 'name' field: { " name " : " John " , " age " :30}" \ --temp 0.1 \ --n_predict 20 9.3 코드 자동 생성 bash ./main -m ./models/mistral-7b-v0.1.Q5_K_M.gguf \ -p "Write a Python function to validate email addresses" \ --temp 0.3 \ --- 📥 Get the full guide on Gumroad: https://gumroad.com/l/auto ($7)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기