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 인터페이스에 대한 자세한 참조 가이드 링크가 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트