first commit

This commit is contained in:
2026-07-09 13:52:54 +09:00
commit d9800c4ce1
7 changed files with 842 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
# from clearml import Task
from clearml.automation import PipelineController
# 1. 파이프라인을 트리거하고 모니터링할 메인 Task 초기화
# 이 Task는 파이프라인의 '컨트롤러(조율자)' 역할을 합니다.
# task = Task.init(
# project_name="Git_Pipeline_Demo",
# task_name="Git_Based_Pipeline_Controller",
# task_type=Task.TaskTypes.controller
# )
if __name__ == '__main__':
# 2. 파이프라인 컨트롤러 생성
# 실행이 완료된 후 파이프라인이 정상 종료되도록 설정합니다.
pipe = PipelineController(
name="Git_Data_Processing_Pipeline",
project="Git_Pipeline_Demo",
version="1.0.1",
add_pipeline_tags=True
)
# 각 Step이 실행될 기본 큐 (add_step에 execution_queue를 안 주면 이 값 사용)
pipe.set_default_execution_queue("default")
# 3. Git 정보 정의 (에이전트가 코드를 가져올 저장소 주소)
# 본인의 Git 환경에 맞게 URL과 브랜치명을 수정하세요.
GIT_REPO_URL = "git.devcafe.kr/ClearML/task2"
GIT_BRANCH = "main"
# 4. 파이프라인 단계(Step) 추가
# 각 Step은 에이전트가 Git에서 코드를 Clone한 뒤, 지정한 스크립트를 실행하도록 지시합니다.
# [Step 1: 데이터 다운로드 및 전처리]
# pipe.add_step(
# name="data_preprocessing",
# base_task_project="Test_Project",
# base_task_name="Agent_Execution_Test",
# # execution_queue="default",
# # 브랜치만 바꿀 때
# )
pipe.add_step(
name="model_training_test",
# parents=["data_preprocessing"],
base_task_project="Normal_Object_Detection",
base_task_name="model-test",
# 브랜치만 바꿀 때
)
# [Step 2: 모델 학습]
# data_preprocessing 단계가 성공적으로 끝나야만 실행되도록 종속성(parents)을 설정합니다.
# pipe.add_step(
# name="model_training",
# parents=["data_preprocessing"], # Step 1이 끝나야 실행됨
# base_task_project="Git_Pipeline_Demo",
# base_task_name="model_train_template",
# repo=GIT_REPO_URL,
# branch=GIT_BRANCH,
# script="__.py", # 레포지토리 내 학습 스크립트 경로
# queue="default",
# # 앞선 Step의 결과물이나 파라미터를 넘겨받을 수 있습니다.
# parameter_overrides={
# "General/dataset_path": "${data_preprocessing.artifacts.dataset.url}"
# }
# )
# 5. 파이프라인 로컬 실행 또는 원격 에이전트에 위임
# 기본적으로 .start()를 사용하면 로컬에서 파이프라인의 흐름을 제어하고,
# 실제 각 Step(preprocess.py, train.py)들은 지정된 'default' 큐의 에이전트가 Git에서 받아와 실행합니다.
# pipe.start(queue="default")
pipe.start_locally(run_pipeline_steps_locally=True)
# 파이프라인이 완전히 종료될 때까지 대기
# pipe.wait()
print("파이프라인 실행이 완료되었습니다!")