Deepseek本地部署教程(显卡检查+终端运行+删除模型+WebUI+角色设定+初步训练)
通过以上步骤,您可以在本地完成从环境配置到模型交互、训练的完整流程。根据实际硬件调整参数(如。
·
以下是详细的 Deepseek 本地部署教程,涵盖显卡检查、终端运行、删除模型、WebUI 交互、角色设定及初步训练等关键步骤:
1. 显卡检查与驱动配置
1.1 检查显卡型号与CUDA支持
-
查看显卡型号:
nvidia-smi
- 确认显卡为 NVIDIA GPU 且支持 CUDA(如 RTX 系列)。
- 记录驱动版本(右上角
Driver Version
)和最高支持的 CUDA 版本(CUDA Version
)。
-
安装CUDA Toolkit:
- 根据
nvidia-smi
显示的版本,从 CUDA Toolkit Archive 下载对应版本。 - 示例(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
- 根据
1.2 安装PyTorch与依赖
- 根据 CUDA 版本安装 PyTorch:
# CUDA 11.8 示例 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
2. 终端运行Deepseek模型
2.1 下载模型文件
- 从官方仓库或 Hugging Face Hub 下载模型(假设模型为
deepseek-7b
):git lfs install git clone https://huggingface.co/deepseek-ai/deepseek-7b
2.2 运行推理脚本
- 创建
inference.py
:from transformers import AutoTokenizer, AutoModelForCausalLM model_path = "./deepseek-7b" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto") prompt = "你好,请介绍一下你自己。" inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_length=100) print(tokenizer.decode(outputs[0], skip_special_tokens=True))
- 运行脚本:
python inference.py
3. 删除本地模型
- 删除模型文件:
rm -rf ./deepseek-7b
- 清理Hugging Face缓存:
rm -rf ~/.cache/huggingface/hub
4. 部署WebUI交互界面
4.1 使用Gradio搭建界面
- 安装 Gradio:
pip install gradio
- 创建
webui.py
:import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("./deepseek-7b", device_map="auto") tokenizer = AutoTokenizer.from_pretrained("./deepseek-7b") def respond(message, history): inputs = tokenizer(message, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_length=200) return tokenizer.decode(outputs[0], skip_special_tokens=True) gr.ChatInterface(respond).launch(server_name="0.0.0.0", server_port=7860)
- 启动服务:
python webui.py
- 访问
http://localhost:7860
进行交互。
5. 角色设定与提示词工程
5.1 定制角色行为
- 在输入中添加系统提示(System Prompt):
prompt = """[INST] <<SYS>> 你是一名资深网络安全专家,回答需专业严谨,同时用中文回复。 <</SYS>> 如何防御DDoS攻击? [/INST] """
5.2 调整生成参数
- 修改
model.generate()
参数以控制输出:outputs = model.generate( **inputs, max_length=300, temperature=0.7, top_p=0.9, repetition_penalty=1.1 )
6. 初步训练(微调)
6.1 准备数据集
- 数据集格式(JSON):
[ {"text": "用户:你好\n助手:您好!有什么可以帮助您?"}, {"text": "用户:推荐一本书\n助手:《深度学习入门》是一本很好的参考书。"} ]
6.2 微调脚本
- 使用 Hugging Face Trainer:
from transformers import TrainingArguments, Trainer training_args = TrainingArguments( output_dir="./results", per_device_train_batch_size=4, num_train_epochs=3, learning_rate=5e-5, fp16=True ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, ) trainer.train()
常见问题
- 显存不足:尝试量化(
bitsandbytes
)或使用device_map="auto"
分流至CPU。 - 依赖冲突:使用虚拟环境(
conda
或venv
)隔离依赖。 - 模型响应慢:启用
cache_dir
缓存或减少max_length
。
通过以上步骤,您可以在本地完成从环境配置到模型交互、训练的完整流程。根据实际硬件调整参数(如 batch_size
、max_length
)以优化性能。
更多推荐
所有评论(0)