replicate/cog

Containers for machine learning

Cog 是一个开源工具,可将机器学习模型打包成即用型容器。它免去了编写 Dockerfile 和处理 CUDA 版本的麻烦,让你可以用简单的 Python 和 YAML 文件定义模型的环境和输入/输出。

主要特性

  • 无需 Dockerfile – 你在 cog.yaml 文件中描述环境(例如 GPU、Python 版本、系统包)。Cog 会自动按照最佳实践构建 Docker 镜像。
  • 自动处理 CUDA – Cog 知道哪些 CUDA/cuDNN/PyTorch/TensorFlow/Python 组合可以协同工作,并正确设置它们。
  • 简单的模型定义 – 你用 Python 编写一个 Runner 类,包含 setup()(加载模型)和 run()(处理输入,返回输出)。输入和输出有类型,Cog 会生成 OpenAPI 模式并验证它们。
  • 自动 HTTP API – Cog 根据模型的类型创建一个 RESTful API(使用 Rust/Axum 服务器),因此你可以通过 curl 或任何 HTTP 客户端调用它。
  • 生产就绪 – 构建的 Docker 镜像可以部署到任何支持 Docker 的地方,包括你自己的基础设施或 Replicate。

工作原理

  1. 在 cog.yaml 中定义环境(例如 gpu: true、python_version: "3.13"、python_requirements: requirements.txt)。
  2. 在 run.py 中定义模型,使用 Runner 类在 setup() 中加载模型,在 run() 中运行推理。
  3. 使用命令:
    • cog run -i image=@input.jpg – 本地构建并运行,传递输入。
    • cog build -t my-model – 构建用于部署的 Docker 镜像。
    • cog serve -p 8080 – 启动本地 HTTP 服务器进行测试。

安装

  • macOS:通过 Homebrew(brew install replicate/tap/cog)或安装脚本。
  • Linux:通过安装脚本或手动下载。
  • Windows 11:使用 WSL 2,然后按照 Linux 说明操作。
  • Docker:可以在 Docker 镜像内安装 Cog。

先决条件 – 在 macOS、Linux 或带 WSL 2 的 Windows 11 上安装 Docker(如果使用 Docker Engine,则需要 Buildx)。

存在的原因 – 研究人员通常难以将 ML 模型部署到生产环境。Cog 由 Andreas Jansson(前 Spotify)和 Ben Firshman(前 Docker,Docker Compose 的创建者)创建,旨在让这一过程简单且开源。

后续步骤 – README 提供了入门指南、使用笔记本、部署以及 cog.yaml 和 Runner 接口的详细参考链接。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目