Open ML-TANGO opened 1 month ago
새로운 데이터가 축적되면 기존 모델을 재학습
모델 재학습 프로세스 자동화 재학습 결과물인 모델 버전 관리
Dataset update에 따른 Pipeline Iteration logic
COCO 데이터셋의 train.txt를 다음과 같이 6개의 버전으로 TANGO Pipeline iteration마다 PM(Project Manager)에서 /shared/datasets/coco/ 폴더 아래에 생성한다.
val.txt는 iteration과 무관하게 모델의 학습을 평가하기 위하여 동일한 것을 사용한다.
member container에게 현재 진행중인 iteration의 정보를 전달하기 위하여 다음과 같이 v_suffix 파라메터 추가
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)를 추가하여 구분한다.
/shared/common/user_id/project_id/
_NNNN
project_info.yaml
basemodel.yaml
neural_net_info_NNNN.yaml
bestmodel_NNNN.onnx
bestmodel_NNNN.pt
model.py
deployment _NNNN.yaml
nn_model _NNNN
nn_model _NNNN.zip
참고: TANGO Guides | Exchanging Data among Containers
얼마나 많은 버전을 유지할 것인가?
학습된 모델의 weight가 저장되는 .pt의 경우, 파일 크기가 크므로 무한정 저장할 수는 없다. PM내부에서 유지할 최대 갯수(VERSION_MAX)를 내부적으로 정하고 최근 VERSION_MAX개의 버전만 유지
.pt
VERSION_MAX
AutoNN (2024년에는 BMS와 기존 AutoNN 기능 통합)에서는 다음과 같이 입출력시 pipeline iteration정보를 나타내는 version suffix를 사용하여야 한다.
/shared/datasets/dataset_name
Code Gen에서도 다음과 같이 입출력시 pipeline iteration정보를 나타내는 version suffix를 사용하여야 한다.
Code Gen의 출력물에 대하여 버전을 유지할 필요가 있을까??
CI CD 지원을 위한 별도의 저장소 (가칭 TANGO-SDV) 를 만들것인가에 대한 의견 청취후 결정이 필요하다.
Continual Learning을 위한 CI / CD 지원
Continual Learning
새로운 데이터가 축적되면 기존 모델을 재학습
모델 재학습 프로세스 자동화 재학습 결과물인 모델 버전 관리
CI/CD 파이프라인
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
request from member container to PM
v_suiffix format
TODO:
멤버 컨테이너간 전달용 데이타의 버전관리
/shared/common/user_id/project_id/
폴더 아래에서 관리되는 컨테이너간 전달용 데이타의 버전 관리를 위하여 다음과 같이, version suffix(_NNNN
)를 추가하여 구분한다.project_info.yaml
(PM에서 생성)basemodel.yaml
(BMS에서 생성) : 2024년에는 BMS가 AutoNN이 통합되므로 불필요neural_net_info_NNNN.yaml
(AutoNN에서 생성)bestmodel_NNNN.onnx
(AutoNN에서 생성)bestmodel_NNNN.pt
(AutoNN에서 생성)model.py
(AutoNN에서 생성)deployment _NNNN.yaml
(Code Gen에서 생성)nn_model _NNNN
(Code Gen에서 생성)nn_model _NNNN.zip
(Code Gen에서 생성)참고: TANGO Guides | Exchanging Data among Containers
얼마나 많은 버전을 유지할 것인가?
컨테이너에서의 버전 고려사항
AutoNN (2024년에는 BMS와 기존 AutoNN 기능 통합)에서는 다음과 같이 입출력시 pipeline iteration정보를 나타내는 version suffix를 사용하여야 한다.
/shared/datasets/dataset_name
subfoldersneural_net_info_NNNN.yaml
Code Gen에서도 다음과 같이 입출력시 pipeline iteration정보를 나타내는 version suffix를 사용하여야 한다.
neural_net_info_NNNN.yaml