DeepSeek R1을 로컬에서 실행하고 RAG(Retrieval-Augmented Generation) 시스템을 구축하는 방법을 정리했습니다.
이 가이드를 따라 하면, 로컬에서 DeepSeek R1을 실행하면서 지식 기반 검색(RAG)을 적용하여 강화된 문맥 기반 응답을 생성할 수 있습니다.
1️⃣ DeepSeek R1 로컬 실행하기
DeepSeek R1을 실행하려면 적절한 하드웨어와 소프트웨어 환경이 필요합니다.
1.1 하드웨어 요구 사항
- GPU: Deepseek 70b 같은 경우 최소 80GB VRAM (A100 80GB) / RTX 4090(24GB) 2개 이상 필요
- CPU: 최소 16코어 이상 권장
- RAM: 최소 64GB (128GB 이상 권장)
- 저장공간: 최소 1TB NVMe SSD (모델 파일 저장 용도)
- 운영체제: Ubuntu 22.04 / Windows (WSL2) / macOS (CPU Only)
1.2 필요한 패키지 설치
# 필수 패키지 설치 sudo apt update && sudo apt upgrade -y sudo apt install -y python3 python3-pip git wget # PyTorch 설치 (CUDA 사용) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # DeepSeek R1 실행을 위한 Hugging Face Transformers 설치 pip install transformers accelerate sentencepiece
1.3 DeepSeek R1 모델 다운로드 및 실행
(1) 모델 다운로드
git clone https://github.com/deepseek-ai/deepseek-llm.git cd deepseek-llm # 7B 모델 다운로드 (67B 모델은 GPU 메모리 200GB 이상 필요) wget https://huggingface.co/deepseek-ai/deepseek-llm-7b/resolve/main/model.safetensors
(2) DeepSeek R1 실행
from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_name = "./deepseek-llm" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto") # 테스트 입력 input_text = "DeepSeek R1은 무엇인가요?" input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda") # 응답 생성 output_ids = model.generate(input_ids, max_length=200) response = tokenizer.decode(output_ids[0], skip_special_tokens=True) print(response)
이제 DeepSeek R1이 로컬에서 동작합니다!
2️⃣ RAG 시스템 구축하기
RAG(Retrieval-Augmented Generation)은 AI 모델이 외부 지식을 검색해 더 정확한 답변을 생성하는 방식입니다.
RAG 구축을 위해 LangChain과 FAISS(Facebook AI Similarity Search)를 사용합니다.
2.1 RAG 구축을 위한 라이브러리 설치
pip install faiss-cpu langchain chromadb
2.2 문서 기반 지식 검색 구축
이제 FAISS를 사용해 문서 데이터베이스를 만들고, DeepSeek R1과 연결하겠습니다.
(1) 문서 데이터 불러오기
from langchain.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.vectorstores import FAISS from langchain.embeddings import OpenAIEmbeddings # 문서 로드 loader = TextLoader("data/knowledge_base.txt") documents = loader.load() # 문서 조각화 text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50) texts = text_splitter.split_documents(documents) # 임베딩 생성 vector_store = FAISS.from_documents(texts, OpenAIEmbeddings()) # 저장 vector_store.save_local("./faiss_index")
2.3 검색 + AI 답변 생성
DeepSeek R1이 검색한 정보를 바탕으로 답변을 생성하도록 설정합니다.
from langchain.chat_models import ChatOpenAI from langchain.chains import ConversationalRetrievalChain from langchain.vectorstores import FAISS from langchain.embeddings import OpenAIEmbeddings # DeepSeek R1 로드 llm = ChatOpenAI(model_name="deepseek-llm", temperature=0.7) # FAISS 인덱스 로드 vector_store = FAISS.load_local("./faiss_index", OpenAIEmbeddings()) # 검색 + 응답 시스템 구축 qa_chain = ConversationalRetrievalChain.from_llm(llm, vector_store.as_retriever()) # 질문 입력 query = "DeepSeek R1의 특징은?" response = qa_chain.run(query) print(response)
이제 DeepSeek R1이 자신의 데이터베이스에서 지식을 검색하고, 답변을 생성하는 RAG 시스템이 완성되었습니다!
3️⃣ API 서버 구축하기 (FastAPI)
이제 API를 만들어 웹 또는 다른 애플리케이션에서 사용할 수 있도록 하겠습니다.
3.1 FastAPI 설치
pip install fastapi uvicorn pydantic
3.2 API 서버 구축
다음 코드로 API 서버를 실행합니다.
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # 요청 데이터 모델 class QueryRequest(BaseModel): question: str @app.post("/ask") async def ask_question(request: QueryRequest): response = qa_chain.run(request.question) return {"answer": response} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)
3.3 API 호출하기
(1) curl로 요청 보내기
curl -X 'POST' \ 'http://localhost:8000/ask' \ -H 'Content-Type: application/json' \ -d '{"question": "DeepSeek R1은 어떤 모델인가요?"}'
(2) Python에서 API 호출하기
import requests url = "http://localhost:8000/ask" data = {"question": "DeepSeek R1은 어떤 모델인가요?"} response = requests.post(url, json=data) print(response.json()["answer"])
마무리: 완성된 RAG 시스템
- DeepSeek R1을 로컬에서 실행
- FAISS 기반의 검색 가능한 지식 데이터베이스 구축
- LangChain을 활용하여 문서 검색 + AI 답변 생성
- FastAPI를 통해 API 서버 구축
- 웹/애플리케이션과 연동 가능!
이제 RAG 기반 AI 챗봇을 활용하여 실시간 검색 + AI 답변 생성을 사용할 수 있습니다!
Views: 21