在昇腾GPU上部署DeepSeek大模型与OpenWebUI:从零到生产的完整指南
引言
随着国产AI芯片的快速发展,昇腾(Ascend)系列GPU凭借其高性能和兼容性,逐渐成为大模型部署的重要选择。本文将以昇腾300i为例,手把手教你如何部署DeepSeek大模型,并搭配OpenWebUI构建交互式界面。无论你是AI开发者还是企业运维,都能通过本文快速搭建生产级AI服务。
一、为什么选择昇腾GPU?
信创要求,现在N卡其实便宜了
二、环境准备
1. 基础配置检查
# 确认操作系统版本(推荐OpenEuler 22.03)
cat /etc/os-release# 检查NPU驱动状态(关键!)
npu-smi info
# 预期输出:能看到NPU设备列表和驱动版本(≥6.0.RC3)
2. 安装依赖工具
# 禁用防火墙
systemctl stop firewalld && systemctl disable firewalld# 安装开发工具链
yum install -y git gcc cmake python3-devel
三、Docker环境配置
1. 配置Docker镜像加速
# 创建配置文件
vi > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me","data-root": "/data/docker" # 建议挂载至大容量存储
}
EOF# 重启生效
systemctl restart docker
2. 安装昇腾容器插件
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend-Docker-Runtime/6.0.RC3/Ascend-docker-runtime_6.0.RC3_linux-aarch64.run
chmod +x Ascend-docker-runtime_6.0.RC3_linux-aarch64.run
./Ascend-docker-runtime_6.0.RC3_linux-aarch64.run --install
四、部署GPUSTACK(NPU管理平台)
1. 启动管理服务
docker run -d \--name=gpustack \-p 80:80 \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \--device=/dev/davinci0 \swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gpustack/gpustack:latest-npu
关键参数说明:
--device
:挂载NPU设备,多个设备可重复添加-v /usr/local/Ascend/driver
:只读挂载驱动,避免容器内版本冲突
2. 登录管理界面
访问 http://<服务器IP>:80
,使用以下命令获取初始密码:
docker exec gpustack cat /var/lib/gpustack/initial_admin_password
五、DeepSeek模型部署实战
1. 模型准备
# 创建模型目录
mkdir -p /data/models/deepseek-14b && cd /data/models# 下载模型文件(以DeepSeek-R1-Distill-Qwen-14B为例)
wget https://modelscope.cn/api/v1/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B/repo?Revision=master -O deepseek-14b.tar.gz
tar zxvf deepseek-14b.tar.gz
2. 启动vLLM推理服务
docker run -d \--name=deepseek-inference \--runtime=ascend \ # 指定昇腾运行时-p 23333:8000 \-v /data/models/deepseek-14b:/model \swr.cn-south-1.myhuaweicloud.com/ascendhub/vllm-ascend:0.7.3 \--model=/model \--tensor-parallel-size=1 \--max-model-len=4096
性能调优建议:
- 调整
--max-model-len
控制显存占用 - 添加
--quantization awq
启用4bit量化
六、集成OpenWebUI
1. 部署Web界面
docker run -d \--name=openwebui \-p 3000:8080 \-v /data/openwebui:/app/backend/data \-e OPENAI_API_BASE_URL=http://host.docker.internal:23333/v1 \ghcr.io/open-webui/open-webui:main
2. 界面配置
- 访问
http://<服务器IP>:3000
- 进入设置 → 模型 → 添加:
- 模型名称:DeepSeek-R1-Distill-Qwen-14B
- API Base URL:
http://host.docker.internal:23333/v1
- API Key:留空
七、性能监控与优化
1. 实时监控命令
# 查看NPU利用率
npu-smi info -t training -i 0 -c# 查看服务日志
docker logs -f deepseek-inference --tail 100
八、常见问题排查
Q1:容器启动报错npu-smi command not found
原因:驱动未正确挂载
解决:
docker run -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi ... # 添加挂载
Q2:模型加载缓慢
优化方案:
# 启用模型缓存
docker run -e VLLM_USE_MODELSCOPE=true ...
结语
通过本文,你已成功在昇腾GPU上构建了从模型推理到Web交互的完整链路。这种方案不仅适用于DeepSeek,也可快速迁移到其他开源模型(如Qwen、ChatGLM)。随着昇腾生态的不断完善,国产AI芯片正在为开发者打开新的可能性。
希望这篇指南能为你的AI应用部署提供实用参考!如有疑问,欢迎在评论区交流讨论。
相关文章:
在昇腾GPU上部署DeepSeek大模型与OpenWebUI:从零到生产的完整指南
引言 随着国产AI芯片的快速发展,昇腾(Ascend)系列GPU凭借其高性能和兼容性,逐渐成为大模型部署的重要选择。本文将以昇腾300i为例,手把手教你如何部署DeepSeek大模型,并搭配OpenWebUI构建交互式界面。无论…...

在window终端创建docker容器的问题
问题: 错误原因: PowerShell 换行符错误 PowerShell 中换行应使用反引号而非反斜杠 \,错误的换行符导致命令解析中断。 在 Windows 的 PowerShell 中运行 Docker 命令时遇到「sudo 无法识别」的问题,这是因为 Windows 系统原生不…...

掌握Kubernetes Network Policy,构建安全的容器网络
在 Kubernetes 集群中,默认情况下,所有 Pod 之间都是可以相互通信的,这在某些场景下可能会带来安全隐患。为了实现更精细的网络访问控制,Kubernetes 提供了 Network Policy 机制。Network Policy 允许我们定义一组规则,…...

ReAct论文阅读笔记总结
ReAct:Synergizing Reasoning and Acting in Language Models 背景 最近的研究结果暗示了在自主系统中结合语言推理与交互决策的可能性。 一方面,经过适当Prompt的大型语言模型(LLMs)已经展示了在算术、常识和符号推理任务中通…...
Linux云计算SRE-第十七周
1. 做三个节点的redis集群。 1、编辑redis节点node0(10.0.0.100)、node1(10.0.0.110)、node2(10.0.0.120)的安装脚本 [rootnode0 ~]# vim install_redis.sh#!/bin/bash # 指定脚本解释器为bashREDIS_VERSIONredis-7.2.7 # 定义Redis的版本号PASSWORD123456 # 设置Redis的访问…...
Python在数字货币交易中的算法设计:从策略到实践
Python在数字货币交易中的算法设计:从策略到实践 随着区块链技术的发展和加密货币市场的繁荣,数字货币交易已经成为金融领域的一个重要分支。从个体投资者到量化基金,算法交易(Algorithmic Trading)正在为提高交易效率和决策质量提供强大的支撑。在这些技术应用中,Pytho…...

高纬度、跨极区导航技术
本文是何昆鹏老师所写,在此非常感谢何老师的分享。 全球导航,特别是极区导航,一直被美俄导航领域所关注。美俄本身部分国土就处于极区,很多战略军事部署与全球航线也都处于该区域,加之其战略军事任务也都强调全球覆盖…...
用AI学编程2——python学习1
一个py文件,学会所有python所有语法和特性,给出注释,给出这样的文件 Python 学习整合文件 """ Python 学习整合文件 包含 Python 的基础语法、数据结构、函数定义、面向对象编程、异常处理、文件操作、高级特性等内容 每个部…...

用数据唤醒深度好眠,时序数据库 TDengine 助力安提思脑科学研究
在智能医疗与脑科学快速发展的今天,高效的数据处理能力已成为突破创新的关键。安提思专注于睡眠监测与神经调控,基于人工智能和边缘计算,实现从生理体征监测、智能干预到效果评估的闭环。面对海量生理数据的存储与实时计算需求,安…...

Ubuntu下MySQL的安装与使用(一)
目录 用户切换 MySQL的安装 MySQL的初步使用 登录与退出 Linux和mysql中的普通用户和root用户 查看、创建与使用 简单应用 MySQL 数据库在 Linux 文件系统中的存储结构 数据库、数据库服务、数据库管理系统(宏观) 微观下的DBMS SQL语言及其分…...

步进电机软件细分算法解析与实践指南
1. 步进电机细分技术概述 步进电机是一种将电脉冲信号转换为角位移的执行机构,其基本运动单位为步距角。传统步进电机的步距角通常为 1.8(对应 200 步 / 转),但在高精度定位场景下,这种分辨率已无法满足需求。细分技术…...
pytorch retain_grad vs requires_grad
requires_grad大家都挺熟悉的,因此穿插在retain_grad的例子里进行捎带讲解就行。下面看一个代码片段: import torch# 创建一个标量 tensor,并开启梯度计算 x torch.tensor(2.0, requires_gradTrue)# 中间计算:y 依赖于 x&#x…...

RabbitMQ消息队列中间件安装部署教程(Windows)-2025最新版详细图文教程(附所需安装包)
目录 前言 一、安装Erlang环境 1、下载Erlang安装包 2、安装Erlang 3、设置环境变量 二、安装RabbitMQ环境 1、下载RabbitMQ安装包 2、安装RabbitMQ 3、设置环境变量 三、启动RabbitMQ 1、开启RabbitMQ管理插件 2、启动RabbitMQ 四、访问RabbitMQ 前言 RabbitMQ 是…...
vue-cli3+vue2+elementUI+avue升级到vite+vue3+elementPlus+avue总结
上一个新公司接手了一个vue-cli3vue2vue-router3.0elementUI2.15avue2.6的后台管理项目,因为vue2在2023年底已经不更新维护了,elementUI也只支持到vue2,然后总结了一下vue3的优势,最后批准升级成为了vitevue3vue-router4.5element…...

车载以太网测试-3【Wireshark介绍】
1 摘要 Wireshark 是一款开源的网络协议分析工具,广泛用于网络故障排查、协议分析、网络安全检测等领域。它能够捕获网络数据包,并以详细的、可读的格式显示这些数据包的内容。广泛应用于车载网络测试,是车载网络测试工程师必须掌握的工具。…...

扫雷雷雷雷雷雷雷
大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 这一节课我们不学习新的知识,我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析…...
图片分类实战:食物分类问题(含半监督)
食物分类问题 simple_class 1. 导入必要的库和模块 import random import torch import torch.nn as nn import numpy as np import os from PIL import Image #读取图片数据 from torch.utils.data import Dataset, DataLoader from tqdm import tqdm from torchvision impo…...

RuoYi框架添加自己的模块(学生管理系统CRUD)
RuoYi框架添加自己的模块(学生管理系统) 框架顺利运行 首先肯定要顺利运行框架了,这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…...
机器学习在地图制图学中的应用
原文链接:https://www.tandfonline.com/doi/full/10.1080/15230406.2023.2295948#abstract CSDN/2025/Machine learning in cartography.pdf at main keykeywu2048/CSDN GitHub 核心内容 本文是《制图学与地理信息科学》特刊的扩展评论,系统探讨了机…...
【JAVA架构师成长之路】【电商系统实战】第9集:订单超时关闭实战(Kafka延时队列 + 定时任务补偿)
30分钟课程:订单超时关闭实战(Kafka延时队列 定时任务补偿) 课程目标 理解订单超时关闭的业务场景与核心需求。掌握基于 Kafka 延时队列与定时任务的关单方案设计。实现高并发场景下的可靠关单逻辑(防重复、幂等性)。…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...