본문으로 건너뛰기
버전: docs v25.02

실험

Updated 2024.05.05

ML Pipeline을 구성하는 각 Asset 개발이 완료되었다면, experimental_plan.yaml을 한번 더 점검하고 아래 가이드를 따라 ML pipeline을 실행하며 실험을 진행합니다.

Topics



AI Pipeline 실행하기

python main.py
python main.py --mode train # train pipeline만 실행
python main.py --mode inference # inference pipeline만 실행

ALO의 main.py가 실행되면 experimental_plan.yaml 에 정의된 asset_source의 git으로부터 alo/assest 폴더에 각 Asset의 코드를 다운로드 받습니다.
각 asset을 다운로드 받으면서 ALO는 experimental_plan.yaml의 requirements라는 key 명으로 적혀 있는 부분의 하단에 명시된 각 asset의 dependency 패키지들을 설치합니다.
이때, pandas==1.5.3과 같이 패키지 명을 직접 작성할 수도 있고, requirements.txt라고 작성하게 되면 해당 Asset의 git repository에 존재하는 requirements.txt 내에 적혀있는 패키지들을 설치합니다.

또한 서로 다른 Asset에서 같은 패키지의 다른 버전 을 설치해야 할 때는 패키지 충돌이 날 수 있는데,
(ex. input asset에서는 pandas==1.5.3을 설치해야 하고, train asset에서는 pandas==1.5.4를 설치해야 할 때)
이때는 만약 AI pipeline 상에서 더 뒤에 오는 asset의 패키지 명 뒤에 pandas==1.5.4 --force-reinstall과 같은 옵션을 붙여서 적어주면, 이미 pandas==1.5.3이 설치되어 있어도, 1.5.4로 재설치를 시도하게 됩니다.
(ex. train asset이 input asset보다 pipeline 상 더 뒤에 옵니다.)
asset 제작자는 이런 식으로 선순위 asset과 후순위 asset 사이의 dependency 패키지 충돌을 방지하면서 전체적인 AI Contents 혹은 AI Solution 제작을 진행해야 합니다.

Note: AI Contents를 변경하신 경우 새로운 Anaconda (혹은 Pyenv+Pipenv) 등의 가상 환경을 생성하고 main.py를 실행해야 이미 해당 가상 환경에 깔려 있는 패키지들과 새로 설치할 패키지들 간의 충돌을 방지할 수 있습니다.  

#experimental_plan.yaml
asset_source:
- train_pipeline:
- step: input
source:
code: http://mod.lge.com/hub/smartdata/ml-framework/alov2-module/input.git
branch: tabular_2.0
requirements:
- pandas==1.5.3

각 Asset의 종속 python 패키지들이 설치되면 ALO는 external_path에 정의된 외부 데이터를 alo/input/train(혹은 inference) 경로로 copy하여 가져옵니다.
train 또는 inference pipeline 내의 input Asset에서는 데이터 경로를 self.asset.get_input_path() API를 통해 얻을 수 있는데, 이는 alo/input/train(혹은 inference) 폴더에 대한 절대 경로를 반환합니다.  

Note: 솔루션 등록 이후 AI Conductor, Edge App 등과 같은 운영 환경 상에서 ALO는 Docker Container로 감싸져 있기 때문에 Docker Container 내의 alo/input/train(혹은 inference)라는 약속된 로컬 경로에만 접근하여 input data를 가져옵니다. 따라서 반드시 input data를 불러들이는 경로는 get_input_path() API 호출을 통해 얻어와야 합니다.



나의 데이터로 실행하기

experimental_plan.yaml 에서 데이터의 경로를 external_path 쪽에 설정하고 데이터에 맞게 user_parameters 를 설정합니다.
AI Contents를 기반으로 하여 AI Solution을 만들면 AI Solution 사용자는 해당 AI Solution 개발자의 가이드에서 권장하는 데이터 명세 조건을 만족 해야 하며, 가령 x_columns, y_column과 같은 파라미터가 필수 수정 파라미터라면, 해당 파라미터를 수정해가며 사용해야합니다.
그 외의 user_parameter는 AI Solution 개발자가 작성하는 가이드를 참고하여 데이터에 맞게 수정하면 됩니다.

Note : 데이터 경로 등의 path 작성 시, 상대 경로로 작성할 때 main.py가 존재하는 경로가 상대 경로의 기준 경로가 됩니다.  

#experimental_plan.yaml
external_path:
- load_train_data_path: [./solution/sample_data/train/]
- load_inference_data_path: ./solution/sample_data/inference/