<img width="1270" alt="KitOps" src="https://github.com/kitops-ml/kitops/assets/10517533/41295471-fe49-4011-adf6-a215f29890c2" id="top">
KitOps: Standards-based packaging & versioning for AI/ML projects
LICENSE
Discord
Twitter
목차 (Table of Contents)
KitOps란 무엇인가? (What is KitOps?)
KitOps는 AI/ML 프로젝트를 패키징, 버전 관리하고 안전하게 공유하기 위한 CNCF 오픈 소스 도구입니다.
컨테이너의 기반이 되는 동일한 OCI (Open Container Initiative) 기술을 기반으로, KitOps는 모델 개발 또는 프로덕션에 필요한 모든 것을 버전화되고 계층화된 아티팩트로 패키징하여 기존 컨테이너 레지스트리에 저장합니다. 이는 사용자의 모든 AI/ML, CI/CD 및 DevOps 도구와 통합됩니다.
Kubernetes AI/ML 기술 스택의 일부로서, KitOps는 AI 모델과 에이전트를 자체 호스팅해야 하는 보안을 중시하는 기업, 정부 기관, 클라우드 운영자들에게 가장 선호되는 패키징, 버전 관리 및 AI 자산 관리 솔루션입니다.
KitOps와 CNCF
KitOps는 CNCF (Kubernetes, OpenTelemetry, Prometheus를 관리하는 동일한 조직)에 의해 관리됩니다. 이 비디오는 CNCF 내에서 KitOps 개요를 제공합니다.
KitOps는 또한 벤더 중립적인 AI/ML 상호 교환 형식인 CNCF ModelPack 사양의 엔터프라이즈 구현체입니다. Kit CLI는 ModelKit과 ModelPack 형식을 모두 투명하게 지원합니다. ModelPack에 기여하는 회사로는 Red Hat, PayPal, ANT Group, ByteDance가 있습니다.
Official Website
Use Cases
15분 만에 KitOps 사용해 보기
- CLI 설치: macOS, Windows 및 Linux용.
- 첫 번째 ModelKit 패키징하기: 다음 중 하나를 선택합니다:
- HuggingFace에서 가져오기: HuggingFace에서 모델을 직접 ModelKit으로 가져올 수 있습니다(HuggingFace Import).
- 프로젝트 디렉터리로 이동하여
kit init .를 실행해 Kitfile을 자동 생성한 후, 시작하기 가이드를 따라 패키징(pack), 푸시(push), 풀(pull) 작업을 수행합니다.
- 레지스트리에 푸시하기:
kit push를 사용하여 기존 엔터프라이즈 레지스트리를 AI 에이전트, 모델 및 MCP 서버를 위한 안전하고 관리되는 레지스트리로 활용할 수 있습니다.
- 사전 구축된 ModelKit 탐색하기: LLM, 컴퓨터 비전 모델 등은 빠른 시작 가이드에서 사용해 보세요.
소스 코드로부터 직접 빌드하는 것을 선호하는 경우, 이 단계를 따라 레지스트리에서 최신 버전을 받아보세요.
팀들이 KitOps를 사용하는 방법
레벨 1: 프로덕션 핸드오프 (Production Handoff)
대부분의 팀은 모델이나 에이전트가 스테이징 또는 프로덕션 환경에 배포될 준비가 되었을 때, 이를 버전 관리하기 위해 KitOps를 사용하면서 시작합니다. ModelKit은 불변(immutable)하고 자체 포함된 패키지 역할을 하여 CI/CD 배포, 아티팩트 서명(artifact signing), AI SBOM 생성, 그리고 배포/롤백 과정을 간소화합니다. 이를 통해 알 수 없는 AI 워크로드가 프로덕션에 진입하는 것을 방지하고 데이터셋, 모델 가중치(model weights), 설정 파일이 동기화되고 추적 가능하게 유지됩니다.
더 알아보기: CI/CD 통합
레벨 2: 모델 보안
규제가 엄격한 산업의 팀들은 모델이 프로덕션에 도달하기 전에 스캔하고 게이트하는 데 KitOps를 사용합니다. ModelKit을 구축하고 Cosign으로 서명하며, 보안 검사를 실행하고 보고서를 서명된 증명(attestations)으로 첨부하며, 증명된 ModelKit만 다음 단계로 진행되도록 허용합니다. KitOps는 기존에 사용하던 어떤 도구 위에든 보안 및 감사 계층을 제공합니다.
더 알아보기: Securing ModelKits
레벨 3: 전체 수명 주기 버전 관리 (Full Lifecycle Versioning)
성숙한 팀들은 KitOps를 개발 단계까지 확장합니다. 모든 마일스톤(새로운 데이터셋, 튜닝 체크포인트, 재학습 이벤트)은 버전이 지정된 ModelKit으로 저장됩니다. 모델 버전마다 표준 시스템(OCI)을 사용하며, 위변조가 불가능하고 콘텐츠 주소 지정 가능한 스토리지를 제공합니다.
더 알아보기: How KitOps is Used
KitOps 아키텍처
ModelKit
KitOps는 프로젝트를 ModelKit으로 패키징합니다. 이는 AI/ML 모델을 재현, 테스트 또는 배포하는 데 필요한 모든 것을 포함하는 자체 완결적이고 불변(immutable)한 번들입니다.
ModelKit에는 에이전트, 모델 가중치, MCP 서버, 데이터셋, 프롬프트, 실험 실행 결과 및 하이퍼파라미터, 메타데이터, 환경 구성, 코드 등이 포함될 수 있습니다.
ModelKit의 특징:
- 위변조 방지(Tamper-proof) - 모든 구성 요소가 SHA-256 다이제스트로 보호되어 일관성과 추적성을 보장합니다.
- 서명 가능(Signable) - 암호화 검증을 위한 완벽한 Cosign 호환성을 제공합니다.
- 호환성(Compatible) - 모든 주요 OCI 컨테이너 레지스트리에 네이티브로 저장 및 검색됩니다.
- 선택적 언패킹(Selectively unpacked) - 필요한 레이어만 가져올 수 있습니다 (모델만, 데이터셋만 등).
KitOps는 또한 CNCF model-spec 형식을 사용하여 ModelPack과 호환되는 패키지를 생성할 수도 있습니다. 두 형식 모두 공급업체 중립적인 표준이며, Kit 명령어(pull, push, unpack, inspect, list)는 둘 다와 투명하게 작동합니다.
ModelKit은 AI 아티팩트를 애플리케이션 코드처럼 1급의 거버넌스된 자산으로 격상시킵니다.
Kitfile
A Kitfile은 ModelKit 내에서 각 아티팩트가 위치하는 곳을 정의합니다. kit init 명령어로 자동으로 생성할 수 있습니다.
Kit CLI
Kit CLI를 사용하면 ModelKit을 생성하고, 관리하며, 실행하고, 배포할 수 있습니다. 주요 명령어는 다음과 같습니다:
kit pack - 프로젝트를 ModelKit으로 패키징합니다 (ModelPack 형식으로 사용하려면 --use-model-pack 추가)
kit unpack - ModelKit에서 모든 레이어 또는 특정 레이어를 추출합니다
kit push / kit pull - 모든 OCI 레지스트리를 통해 ModelKit을 공유합니다
kit init - 기존 프로젝트 디렉토리에서 Kitfile을 자동 생성합니다
kit diff - 두 ModelKit 간의 차이점을 비교합니다
kit list - 사용 가능한 ModelKit 및 ModelPack 목록을 보여줍니다
kit inspect - ModelKit을 언패킹하지 않고 내용을 확인합니다
PyKitOps Python SDK
PyKitOps 라이브러리를 사용하면 데이터 과학자가 Python에서 ModelKit을 다룰 수 있습니다. 이를 사용하여 좋아하는 도구의 워크플로우를 벗어나지 않고 ModelKit을 패킹, 푸시, 풀 및 검사할 수 있습니다.
KitOps 작동 모습 보기
KitOps Video
이 비디오는 ModelKit을 사용하여 데이터 과학자, 개발자, SRE 간의 협업을 어떻게 간소화하는지 보여줍니다.
보안 및 규정 준수
KitOps는 AI/ML 자산에 대한 관리 책임(chain-of-custody)과 출처(provenance)를 수립하고 유지해야 하는 조직을 위한 아티팩트 및 프로젝트 메타데이터를 제공합니다:
- 불변 다이제스트 (Immutable digests) - 모든 ModelKit 구성 요소는 SHA-256 해시 처리됩니다. 아티팩트를 가져오거나 검색할 때 OCI 다이제스트 검증을 통해 파일의 변경 사항이 감지되며, 변조된 아티팩트는 거부됩니다.
- 암호화 서명 (Cryptographic signatures) - Cosign을 사용하여 ModelKit에 서명합니다 (키 기반 또는 OIDC를 통한 키리스 방식). 서명이 없거나 변조된 ModelKit은 CI/CD에서 차단될 수 있습니다.
- AI 자재 명세서 (AI Bill of Materials) - ModelKits는 버전 추적 기능을 갖춘 모든 구성 요소(모델 가중치, 데이터 세트, 코드, 설정)의 구조화된 인벤토리를 제공하며, 이는 AI SBOMs의 기반 역할을 합니다.
- 투명성 로깅 (Transparency logging) - Rekor와 결합하여 추가 전용 서명 기록을 만듭니다.
- 감사 준비 순계 (Audit-ready lineage) - 실험부터 스테이징, 프로덕션까지의 전체 버전 이력을 OCI 레지스트리에 저장합니다.
이러한 속성들은 EU AI Act, NIST AI RMF, ISO 42001 등 아티팩트 무결성, 출처 검증 및 감사 추적을 요구하는 규정 준수 프레임워크에 ModelKits를 적합하게 만듭니다.
더 알아보기: Securing Your Model Supply Chain
KitOps는 또한 중앙 집중식 정책 관리, 5단계 보안 스캐닝, 서명된 증명(attestations), 변조 방지 감사 로그를 추가하는 **Jozu Hub**에서도 사용됩니다. Jozu Hub는 방화벽 뒤에 설치되어 프라이빗 클라우드, 데이터센터 또는 에어 갭 환경의 기존 OCI 레지스트리와 연동하여 작동합니다.
역할별 KitOps
DevOps 및 플랫폼 엔지니어
데이터 과학자
개발자 (Developers)
- AI/ML 모델을 다른 종속성(dependency)처럼 표준 도구와 API로 사용하세요.
- 전체 패키지를 다운로드할 필요 없이 필요한 레이어(모델, 데이터셋, 코드)만 가져오세요.
- Kubeflow Pipelines 및 기타 ML 도구와 통합하세요.
통합 (Integrations)
KitOps는 사용자가 이미 사용하는 도구들과 작동합니다:
자세한 통합 목록을 확인하세요.
지원, 릴리스 업데이트 및 일반적인 KitOps 논의를 위해 KitOps Discord에 참여하세요. 일일 업데이트는 X에서 KitOps 팔로우하세요.
도움이 필요하면 커뮤니티에 연락할 수 있는 여러 방법과 유지보수자가 우리의 지원 문서에 명시되어 있습니다.
KitOps 기여자 참여하기
저희는 KitOps 커뮤니티와 기여자들을 매우 아낍니다. 여러분이 기여할 수 있는 다양한 방법(코더일 필요 없음)과 시작하는 방법에 대해 더 알고 싶다면 기여자 가이드를 확인해 주세요. 기여하기 전에 저희의 거버넌스와 행동 강령을 읽어보시기 바랍니다.
이슈 보고 및 기능 제안
여러분의 통찰력은 KitOps가 AI/ML 분야의 개방형 표준으로 진화하는 데 도움을 줍니다. 저희는 커뮤니티 사용자들로부터 받는 이슈와 기능 요청에 깊이 감사드립니다. 여러분의 의견을 기여하려면 Issues 탭으로 이동하여 New Issue 버튼을 클릭하세요.
KitOps 커뮤니티 콜 (격주)
수요일 @ 13:30 - 14:00 (America/Toronto)
존중을 바탕으로 구축된 커뮤니티