目录

Python本地部署DeepSeek

写在前面

前阵子DeepSeek开源了r1的一套模型,想偷个懒,抄个作业,结果一搜,全都是抱着Ollama跑到黑的,就hin头大,思来想去还是自己上吧。

1 下载

以前huggingface没被停的时候用着还挺舒服,现在想下载模型原文件,就只能去镜像站了,比较慢,这个就不提供网盘了,能查到这篇文章的也不会不知道怎么下文件,这里提供一下镜像站的下载地址,大家根据自己的需求来。 DeepSeek-R1模型下载

大家可以根据自己的设备需要来下载,我的建议是向下兼容:如果你的设备能跑7B,把1.5B也一并下了吧,反正固态也不贵,后面还能用到。在这里我只提供显存与参数量的大概参考:

显存 模型大小
4GB+ 1.5B
8GB+ 8B
16GB+ 14B
24GB+ 32B
$$ 70B
$$$$$$$$ 671B
2 环境

环境配置困难的环节其实是cuda和cudnn的配置,这里我只提供windows的配置,linux别问,我不会。

2.1 cuda安装

下载位置:

CUDA 专区 | NVIDIA Developer 点击下载后选择自己的配置(根据自己的设备配置来)。

下载后进行安装,推荐在C盘预留出足够空间,推荐使用默认位置安装。

在进行选项安装的时候,如果有vs编译需求的可以在此处勾选,无相关需求时取消此处勾选后继续默认安装即可。

完成后点击开始按钮,输入cmd打开编辑框 输入: nvcc --version 返回类似如下输出即安装完成。

2.2 cudnn安装

下载地址:

CUDA 深度神经网络库 (cuDNN) | NVIDIA 开发者](developer.nvidia.com/cuda-toolki...)

点击下载后会,需要进行登录和问卷调查,正常填写即可。 完成问卷后,进入下载页面,选择自己设备对应的cudnn版本,点击文件进行下载。

将文件解压。

来到cuda的安装路径下(以个人安装路径为准)。

将cudnn解压的文件夹打开,复制其中三个文件夹,到cuda安装路径下。

完成后,点击开始菜单,搜索"高级系统设置",点击查看高级系统设置,并点击"环境变量",并在系统变量中找到"Path",选择编辑。

在系统变量中添加如下对象,路径参考如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp 好了。

2.3 pytorch下载

线上直接安装torch的方式我一直没成功过,所以我一直都离线安装,就是下载了文件,然后切换环境通过pip命令进行安装:pip install xxxxxxx,这里提供两个地址,国内支持GPU版本torch的站点不多:

官方离线站点: Links for torch

阿里云离线站点: index of pytorch-wheels

部署

写个脚本,我命名成QA.py【划重点,这个脚本在后面被引用了】,自己开发的时候想叫什么都行。

python 复制代码
# -*- coding: utf-8 -*-


import torch
from transformers import AutoModelForCausalLM, AutoTokenizer


# 生成文本
def generate_text(prompt, max_length=300):
    inputs = tokenizer(prompt, return_tensors="pt").to(device)
    outputs = model.generate(**inputs, max_length=max_length)
    generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return generated_text


# 加载模型和分词器
qa_model_path = "./model/base_model/1.5b"
tokenizer = AutoTokenizer.from_pretrained(qa_model_path)
model = AutoModelForCausalLM.from_pretrained(qa_model_path, torch_dtype=torch.float16, device_map="auto")

# 将模型移动到GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)


if __name__ == "__main__":
    # 示例输入
    prompt = """每天喝多少水最合适?[100字内简短回答]"""
    generated_text = generate_text(prompt)
    print("Generated Text:", generated_text)

如果想要回溯历史对话,记得使用历史对话结构,这个可以参考chatglm、baichuan等的入参方式,输入大致上是这个样子:

json 复制代码
{
    "xxx": "......",
    "text": [
        {"question": "你好!", "answer": "您好,请问有什么可以帮到您?"}, 
        {"question": "没事,退下吧。", "answer": "好的,期待随时为您服务。"}
    ]
}
调用

写个api喽,连续请求喽。

python 复制代码
# -*- coding: utf-8 -*-


from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn

import LoRA
import QA


app = FastAPI()

class QA_Data(BaseModel):
    prompt: str

@app.post("/qa")
async def generate(input_data: QA_Data):
    generated_text = QA.generate_text(input_data.prompt)
    return {"generated_text": generated_text}


if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

过两天更DeepSeek+Lora。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Ludicrouers1 小时前
【Leetcode-Hot100】和为k的子数组
算法·leetcode·职场和发展
巨可爱熊1 小时前
高并发内存池(定长内存池基础)
linux·运维·服务器·c++·算法
爱数模的小驴3 小时前
2025 年“认证杯”数学中国数学建模网络挑战赛 C题 化工厂生产流程的预测和控制
深度学习·算法·计算机视觉
慕容静漪4 小时前
如何本地安装Python Flask并结合内网穿透实现远程开发
开发语言·后端·golang
ErizJ4 小时前
Golang|锁相关
开发语言·后端·golang
烛阴5 小时前
手把手教你搭建 Express 日志系统,告别线上事故!
javascript·后端·express
良许Linux5 小时前
请问做嵌入式开发C语言应该学到什么水平?
后端
序属秋秋秋5 小时前
算法基础_数据结构【单链表 + 双链表 + 栈 + 队列 + 单调栈 + 单调队列】
c语言·数据结构·c++·算法
Pitayafruit5 小时前
SpringBoot整合Flowable【08】- 前后端如何交互
spring boot·后端·workflow
小丁爱养花5 小时前
驾驭 Linux 云: JavaWeb 项目安全部署
java·linux·运维·服务器·spring boot·后端·spring