第27-28 学时:大模型任务实践

  • 课中实施:

    • 使用python部署deepseek R1 1.5B

    • 使用deepseek帮我们写代码。

  • 软件环境

  • python-3.11.7-amd64

  • PyCharm IDE

  • 下载地址:
    python-3.11.7
    PyCharm IDE

  • 实践步骤

  • 1.下载模型代码

import os
import requests

base_url = "http://192.168.189.3:8015/DeepSeek-R1-Distill-Qwen-1.5B/"
files = [
    "config.json",
    "generation_config.json",
    "tokenizer_config.json",
    "tokenizer.json",
    "model.safetensors"
]

save_dir = r"D:\aimodel\DeepSeek-R1-Distill-Qwen-1.5B"
os.makedirs(save_dir, exist_ok=True)

for file in files:
    url = base_url + file
    save_path = os.path.join(save_dir, file)
    print(f"⬇️ 正在下载 {file} ...")
    r = requests.get(url, stream=True)
    with open(save_path, "wb") as f:
        for chunk in r.iter_content(chunk_size=8192):
            if chunk:
                f.write(chunk)
print("✅ 所有模型文件下载完成!")
  • 2.运行模型测试代码


  • from transformers import AutoTokenizer, AutoModelForCausalLM
    import torch
    
    # 模型路径(你本地下载的)
    model_path = "D:/aimodel/DeepSeek-R1-Distill-Qwen-1.5B"
    
    # 加载 tokenizer 和 model
    print("📦 正在加载模型和分词器...")
    tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
    model.eval()
    
    # 如果有GPU,放上去
    device = "cuda" if torch.cuda.is_available() else "cpu"
    model.to(device)
    print(f"🚀 模型已加载,使用设备:{device}")
    
    # 初始化对话历史
    chat_history = []
    
    def build_prompt(history, new_question):
        full_prompt = ""
        for i, (q, a) in enumerate(history):
            full_prompt += f"[Round {i+1}]\n问:{q}\n答:{a}\n"
        full_prompt += f"[Round {len(history)+1}]\n问:{new_question}\n答:"
        return full_prompt
    
    print("\n🤖 欢迎使用 DeepSeek 模型!输入你的问题吧,输入 `exit` 退出。\n")
    
    while True:
        query = input("🧑 你:")
        if query.strip().lower() in ["exit", "quit"]:
            print("👋 再见!")
            break
    
        prompt = build_prompt(chat_history, query)
        inputs = tokenizer(prompt, return_tensors="pt").to(device)
    
        with torch.no_grad():
            outputs = model.generate(
                **inputs,
                max_new_tokens=200,
                do_sample=True,
                temperature=0.7,
                top_p=0.9,
                repetition_penalty=1.1,
                eos_token_id=tokenizer.eos_token_id,
            )
    
        response = tokenizer.decode(outputs[0], skip_special_tokens=True)
        answer = response[len(prompt):].strip()
    
        print(f"🤖 DeepSeek:{answer}\n")
        chat_history.append((query, answer))
    

  • 3. 常见问题是下载不了软件包

  • 解决办法:安装时指定镜像仓库源

  • 清华大学pypi软件仓库: https://pypi.tuna.tsinghua.edu.cn/simple

  • 阿里pypi软件仓库: https://mirrors.aliyun.com/pypi/simple/

  • 腾讯pypi软件仓库:https://mirrors.cloud.tencent.com/pypi/simple/

  • 使用方法:

    pip install requests -i https://mirrors.cloud.tencent.com/pypi/simple

作者:信息技术教研室  创建时间:2025-04-03 17:20
最后编辑:信息技术教研室  更新时间:2025-08-13 10:53