5 个命令掌握 Cog CLI:把 Python 模型项目变成可部署的容器
5 个命令掌握 Cog CLI把 Python 模型项目变成可部署的容器【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog想把 Python 模型变成稳定的 API 服务你要对付三件事环境、依赖、入口。Cog CLI 就是这套工作的编排入口你只需写cog.yaml和run.py构建、起容器、推 registry 剩下的事交给它。先立原则Cog 从不在宿主机跑模型代码所有会执行模型代码的命令cog run、cog serve、cog exec都遵循同一个节奏先构建镜像、再启动容器、最后通过 HTTP 向容器内的 Prediction API 发请求。setup()与run()只发生在与cog.yaml声明的依赖、CUDA 版本严格一致的容器化环境里宿主机只是编排者。三层链路如下还有一点值得提前知道输入输出 Schema 是从模型源码的类型注解静态生成的见 architecture/02-schema.md校验在建镜像之前就完成镜像上会把这个 schema 写成 label之后凭镜像做校验时无需启动容器。 起步cog init 在当前目录生成什么cog init它会落盘两个文件cog.yaml带默认值的环境配置python 版本、gpu 开关、requirements 路径等和run.pyRunner骨架类setup()一次性加载模型run()处理单次请求输入可带Input(description..., ge0, le10, default1.5)这类约束。实现细节值得记住见 pkg/cli/init.go模板用 Go 的//go:embed init-templates/**/*内嵌进二进制离线也能用已存在的文件一律跳过打印Skipped existing ...绝不覆盖你写过的代码AGENTS.md会优先在线拉取最新版失败时回退到内嵌版本 本地验证cog run、cog exec、cog serve 三件套你想做什么用哪条命令跑一次预测拿结果cog run -i prompta photo of a cat排查容器内依赖、CUDA 可用性cog exec python -c import torch; print(torch.cuda.is_available())起 HTTP 服务给前端或 curl 联调cog serve交互式进模型环境cog exec bashcog run 用法四类输入怎么传输出怎么读cog run在 pkg/cli/run.go 里只是极薄封装执行逻辑集中在 pkg/cli/predict.go 的cmdPredict。一次 run 的走法是静态生成 Schema或从已有镜像 label 读取→ 解析并校验-i参数 → 构建镜像仅本地源码路径→ 启动容器 → 发预测请求并把输出流式写到终端。输入类型按 Schema 推断共四种# 字符串 / 数字 cog run -i prompta cat -i steps50 # 文件 前缀CLI 读取本地文件转成 base64 data URL 上传 cog run -i imageexamples/hello-replicate/cat.png -o out.png # URL cog run -i imagehttps://example.com/photo.jpg输出按类型呈现字符串原样打印Path或list[Path]落盘多条时按out.0.png、out.1.png命名整数、浮点、布尔给原始值列表与对象输出缩进 JSON。-o指定写入路径预测失败时进程以非零码退出。批量输入用--json inputs.json-读 stdin与-i互斥。--setup-timeout默认 300 秒约束容器 setup 时长。用 cog exec 排查容器依赖cog exec基于cog.yaml构建镜像后在其中运行你的命令。第一个参数之后的内容全部原样传给容器内命令flags.SetInterspersed(false)保证复杂命令的引号问题由此消失。工作目录设为/src并挂载源码目录所以cog exec python train.py能直接看到项目文件。常用参数-e HUGGING_FACE_HUB_TOKENabc123注入环境变量--gpus格式同docker run --gpus-p发布端口支持8888跑 Jupyter、0.0.0.0:8000、[::1]:8000三种写法cog serve 本地调试记住两个端口cog serve构建镜像后启动一个兼容 Cog HTTP 协议的 REST 服务暴露POST /predictions、/openapi.json、/health-check三个端点。端口约定是最容易踩的坑容器内服务固定监听5000进程为python -m cog.server.http宿主机默认发布8393。所以访问地址是http://localhost:8393不是 5000cog serve curl http://localhost:8393/predictions -X POST \ -H Content-Type: application/json -d {input: {prompt: a cat}}-p 9000改宿主机端口--host 0.0.0.0默认127.0.0.1仅本机可达改后允许外部访问--upload-url文件输出的上传地址设置后自动附加host.docker.internal:host-gateway便于容器回连宿主机另一个优点源码走运行时卷挂载而非COPY . /src改cog.yaml或模型代码不用重建镜像其余各层与cog build共享缓存见 pkg/cli/serve.go。 镜像生产cog build 的六步走cog build -t my-model:latest一次 build 按六步执行解析cog.yaml——pkg/config/ 负责含 CUDA/cuDNN 与 PyTorch 兼容矩阵依据 pkg/config/cuda_compatibility.json 解析 CUDA 版本静态生成 OpenAPI Schema——pkg/schema/ 用 tree-sitter 解析 Python 类型注解生成 Dockerfile——pkg/dockerfile/standard_generator.go 同时做基础镜像选择经 Docker/BuildKit 构建镜像向镜像写入 schema、config、pip freeze 等 label场景 → 开关对照场景开关不用构建缓存--no-cache权重拆到独立层单独上传--separate-weights控制进度格式--progress auto/tty/plain/quiet环境变量BUILDKIT_PROGRESS可覆盖默认值构建期传密钥--secret idfoo,src/path/to/file用文件指定 schema--openapi-schema换纯 Python 基础镜像--use-cuda-base-imagefalse镜像更小非 torch 项目可能出问题用预构建 Cog 基础镜像加快冷启动--use-cog-base-image默认 true自带 Dockerfile / 可复现构建 / 剥符号 / 预编译--dockerfile、--timestamp、--strip、--precompile均为隐藏参数两条硬规则--use-cog-base-image、--use-cuda-base-image、--dockerfile三者互斥同时设两个直接报错checkMutuallyExclusiveFlags校验镜像命名优先级-t标签 cog.yaml的image字段 model字段 基于项目目录的默认名cog run、cog serve、cog exec、cog push共用同一套构建开关这里讲一次后文直接引用。 发布上线cog login 与 cog pushcog login cog push r8.im/your-username/my-model --separate-weightscog login按 registry 主机挑选 providerpkg/cli/login.gor8.im走 token 流程CI 场景可用cog login --token-stdin token.txt其他 registry 提示输入用户名密码凭证存入 Docker 的 credential 系统。主机可用全局--registry参数或COG_REGISTRY_HOST环境变量覆盖。cog pushpkg/cli/push.go分四步validatePushArgs先行校验——COG_MODEL/COG_MODEL_TAG与cog.yaml里model/image设置的冲突在耗时数分钟的构建前几秒内报出走与cog build相同的构建路径provider.DefaultRegistry().ForImage(target)选定 Replicate 或通用 OCI 实现pkg/provider/resolver.Push()推送镜像及分离的权重层成功后 provider 负责错误格式化与模型 URL 输出CLI 打印 digest 固定的引用树model/image/weight各行可直接复制构建开关沿用 build 一节--no-cache、--secret、--use-cuda-base-image等不再重复。--separate-weights是 Replicate 专属能力权重层独立推送权重未变时无需重传整个镜像。️ 出问题时隐藏命令与自愈机制cog --help只展示了一部分命令以下命令存在但隐藏cog debug——只生成并打印 Dockerfile 不实际构建pkg/cli/debug.go适合排查基础镜像与层的问题cog weights——实验性权重管理含import/pull/status把cog.yaml中的权重源打包为 OCI 层、更新weights.lock并推送 registry之后cog run可直接挂载权重cog predict——旧预测命令等价于cog run且支持直接指定已构建镜像调用时打印cog predict is deprecated, use cog runcog train——向/trainings端点发训练请求两个自愈机制值得记住GPU 驱动回退--gpus未指定而模型需要 GPU 时CLI 自动以gpusall启动若因缺设备驱动失败打印Missing device driver, re-trying without GPU并去掉 GPU 参数重试。run、serve、exec 三处逻辑一致RUST_LOG 透传宿主机设了RUST_LOG会自动注入容器方便调试容器内 Rust coglet 的日志仓库 integration-tests/tests/ 用 txtar 格式覆盖了这些 CLI 行为。想核对上文流程可看input_validation_before_build.txtar证明输入校验发生在构建之前doctor_predict_to_run_migration.txtar覆盖旧 predict 向 run 的迁移union_input_cli.txtar覆盖联合类型输入。幕后机制CLI 与容器如何协作本地源码预测的完整时序容器内部的进程间通信细节见 architecture/04-container-runtime.md。入口 cmd/cog/cog.go 很薄创建根命令后Execute()错误统一交给console.Fatalf。根命令pkg/cli/root.go注册全部子命令PersistentPreRun处理--debug日志级别、--no-color同时写入NO_COLOR环境变量与版本更新检查cobra.EnableTraverseRunHooks保证根→子的钩子顺序执行。源码地图按职责分三组核心pkg/cli/Cobra 命令定义、pkg/config/cog.yaml 解析与兼容矩阵、pkg/image/构建编排、pkg/dockerfile/Dockerfile 生成与基础镜像选择、pkg/docker/Docker 客户端、pkg/predict/预测执行与 input.go 输入转换、pkg/schema/静态 Schema、pkg/wheels/SDK 与 coglet wheel 解析基础设施pkg/provider/registry 行为抽象、pkg/registry/OCI registry 客户端、pkg/model/OCI 工件领域模型含 resolver.go 的构建/拉取编排、pkg/weights/权重发现与 lockfile、pkg/errors/带错误码的 CodedError工具pkg/dotcog/.cog/状态目录、pkg/requirements/requirements.txt 解析、pkg/util/控制台、MIME、版本、pkg/update/版本更新检查、pkg/global/进程级配置下一步验证与其相信文章不如亲手跑通空目录里执行cog init对照检查生成的cog.yaml与run.py在 examples/blur/ 下跑cog run -i imageexamples/blur/examples/kodim24.png或改用cog serve后curl http://localhost:8393/openapi.json浏览 integration-tests/ 的 txtar 用例与其harness/目录看集成测试如何驱动各命令阅读源码调用链入口 architecture/06-cli.md再顺 architecture/03-prediction-api.md 与 architecture/04-container-runtime.md 深入【免费下载链接】cogContainers for machine learning项目地址: https://gitcode.com/GitHub_Trending/co/cog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

cs-video-courses 的 NOTES.md 解读:视频课程清单的编排约定、条目元数据格式与使用指南

cs-video-courses 的 NOTES.md 解读:视频课程清单的编排约定、条目元数据格式与使用指南

教程知识库教育 【免费下载链接】cs-video-courses List of Computer Science courses with video lectures. 项目地址: https://gitcode.com/GitHub_Trending/cs/cs-video-courses 点击查看 免费下载 本篇技术指南围绕 NOTES.md 展开——它是 cs-video-courses 仓…

2026/9/30 6:50:03 阅读更多 →
如何在Switch上流畅追番:wiliwili B站客户端安装指南

如何在Switch上流畅追番:wiliwili B站客户端安装指南

如何在Switch上流畅追番:wiliwili B站客户端安装指南 【免费下载链接】wiliwili 第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili wiliwili 是一款…

2026/9/30 6:49:03 阅读更多 →
Theme Factory 植物花园主题指南:以 Botanical Garden 打造清新自然的演示视觉体系

Theme Factory 植物花园主题指南:以 Botanical Garden 打造清新自然的演示视觉体系

人工智能AI 技能AI 评测 【免费下载链接】skills Public repository for Agent Skills 项目地址: https://gitcode.com/GitHub_Trending/skills3/skills 点击查看 免费下载 Botanical Garden 是 skills3/skills 仓库中 theme-factory 技能内置的 10 套预设主题之一…

2026/9/30 6:49:03 阅读更多 →

最新新闻

推荐一个高效工具:发票报销归档助手(本地离线,批量处理发票)

推荐一个高效工具:发票报销归档助手(本地离线,批量处理发票)

做开发或运维的同学,可能也常帮公司处理报销。最近用到一款 Windows 桌面工具「发票报销归档助手」,把发票整理这条链路做得比较彻底,分享一下。 核心能力:批量读取:选一个发票文件夹,自动识别 PDF / OFD…

2026/9/30 9:03:43 阅读更多 →
搭讪王峰爷:魔都篇-第一章-年终总结会上的崩溃

搭讪王峰爷:魔都篇-第一章-年终总结会上的崩溃

上海的冬天总是来得猝不及防。12 月中旬的午后,天空灰蒙蒙的,像是一块被反复使用过的抹布。我坐在长桌尽头,看着自己手心渗出的细汗,慢慢洇湿了那份已经打印了七遍的 PPT。李大峰,你这个方案到底在想什么?王…

2026/9/30 9:03:43 阅读更多 →
python三元条件判断语句

python三元条件判断语句

一、迈向控制流的起点当咱们一开始涉足编程学习这个范畴的时候, 必然会碰迎来不少看起来颇为神秘的种种概念以及复杂的语法机制结构。假如在如此众多可选的知识点当中, 非要让我挑选出一个作为大家接触控制流逻辑的首要环节去进行深入学习掌握的话, 那么毫无疑问地讲, 那个最终…

2026/9/30 9:03:43 阅读更多 →
PAN211x 系列无线收发芯片产品介绍

PAN211x 系列无线收发芯片产品介绍

一、如果你正在做以下事情,这份资料值得花五分钟看完:手上有一款基于 XN297L 的无线产品,想找一颗功耗更低的替代芯片正在选型一款 2.4GHz 无线收发芯片,要求外围器件少、开发周期短产品靠电池供电,需要nA 级待机电流来…

2026/9/30 9:03:43 阅读更多 →
MMU与虚拟内存全景深度解析:打通物理地址→虚拟地址→进程内存全链路

MMU与虚拟内存全景深度解析:打通物理地址→虚拟地址→进程内存全链路

在前文内存全景梳理中,我们明确了一个核心真相:物理硬件内存(RAM)只有裸比特、物理地址,没有栈堆、没有变量、没有进程隔离。而我们编程、运行程序所使用的内存,全部是虚拟内存。实现物理裸内存到进程独立内…

2026/9/30 9:03:42 阅读更多 →
Vidu视频原生生成:AI角色直播在场感实现指南

Vidu视频原生生成:AI角色直播在场感实现指南

1. 项目概述:当 AI 角色真正“坐进”直播间,不是播音员,而是“在场者”“当 AI 角色真的走进直播间,会发生什么?”——这句话最近在技术圈和内容创作圈反复被提起,不是作为科幻设定,而是作为正在…

2026/9/30 9:02:42 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →