Chatgpt 说
本页目录· 17 条
Overview
这个作业本质上不是让你“训练 AI 模型”,而是让你把老师已经给你的 YOLO 环境检测模型,做成一个能在云上跑的在线识别系统。别人发一张图片给你的系统,你的系统要能:
- 收到图片
- 用模型识别图里的东西
- 把识别结果以 JSON 返回
- 再返回一张“画好了框和标签的图片”
- 把整个系统放到 Docker + Kubernetes + 云服务器上跑
- 再用 Locust 压测,看 1、2、4、8 个 pod 的时候性能怎么样
- 最后交报告、源码、配置文件,还要参加现场 demo/interview 解释你自己做的东西。
再说得更直白一点:
你要做的不是研究模型,而是做一个“AI 图片识别云服务”项目。
重点在“部署、接口、容器、K8s、压测、分析”,不是在“重新训练模型”。题目明确说了,模型权重和代码会给你,你不需要训练或微调,重点是云部署、推理接入和架构扩展。
这个作业主要需要做什么
1. 先确定你要用哪个模型
老师会按你学号最后一位分配模型。不同尾号对应不同检测任务,比如火灾烟雾、海洋塑料、城市垃圾、野生动物。你只能用分配给你的那个模型。
2. 做两个 API
你要用 FastAPI 写一个 Web 服务,至少有两个接口:
/api/predict输入:uuid + base64 图片 输出:检测到的类别、数量、框的位置、概率、推理耗时等 JSON/api/annotate输入:同样的请求 输出:加了检测框和标签后的图片,转成 base64 再返回。
也就是说,你不是只要“识别出来”,还要按照题目规定的返回格式给结果。
3. 把这个服务做成 Docker 镜像
你要写 Dockerfile,把 Python 项目、依赖、模型这些打包成可运行容器。题目和 rubric 都强调:
不仅要能跑,还要尽量轻量化、优化镜像体积。HD 甚至希望你做得更专业,比如 layer caching、multi-stage build、非 root 用户运行。
4. 在云上搭 Kubernetes 集群并部署
你要在 GCP / Oracle / Azure 之一上,用 3 台虚拟机搭一个 K8s 集群:
- 1 台 master
- 2 台 worker
然后把你的 Docker 镜像部署上去,写好:
- Deployment
- Service
- YAML 配置
而且每个 pod 要限制资源,特别是 CPU limit = 1 vCPU,这个对后面的性能测试非常关键。
5. 最好写 IaC
题目允许你手动配云资源,但那样会丢掉 IaC 这部分分数。
所以如果你想冲高分,最好用 Terraform / Ansible / Chef 自动化创建网络、子网、路由、网关、集群之类的资源。rubric 里这部分单独给了 10 分。
6. 用 Locust 压测
你要写一个 Locust 脚本,不停发请求去测你的 /api/predict 和 /api/annotate。
测试时要分别把 Deployment 扩成:
- 1 pod
- 2 pods
- 4 pods
- 8 pods
然后逐步加并发用户,找到系统开始崩、变慢、报错的那个临界点,并记录:
- 最大稳定并发用户数
- 当时平均响应时间。
7. 写一个很短但要有数据的 benchmark report
报告最多 500 词,但不能乱写。你要放:
- 结果表格
- 两张图
- 对性能的分析
你要解释为什么 pod 变多后性能变化会这样,瓶颈在哪里,为什么会出现延迟飙升。HD 档会看你是不是能把现象和理论联系起来,比如系统饱和、排队、资源瓶颈这些。
8. 最后要参加 interview/demo
这个很重要:面试是门槛项。
就算你东西做出来了,但如果你讲不清楚你自己的代码、Docker、K8s、压测过程,分数也可能最高只给 45。所以这个作业不是“拼出来能跑就行”,你还得真的会讲。
你可以把这个作业理解成这几件大事
第一大事:让模型能通过 API 用起来
也就是“上传图片 → 返回识别结果”。
第二大事:让它在云上稳定跑起来
也就是 Docker + Kubernetes + 公网访问。
第三大事:证明它能扛住压力
也就是 Locust 压测 + 不同 pod 数量下的性能对比。
第四大事:把过程和结果整理出来
也就是 report + zip 提交 + interview demo。
如果你现在只想知道“最终要交什么”
你最后要交 3 个东西:
- PDF 报告
- AI 使用记录 PDF
- 一个 ZIP 包,里面至少要有:
- Dockerfile
- Web service 源码
- Kubernetes YAML
- Locust 脚本
- 实验脚本(如果有)
- IaC 脚本
- README
- 已部署系统的公网 URL。
对新手来说,最核心的一句话总结
这个作业就是:把老师给你的 YOLO 模型,做成一个部署在云上、能被别人调用、能扩容、能压测、还能解释清楚的完整 AI 云服务。