프로젝트 소개

Cog는 머신러닝 모델을 표준적이고 프로덕션 준비가 된 Docker 컨테이너로 패키징하는 오픈소스 도구입니다. 이 도구는 ML 모델을 프로덕션에 배포할 때 흔히 겪는 어려움, 즉 Dockerfile을 수동으로 작성하고 의존성 호환성을 관리해야 하는 문제를 해결하는 데 초점을 맞춥니다. README에 설명된 주요 기능은 다음과 같습니다: - 간단한 cog.yaml 구성 파일에서 Docker 이미지를 생성하며, Nvidia 베이스 이미지, 효율적인 의존성 캐싱, 특정 Python 버전 설치, 합리적인 환경 변수 기본값과 같은 모범 사례를 적용합니다. - CUDA, cuDNN, PyTorch, TensorFlow 및 Python 버전 호환성을 자동으로 처리하여 수동 버전 매트릭스 관리를 피합니다. - BaseRunner 인터페이스(setup 및 run 메서드)를 통해 표준 Python 타입으로 모델 입력 및 출력을 정의하며, Cog는 OpenAPI 스키마를 생성하고 입력 및 출력을 검증합니다. - 자동 HTTP 추론 서버: 모델 타입은 고성능 Rust/Axum 서버가 제공하는 RESTful HTTP API를 동적으로 생성합니다. - CLI 명령: cog run(입력으로 모델 실행), cog build(배포 가능한 Docker 이미지 빌드), cog serve(로컬 포트에서 빌드 및 서비스 결합). - 배포 유연성: 빌드된 Docker 이미지는 자체 호스팅 인프라 또는 Replicate를 포함하여 Docker 이미지가 실행되는 모든 곳에서 실행됩니다. - 플랫폼 지원: macOS, Linux, WSL 2를 통한 Windows 11. Docker(및 Docker Desktop 대신 Docker Engine 사용 시 Buildx)가 필요합니다. - 설치: Homebrew, 설치 스크립트, 수동 바이너리 다운로드 또는 Docker 이미지 내부를 통해 가능합니다. 이 도구는 연구자들이 깊은 Docker 또는 인프라 엔지니어링 지식 없이도 모델을 프로덕션에 배포할 수 있도록 하는 방법으로 자리 잡고 있으며, Replicate 팀이 만들었습니다.