cog.yaml 이해하기

cog.yaml 이해하기

cog.yaml은 Cog가 Docker 이미지를 어떻게 만들고, 그 안에서 어떤 예측을 돌릴지를 정의하는 설정 파일이에요. 핵심 키는 세 가지, build, image, predict예요.

출처: https://cog.run/config/cog-yaml

전체적인 모양

기본적인 cog.yaml은 이렇게 생겼어요.

build:
  python_version: "3.11"
  python_packages:
    - pytorch==2.0.1
  system_packages:
    - "ffmpeg"
    - "git"
predict: "predict.py:Predictor"

cog init을 실행하면 주석이 달린 예시 cog.yaml이 생성되니, 그걸 시작점으로 삼으면 돼요.

build 섹션

build 섹션은 Docker 이미지 빌드 방식을 정해요.

  • python_version: 컨테이너에서 쓸 파이썬 마이너(3.11) 또는 패치(3.11.1) 버전. Cog는 3.10, 3.11, 3.12, 3.13을 지원해요. 지정하지 않으면 최신 파이썬이나 PyTorch/TensorFlow와 호환되는 버전을 골라요. 이건 호스트 머신이 아니라 컨테이너 안의 파이썬이라는 점을 기억하세요.
  • python_packages: PyPI에서 설치할 패키지 목록(package==version 형식).
  • python_requirements: 여러 패키지를 requirements.txt로 관리할 때 사용. python_packages둘 다 쓸 수는 없어요.
  • system_packages: Ubuntu APT 패키지 목록. 예: ffmpeg, libavcodec-dev.
  • gpu: GPU 사용 여부(기본 false). 켜면 nvidia-docker 베이스 이미지를 쓰고, 파이썬·PyTorch·TensorFlow 버전에 맞춰 CUDA와 cuDNN 버전을 자동으로 골라요.
  • run: 시스템·파이썬 패키지 설치 후 실행할 설정 명령. 예컨대 curl로 모델 파일을 내려받는 데 써요.
  • environment: 빌드·실행 시 NAME=value 형태의 환경변수 목록.

깃 호스팅 패키지가 필요하면 system_packagesgit을 추가하고 git+https:// 문법을 쓰면 돼요.

predict와 image 키

  • predict: 코드에서 Predictor 객체를 가리킵니다. 예: predict: "predict.py:Predictor".
  • train: 선택적으로 학습을 위한 Trainer 객체를 가리켜요. 예: train: "train.py:Trainer".
  • image: 이미지 이름(레지스트리 이름 포함). 예: image: "r8.im/your-username/your-model". 지정하면 cog push할 때 모델명을 따로 안 줘도 돼요.
  • concurrency: 모델의 동시성 능력을 설명해요(cog 0.14.0에 추가).
  • weights: 모델에 포함할 가중치 파일·디렉터리 목록. source(cog.yaml 기준 경로)와 target(컨테이너 안 경로, /cache/ 아래여야 하고 기본값도 /cache/)으로 지정해요.

더 알아보기

  • 예측 로직은 «Predictor로 예측 정의하기»를 보세요.
  • 처음 시작하는 법은 «첫 모델 만들기»를 확인하세요.