Airflow DAG 실행

Stitching the DAG tasks together

마지막으로 다음과 같이 DAG의 작업 종속성을 정의합니다.

# set the dependencies between tasks
s3_sensor >> preprocess_task >> train_model_task >> batch_transform_task

이렇게 해서 DAG 코드가 완료 되었습니다. 지금까지 개발 된 DAG 코드를 ml_pipeline.py로 만들어 Cloud9 workspace의 dags 폴더에 저장하고 같은 경로에 있는 config.pypreprocess.py 파일과 함께 MWAA 환경으로 업로드 하겠습니다.

Cloud9 workspace의 terminal에서 다음 AWS CLI 명령어를 실행하여 DAG 파일을 S3로 업로드 하십시오.

CLI를 실행하기 전에 <your_aws_account_id> 문구는 현재 사용하고 있는 12자리 AWS Account ID로 변경해야 합니다.

cd ~/environment/dags
ls
aws s3 sync . s3://mwaa-workshop-<your_aws_account_id>/dags/

스크립트가 배포되면 1분 이내에 Airflow UI에서 ml_pipeline DAG를 볼 수 있습니다.

Data Pipeline in Action

배포 된 DAG는 초기에 기본적으로 비활성화된 상태로 설정됩니다. Airflow UI에서 On/Off 토글 버튼을 사용하여 DAG를 활성화하십시오.

DAG의 재생 버튼을 클릭하여 DAG를 실행 하십시오.

MlDagrun

이전 단계에서 학습 CSV 파일을 s3://mwaa-sagemaker-bucket-<your_aws_account_id>/raw/에 업로드 해 놓았기 때문에 DAG의 첫 번째 s3_sensor 작업은 즉시 완료 되어 다음 작업을 진행합니다.

전체 DAG는 몇 분 안에 완료되며 DAG 실행 중에 Amazon Sagemaker 콘솔을 방문하여 작업 세부 정보를 볼 수 있습니다.

  • Training Job - Here
  • Transform Job - Here

MlDagrun MlDagrun

DAG 실행이 끝나면 일괄 추론 변환 작업의 결과가 S3 경로(s3://mwaa-sagemaker-bucket-<your_aws_account_id>/transform/)에 기록됩니다. MlDagrun

학습된 모델은 S3 경로 s3://mwaa-sagemaker-bucket-<your_aws_account_id>/xgboost/output/에도 배포됩니다. MlDagrun

결과 CSV 파일을 다운로드하여 뉴욕 택시 운임에 대한 예측 값을 볼 수 있습니다.

Conclusion

이 모듈에서는 ML 워크플로우를 구축하는 데 상당한 준비가 필요하지만 반복적인 ML 작업의 실험 속도, 엔지니어링 생산성 및 유지 관리를 개선하는 데 도움이 된다는 것을 확인했습니다.

Airflow Amazon SageMaker Operators는 ML 워크플로우를 구축하고 Amazon SageMaker와 통합하는 편리한 방법을 제공합니다.

feature 엔지니어링, 병렬 모델 학습, 데이터 변경 사항에 대비한 모델 재훈련 등 ML 워크플로우에 더 잘 맞는 작업으로 Airflow DAG를 커스터마이징하여 워크플로우를 확장할 수 있습니다.