以下是详细的 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。
  • 依赖冲突:使用虚拟环境(condavenv)隔离依赖。
  • 模型响应慢:启用 cache_dir 缓存或减少 max_length

通过以上步骤,您可以在本地完成从环境配置到模型交互、训练的完整流程。根据实际硬件调整参数(如 batch_sizemax_length)以优化性能。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐