摘要:确认显卡支持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方法无需训练即可快速集成新知识,适合大多数场景。
来源:发哥记录真实生活