DeepSeek R1 로컬(PC)에서 실행하기

By | 2025년 2월 4일
Table of Contents

DeepSeek R1 로컬(PC)에서 실행하기

Ollama 설치

다운로드

도스창에서 설치된 것을 확인합니다.

ollama -v

DeepSeek R-1 설치

  • Ollama를 실행한 뒤 Models 탭으로 이동
  • deepseek 검색
  • deepseek-r1 다운로드

    ollama run deepseek-r1:8b
    # ollama run deepseek-r1:1.5b

필요한 GPU

추가 학습된 AI 다운로드

공식적으로 배포되는 AI 는 한국어를 잘 지원하지 않는다.
한국어 학습을 추가로 시켜준 AI 도 배포되고 있는 것이 있으니 찾아서 다운받자.

인터페이스 개선

참조

한국어 자체적으로 추가학습

아래 내용은 구글링만 한 것으로 실제 테스트 된 내용이 아닙니다

하드웨어 준비 (AWS)

p4d.24xlarge 또는 p5

GPU: NVIDIA A100 8개 (80GB 각 GPU)
CPU: 고성능 프로세서
RAM: 최소 512GB
스토리지: 최소 2TB (데이터셋 및 모델 크기 고려)
# 기본 설치
sudo apt update
sudo apt install -y build-essential git wget

# GPU 드라이버 설치 (CUDA 11.8 예제)
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

예상비용 : 1600 ~ 6500달러

학습 프레임워크 설치

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install torch torchvision transformers datasets tqdm konlpy

데이터셋 준비

pip install konlpy
# KoGPT 데이터 다운로드 (링크 확인 필요)
wget <KoGPT 데이터셋 URL> -O /path_to_dataset/kogpt_dataset.json

전처리

from konlpy.tag import Mecab
import json

mecab = Mecab()

def preprocess_data(filepath):
    with open(filepath, 'r') as file:
        raw_data = json.load(file)
    processed_data = []

    for entry in raw_data:
        korean_text = entry['text']  # 데이터셋 구조에 맞게 수정
        tokenized = mecab.morphs(korean_text)
        processed_data.append(" ".join(tokenized))  # 공백으로 토큰 구분

    return processed_data

processed_data = preprocess_data("/path_to_dataset/kogpt_dataset.json")
output_path = "/path_to_dataset/processed_kogpt.txt"
with open(output_path, 'w') as file:
    file.write("\n".join(processed_data))

ollama 모델을 다운로드

ollama pull <model-name>
# or
git clone https://github.com/Ollama/models.git
from transformers import AutoModelForCausalLM, AutoTokenizer

# Hugging Face Ollama 모델 로딩
model_path = "/path_to_model"
model = AutoModelForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

from transformers import pipeline

device_map = "auto"  # GPU 메모리 자동 할당
model = model.half().to(device_map)  # FP16으로 변환

모델을 로컬 환경에 저장

# 예시 경로
models/my_model/
  └── pytorch_model.bin
  └── config.json
  └── tokenizer.json

모델 로드

from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("ollama-model-directory")

추가 학습 설정

from transformers import TrainingArguments

training_args = TrainingArguments(
    output_dir="./finetuned_model",
    per_device_train_batch_size=8,
    num_train_epochs=3,
    save_steps=500,
    evaluation_strategy="steps",
    logging_dir="./logs",
    learning_rate=5e-5,
    fp16=True,  # GPU FP16 지원
)
from datasets import load_dataset

dataset = load_dataset("path/to/your-dataset")

학습 실행

from transformers import Trainer

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset["train"],
    eval_dataset=dataset["validation"],
    tokenizer=tokenizer,
)

trainer.train()

trainer.save_model("./finetuned_model")
tokenizer.save_pretrained("./finetuned_model")

모델 테스트

from transformers import pipeline

finetuned_model = pipeline("text-generation", model="./finetuned_model", tokenizer="./finetuned_model")
result = finetuned_model("안녕하세요. 오늘 날씨는")
print(result)

ollama 모델로 재배포

ollama push <model-name> ./finetuned_model

One thought on “DeepSeek R1 로컬(PC)에서 실행하기

답글 남기기