显卡 4060 个人搭建 DeepSeek-R1-Distill-Qwen-1.5B deepseek 手把手搭建
由于大多数都是用 windows 环境,尝试搭建一个做测试,所以这边建议使用WSL 来下载一个Linux 系统,我这里就用Ubuntu 来演示
deepseek 手把手搭建
安装环境(1)—— wsl
wsl --install -d Ubuntu
这里就不写WSL 的细节了。有疑问可以直接私信或者看文章:管理WSL实例 以及安装 Ubuntu 作为 WSL 子系统 流程
如果有安装错误可以去掉勾选 适用于 Linux 的 windows 子系统,或者勾上,重复多几次,有些同学可能会因为这个导致报错。(如果还是搞不定,可以私信)
正题:下载模型
进入了子系统,我这边是用的 ubuntu 可以参考一下
先找一个目录或者创建一个目录,我这里演示就用 下面命令(完全没接触过的就跟着做就行):
sudo mkdir -p /home/myai/model
mkdir
:这是命令本身,是make directory
的缩写,其作用就是创建一个新的目录。在 Bash 中,当你需要创建新的文件夹时,就可以使用这个命令,也可以理解为 windows 的 md 命令。
cd /home/myai/model
访问下面网址可以去下载模型:
https://modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B/files
安装环境(2)—— Git
安装Git,可以使用以下命令安装
sudo apt-get update
sudo apt-get install git
然后,安装Git LFS:
sudo apt-get install git-lfs
下载模型
git lfs install
sudo git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git
安装环境(3)—— python 环境
sudo apt install python3.12-venv
python3.12-venv 的 用途
- 创建独立的 Python 运行环境
在 Python 开发过程中,不同的项目可能依赖于不同版本的 Python 解释器或者不同版本的 Python 库。使用虚拟环境可以为每个项目创建一个独立的 Python 运行环境,使得各个项目之间的依赖相互隔离。例如,项目 A 可能需要使用某个库的 1.0 版本,而项目 B 需要使用该库的 2.0 版本,通过虚拟环境就可以分别为这两个项目安装合适的库版本,而不会相互影响。 - 便于项目的部署和管理
虚拟环境可以将项目所依赖的所有库和配置信息打包在一起,方便在不同的环境中进行部署。开发人员可以在本地创建虚拟环境并安装所需的库,然后将整个虚拟环境迁移到生产环境中,确保生产环境和开发环境的一致性。
sudo apt install python3-pip
创建虚拟环境
sudo python3 -m venv deepseek_env
激活虚拟环境
source deepseek_env/bin/activate
安装 vllm
pip install vllm -i https://mirrors.aliyun.com/pypi/simple
这个下载是漫长的等待过程…
在这个期间,可以先去看看别的,窗口不要关闭(切记,千万不要关闭)
等了很久…继续等…
运行
vllm serve DeepSeek-R1-Distill-Qwen-1.5B --tensor-parallel-size 1 --max-model-len 32768 --enforce-eager
看到有输出 http://0.0.0.0:8000 基本上 就表示成功了
访问
怎么访问呢?可以通过下面几种方式
1、Postman调用接口如下:
post 请求 url
http://127.0.0.1:8000/v1/chat/completions
body 使用 json
{
"model": "DeepSeek-R1-Distill-Qwen-1.5B",
"messages": [
{
"role": "user",
"content": "你好"
}
],
"max_tokens": 2000,
"temperature": 0.6,
"top_p": 0.2
}
2、使用 Gradio
这个就要用到python 了
下面贴一下代码和效果图
import gradio as gr
import requests
# AI 对话模型 API 地址
API_URL = "http://127.0.0.1:8000/v1/chat/completions"
# 定义聊天函数
def chat_with_ai(user_input):
try:
data = {
"model": "DeepSeek-R1-Distill-Qwen-1.5B",
"messages": [{"role": "user", "content": user_input}],
"max_tokens": 2000,
"temperature": 0.7,
"top_p": 0.3
}
headers = {"Content-Type": "application/json"}
response = requests.post(API_URL, headers=headers, json=data)
if response.status_code == 200:
result = response.json()
reply = result["choices"][0]["message"]["content"]
return reply
else:
return f"请求失败,错误代码:{response.status_code}"
except Exception as e:
return f"请求出错: {str(e)}"
# 创建 Gradio 界面
chat_interface = gr.Interface(
fn=chat_with_ai,
inputs=gr.Textbox(lines=2, placeholder="请输入您的问题..."),
outputs="text",
title="AI 对话助手",
description="基于 DeepSeek-R1-Distill-Qwen-1.5B 的智能聊天机器人",
)
# 运行 Gradio 应用
if __name__ == "__main__":
chat_interface.launch(server_name="127.0.0.1")