cog

GitHub
9.4k 683 中等 5 次阅读 今天Apache-2.0Agent开发框架图像
AI 解读 由 AI 自动生成,仅供参考

Cog 是一款专为机器学习设计的开源工具,旨在让模型打包变得像日常任务一样简单。Cog 的核心功能是将机器学习模型封装为标准的生产就绪容器,让用户能轻松部署到自有基础设施或云端平台。

过去,研究人员常因复杂的 Dockerfile 配置、CUDA 版本兼容性问题以及繁琐的预测服务器搭建而难以将模型落地。Cog 解决了这些痛点:用户只需编写一个简单的 cog.yaml 配置文件,Cog 就能自动处理系统包、Python 版本及 GPU 驱动等依赖,彻底告别“CUDA 地狱”。此外,Cog 允许直接用 Python 类型定义模型的输入输出,自动生成高性能的 HTTP 预测服务接口,无需额外编写后端代码。

无论是希望快速验证想法的研究人员,还是需要稳定交付模型的开发团队,Cog 都能提供从开发到部署的一站式体验。现在,用户可以专注于算法本身,剩下的交给 Cog 来处理。

使用场景

某电商技术团队需要将训练好的图像识别模型快速集成到线上推荐系统中,由数据科学家主导部署工作。

没有 cog 时

  • 编写 Dockerfile 过程繁琐,需手动指定基础镜像、安装系统库及配置环境变量,极易遗漏关键依赖。
  • CUDA 与 PyTorch 版本搭配极易出错,常因环境不兼容导致容器启动失败,陷入“环境地狱”。
  • 必须额外编写 Flask 或 FastAPI 代码来封装模型,增加了不必要的工程负担和维护成本。
  • 本地验证通过的模型在服务器上因依赖缺失无法运行,排查问题耗时耗力,阻碍业务上线。

使用 cog 后

  • 仅需编辑 cog.yaml 配置文件,即可自动生成包含所有依赖的标准 Docker 镜像,省去手动配置。
  • 自动解决 CUDA/cuDNN 等底层依赖冲突,确保推理环境与训练环境高度一致,避免版本错误。
  • 通过 Python 函数定义输入输出,自动构建高性能 RESTful API 服务,无需手写服务器代码。
  • 支持一键构建与部署,无论是私有云还是公有平台都能直接运行,极大提升交付效率。

cog 通过标准化容器化流程,消除了机器学习模型落地生产环境的工程障碍。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows 11
GPU

支持 NVIDIA GPU,具体版本由模型配置决定,非工具强制要求

内存

未说明

依赖
notes1. 必须安装 Docker(若使用 Docker Engine 需额外安装 Buildx);2. Windows 11 需配合 WSL 2 使用;3. 通过 cog.yaml 定义构建环境、系统包及 Python 依赖;4. 自动生成 OpenAPI 规范和高性能 HTTP 预测服务器;5. 可部署至自有基础设施或 Replicate 平台。
python未说明(示例配置为 3.13)
Docker
cog hero image

快速开始

Cog:机器学习容器

Cog 是一个开源工具,允许你将机器学习模型打包成标准的、生产就绪的容器。

你可以将打包好的模型部署到你自己的基础设施上,或者部署到 Replicate

亮点

  • 📦 无需痛苦的 Docker 容器。 编写自己的 Dockerfile 可能是一个令人困惑的过程。使用 Cog,你只需通过一个简单的配置文件定义你的环境,它就会生成一个包含所有最佳实践的 Docker 镜像:Nvidia 基础镜像、依赖项的高效缓存、安装特定 Python 版本、合理的环境变量默认值等等。

  • 🤬️ 告别 CUDA 地狱。 Cog 知道哪些 CUDA/cuDNN/PyTorch/Tensorflow/Python 组合是兼容的,并会为你正确设置一切。

  • 使用标准 Python 定义模型的输入和输出。 然后,Cog 会生成一个 OpenAPI schema (模式) 并验证输入和输出。

  • 🎁 自动 HTTP 预测服务器:利用高性能的 Rust/Axum 服务器,根据模型的类型动态生成 RESTful HTTP API。

  • 🚀 准备就绪,可用于生产环境。 在任何运行 Docker 镜像的地方部署你的模型。你自己的基础设施,或 Replicate

工作原理

使用 cog.yaml 定义模型运行的 Docker 环境:

build:
  gpu: true
  system_packages:
    - "libgl1-mesa-glx"
    - "libglib2.0-0"
  python_version: "3.13"
  python_requirements: requirements.txt
predict: "predict.py:Predictor"

使用 predict.py 定义如何在模型上运行预测:

from cog import BasePredictor, Input, Path
import torch

class Predictor(BasePredictor):
    def setup(self):
        """Load the model into memory to make running multiple predictions efficient"""
        self.model = torch.load("./weights.pth")

    # The arguments and types the model takes as input
    def predict(self,
          image: Path = Input(description="Grayscale input image")
    ) -> Path:
        """Run a single prediction on the model"""
        processed_image = preprocess(image)
        output = self.model(processed_image)
        return postprocess(output)

在上面,我们接受图像路径作为输入,并在将其通过模型处理后返回转换后图像的路径。

现在,你可以在此模型上运行预测:

$ cog predict -i image=@input.jpg
--> Building Docker image...
--> Running Prediction...
--> Output written to output.jpg

或者,构建用于部署的 Docker 镜像:

$ cog build -t my-classification-model
--> Building Docker image...
--> Built my-classification-model:latest

$ docker run -d -p 5000:5000 --gpus all my-classification-model

$ curl http://localhost:5000/predictions -X POST \
    -H 'Content-Type: application/json' \
    -d '{"input": {"image": "https://.../input.jpg"}}'

或者,通过 serve 命令结合构建和运行:

$ cog serve -p 8080

$ curl http://localhost:8080/predictions -X POST \
    -H 'Content-Type: application/json' \
    -d '{"input": {"image": "https://.../input.jpg"}}'

我们为什么要构建这个?

研究人员很难将机器学习模型投入生产。

解决方案的一部分是 Docker,但让它工作起来非常复杂:Dockerfiles、预处理/后处理、Flask 服务器、CUDA 版本等。大多数情况下,研究人员不得不与工程师坐下来才能将该东西部署成功。

AndreasBen 创建了 Cog。Andreas 曾在 Spotify 工作,在那里他构建了使用 Docker 构建和部署 ML (机器学习) 模型的工具。Ben 曾在 Docker 工作,在那里他创建了 Docker Compose

我们意识到,除了 Spotify,其他公司也在使用 Docker 来构建和部署机器学习模型。Uber 和其他公司已构建了类似的系统。因此,我们正在制作一个开源版本,以便其他人也能这样做。

如果你有兴趣使用它或想与我们合作,请联系我们。我们在 Discord 上,或者发邮件到 team@replicate.com

前置条件

  • macOS、Linux 或 Windows 11。Cog 支持 macOS、Linux 和 Windows 11(配合 WSL 2 (Windows Subsystem for Linux 2))。
  • Docker。Cog 使用 Docker 为你的模型创建容器。你需要先 安装 Docker 才能运行 Cog。如果你安装的是 Docker Engine 而不是 Docker Desktop,你还需要 安装 Buildx

安装

如果你使用的是 macOS,可以使用 Homebrew 安装 Cog:

brew install replicate/tap/cog

你也可以使用我们的 安装脚本 下载并安装最新版本:

# bash, zsh, and other shells
sh <(curl -fsSL https://cog.run/install.sh)

# fish shell
sh (curl -fsSL https://cog.run/install.sh | psub)

# download with wget and run in a separate command
wget -qO- https://cog.run/install.sh
sh ./install.sh

你也可以直接在终端中运行以下命令,从 GitHub 手动安装 Cog 的最新版本:

sudo curl -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"
sudo chmod +x /usr/local/bin/cog

或者如果你是在 Docker 中:

RUN sh -c "INSTALL_DIR=\"/usr/local/bin\" SUDO=\"\" $(curl -fsSL https://cog.run/install.sh)"

升级

如果你使用的是 macOS 并且之前使用 Homebrew 安装了 Cog,请运行以下内容:

brew upgrade replicate/tap/cog

否则,你可以通过运行与安装时相同的命令升级到最新版本。

开发

有关如何设置开发环境和从源代码构建的说明,请参阅 CONTRIBUTING.md

下一步

需要帮助?

加入我们的 Discord #cog 频道。

Ask DeepWiki

贡献者 ✨

感谢这些杰出的人 (表情符号说明):

Ben Firshman
Ben Firshman

💻 📖
Andreas Jansson
Andreas Jansson

💻 📖 🚧
Zeke Sikelianos
Zeke Sikelianos

💻 📖 🔧
Rory Byrne
Rory Byrne

💻 📖 ⚠️
Michael Floering
Michael Floering

💻 📖 🤔
Ben Evans
Ben Evans

📖
shashank agarwal
shashank agarwal

💻 📖
VictorXLR
VictorXLR

💻 📖 ⚠️
hung anna
hung anna

🐛
Brian Whitman
Brian Whitman

🐛
JimothyJohn
JimothyJohn

🐛
ericguizzo
ericguizzo

🐛
Dominic Baggott
Dominic Baggott

💻 ⚠️
Dashiell Stander
Dashiell Stander

🐛 💻 ⚠️
Shuwei Liang
Shuwei Liang

🐛 💬
Eric Allam
Eric Allam

🤔
Iván Perdomo
Iván Perdomo

🐛
Charles Frye
Charles Frye

📖
Luan Pham
Luan Pham

🐛 📖
TommyDew
TommyDew

💻
Jesse Andrews
Jesse Andrews

💻 📖 ⚠️
Nick Stenning
Nick Stenning

💻 📖 🎨 🚇 ⚠️
Justin Merrell
Justin Merrell

📖
Rurik Ylä-Onnenvuori
Rurik Ylä-Onnenvuori

🐛
Youka
Youka

🐛
Clay Mullis
Clay Mullis

📖
Mattt
Mattt

💻 📖 🚇
Eng Zer Jun
Eng Zer Jun

⚠️
BB
BB

💻
williamluer
williamluer

📖
Simon Eskildsen
Simon Eskildsen

💻
F
F

🐛 💻
Philip Potter
Philip Potter

🐛 💻
Joanne Chen
Joanne Chen

📖
technillogue
technillogue

💻
Aron Carroll
Aron Carroll

📖 💻 🤔
Bohdan Mykhailenko
Bohdan Mykhailenko

📖 🐛
Daniel Radu
Daniel Radu

📖 🐛
Itay Etelis
Itay Etelis

💻
Gennaro Schiano
Gennaro Schiano

📖
André Knörig
André Knörig

📖
Dan Fairs
Dan Fairs

💻

本项目遵循 all-contributors(所有贡献者)规范。欢迎任何形式的贡献!

版本历史

v0.17.22026/04/02
v0.17.12026/03/27
v0.17.02026/03/25
v0.17.0-rc.42026/03/24
v0.17.0-rc.32026/03/24
v0.17.0-rc.22026/03/12
v0.17.0-rc.12026/03/12
v0.16.122026/02/23
v0.17.0-beta22026/02/17
v0.17.0-beta12026/02/11
v0.17.0-alpha42026/02/10
v0.17.0-alpha32026/02/10
v0.17.0-alpha22026/02/07
v0.16.112026/01/29
v0.16.102026/01/27
v0.16.92025/11/12
v0.16.82025/10/03
v0.16.72025/09/10
v0.16.62025/08/26
v0.16.52025/08/21

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架