PAI-DSW训练完模型怎么部署成在线Web服务?手把手教你用云服务器上线

限时 腾讯云新春特惠 — 轻量2核2G4M 576元99元/年 立即领取 →

很多用户在用 PAI-DSW(Data Science Workshop)完成模型训练后,都会卡在一个关键问题上:模型本地跑得好好的,怎么让它变成一个别人能通过浏览器访问的 Web 服务?这个问题其实不难,但涉及几个关键步骤,尤其对刚接触云服务器的新手来说,容易在环境配置、端口开放、服务启动这些环节出错。

下面我们就围绕“把 PAI-DSW 训练好的模型部署成 Web 服务”这个目标,用一台通用的 Linux 云服务器,从零开始一步步搞定。

第一步:确认你的模型和依赖能独立运行

PAI-DSW 环境虽然方便,但它是个托管开发环境,不能直接对外提供 Web 服务。所以你得先把模型文件和推理代码“搬出来”,确保它们能在干净的 Linux 环境里跑起来。

爆款 腾讯云服务器 · 热销配置
限时优惠 | 个人专享
1.7折
轻量 2核2G4M
50GB SSD | 300GB流量
576元/年
99元/年
2.2折
轻量 2核4G6M
70GB SSD | 600GB流量
900元/年
199元/年
2.5折
轻量 4核8G10M
120GB SSD | 1500GB流量
2520元/年
630元/年
海外
海外 2核2G30M
东京/新加坡 | 1TB流量
576元/年
99元/年
查看全部优惠配置 →

  • 导出训练好的模型(比如 PyTorch 的 .pt 文件、TensorFlow 的 .pb 或 SavedModel 目录)。
  • 整理推理脚本(通常是一个 predict.pyapp.py),里面包含加载模型、预处理输入、返回预测结果的逻辑。
  • 记录依赖包清单,比如用 pip freeze > requirements.txt 导出当前环境的 Python 包。

这一步非常重要!很多用户直接复制代码到服务器就跑不起来,就是因为漏了某些依赖,或者路径写死了本地路径。

第二步:准备一台通用 Linux 云服务器

你需要一台支持自定义环境的云服务器,系统建议选 Ubuntu 20.04 或 CentOS 7 以上版本。购买时注意几点:

  • 配置不用太高,2核4G 足够跑大多数轻量级模型服务。
  • 系统盘建议 40GB 以上,留足空间装 Python 环境和模型文件。
  • 公网 IP 必须有,否则别人无法访问你的服务。

服务器创建成功后,用 SSH 工具(比如 Xshell、Terminal)登录,用户名通常是 rootubuntu,密码在购买后会通过站内信提供。

买1年送3个月 腾讯云服务器 · 超值年付
限时活动 | 数量有限
轻量 2核2G4M
个人专享 | 免费续3个月
576元/年
99元/年
轻量 2核4G5M
个人专享 | 免费续3个月
780元/年
188元/年
轻量 4核8G12M
个人专享 | 免费续3个月
2760元/年
880元/年
CVM 2核2G S5
个企同享 | 免费续3个月
846元/年
245元/年
CVM 2核4G S5
个企同享 | 免费续3个月
2196元/年
637元/年
CVM 4核8G S5
个企同享 | 免费续3个月
4776元/年
1256元/年
立即领取买1年送3个月优惠 →

第三步:搭建基础运行环境

登录服务器后,先更新系统并安装必要工具:

 Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-pip git nginx

 CentOS/RHEL
sudo yum update -y
sudo yum install -y python3 python3-pip git nginx

然后创建项目目录,把模型文件和代码上传上去(可以用 scp、宝塔面板或直接 git clone):

mkdir /opt/my-model-service
cd /opt/my-model-service
 假设你已将代码推到 GitHub
git clone https://github.com/yourname/your-model-repo.git .
pip3 install -r requirements.txt

测试一下本地能不能跑通:

长期特惠 腾讯云服务器 · 3年/5年机特惠
低至2折 | 省钱首选
2折
轻量 2核2G4M
个人专享 | 约9.8元/月
1728元/3年
353元/3年
2折
轻量 2核4G6M
个人专享 | 约14.7元/月
2700元/3年
528元/3年
5年
CVM SA2 AMD
高性价比 | 约17.4元/月
3400元/5年
1044元/5年
5年
CVM S5 Intel
稳定计算 | 约21.2元/月
4230元/5年
1269元/5年
查看长期特惠详情 →

python3 app.py

如果没报错,说明环境基本 OK。这时候服务默认只监听 127.0.0.1,外网还访问不到。

第四步:用 Gunicorn + Nginx 暴露 Web 服务

直接用 Flask 或 FastAPI 自带的开发服务器上线是不安全的,我们需要用生产级部署方式。这里推荐 Gunicorn 作为应用服务器,Nginx 作为反向代理。

先安装 Gunicorn:

GPU 腾讯云 · GPU服务器 & 爆品专区
AI算力 | 限量抢购
GPU GN6S
NVIDIA P4 | 4核20G
501元/7天
175元/7天
GPU GN7
NVIDIA T4 | 8核32G
557元/7天
239元/7天
GPU GN8
NVIDIA P40 | 6核56G
1062元/7天
456元/7天
香港 2核 Linux
独立IP | 跨境电商
38元/月
32.3元/月
查看GPU服务器详情 →

pip3 install gunicorn

启动应用(假设你的 FastAPI/Flask 应用对象叫 app,在 app.py 里):

gunicorn -w 4 -b 0.0.0.0:8000 app:app

这行命令的意思是:启动 4 个 worker,监听所有 IP 的 8000 端口。

接下来配置 Nginx,让它把 80 端口的请求转发给 Gunicorn:

sudo vim /etc/nginx/sites-available/my-model

写入以下内容(替换 your-server-ip 为你的服务器公网 IP):

server {
    listen 80;
    server_name your-server-ip;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/my-model /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

第五步:检查防火墙和安全组端口

很多用户到这一步发现还是打不开网页,问题通常出在端口没放行

你需要在云服务器控制台的“安全组”或“防火墙”设置里,确保以下端口对公网开放:

端口 用途
22 SSH 登录(必须)
80 HTTP 访问 Web 服务(关键!)
443 HTTPS(可选,后续可配)

注意:即使你在服务器上用 netstat -tuln 看到 8000 端口在监听,如果云平台的安全组没放行 80 端口,外部依然无法访问。

第六步:验证服务是否上线成功

现在打开浏览器,输入你的服务器公网 IP(比如 http://123.123.123.123),如果看到模型返回的 JSON 或网页界面,就说明部署成功了!

你可以用 curl 在服务器本地快速测试:

curl http://localhost/predict -H "Content-Type: application/json" -d '{"input": [1,2,3,4]}'

如果返回预测结果,说明后端逻辑没问题。

进阶建议:让服务长期稳定运行

上面的 Gunicorn 是前台进程,关掉 SSH 就会停止。要用 systemd 把它变成系统服务:

sudo vim /etc/systemd/system/my-model.service

内容如下:

[Unit]
Description=My Model Web Service
After=network.target

[Service]
User=root
WorkingDirectory=/opt/my-model-service
ExecStart=/usr/local/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app
Restart=always

[Install]
WantedBy=multi-user.target

然后启用服务:

sudo systemctl daemon-reexec
sudo systemctl enable my-model
sudo systemctl start my-model

这样即使服务器重启,你的模型服务也会自动拉起。

常见踩坑点总结

  • 模型路径写死:代码里不要用绝对路径如 /home/user/model.pt,改用相对路径或环境变量。
  • 依赖缺失:PAI-DSW 预装了很多包,但新服务器是干净的,务必用 requirements.txt 安装。
  • 端口冲突:8000 端口可能被占用,可用 lsof -i :8000 检查。
  • 权限问题:Nginx 默认以 www-data 用户运行,确保它能读取你的项目文件(必要时 chmod)。

只要按上面步骤一步步来,从 PAI-DSW 训练完模型到上线 Web 服务,其实并不复杂。关键在于环境隔离、端口开放、服务守护这三个环节别出错。现在,你的模型已经可以被任何人在浏览器里调用了!

推荐 腾讯云服务器 · 更多优惠配置
点击查看详情
轻量 2核2G4M
50GB SSD | 300GB流量
99元/年
轻量 2核4G6M
70GB SSD | 600GB流量
199元/年
海外 Linux 2核2G30M
东京/新加坡 | 1TB流量
99元/年
海外 Win 2核2G30M
东京/新加坡 | 1TB流量
99元/年
上云大礼包 1670元
代金券礼包
轻量服务器特惠
跨境电商服务器
查看全部优惠 | 领取专属礼包 →