Cog 是一种开源工具,可让您将机器学习模型打包到标准的生产就绪容器中。
您可以将打包的模型部署到您自己的基础架构或复制。
Docker 容器没有任何痛苦。编写自己的Dockerfile
可能是一个令人困惑的过程。使用 Cog,您可以使用简单的配置文件定义环境,它会生成具有所有最佳实践的 Docker 映像:Nvidia 基础映像、高效的依赖项缓存、安装特定的 Python 版本、合理的环境变量默认值等。
不再有 CUDA 地狱。 Cog 知道哪些 CUDA/cuDNN/PyTorch/Tensorflow/Python 组合兼容,并将为您正确设置。
使用标准 Python 定义模型的输入和输出。然后,Cog 生成 OpenAPI 模式并使用 Pydantic 验证输入和输出。
自动 HTTP 预测服务器:模型的类型用于使用 FastAPI 动态生成 RESTful HTTP API。
自动队列工作者。长时间运行的深度学习模型或批处理最好使用队列来构建。齿轮模型可以开箱即用地执行此操作。目前支持 Redis,更多内容正在筹备中。
云存储。文件可以直接读取和写入 Amazon S3 和 Google Cloud Storage。 (即将推出。)
准备生产。将模型部署在 Docker 映像运行的任何位置。您自己的基础设施,或复制。
使用cog.yaml
定义模型运行的 Docker 环境:
构建: GPU: true 系统包: -“libgl1-mesa-glx” -“libglib2.0-0”python_version:“3.12”python_packages: -“火炬==2.3”预测:“predict.py:预测器”
使用predict.py
定义如何在模型上运行预测:
from cog import BasePredictor, Input, Pathimport torchclass Predictor(BasePredictor): def setup(self): """将模型加载到内存中以提高运行多个预测的效率""" self.model = torch.load("./weights. pth") # 模型作为输入的参数和类型 def Predict(self, image: Path = Input(description="Grayscale input image") ) -> 路径: """对模型运行单个预测""" returned postprocess(output) = preprocess(image) output = self.model(processed_image)
现在,您可以对此模型运行预测:
$ cog Predict -i [email protected]> 构建 Docker 镜像...--> 运行预测...--> 输出写入 output.jpg
或者,构建用于部署的 Docker 映像:
$ cog build -t my-colorization-model--> 构建 Docker 镜像...--> 构建 my-colorization-model:latest$ docker run -d -p 5000:5000 --gpus all my-colorization-model$卷曲 http://localhost:5000/predictions -X POST -H '内容类型:application/json' -d '{"input": {"image": "https://.../input. jpg"}}'
对于研究人员来说,将机器学习模型投入生产确实很困难。
解决方案的一部分是 Docker,但让它发挥作用非常复杂:Dockerfile、预处理/后处理、Flask 服务器、CUDA 版本。通常情况下,研究人员必须与工程师坐下来部署这个该死的东西。
安德烈亚斯和本创建了 Cog。 Andreas 曾在 Spotify 工作,在那里他构建了使用 Docker 构建和部署 ML 模型的工具。 Ben 在 Docker 工作,并在那里创建了 Docker Compose。
我们意识到,除了 Spotify 之外,其他公司也在使用 Docker 来构建和部署机器学习模型。 Uber 和其他公司也构建了类似的系统。因此,我们正在制作一个开源版本,以便其他人也可以这样做。
如果您有兴趣使用它或想与我们合作,请联系我们。我们在 Discord 上或发送电子邮件至 [email protected]。
macOS、Linux 或 Windows 11 。 Cog 可通过 WSL 2 在 macOS、Linux 和 Windows 11 上运行
码头工人。 Cog 使用 Docker 为您的模型创建容器。您需要先安装 Docker,然后才能运行 Cog。如果您安装 Docker Engine 而不是 Docker Desktop,则还需要安装 Buildx。
如果您使用的是 macOS,则可以使用 Homebrew 安装 Cog:
酿造安装齿轮
您还可以使用我们的安装脚本下载并安装最新版本:
# Fish shellsh (curl -fsSL https://cog.run/install.sh | psub)# bash、zsh 和其他 shellssh <(curl -fsSL https://cog.run/install.sh)# 使用 wget 下载并在单独的命令中运行 wget -qO- https://cog.run/install.sh sh ./安装.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
或者,您可以从源代码构建 Cog 并使用以下命令安装它:
makesudo 进行安装
或者如果你在 docker 上:
RUN sh -c "INSTALL_DIR="/usr/local/bin" SUDO="" $(curl -fsSL https://cog.run/install.sh)"
如果您使用的是 macOS 并且之前通过 Homebrew 安装了 Cog,请运行以下命令:
酿造升级齿轮
否则,您可以通过运行安装时所用的相同命令来升级到最新版本。
开始使用示例模型
开始使用您自己的模型
将 Cog 与笔记本一起使用
在 Windows 11 中使用 Cog
看一下使用 Cog 的一些示例
使用 Cog 部署模型
cog.yaml
参考以了解如何定义模型的环境
预测界面参考,了解Predictor
界面的工作原理
训练界面参考,了解如何向模型添加微调 API
HTTP API 参考,了解如何使用模型提供的 HTTP API
加入我们在 Discord 上的 #cog。