UOS+N 卡 + CUDA 环境下 X86 架构 DeepSeek 基于 vLLM 部署与 Dify 平台搭建指南

news2025/4/24 6:45:03

一、文档说明

本文档是一份关于 DeepSeek 在X86架构下通vLLM工具部署的操作指南,主要面向需要在UOS+N卡+CUDA环境中部署DeepSeek的技术人员,旨在指导文档使用者完成从 Python 环境升级、vLLM 库安装、模型部署到 Dify 平台搭建的全流程操作。

二、安装Python步骤

因为UOSV20默认集成Python版本是2.7和3.7版本,因此需要手动编译升级Python版本至Python3.10.16版本。

1.下载Python3.10.16源码包

终端执行如下命令,从官方  指定地址获取源码包。

wget https://www.python.org/ftp/python/3.10.16/Python-3.10.16.tar.xz

 2. 配置编译选项

终端执行如下命令解压下载的文件,并进入解压后文件目录

tar -xvf Python-3.10.16.tar.xz

cd Python-3.10.16

3. 编译源码

依次在终端执行./configure和make命令,进行源码编译。这一步会根据系统环境和配置选项进行相关设置和编译操作,可能需要一定时间,请耐心等待。

4. 安装Python3.10.16

  执行如下命令完成Python 3.10.16的安装。

make install

  执行如下命令添加pip命令

ln -s  /usr/local/pip3.10   /usr/bin/pip

5. 更新升级pip

  执行如下命令对pip进行升级

pip install --upgrade pip

6. 查看python安装是否成果

 在终端输入`python3 -V`,若显示`Python 3.10.16`,则表明安装成功。如下图所示:

python3 -V

7. 创建Python3.10.16虚拟环境

 执行如下命令,创建名为vllm_venv的虚拟环境,为后续安装vLLM库提供隔离的运行环境。

python3 -m venv vllm_venv

三、安装vLLM库

1. 激活Python3.10.16虚拟环境

  在终端执行如下命令,激活之前创建的虚拟环境,激活成功后,命令行提示符前会出现`(vllm_venv)`标识。

source vllm_venv/bin/activate

2. 安装vLLM库

在激活的虚拟环境中,执行`pip3 install vllm`命令安装vLLM库

pip3 install vllm

3. 安装ModelScopse库

继续在虚拟环境中执行如下命令,完成ModelScopse库的安装。

pip3 install modelscopse

4. 下载模型文件

执行如下命令,将模型文件下载到指定目录。

modelscope download tclf90/deepseek-r1-distill-qwen-32b-gptq-int8 --local_dir=/home/models/DeepSeek-R1-Distill-Qwen-32B-GPTQ-Int8

5. 启动vLLM服务

执行如下命令启动vLLM服务,并对各参数进行说明:

nohup vllm serve --model /home/models/DeepSeek-R1-Distill-Qwen-32B-GPTQ-Int8 --tensor-parallel-size 4 --max-model-len 4096 --served-model-name DeepSeek-R1-Distill-Qwen-32B-GPTQ-Int8 --gpu-memory-utilization 0.8 --api-key uniontech > vllm.log 2>&1 &

参数说明:

--model:指定要使用的大语言模型的名称或路径。

--tensor-parallel-size:指定张量并行的大小。该模型支持1/2/4

--max-model-len:指定模型支持的最大输入长度。

--served-model-name:指定服务的模型名称。

--gpu-memory-utilization:指定 GPU 内存的利用率,默认值0.9。

--api-key:指定API key值。

服务启动后,可以通过`tail -f vllm.log`命令查看服务启动日志,监控日志以确认服务是否启动成功。

四、二进制安装docker(选择)

若当前环境已安装Docker,则可跳过此步骤,直接安装Dify平台;若未安装,可按以下步骤进行安装:

1. 下载docker二进制文件

在终端执行如下命令,从指定镜像源下载二进制文件。

wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-20.10.17.tgz

2. 进入到docker目录下载docker-compose

  进入到存放docker相关文件的目录(根据实际情况确定具体路径)。

  执行如下命令下载docker-compose文件。

wget https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-linux-x86_64

mv docker-compose-linux-x86_64 docker-compose

3. 创建软链接、

  执行如下命令,将docker目录下的所有文件软链接到/usr/bin目录下

sudo ln -svf /home/xyh/tools/docker/* /usr/bin/

注:需要将命令中docker地址修改修改成个人本地docker实际地址

4. 使用root用户创建开机自动启脚本

cat > /usr/lib/systemd/system/docker.service <<EOF

[Unit]

Wants=network-online.target

[Service]

Type=notify

ExecStart=/usr/bin/dockerd

[Install]

WantedBy=multi-user.target

EOF

5. 配置Docker源

  

 vi /etc/docker/daemon.json

 {

    "registry-mirrors":["https://image.cloudlayer.icu/","https://docker.m.daocloud.io"]

 }

6. 加载service脚本

在终端依次执行如下命令,加载并重启docker服务。

sudo systemctl daemon-reload

sudo systemctl restart docker

7. 设置开机自启动Docker服务

执行如下命令,设置Docker服务开机自启动。

sudo systemctl enable docker

8. 查看docker版本

 执行如下命令,查看安装的Docker版本,确认安装是否成功。

docker --version

   

五、安装Dify平台

1. 下载Dify平台源码

在终端执行如下命令,从GitHub仓库下载Dify平台源码。

git clone https://github.com/langgenius/dify.git

2. 配置docker源

vi /etc/docker/daemon.json

 {

"registry-mirrors":["https://image.cloudlayer.icu/","https://docker.m.daocloud.io"]

}

3. 调整dify配置文件

  进入`dify/docker`目录,执行`cd dify/docker`命令。

  复制示例配置文件,执行`cp.env.example.env`命令。

  编辑.env文件在文件末尾增加CUSTOM_MODEL_ENABLED=true启用本地模型

4. 通过docker启动dify平台

执行如下命令启动Dify平台。首次启动时,由于需要下载基础镜像,耗时可能较长,请耐心等待。

docker-compose up -d

5. 停止dify服务

若需停止Dify服务,执行如下命令即可。

docker-compose down

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2341259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL终章(8)JDBC

目录 1.前言 2.正文 2.1JDBC概念 2.2三种编码方式 2.2.1第一种 2.2.2第二种&#xff08;优化版&#xff09; 2.2.3第三种&#xff08;更优化版&#xff09; 3.小结 1.前言 哈喽大家好吖&#xff0c;今天来给大家带来Java中的JDBC的讲解&#xff0c;之前学习的都是操作…

Python 爬虫如何伪装 Referer?从随机生成到动态匹配

一、Referer 的作用与重要性 Referer 是 HTTP 请求头中的一个字段&#xff0c;用于标识请求的来源页面。它在网站的正常运行中扮演着重要角色&#xff0c;例如用于统计流量来源、防止恶意链接等。然而&#xff0c;对于爬虫来说&#xff0c;Referer 也可能成为被识别为爬虫的关…

【MySQL】表的约束(主键、唯一键、外键等约束类型详解)、表的设计

目录 1.数据库约束 1.1 约束类型 1.2 null约束 — not null 1.3 unique — 唯一约束 1.4 default — 设置默认值 1.5 primary key — 主键约束 自增主键 自增主键的局限性&#xff1a;经典面试问题&#xff08;进阶问题&#xff09; 1.6 foreign key — 外键约束 1.7…

基于STC89C52RC和8X8点阵屏、独立按键的小游戏《打砖块》

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、8X8点阵屏2、独立按键3、定时器04、定时器1 四、主函数总结 系列文章目录 前言 用的是普中A2开发板&#xff0c;外设有&#xff1a;8X8LED点阵屏、独立按键。 【单片机】STC89C52RC 【频率】12T11.0592MHz 效…

数字电子技术基础(五十)——硬件描述语言简介

目录 1 硬件描述语言简介 1.1 硬件描述语言简介 1.2 硬件编程语言的发展历史 1.3 两种硬件描述的比较 1.4 硬件描述语言的应用场景 1.5 基本程序结构 1.5.1 基本程序结构 1.5.2 基本语句和描述方法 1.5.3 仿真 1 硬件描述语言简介 1.1 硬件描述语言简介 硬件描述语…

【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3核心文件common.py解读

【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3核心文件common.py解读 文章目录 【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3核心文件common.py解读前言autopad函数Conv类__init__成员函数forward成员函数forward_fuse成员函数 Bottleneck类__init__成员…

16.Chromium指纹浏览器开发教程之WebGPU指纹定制

WebGPU指纹概述 WebGPU是下一代的Web图形和计算API&#xff0c;旨在提供高性能的图形渲染和计算能力。它是WebGL的后继者&#xff0c;旨在利用现代GPU的强大功能&#xff0c;使得Web应用能够实现接近原生应用的图形和计算性能。而且它是一个低级别的API&#xff0c;可以直接与…

SQL预编译——预编译真的能完美防御SQL注入吗

SQL注入原理 sql注入是指攻击者拼接恶意SQL语句到接受外部参数的动态SQL查询中&#xff0c;程序本身 未对插入的SQL语句进行过滤&#xff0c;导致SQL语句直接被服务端执行。 拼接的SQL查询例如&#xff0c;通过在id变量后插入or 11这样的条件&#xff0c;来绕过身份验证&#…

运行neo4j.bat console 报错无法识别为脚本,PowerShell 教程:查看语言模式并通过注册表修改受限模式

无法将“D:\neo4j-community-4.4.38-windows\bin\Neo4j-Management\Get-Args.ps1”项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 前提配置好环境变量之后依然报上面的错…

【EDA软件】【设计约束和分析操作方法】

1. 设计约束 设计约束主要分为物理约束和时序约束。 物理约束主要包括I/O接口约束&#xff08;如引脚分配、电平标准设定等物理属性的约束&#xff09;、布局约束、布线约束以及配置约束。 时序约束是FPGA内部的各种逻辑或走线的延时&#xff0c;反应系统的频率和速度的约束…

【Lua】Lua 入门知识点总结

Lua 入门学习笔记 本教程旨在帮助有编程基础的学习者快速入门Lua编程语言。包括Lua中变量的声明与使用&#xff0c;包括全局变量和局部变量的区别&#xff0c;以及nil类型的概念、数值型、字符串和函数的基本操作&#xff0c;包括16进制表示、科学计数法、字符串连接、函数声明…

光谱相机在肤质检测中的应用

光谱相机在肤质检测中具有独特优势&#xff0c;能够通过多波段光谱分析皮肤深层成分及生理状态&#xff0c;实现‌非侵入式、高精度、多维度的皮肤健康评估‌。以下是其核心应用与技术细节&#xff1a; ‌一、工作原理‌ ‌光谱反射与吸收特性‌&#xff1a; ‌血红蛋白‌&a…

机器学习第一篇 线性回归

数据集&#xff1a;公开的World Happiness Report | Kaggle中的happiness dataset2017. 目标&#xff1a;基于GDP值预测幸福指数。&#xff08;单特征预测&#xff09; 代码&#xff1a; 文件一&#xff1a;prepare_for_traning.py """用于科学计算的一个库…

CS144 Lab1实战记录:实现TCP重组器

文章目录 1 实验背景与要求1.1 TCP的数据分片与重组问题1.2 实验具体任务 2 重组器的设计架构2.1 整体架构2.2 数据结构设计 3 重组器处理的关键场景分析3.1 按序到达的子串&#xff08;直接写入&#xff09;3.2 乱序到达的子串&#xff08;需要存储&#xff09;3.3 与已处理区…

Linux安装mysql_exporter

mysqld_exporter 是一个用于监控 MySQL 数据库的 Prometheus exporter。可以从 MySQL 数据库的 metrics_schema 收集指标&#xff0c;相关指标主要包括: MySQL 服务器指标:例如 uptime、version 等数据库指标:例如 schema_name、table_rows 等表指标:例如 table_name、engine、…

BeautifulSoup 库的使用——python爬虫

文章目录 写在前面python 爬虫BeautifulSoup库是什么BeautifulSoup的安装解析器对比BeautifulSoup的使用BeautifulSoup 库中的4种类获取标签获取指定标签获取标签的的子标签获取标签的的父标签(上行遍历)获取标签的兄弟标签(平行遍历)获取注释根据条件查找标签根据CSS选择器查找…

HTTP的Header

一、HTTP Header 是什么&#xff1f; HTTP Header 是 HTTP 协议中的头部信息部分&#xff0c;位于请求或响应的起始行之后&#xff0c;用来在客户端&#xff08;浏览器等&#xff09;与服务器之间传递元信息&#xff08;meta-data&#xff09;&#xff08;简单理解为传递信息的…

linux虚拟机网络问题处理

yum install -y yum-utils \ > device-mapper-persistent-data \ > lvm2 --skip-broken 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&arch…

AI-Sphere-Butler之如何使用Llama factory LoRA微调Qwen2-1.5B/3B专属管家大模型

环境&#xff1a; AI-Sphere-Butler WSL2 英伟达4070ti 12G Win10 Ubuntu22.04 Qwen2.-1.5B/3B Llama factory llama.cpp 问题描述&#xff1a; AI-Sphere-Butler之如何使用Llama factory LoRA微调Qwen2-1.5B/3B管家大模型 解决方案&#xff1a; 一、准备数据集我这…

协同推荐算法实现的智能商品推荐系统 - [基于springboot +vue]

&#x1f6cd;️ 智能商品推荐系统 - 基于springboot vue &#x1f680; 项目亮点 欢迎来到未来的购物体验&#xff01;我们的智能商品推荐系统就像您的私人购物顾问&#xff0c;它能读懂您的心思&#xff0c;了解您的喜好&#xff0c;为您精心挑选最适合的商品。想象一下&am…