ML-TANGO / TANGO

public repo for TANGO (Target Aware No-code neural network Generation and Operation framework)
Other
68 stars 20 forks source link

CI CD 지원 #155

Open ML-TANGO opened 1 month ago

ML-TANGO commented 1 month ago

Continual Learning을 위한 CI / CD 지원


Continual Learning

새로운 데이터가 축적되면 기존 모델을 재학습

모델 재학습 프로세스 자동화 재학습 결과물인 모델 버전 관리


CI/CD 파이프라인

  1. 모델 학습후 변경 사항을 자동 빌드, 테스트, 배포하는 CI/CD 파이프라인 구축
  2. 재학습된 새로운 모델을 포함한 App을 자동으로 배포하고 모니터링

Dataset update에 따른 Pipeline Iteration logic

Project Manager 추가 요구사항


데이타셋 준비

COCO 데이터셋의 train.txt를 다음과 같이 6개의 버전으로 TANGO Pipeline iteration마다 PM(Project Manager)에서 /shared/datasets/coco/ 폴더 아래에 생성한다.

val.txt는 iteration과 무관하게 모델의 학습을 평가하기 위하여 동일한 것을 사용한다.


TANGO 프레임워크 API 업데이트

member container에게 현재 진행중인 iteration의 정보를 전달하기 위하여 다음과 같이 v_suffix 파라메터 추가

request from PM to member container

start(project_id=<project_id>, user_id=<user_id>, v_suffix=<v_suffix> )
stop(project_id=<project_id>, user_id=<user_id>, v_suffix=<v_suffix> )
status_request(project_id=<project_id>, user_id=<user_id>, v_suffix=<v_suffix> )

request from member container to PM

status_report(container_id=<container_id>, user_id=<user_id>, project_id=<project_id>, status=<status>, v_suffix=<v_suffix> )

v_suiffix format

TODO:


멤버 컨테이너간 전달용 데이타의 버전관리

/shared/common/user_id/project_id/ 폴더 아래에서 관리되는 컨테이너간 전달용 데이타의 버전 관리를 위하여 다음과 같이, version suffix(_NNNN)를 추가하여 구분한다.

참고: TANGO Guides | Exchanging Data among Containers

얼마나 많은 버전을 유지할 것인가?

학습된 모델의 weight가 저장되는 .pt의 경우, 파일 크기가 크므로 무한정 저장할 수는 없다. PM내부에서 유지할 최대 갯수(VERSION_MAX)를 내부적으로 정하고 최근 VERSION_MAX개의 버전만 유지


컨테이너에서의 버전 고려사항

AutoNN (2024년에는 BMS와 기존 AutoNN 기능 통합)에서는 다음과 같이 입출력시 pipeline iteration정보를 나타내는 version suffix를 사용하여야 한다.

Code Gen에서도 다음과 같이 입출력시 pipeline iteration정보를 나타내는 version suffix를 사용하여야 한다.

Code Gen의 출력물에 대하여 버전을 유지할 필요가 있을까??

ML-TANGO commented 1 month ago

CI CD 지원을 위한 별도의 저장소 (가칭 TANGO-SDV) 를 만들것인가에 대한 의견 청취후 결정이 필요하다.