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 포함)에 배포할 수 있습니다.
작동 방식
cog.yaml에서 환경을 정의합니다(예:gpu: true,python_version: "3.13",python_requirements: requirements.txt).run.py에서 모델을 정의하고Runner클래스로setup()에서 모델을 로드하고run()에서 추론을 실행합니다.- 명령 사용:
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 인터페이스에 대한 자세한 참조 가이드 링크가 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트