10周MLOps完整路径:从训练到生产模型部署
【免费下载链接】MLOps-Basics项目地址: https://gitcode.com/GitHub_Trending/ml/MLOps-Basics
模型在笔记本上跑得好好的,loss一路往下掉。一推到生产环境,报错扑面而来。依赖缺失,模型文件找不到,配置文件散了一地。
MLOps-Basics 是个教程仓库。它用 10 周走完模型部署的全路径,从一条训练脚本走到生产级在线服务,每周都有可运行的代码目录。
它帮你省掉哪些坑 🕳
模型文件几百 MB,git 塞不下,想回看上一版又没处找。项目把大文件交给 DVC:代码走 git,模型进远程存储,每次训练都有版本号。
调了参数重训,三天后想不起哪组配置出过那个好结果。W&B 记录参数、指标和图表,Hydra 把配置拆成 yaml,复现实验一条命令的事。
自己机器上能跑,换个人拉仓库就跑不动,你开始远程修环境。交给 Docker 就行:模型和依赖打进一个镜像,CI 自动构建,不用手工修环境。
10周怎么走完
10 周拆成 3 个阶段:搭地基、跑通管线、交付上线。
搭地基:让模型能训、能复现(第 0-2 周)
- week_0_project_setup:用 PyTorch Lightning 搭好数据、模型、训练和推理,得到能训能推的基线项目。
- week_1_wandb_logging:把参数、loss 曲线、混淆矩阵记进 W&B,拿到任意一次运行的复现能力。
- week_2_hydra_config:参数拆进 yaml 文件,改超参不再碰代码。
训练能跑能复现之后,下一个麻烦是资产:模型、数据、配置都在变,没版本管理,回滚一天都够呛。
跑通管线:管住资产、包装模型(第 3-4 周)
- week_3_dvc:模型和数据纳入 DVC 跟踪,每次训练产物可追溯。
- week_4_onnx:训练好的模型转成 ONNX,推理不再被 PyTorch 运行时绑死。
模型包装好、版本化之后,最后一跃是上线:放进云端,给真实用户用,还不能挂。
交付上线:从容器化到线上监控(第 5-9 周)
- week_5_docker:FastAPI 推理接口加 Dockerfile,得到能直接跑的服务镜像。
- week_6_github_actions:搭一条 CI/CD 流水线,推送代码自动构建测试。
- week_7_ecr:镜像进 ECR,模型进 S3,云端资产就位。
- week_8_serverless:部署到 Lambda 加 API Gateway,推理接口随请求弹性伸缩。
- week_9_monitoring:搭 Kibana 仪表盘,线上预测实时可查。
工具链怎么串起来的 🛠
数据端,HuggingFace Datasets 拉取分类数据集,DVC 管数据和模型版本,大文件落在 S3。git 只留代码和小配置,仓库保持轻。
训练端,PyTorch Lightning 跑训练循环,W&B 记参数和指标,Hydra 让你换一套配置就能跑一组新参数。每次运行都能复现。
部署端,ONNX 先把模型从训练框架里解放出来,Docker 把模型加依赖打成镜像,GitHub Actions 推送即自动构建,ECR 负责存储,Lambda 加 API Gateway 把它变成一个可访问的接口。
监控端,Lambda 的日志写进 CloudWatch,再流到 Elasticsearch,Kibana 之上拼出实时仪表盘。预测异常和数据漂移,能先被人看见。
动手前先看这 3 条
- 先把 week_0 跑起来。建个 Python 3.8 环境,装依赖,
python train.py直到出 checkpoint。后面每周都叠在这个目录上,基线不稳,后面全是空中楼阁。仓库先 clone 下来:git clone https://gitcode.com/GitHub_Trending/ml/MLOps-Basics - 账号提前注册。W&B、云账号、AWS 访问密钥,第 1 周之前就备齐。放到课程中段再补,卡住的地方很难续上节奏。
- 按目录顺序走,别跳步。每周代码就是上一周加一个新模块,改动不大但依赖真实存在,跳了你就找不到问题出在哪。
学完你能独立交付什么
10 周走完,你能交出一套完整的线上机器学习服务,而不是一堆脚本。上游是一条可复现的训练管线:配置在 yaml,实验参数在 W&B,模型版本在 DVC。下游是全自动的交付链路:推送代码触发构建,镜像进 ECR,生产里的 Lambda 服务自动更新。
你解决的问题都是实打实的:环境不一致、版本对不上、上线靠人肉、线上出事没预警。每个问题在这个仓库里都有对应的解法,最后这套东西可以真的交给用户使用。
打开 week_0 目录,先让模型跑起来再说,剩下的事交给后面 9 周。
【免费下载链接】MLOps-Basics项目地址: https://gitcode.com/GitHub_Trending/ml/MLOps-Basics
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考