cog.yaml 이해하기
cog.yaml 이해하기
cog.yaml은 Cog가 Docker 이미지를 어떻게 만들고, 그 안에서 어떤 예측을 돌릴지를 정의하는 설정 파일이에요. 핵심 키는 세 가지, build, image, predict예요.
전체적인 모양
기본적인 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_packages에 git을 추가하고 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로 예측 정의하기»를 보세요.
- 처음 시작하는 법은 «첫 모델 만들기»를 확인하세요.