광고 자리 모집 중 · 제휴 문의

Ollama와 LM Studio를 활용하여 DeepSeek 모델을 로컬 환경에 배포하고 오프라인 추론을 실행하는 방법

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

독점 소스 코드를 다루는 소프트웨어 개발자나 민감한 개인정보 및 기밀 문서를 보호해야 하는 사용자에게 외부 클라우드 API로 프롬프트와 데이터를 전송하는 것은 보안 및 규정 준수 관점에서 큰 위험을 수반합니다. 오픈 소스 DeepSeek 모델을 로컬 머신에서 직접 실행하면 외부 통신 제로, 토큰당 과금 부담 제거, 외부 서버 의존성 탈피 등 완벽한 데이터 주권을 확보할 수 있습니다.

Ollama와 LM Studio를 활용하면 일반 소비자용 PC 하드웨어에서도 DeepSeek 추론 및 코딩 모델을 온전히 구동할 수 있습니다. 모델 가중치(weights) 파일의 다운로드 또는 수동 복사가 완료되면 두 플랫폼 모두 인터넷 연결이 완전히 차단된 폐쇄망(air-gapped) 환경에서 완벽하게 작동합니다. 이 가이드에서는 하드웨어 사양에 맞는 모델 크기 선택, 오프라인 구동 검증, OpenAI 호환 로컬 개발 서버 구축, DeepSeek 공식 권장 추론 파라미터 적용법을 상세히 다룹니다.


1. 하드웨어 사양에 적합한 DeepSeek 모델 선택

DeepSeek-R1 제품군은 6,710억 개(671B) 매개변수를 지닌 MoE(Mixture-of-Experts) 원본 모델과 Qwen 2.5 및 Llama 3 기반으로 증류(distilled)된 6종의 고밀도(Dense) 모델로 구성됩니다. 풀사이즈 671B 모델은 다중 엔터프라이즈 GPU 클러스터나 대용량 통합 메모리를 갖춘 워크스테이션(예: 512GB Mac Studio)이 필요하지만, 증류 모델은 일반 노트북과 데스크톱에서도 쾌적하게 실행됩니다.

또한 코딩 작업에 특화된 DeepSeek-Coder-V2는 16B MoE 경량 모델을 제공하여 개인 개발 환경에 최적화된 성능을 발휘합니다.

모델 명칭기반 아키텍처다운로드 용량 (Q4 양자화)필요 메모리 (VRAM / 시스템 RAM)권장 실행 하드웨어
DeepSeek-R1-Distill-Qwen-1.5BQwen 2.5 Math약 1.1 GB4 GB 시스템 RAM경량 노트북; 순수 CPU 추론; 엣지 컴퓨팅 디바이스
DeepSeek-R1-Distill-Qwen-7BQwen 2.5 Math약 4.7 GB8 GB VRAM 또는 16 GB RAM일반 노트북; 8GB GPU (RTX 3060/4060); M1/M2/M3 Mac
DeepSeek-R1-Distill-Llama-8BLlama 3.1약 5.2 GB8 GB VRAM 또는 16 GB RAM코드 리뷰 및 범용 논리 추론 작업의 우수한 가성비 모델
DeepSeek-R1-Distill-Qwen-14BQwen 2.5약 9.0 GB12–16 GB VRAM 또는 24 GB RAM중상급 그래픽카드 (RTX 4070/4080); 16GB/24GB 통합 메모리 Mac
DeepSeek-R1-Distill-Qwen-32BQwen 2.5약 20 GB24 GB VRAM 또는 32–64 GB RAM플래그십 그래픽카드 (RTX 3090/4090); 36GB+ Mac; 성능과 리소스의 최적 균형점
DeepSeek-R1-Distill-Llama-70BLlama 3.3약 43 GB24 GB 듀얼 GPU 또는 64–96 GB RAM다중 GPU 워크스테이션; Mac Studio (64GB–128GB)
DeepSeek-R1 (풀버전 671B MoE)DeepSeek-V3 Base약 404 GB400 GB+ VRAM / 고성능 컴퓨팅 클러스터엔터프라이즈 서버; 80GB GPU 8장 탑재 노드; Mac Studio 512GB

대부분의 소프트웨어 개발 및 기술 분석 작업에서는 DeepSeek-R1-Distill-Qwen-14B 및 DeepSeek-R1-Distill-Qwen-32B 모델이 추론 정확도와 로컬 하드웨어 요구량 사이에서 가장 실용적인 선택지입니다.


2. Ollama를 활용한 DeepSeek 로컬 배포 및 실행

Ollama는 백그라운드 데몬 서비스, 터미널 자동화 스크립트, IDE 코딩 확장 프로그램 연동에 최적화된 경량 커맨드라인 런타임입니다.

1단계: Ollama 설치

운영체제에 맞는 설치 패키지를 다운로드합니다:

2단계: 모델 다운로드 및 실행

인터넷이 연결된 상태에서 원하는 모델을 다운로드하고 대화 세션을 시작합니다:

# 8B 모델 다운로드 및 대화형 터미널 세션 실행
ollama run deepseek-r1:8b

# 더 높은 정밀도를 지원하는 14B 또는 32B 모델 구동
ollama run deepseek-r1:14b
ollama run deepseek-r1:32b

Ollama는 시스템의 GPU 가속 장치(NVIDIA CUDA, Apple Metal, AMD ROCm)를 자동으로 인식하고 VRAM을 할당한 후 대화형 프롬프트를 엽니다.

3단계: 완전한 오프라인 작동 검증

추론 시 일체의 외부 통신이 일어나지 않는지 확인하는 절차:

  1. 컴퓨터의 Wi-Fi를 끄거나 유선 LAN 케이블을 분리합니다.
  2. 새 터미널 창을 열고 다음 명령어를 실행합니다:
    ollama run deepseek-r1:8b
    

모델 가중치와 구성 파일이 로컬 캐시 디렉터리(Linux/macOS는 ~/.ollama/models, Windows는 %USERPROFILE%\.ollama\models)에 저장되어 있으므로 외부 인터넷 연결 없이 즉시 텍스트가 생성됩니다.

4단계: 물리적 격리망(Air-Gapped) 환경 이관

외부 인터넷이 차단된 폐쇄망 머신에 모델을 설치할 때:

  1. 인터넷이 연결된 PC에서 ollama pull deepseek-r1:14b를 실행합니다.
  2. 환경 변수 OLLAMA_MODELS로 지정된 경로(또는 기본 ~/.ollama/models 폴더)를 찾습니다.
  3. 해당 디렉터리 전체를 보안 승인된 암호화 외장 드라이브에 복사합니다.
  4. 폐쇄망 머신의 해당 경로에 붙여넣고 ollama list를 실행하여 모델이 정상 인식되었는지 확인합니다.

5단계: 컨텍스트 윈도우(문맥 길이) 조절

Ollama는 기본적으로 4,096 토큰의 컨텍스트 길이를 사용합니다. 긴 코드베이스나 대용량 문서를 분석할 때는 이를 확장합니다:

6단계: 로컬 개발자 API 호출 및 자동화 연동

Ollama는 11434 포트에서 네이티브 REST API와 OpenAI 호환 엔드포인트를 제공합니다.

cURL을 통한 로컬 API 요청

curl http://localhost:11434/api/chat -d '{
  "model": "deepseek-r1:8b",
  "messages": [
    {"role": "user", "content": "Go 언어로 스레드 안전한 동시성 인메모리 캐시를 구현해 주세요."}
  ],
  "stream": false
}'

Python 공식 SDK를 통한 연동

from ollama import chat

response = chat(
    model="deepseek-r1:8b",
    messages=[
        {
            "role": "user",
            "content": "Python 환경에서 GIL이 CPU 집약적 멀티스레딩에 미치는 영향과 설계 대안을 설명해 주세요.",
        }
    ],
    options={
        "temperature": 0.6,
    },
)

print(response.message.content)

VS Code 또는 JetBrains IDE에서 Continue.dev, Aider 등의 확장 기능 기본 URL을 http://localhost:11434/v1로 설정하면 클라우드 유출 없는 온디바이스 코드 어시스턴트를 활용할 수 있습니다.


3. LM Studio를 활용한 DeepSeek 로컬 배포 및 실행

LM Studio는 직관적인 GUI, 그래픽 기반 GPU 레이어 오프로딩 조절기, 원클릭 로컬 API 서버 기능을 제공합니다.

1단계: LM Studio 설치

macOS(Apple Silicon M1–M4), Windows(x64 / Snapdragon ARM), Linux(AppImage)용 설치 파일을 공식 사이트에서 받아 설치를 완료합니다.

2단계: DeepSeek 모델 검색 및 다운로드

  1. 좌측 메뉴의 Discover(돋보기 아이콘)를 클릭합니다.
  2. 검색창에 deepseek-r1 또는 deepseek-coder를 입력합니다.
  3. 커뮤니티에서 패키징한 다양한 GGUF 양자화 버전(Q4_K_M, Q5_K_M, Q8_0 등) 목록이 표시됩니다.
  4. 화면에 안내되는 메모리 예상 소비량을 확인하고 현재 하드웨어 사양에 적합한 모델의 Download 버튼을 누릅니다.

3단계: 오프라인 수동 가져오기 (GGUF 사이드로딩)

인터넷 연결이 불가한 환경인 경우:

  1. 외부 PC의 Hugging Face에서 필요한 DeepSeek .gguf 파일을 다운로드합니다.
  2. LM Studio에서 My Models(폴더 아이콘) 탭으로 이동합니다.
  3. .gguf 파일을 프로그램 창 내부로 직접 드래그 앤 드롭하거나 ~/.cache/lm-studio/models 경로에 복사합니다.
  4. 소프트웨어가 모델 구조를 자동으로 식별하여 등록합니다.

4단계: GPU Layer Offload 및 하드웨어 자원 최적화

  1. AI Chat 탭으로 이동합니다.
  2. 상단 중앙의 Select a model to load를 클릭하여 가져온 DeepSeek 모델을 선택합니다.
  3. 우측 Inference Parameters 패널에서 조정합니다:
    • GPU Offload: 슬라이더를 움직여 GPU VRAM에 로드할 레이어 수를 조절합니다. VRAM이 충분하면 최대치(Max)로 설정하고, VRAM이 제한적인 경우(예: 8GB 그래픽카드에서 14B 모델 실행) 일부 레이어만 GPU에 올리고 나머지는 시스템 RAM(CPU)이 처리하도록 분담합니다.
    • Context Length: 사용 가능한 메모리 한도에 맞춰 문맥 길이 슬라이더를 조정합니다.

5단계: 로컬 OpenAI 호환 개발 서버 실행

LM Studio를 로컬 API 백엔드로 활용하려면:

  1. 좌측 메뉴의 Developer(코드 대괄호 아이콘)를 클릭합니다.
  2. Start Server 스위치를 켭니다.
  3. 기본적으로 http://localhost:1234/v1 포트에서 요청을 수신합니다.

Python OpenAI 공식 SDK 연동 예제

기존 OpenAI 라이브러리 코드를 수정 없이 그대로 로컬 엔드포인트에 연결할 수 있습니다:

from openai import OpenAI

# 외부 유출 없는 로컬 LM Studio 서버로 연결
client = OpenAI(
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",  # 기본 설정에서는 API 키 인증이 필요 없으므로 임의 문자열 사용
)

completion = client.chat.completions.create(
    model="deepseek-r1-distill-qwen-14b",
    messages=[
        {
            "role": "user",
            "content": "다음 SQL 테이블 스키마의 인덱스 병목 가능성을 분석해 주세요:\nCREATE TABLE access_logs (id BIGINT, service_id INT, payload TEXT, created_at TIMESTAMP);",
        }
    ],
    temperature=0.6,
)

print(completion.choices[0].message.content)

4. DeepSeek-R1 필수 추론 설정 및 사고 토큰(Think 태그) 제어법

사고 사슬(Chain-of-Thought) 기반 추론 모델인 DeepSeek-R1은 일반 대화 모델과 구별되는 고유한 운영 규칙이 있습니다:

1. Temperature(온도값)를 0.6 내외로 엄격히 유지

DeepSeek 연구팀은 샘플링 온도를 0.5에서 0.7 사이(공식 벤치마크 권장값은 0.6)로 유지할 것을 명시적으로 권장합니다. 온도가 너무 높으면 환각이나 무한 루프 반복이 발생하기 쉽고, 0에 가깝게 낮추면 모델의 탐색적 논리 전개 능력이 저하됩니다.

2. 복잡한 System Prompt 지양

일반적인 챗봇 모델과 달리 DeepSeek-R1은 모든 지시 사항을 User 프롬프트 내에 직접 포함하여 전달받도록 강화학습 정렬되었습니다. 길고 정형화된 System Prompt를 주입하면 추론 품질이 떨어지거나 루프에 빠질 수 있으므로, 역할 정의와 출력 규칙을 User 프롬프트 안에 함께 기재하는 것이 좋습니다.

3. 애플리케이션 내 <think> 사고 태그 처리

DeepSeek-R1은 최종 답안을 내놓기 전에 <think>...</think> 태그 내에서 단계별 논리 유도 과정을 출력합니다.


5. Ollama vs. LM Studio 기능 비교 및 선택 가이드

비교 항목OllamaLM Studio
주요 인터페이스터미널 CLI; 백그라운드 데몬 서비스데스크톱 그래픽 GUI 애플리케이션
주 활용 대상백엔드 개발자; DevOps 엔지니어; CLI 중심 작업자연구원; 프롬프트 분석가; 시각적 데스크톱 사용자
하드웨어 자원 배분하드웨어 자동 감지; Modelfile 또는 CLI로 제어그래픽 슬라이더를 통한 직관적인 GPU 레이어 오프로딩
GGUF 수동 가져오기Modelfile FROM ./file.gguf 설정 작성 필요드래그 앤 드롭으로 파일 즉시 인식
기본 로컬 엔드포인트http://localhost:11434http://localhost:1234/v1
로컬 문서 기반 RAGOpen WebUI 등 외부 프론트엔드 연동 필요앱 내 자체 로컬 문서 드래그 앤 검색 기능 내장
개발 툴 및 IDE 연동Continue, Aider, Claude Code 등과 기본 연동표준 OpenAI 호환 엔드포인트를 통해 연동

선택 권장사항:


참고 자료