Cog는 프로덕션에 즉시 사용 가능한 표준 컨테이너에 기계 학습 모델을 패키징할 수 있는 오픈 소스 도구입니다.
패키지된 모델을 자체 인프라나 복제에 배포할 수 있습니다.
고통 없는 Docker 컨테이너. 자신만의 Dockerfile
작성하는 것은 당황스러운 과정이 될 수 있습니다. Cog를 사용하면 간단한 구성 파일로 환경을 정의하고 Nvidia 기본 이미지, 효율적인 종속성 캐싱, 특정 Python 버전 설치, 합리적인 환경 변수 기본값 등 모든 모범 사례가 포함된 Docker 이미지를 생성합니다.
더 이상 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 system_packages: - "libgl1-mesa-glx" - "libglib2.0-0" python_version: "3.12" python_packages: - "torch==2.3"predict: "predict.py:예측기"
predict.py
사용하여 모델에서 예측이 실행되는 방법을 정의합니다.
from cog import BasePredictor, Input, Pathimport torchclass Predictor(BasePredictor): def setup(self): """여러 예측을 효율적으로 실행하려면 모델을 메모리에 로드하세요.""" self.model = torch.load("./weights. pth") # 모델이 입력으로 사용하는 인수 및 유형 def 예측(self, image: Path = Input(description="Grayscale input image") ) -> 경로: """모델에서 단일 예측 실행""" selected_image = preprocess(image) 출력 = self.model(processed_image) return postprocess(output)
이제 이 모델에 대해 예측을 실행할 수 있습니다.
$ cog 예측 -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 'Content-Type: application/json' -d '{"input": {"image": "https://.../input. jpg"}}'
연구자들이 기계 학습 모델을 프로덕션 환경에 출시하는 것은 정말 어렵습니다.
솔루션의 일부는 Docker이지만 Dockerfile, 사전/사후 처리, Flask 서버, CUDA 버전 등 작동시키기가 너무 복잡합니다. 연구원은 그 빌어먹을 배포를 위해 엔지니어와 함께 앉아야 하는 경우가 많습니다.
Andreas와 Ben은 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를 사용하여 모델용 컨테이너를 만듭니다. Cog를 실행하려면 먼저 Docker를 설치해야 합니다. Docker Desktop 대신 Docker Engine을 설치하는 경우 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./install.sh
터미널에서 다음 명령을 실행하여 GitHub에서 직접 Cog의 최신 릴리스를 수동으로 설치할 수 있습니다.
sudo 컬 -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를 빌드하고 다음 명령을 사용하여 설치할 수 있습니다.
makeudo make install
또는 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에 참여해보세요.