news 2026/9/30 6:50:11

Cog CLI 完整实操指南:5 分钟把机器学习模型容器化部署上线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cog CLI 完整实操指南:5 分钟把机器学习模型容器化部署上线

Cog CLI 完整实操指南:5 分钟把机器学习模型容器化部署上线

【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog

Cog CLI是容器化机器学习模型部署的命令行工具:你只需用 Python 写模型代码,它负责装依赖、建环境、打包镜像、起服务。跟着走一遍,5 分钟就能完成从 init 到 push 的全流程,不用自己手写 Docker 镜像。

新项目怎么起步:一条命令 init

它解决的问题:手写第一份cog.yaml容易把字段写错。

cog init

会在当前目录生成三个文件:cog.yaml(环境配置:Python 版本、依赖文件、是否需要 GPU)、run.py(模型入口,一个带setup()和run()的Runner类骨架)、requirements.txt。模板直接嵌在二进制里,断网也能用。

⚠️ 这里有个坑:它不会覆盖已存在的文件,目录里已有run.py时会提示Skipped existing直接跳过——想重来就先换个干净目录。

本地第一次预测怎么跑:cog run

它解决的问题:不想在宿主机装 torch 和一堆依赖。模型代码全部跑在容器里,你机器上只要有 Docker 就行。CLI 一条链路搞定:解析输入 → 自动构建镜像 → 起容器 → 发一次 HTTP 预测请求 → 停容器。

cog run -i image=@kodim24.png -i blur=8

@前缀表示"值是个本地文件",CLI 会读文件再传给容器;不加@会被当成普通字符串。输出按模型声明的类型呈现:字符串直接打印,文件输出自动写到本地磁盘,数字和对象输出格式化 JSON。上面这条跑的就是仓库里 examples/blur/ 的图像模糊模型,处理完长这样:

💡 也可以直接对已构建好的镜像跑预测:把镜像引用作为第一个参数传进去,跳过本地构建,拉下来就能用:

⚠️ 90% 的人第一次会在这里卡住:输入校验发生在构建之前,-i blur="abc"这种类型错误会当场报错、容器根本没启动。先别慌,这是故意的——省掉你等几分钟构建的冤枉时间。

调试容器环境:cog exec 和 cog serve

cog exec:先查环境再查代码

它解决的问题:模型起不来,第一步是确认容器里依赖装没装齐、CUDA 能不能用。

cog exec python -c "import torch; print(torch.cuda.is_available())"

当前目录会以卷的形式挂到容器内的/src,工作目录也设在那里,感觉就像在项目目录里直接敲命令。要跑 Web 服务就加-p 8888把端口发布出来。

cog serve:用和生产一样的 HTTP 接口调模型

它解决的问题:上线前想验证真实调用链路。

cog serve

默认在宿主机 8393 端口监听,起来之后POST /predictions就能发预测,/openapi.json看接口规范,/health-check看健康状态。本地开发时源码是卷挂载进容器的,改代码重启即生效,不用重新构建。想深挖实现可以看 pkg/cli/serve.go。

构建产物:cog build 怎么打镜像

它解决的问题:只想要镜像、不想要预测结果,比如推到registry或交给 CI。

cog build -t my-model

构建时会顺带基于 Python 类型注解静态分析出生成的OpenAPI Schema,写进镜像 label——部署方不用起容器就能预校验输入类型。镜像命名优先级:-t标签 >cog.yaml里的image字段 > 按项目目录生成的默认名。

上线部署:cog push 构建并推送

它解决的问题:把模型从本地一次性推上 registry,拿到线上模型地址。

cog push r8.im/your-username/my-model

两个细节值得知道:一是构建开始前会先校验目标引用,COG_MODEL环境变量和cog.yaml的model字段冲突会当场报出,而不是让你白等几分钟构建;二是推送成功后会打印 digest 固定的引用,直接复制就能用。

⚠️ 第一次 push 大概率失败:你没登录。先执行cog login输入 token;CI 场景用cog login --token-stdin从标准输入传,免得卡在交互提示上。

新手最容易卡住的 3 个点速查

坑现象解法
端口混淆curl 5000 没反应5000 是容器内端口,宿主机默认监听 8393
GPU 没生效日志出现 Missing device drivernvidia 驱动没装;CLI 会自动去掉 GPU 重试
文件传成字符串模型里收到的是路径文本路径前加@:-i image=@photo.jpg

收尾一句话:cog init起步,cog run/cog serve/cog exec开发调试,cog build出产物,cog push上线,整条链路 5 条命令,模型代码自始至终不在宿主机上执行。环境、依赖、CUDA 版本全部锁在容器镜像里——这就是"本地跑通即线上运行"。

【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 6:49:35

少儿编程教学实录:用Python 写一个猜数字游戏,讲透输入校验与循环

在青少年编程课上,「猜数字」是我最常用的第一个综合练习。它足够小,一次课就能写完;又足够完整,把输入、类型转换、循环、条件判断、随机数这几件事都串起来了。下面把这节课的完整教学思路整理出来。 一、为什么选这个案例 结果…

作者头像 李华