학습 이미지 업로드: CLI 방식
keynet-train CLI를 사용하여 훈련 스크립트를 Docker 컨테이너 이미지로 자동 빌드하고 Harbor registry에 업로드합니다.
이 기능은 keynet-train 0.7.4 버전부터 사용할 수 있습니다. 현재 최신 버전은 0.8.5입니다.
개요
keynet-train CLI는 Docker 이미지 빌드와 업로드 과정을 자동화하여, 복잡한 Docker 명령어 없이 간편하게 훈련 환경을 배포할 수 있습니다.
Dockerfile을 직접 작성하거나 Docker 이미지를 완전히 제어하고 싶으시다면 학습 이미지 업로드: Docker 방식 페이지를 참고하세요.
이 페이지는 Dockerfile 자동 생성 방식만 다룹니다.
기존 방식 (Docker 명령어):
docker login harbor.aiplatform.re.kr
docker build -t harbor.aiplatform.re.kr/kitech-model/<repo-key>:latest .
docker push harbor.aiplatform.re.kr/kitech-model/<repo-key>:latest
새 방식 (keynet CLI):
keynet login https://gateway.aiplatform.re.kr
keynet-train push train.py
keynet-train CLI는 내부적으로 Docker를 사용합니다. Docker 가 설치되어 있고 실행 중이어야 합니다.
사전 요구사항
- keynet-train 0.8.5 이상 설치 (0.7.4 이상 호환)
- Docker 설치 및 실행 중 (필수)
- KeyNet Platform 계정
API 엔드포인트
현재 KeyNet Platform API 엔드포인트는 https://gateway.aiplatform.re.kr입니다. 이 주소는 변경될 수 있으므로, 최신 주소는 관리자에게 확인하세요.
CLI 명령어
keynet login
Platform 및 컨테이너 레지스트리 인증을 수행합니다.
keynet login https://gateway.aiplatform.re.kr
출력 예시:
Username: YOUR@EMAIL
Password: ********
Login Succeeded
✅ Logged in to https://gateway.aiplatform.re.kr
✅ Docker login successful
Email: YOUR@EMAIL
Password:
✓ Platform authentication successful
✓ Harbor login successful
✓ Configuration saved
╭────────────────── Login Complete ───────────────────╮
│ │
│ Server: https://gateway.aiplatform.re.kr │
│ User: YOUR@EMAIL │
│ Expires: 2025-12-10T10:53:23.619082Z │
│ Config: /Users/hbjs/.config/keynet/config.json │
│ │
╰─────────────────────────────────────────────────────╯
인증 정보는 로컬에 저장되며, 이후 push 명령어 실행 시 자동으로 사용됩니다.
keynet-train push
훈련 스크립트를 Docker 이미지로 빌드하고 Harbor에 push합니다. Dockerfile을 자동으로 생성하여 빌드합니다.
keynet-train push train.py
필수 요구사항:
@trace_pytorch데코레이터에model_name지정@trace_pytorch데코레이터에base_image지정- 프로젝트 디렉토리에
requirements.txt파일
코드 예시:
from keynet_train import trace_pytorch
import torch
@trace_pytorch(
model_name="my-model",
sample_input=torch.randn(1, 3, 224, 224),
base_image="pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime"
)
def train_model():
# 훈련 코드...
return model
keynet-train>=0.8.5
자동 생성되는 Dockerfile:
FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
WORKDIR /workspace
COPY . /workspace
RUN pip install -r requirements.txt
CMD ["python", "train.py"]
CLI 옵션
# Base image 지정 (decorator 값을 override)
keynet-train push train.py --base-image pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
# requirements.txt 경로 지정
keynet-train push train.py --requirements ./deps/requirements.txt
# 빌드 컨텍스트 지정
keynet-train push train.py --context ./my-project
# 캐시 없이 빌드
keynet-train push train.py --no-cache
keynet logout
저장된 인증 정보를 삭제합니다.
keynet logout
전체 워크플로우 예시
import argparse
import torch
from keynet_train import trace_pytorch
parser = argparse.ArgumentParser()
parser.add_argument("--learning-rate", type=float, default=0.001)
parser.add_argument("--epochs", type=int, default=10)
@trace_pytorch(
model_name="resnet50-classifier",
sample_input=torch.randn(1, 3, 224, 224),
base_image="pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime"
)
def train_model():
args = parser.parse_args()
# 훈련 코드...
return model
if __name__ == "__main__":
train_model()
keynet-train>=0.8.5
# 실행
keynet login https://gateway.aiplatform.re.kr
keynet-train push train.py
다음 단계
keynet-train CLI를 사용하여 이미지를 업로드했다면:
- Hyperparameter 설정: Platform에서 hyperparameter 등록
- 학습 이미지 업로드: Docker 방식: Docker 명령어로 직접 빌드하는 방법 (고급)