[DeepSeek] Deepseek-V3 를 로컬 환경에 구성하는 방법

2025. 2. 3. 09:18·개발 (Development)/DeepSeek

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. 고급 설정

  1. vLLM 통합 (고속 추론):
pip install vllm
from vllm import LLM, SamplingParams
llm = LLM(model=model_path)
  1. 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 (공식 저장소 확인)
반응형

'개발 (Development) > DeepSeek' 카테고리의 다른 글

[DeepSeek] Ollama 활용하여 로컬에서 DeepSeek 모델 서비스 만들기  (1) 2025.02.04
'개발 (Development)/DeepSeek' 카테고리의 다른 글
  • [DeepSeek] Ollama 활용하여 로컬에서 DeepSeek 모델 서비스 만들기
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (234) N
      • 개발 (Development) (167) N
        • Algorithm (1)
        • Angular (1)
        • AWS (7) N
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (34)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (32) N
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (12) N
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    docker
    MyBatis
    백준알고리즘
    오답노트
    Kafka
    파이썬
    DevOps
    자바
    deepseek
    백준
    Kubernetes
    Linux
    백준온라인저지
    JPA
    리눅스 마스터 2급
    pandas
    timescaledb
    백준자바
    javascript
    python
    AWS
    JSON
    java
    리눅스 마스터 2급 2차
    Vue.js
    springboot
    Linux master
    PostgreSQL
    데이터분석
    ADsP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[DeepSeek] Deepseek-V3 를 로컬 환경에 구성하는 방법
상단으로

티스토리툴바