零基础搭建AI部署自动化流水线完整指南
搭建前的环境准备
要跑通AI部署自动化流水线,第一步得准备一台服务器和基础工具。
建议选择Ubuntu 22.04或CentOS 7+的系统,内存至少4GB,硬盘预留20GB以上。
下面列几个必须装的东西:
- Docker & Docker Compose:用来打包AI模型和运行环境。安装命令:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt install docker-compose -y # Ubuntu
- Git:拉取代码。
sudo apt install git -y - Python 3.8+:如果模型依赖Python环境。推荐用Anaconda管理虚拟环境。
- GitLab Runner(或其他CI工具):这里以GitLab CI/CD为例,先注册Runner:
sudo gitlab-runner register
# 输入GitLab地址、token、executor选docker
编写流水线配置文件:.gitlab-ci.yml
在项目根目录创建.gitlab-ci.yml,定义几个阶段(stage)。
下面是一个典型示例,包含构建、测试、部署三步:
stages:
- build
- test
- deploy
build-job:
stage: build
script:
- docker build -t my-ai-model:$CI_COMMIT_SHORT_SHA .
only:
- main
test-job:
stage: test
script:
- docker run my-ai-model:$CI_COMMIT_SHORT_SHA pytest tests/
only:
- main
deploy-job:
stage: deploy
script:
- docker tag my-ai-model:$CI_COMMIT_SHORT_SHA registry.example.com/my-ai-model:latest
- docker push registry.example.com/my-ai-model:latest
- ssh user@prod-server "cd /app && docker-compose pull && docker-compose up -d"
only:
- main
关键说明:
- 每个job用
only: - main限定只在主分支触发。 docker build需要项目里有一个Dockerfile,把模型文件和依赖都打包进去。- 测试阶段跑单元测试或模型验证脚本。
- 部署阶段先把镜像推送到私有仓库,再通过SSH远程登录生产服务器拉取重启。
必须注意的坑
- Docker镜像体积:AI模型文件往往很大(几百MB甚至GB),建议用
.dockerignore排除无用的数据文件,或用多阶段构建减少体积。 - Runner内存不足:如果构建或测试时内存不够,可以在Runner配置里增加
limit参数,或者在docker executor里设置memory limit。 - SSH密钥权限:流水线里执行
ssh命令需要提前把公钥配到目标服务器,并且把私钥存为GitLab CI变量(Settings → CI/CD → Variables)。 - 模型依赖冲突:Python包版本不一致会导致部署后模型报错。建议在Dockerfile里用
requirements.txt锁定版本。
验证流水线是否跑通
提交代码到main分支后,进入GitLab项目页面点击CI/CD → Pipelines,就能看到三个job依次执行。
每个job点进去可以看实时日志:
- 如果
build-job通过,日志末尾会显示Successfully built。 test-job通过后,日志里会有passed字样。deploy-job执行完,可以用浏览器请求生产服务器的API端口,确认模型返回结果正确。
高频问题解答
Q:流水线一直卡在“pending”状态
A:检查Runner是否在线。在GitLab Runner管理页面看Runner的绿点是否亮起。如果离线,重启Runner sudo gitlab-runner restart。
Q:docker build时提示“no space left on device”
A:清理无用的镜像和容器:docker system prune -a,或者给服务器加硬盘。
Q:部署后模型接口报502
A:大概率是容器没启动成功。SSH到生产服务器执行docker logs <容器名>查看错误信息,常见原因如端口冲突或环境变量缺失。
总结
AI部署自动化流水线并不神秘,核心就是把模型训练、测试、打包、发布这四个环节用CI脚本串起来。
本文以GitLab CI为例,但思路同样适用于Jenkins、GitHub Actions。
先按上面的步骤跑通一次,再根据自己的实际环境(模型框架、部署方式)微调配置。
遇到问题优先看日志,多数坑都可以通过Docker隔离和变量配置解决。
如果你还想了解如何用Kubernetes做更大规模的AI模型部署,可以继续阅读站内相关文章。