DeepSeek-V3 모델을 로컬 환경에 구성하는 방법은 다음과 같습니다. 공식 문서나 허깅페이스 허브를 기반으로 한 일반적인 단계를 안내드리며, GPU 사용을 권장합니다 (대규모 언어 모델의 경우 리소스 요구 사항이 높음).
1. 필수 조건
- 하드웨어:
- GPU (NVIDIA, CUDA 11.8+ 호환) + VRAM 16GB+ (모델 크기에 따라 다름)
- 또는 CPU (속도가 매우 느릴 수 있음)
- 저장공간: 모델 가중치 파일 용량 확인 (예: 10~50GB)
- OS: Linux 권장 (Windows/macOS는 추가 설정 필요)
2. 설치 단계
2.1 의존성 설치
# Python 3.9+ 설치 (conda 추천)
conda create -n deepseek python=3.9
conda activate deepseek
# 필수 라이브러리 설치
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # CUDA 11.8
pip install transformers accelerate sentencepiece einops
2.2 모델 가중치 다운로드
- 공식 출처에서 모델 파일(
.bin
또는.safetensors
)과 토크나이저 구성 파일 다운로드:- DeepSeek 공식 허깅페이스
- 예시 모델명:
deepseek-ai/deepseek-llm-7b-v3
git lfs install
git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-v3
3. 코드 예시 (Python)
3.1 기본 추론
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "./deepseek-llm-7b-v3"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map="auto", # GPU 자동 할당
torch_dtype=torch.bfloat16 # 메모리 절약
)
input_text = "서울에서 방문할 곳을 추천해주세요."
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(
**inputs,
max_new_tokens=100,
temperature=0.7,
do_sample=True
)
print(tokenizer.decode(outputs[0]))
3.2 Quantization 적용 (리소스 절약)
from transformers import BitsAndBytesConfig
quant_config = BitsAndBytesConfig(
load_in_4bit=True, # 4비트 양자화
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4"
)
model = AutoModelForCausalLM.from_pretrained(
model_path,
quantization_config=quant_config,
device_map="auto"
)
4. Docker로 구성 (선택 사항)
4.1 Dockerfile
FROM nvidia/cuda:12.1.1-base-ubuntu22.04
RUN apt-get update && apt-get install -y \
python3.10 \
python3-pip \
git \
git-lfs
WORKDIR /app
RUN git lfs install && \
git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-v3
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ["python3", "app.py"]
4.2 컨테이너 실행 (GPU 사용)
docker build -t deepseek-v3 .
docker run --gpus all -it deepseek-v3
5. 고급 설정
- vLLM 통합 (고속 추론):
pip install vllm
from vllm import LLM, SamplingParams
llm = LLM(model=model_path)
- API 서버로 배포 (FastAPI 예시):
from fastapi import FastAPI
app = FastAPI()
@app.post("/generate")
async def generate(text: str):
inputs = tokenizer(text, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=100)
return {"result": tokenizer.decode(outputs[0])}
6. 문제 해결
- CUDA 오류:
nvidia-smi
로 GPU 상태 확인,torch
CUDA 버전 일치 확인. - 메모리 부족: 양자화(
load_in_8bit=True
) 또는 모델 분할(device_map="sequential"
) 적용. - 토크나이저 오류:
trust_remote_code=True
추가:tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
공식 문서 참고
- DeepSeek Hugging Face
- DeepSeek GitHub (공식 저장소 확인)
반응형
'Coding > DeepSeek' 카테고리의 다른 글
[DeepSeek] Ollama 활용하여 로컬에서 DeepSeek 모델 서비스 만들기 (1) | 2025.02.04 |
---|