Windows 11上部署本地DeepSeek模型并投喂知识的详细流程

360影视 日韩动漫 2025-02-04 17:40 2

摘要:确认显卡支持CUDA(NVIDIA显卡),安装 [CUDA Toolkit 11.8+](https://developer.nvidia.com/cuda-toolkit)。

以下是在Windows 11上部署本地DeepSeek模型并投喂知识的详细流程:

---

### **一、部署DeepSeek本地模型**

#### **1. 环境准备**

- **安装Python**

- 访问 [python官网](https://www.python.org/downloads/) 下载3.8+版本。

- 安装时勾选 `Add Python to PATH`。

- **安装CUDA和PyTorch**

- 确认显卡支持CUDA(NVIDIA显卡),安装 [CUDA Toolkit 11.8+](https://developer.nvidia.com/cuda-toolkit)。

- 安装PyTorch(带CUDA支持):

```bash

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

```

- **安装依赖库**

```bash

pip install transformers huggingface_hub accelerate sentencepiece

```

#### **2. 下载DeepSeek模型**

- 访问Hugging Face官网,搜索官方模型(如 `deepseek-ai/deepseek-llm-7b-chat`)。

```python

from huggingface_hub import snapshot_download

snapshot_download(repo_id="deepseek-ai/deepseek-llm-7b-chat", local_dir="deepseek-model")

```

> 注:模型较大(约15GB+),需确保磁盘空间充足。若无权限,需申请访问。

#### **3. 运行本地模型**

- 创建 `inference.py` 文件:

```python

from transformers import AutoTokenizer, AutoModelForCausalLM

model_path = "deepseek-model"

tokenizer = AutoTokenizer.from_pretrained(model_path)

model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto")

prompt = "你好,请介绍一下你自己。"

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(**inputs, max_new_tokens=100)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

```

- 运行脚本:

```bash

python inference.py

```

---

### **二、投喂知识(以RAG方法为例)**

#### **1. 准备知识文档**

- 将知识整理为文本文件(如 `knowledge.txt` 或 `docx`、`PDF`),内容示例:

```

公司名称:XX科技

成立时间:2010年

核心业务:人工智能解决方案

```

#### **2. 安装RAG工具库**

```bash

pip install langchain chromadb tiktoken unstructured

```

#### **3. 构建知识库**

- 创建 `rag_setup.py`:

```python

from langchain.document_loaders import directoryLoader

from langchain.text_splitter import CharacterTextSplitter

from langchain.embeddings import HuggingFaceEmbeddings

from langchain.vectorstores import Chroma

# 加载文档

loader = DirectoryLoader('knowledge/', glob="**/*.txt")

documents = loader.load

# 分割文本

text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)

texts = text_splitter.split_documents(documents)

# 生成向量数据库

embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")

db = Chroma.from_documents(texts, embeddings, persist_directory="knowledge_db")

db.persist

```

#### **4. 集成到DeepSeek模型**

- 创建 `rag_inference.py`:

```python

from langchain.vectorstores import Chroma

from langchain.embeddings import HuggingFaceEmbeddings

from transformers import AutoTokenizer, AutoModelForCausalLM

# 加载向量数据库

embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")

db = Chroma(persist_directory="knowledge_db", embedding_function=embeddings)

# 加载DeepSeek模型

tokenizer = AutoTokenizer.from_pretrained("deepseek-model")

model = AutoModelForCausalLM.from_pretrained("deepseek-model", device_map="auto")

# 检索增强生成

query = "XX科技的核心业务是什么?"

docs = db.similarity_search(query, k=1)

context = docs[0].page_content

prompt = f"基于以下信息回答问题:{context}\n\n问题:{query}"

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(**inputs, max_new_tokens=200)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

```

---

### **三、注意事项**

1. **硬件要求**

- 至少16GB内存,推荐使用NVIDIA显卡(8GB+显存)。

- 若显存不足,可在加载模型时设置 `device_map="cpu"` 或使用量化版本。

2. **模型选择**

- 如果显存不足,可尝试较小模型(如 `deepseek-1.3b`)或量化版本(加载时添加 `load_in_4bit=True` 参数)。

3. **知识更新**

- 新增知识时,重新运行 `rag_setup.py` 更新向量数据库。

4. **高级微调(可选)**

- 如需深度定制,准备JSON格式数据集,使用以下代码微调:

```python

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(

output_dir="output",

per_device_train_batch_size=4,

num_train_epochs=3

)

trainer = Trainer(model=model, args=training_args, train_dataset=dataset)

trainer.train

```

---

通过以上步骤,您可以在Windows 11上部署DeepSeek模型并为其投喂专业知识。RAG方法无需训练即可快速集成新知识,适合大多数场景。

来源:发哥记录真实生活

相关推荐