
Cog CLI 保姆级上手模型容器化完整路径【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog模型在你 Mac 上跑得欢推到同事机器或云服务器就炸Python 版本差小版本、CUDA 对不上、某个 C 库悄悄缺失。说白了模型部署的麻烦全出在环境两个字上。Cog CLI 的思路很直接把模型代码、依赖、权重一起打进一个镜像运行环境跟着代码走——这就是模型容器化的核心。一图看懂从写代码到上线整条主线只有四步写代码、构建镜像、本地跑通推理、把镜像推上仓库。注意最后那条虚线——改代码之后你回到第一步而不是把整条线重新走一遍这一点下面会专门讲。 刚 clone 完仓库30 秒生成项目骨架仓库地址是 https://gitcode.com/GitHub_Trending/co/cogclone 下来直接翻examples/blur它是最小可读的完整示例给一张图做高斯模糊。如果从零开始一条命令生成骨架cog init它会落地三个文件cog.yaml声明环境run.py是模型入口requirements.txt装依赖。cog.yaml你真正要填的核心就这几行build: gpu: false python_version: 3.12 python_requirements: requirements.txt run: run.py:Runnerrun.py里你只需要关心两件事setup()一次性加载模型run()处理单次输入。输入参数用类型注解加Input(...)声明Cog 会据此自动生成接口文档不用你手写。 日常调试改代码不用重新打包第一次构建以及第一次跑通推理在示例目录里敲cog run -i imageexamples/kodim24.png -i blur4这条命令背后干了一串事解析cog.yaml、静态生成 OpenAPI schema、校验-i传入的值、构建镜像、启动容器、轮询健康检查直到模型加载完、发送推理请求。全程你只按了一次回车。输出图会直接落到当前目录模糊前后对比如下顺手记下几个参数-o out.png把输出写到指定路径-i传本地文件必须带前缀否则会被当成普通字符串--setup-timeout控制容器内模型加载的超时秒数大权重模型记得调大。进容器验证 GPU而不是看日志猜依赖有没有装全、CUDA 能不能用与其翻构建日志不如直接进去问cog exec python -c import torch; print(torch.cuda.is_available())cog exec基于cog.yaml构建环境后跑你给的任意命令第一个参数之后的内容会原样透传给容器后面还能挂-e KEYVALUE注入环境变量、-p 8888发布端口给宿主机跑 Jupyter 很顺手、--gpus指定 GPU。你注意到没有如果宿主机缺 GPU 驱动CLI 会自动去掉 GPU 参数重试并提示Missing device driver, re-trying without GPU——不会直接给你一坨报错。起个本地 HTTP 服务代码改动免重建想联调接口就起服务cog serve curl -X POST http://localhost:8393/predictions \ -H Content-Type: application/json \ -d {input: {prompt: a cat}}起服务后有三个端点可用/predictions发推理请求、/openapi.json看接口规范、/health-check探活。-p改宿主机端口默认 8393--host 0.0.0.0允许局域网访问。它省时间的地方在构建方式上源码不是复制进镜像而是以卷挂载进容器。换句话说你改run.py不用重新构建镜像重启容器即可依赖层和cog build共享 Docker 缓存只有cog.yaml环境变了才真正重建。 准备上线把镜像送到任意 OCI 仓库推之前先存凭证cog login走 token 认证凭证交给 Docker 的 credential 系统保管CI 场景用--token-stdin从标准输入喂 token。cog build -t my-model cog push r8.im/your-username/my-model --separate-weightscog push接收任意 OCI 兼容的仓库地址r8.im/owner/name走 Replicateregistry.example.com/...走你自己的仓库目标由 provider 自动识别。-t指定镜像标签优先级高于cog.yaml里的image字段--no-cache强制全量重建--secret idfoo,srcpath在构建期注入密钥。--separate-weights会把权重拆成独立镜像层后续只改代码时不用重传几十 GB 权重。推送成功会打印带 digest 的引用复制下来就能在别处固定版本。敲下回车后背后只发生三件事你敲下回车Cog 先用 tree-sitter 静态解析run.py的类型注解生成 OpenAPI schema输入错误在构建之前就能拦下接着按 CUDA 兼容矩阵选基础镜像、生成 Dockerfile、交给 BuildKit 构建schema 和配置以 label 写进镜像最后容器内起一个 HTTP 服务CLI 轮询/health-check到 READY 才发推理请求。整个过程模型代码从不接触宿主机只在容器里跑。容易踩的坑服务起不来先检查端口容器内服务固定监听 5000cog serve映射到宿主机默认 8393访问地址是http://localhost:8393。GPU 项目在没有驱动的机器上启动失败属正常现象CLI 会自动去 GPU 重试并打印提示别被吓到。--use-cog-base-image、--use-cuda-base-image、--dockerfile三者互斥同传会直接报错。-i imagephoto.jpg少了文件路径会被当成字符串传进去校验直接失败。cog predict已弃用见警告就换成cog runcog debug只生成 Dockerfile 不构建适合排查构建问题cog weights管权重镜像层cog train调训练端点这三个默认不出现在帮助里。一句话init 起步run、serve 管开发build 打包push 上线。上手就敲这条cog run -i imageexamples/kodim24.png -i blur4延伸阅读Schema 架构说明、预测 API 架构说明【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考