플러그인 시스템
Synapse SDK는 다양한 카테고리와 실행 방법에 걸쳐 ML 플러그인을 구축하고 관리하기 위한 포괄적인 플러그인 시스템을 제공합니다. 플러그인 시스템은 다양한 환경에서 배포되고 실행될 수 있는 모듈식, 재사용 가능한 컴포넌트를 가능하게 합니다.
개요
플러그인 시스템은 액션 개념을 중심으로 구축됩니다 - 패키징, 배포 및 다양한 컨텍스트에서 실행될 수 있는 개별 작업들입니다. 각 플러그인은 특정 카테고리에 속하며 여러 액션을 지원할 수 있습니다.
주요 기능
- 🔌 모듈식 아키텍처: 플러그인은 자체 종속성과 구성을 가진 자체 포함형입니다
- ⚡ 다중 실행 방법: Job, Task 및 REST API 엔드포인트 지원
- 📦 분산 실행: 확장 가능한 분산 컴퓨팅을 위해 구축됨
- 🛠️ 템플릿 시스템: 신속한 플러그인 개발을 위한 Cookiecutter 기반 스캐폴딩
- 📊 진행률 추적: 내장된 로깅, 메트릭 및 진행률 모니터링
- 🔄 동적 로딩: 런타임 플러그인 발견 및 등록
플러그인 카테고리
SDK는 플러그인을 특정 카테고리로 구성하며, 각각은 ML 워크플로우의 다양한 측면을 위해 설계되었습니다:
1. 신경망 (neural_net)
ML 모델 훈련, 추론 및 배포 작업들.
사용 가능한 액션:
deployment- 모델을 프로덕션 환경에 배포gradio- 모델용 대화형 웹 인터페이스 생성inference- 데이터에 대한 모델 예측 실행test- 모델 성능과 정확도 검증train- 사용자 정의 데이터셋으로 ML 모델 훈련tune- 하이퍼파라미터 최적화 및 모델 튜닝
사용 사례:
- 컴퓨터 비전 모델 훈련
- 모델을 웹 서비스로 배포
- 데이터셋에 대한 배치 추론 실행
- 대화형 모델 데모 생성
2. Export (export)
Synapse 플랫폼에서 주석이 달린 데이터, 그라운드 트루스 데이터셋, 할당 및 작업을 내보내기 위한 데이터 내보내기 및 변환 작업.
사용 가능한 액션:
export- 다양한 소스(할당, 그라운드 트루스, 작업)에서 사용자 정의 처리와 함께 데이터 내보내기
사용 사례:
- 훈련용 주석 데이터셋 내보내기
- 그라운드 트루스 데이터를 사용자 정의 형식으로 변환
- 배포용 데이터 패키지 생성
- 할당 결과의 배치 처리
- 외부 도구용 주석 데이터 변환
지원되는 내보내기 대상:
assignment- 주석이 있는 할당 데이터 내보내기ground_truth- 그라운드 트루스 데이터셋 버전 내보내기task- 관련 주석이 있는 작업 데이터 내보내기
Export 플러그인에 대한 자세한 정보, BaseExporter 클래스 구조, 구현 예시 및 모범 사례는 Export 플러그인 문서를 참조하세요.
플러그인 구성
플러그인은 YAML 구성 파일을 사용하여 구성되며, 이 파일은 메타데이터, 종속성, 패키지 관리 옵션 및 액션을 정의합니다.
패키지 관리
# 플러그인 메타데이터 (필수)
name: "my-ml-plugin" # 필수: 플러그인 이름
version: "1.0.0" # 필수: 버전
category: "neural_net" # 필수: 카테고리
description: "사용자 정의 ML 플러그인" # 필수: 설명
# 패키지 관리 (선택사항)
package_manager: "pip" # 선택사항: "pip" 또는 "uv" (기본값: "pip")
# 패키지 매니저 옵션 (선택사항)
# uv만 지원 pip_install_options: 지원 예정
# uv의 경우 기본값은 ['--no-cache']입니다
package_manager_options: ["--no-cache", "--quiet"] # 선택사항: 설치 옵션
# 액션 정의 (필수)
actions: # 필수: 최소 하나의 액션 필요
train:
entrypoint: "plugin.train.TrainAction" # 필수
method: "job" # 필수: 실행 방법
구성 옵션 설명:
필수 필드:
name: 플러그인 이름version: 플러그인 버전category: 플러그인 카테고리 (neural_net,export등)description: 플러그인 설명actions: 플러그인 액션 정의 (최소 하나 필요)entrypoint: 액션의 진입점 클래스method: 실행 방법 (job,task,serve등)
선택사항 필드:
package_manager: 종속성에 사용할 패키지 매니저 (기본값:"pip")- 지원 값:
"pip"또는"uv"
- 지원 값:
package_manager_options: 패키지 설치 명령에 대한 사용자 제공 옵션- 현재 Ray 2.44.1에서는
uv만 지원됩니다 uv의 경우 기본값은["--no-cache"]입니다- 사용자 정의 옵션이 기본값과 병합됩니다
- 현재 Ray 2.44.1에서는