1. SageMaker Canvas란?
Amazon SageMaker Canvas는 코딩 없이 데이터 준비부터 정확한 ML 모델의 구축 및 배포까지 전체 ML 수명 주기를 간소화하는 시각적 인터페이스입니다. 또한 SageMaker Autopilot과 Amazon Bedrock의 파운데이션 모델을 통해 사용자 지정 ML 모델을 자동으로 구축하고 미세 조정하여 혁신을 가속화하고 생산성을 높입니다.
1.1 SageMaker Canvas 주요 기능
1. 데이터 준비
- 데이터 소스: 다양한 데이터 소스와 파일 형식을 연결하여 코딩 없이 ML 모델을 학습할 수 있습니다.
- 데이터 시각화: 코드 없이 데이터를 탐색하고 시각화하여 데이터 품질을 확인하고 이상치를 감지할 수 있습니다.
- 코드 없는 데이터 변환: 300개 이상의 사전 구축된 변환을 통해 데이터를 코드 없이 손쉽게 변환할 수 있습니다.
- 데이터 파이프라인: 데이터 준비 워크플로를 시작하거나 예약하여 데이터 처리를 자동화하고 확장할 수 있습니다.
2. ML 모델 액세스 및 빌드
- 대화형 가상 분석 및 일괄 예측: 입력을 변경하여 예측 결과를 분석하고, 전체 데이터 세트에 대한 일괄 예측을 생성할 수 있습니다.
- 실시간 예측 지원: 모델을 SageMaker 엔드포인트에 배포하여 실시간 추론을 수행할 수 있습니다.
- Amazon QuickSight 통합: 모델 예측을 QuickSight와 공유하여 비즈니스 인텔리전스와 예측 데이터를 결합한 대시보드를 구축할 수 있습니다.
3. ML 예측 생성
- 대화형 가상 분석 및 일괄 예측: 입력을 변경하여 예측 결과를 분석하고, 전체 데이터 세트에 대한 일괄 예측을 생성할 수 있습니다.
- 실시간 예측 지원: 모델을 SageMaker 엔드포인트에 배포하여 실시간 추론을 수행할 수 있습니다.
- Amazon QuickSight 통합: 모델 예측을 QuickSight와 공유하여 비즈니스 인텔리전스와 예측 데이터를 결합한 대시보드를 구축할 수 있습니다.
4. MLOps 활용
- SageMaker 모델 레지스트리 통합: 모델을 모델 레지스트리에 등록하여 기존 CI/CD 프로세스에 통합할 수 있습니다.
- SageMaker Studio를 사용한 모델 공유: 데이터 과학자와 모델을 공유하여 검토, 업데이트 및 배포에 협업할 수 있습니다.
1.2 SageMaker Canvas 서비스의 장점
Amazon SageMaker Canvas 서비스는 코딩 없이도 기계 학습 모델을 쉽게 구축하고 활용할 수 있는 다음과 같은 장점이 있습니다
- 페타바이트 규모의 전체 ML 수명 주기: 페타바이트 규모로 데이터 준비부터 추론까지 ML 수명 주기 전반에서 기계 학습의 전체 기능을 이용할 수 있습니다.
- 코딩이 필요 없는 AutoML 인터페이스: 코딩이 필요 없는 경험을 통해 매우 정확한 사용자 지정 기계 학습 및 파운데이션 모델을 구축하고 활용하세요.
- 파운데이션 모델에 대한 액세스: Amazon Bedrock 및 SageMaker JumpStart의 광범위한 파운데이션 모델을 탐색, 평가 및 미세 조정할 수 있습니다.
- 거버넌스 및 ML Ops: 거버넌스 및 ML Ops를 위한 SageMaker Model Registry 및 Amazon DataZone을 비롯한 다른 AWS 서비스와의 모델 공유 및 통합을 지원합니다.
- 협업: 코드 수준의 투명성을 통해 전문가와의 협업을 강화합니다.
2. Hands On
학습 내용
SageMaker Canvas 서비스를 통해 코드를 작성하지 않고 기계 학습 모델을 구축하고 정확한 예측을 생성하는 실습을 진행할 예정입니다.
- 데이터 세트 가져오기
- 분류 대상 변수 선택
- 데이터 세트 육안 검사
- SageMaker Canvas 빠른 구축 기능으로 기계 학습 모델을 구축합니다
- 모델 특성 및 지표 파악
- 대량 및 단일 예측 생성 및 이해
1. Amazon SageMaker Studio 도메인 설정
1.1 AWS CloudFormation 템플릿을 통한 SageMaker Studio 도메인 생성
AWS 계정은 AWS 리전당 1개의 SageMaker Studio 도메인만 설정할 수 있습니다.
AWS CloudFormation Stack 링크를 선택하여 CloudFormation을 통해 SageMaker Studio 도메인과 studio-user라는 이름의 사용자를 생성합니다.
또한 필요한 권한이 SageMaker Studio 계정에 추가됩니다.
이 스택은 퍼블릭 VPC가 계정에 이미 설정되어 있는 것으로 가정하며, 퍼블릭 VPC가 없는 경우 퍼블릭 서브넷이 있는 VPC를 생성 후 진행해야 합니다.
CloudFormation 콘솔에서 오른쪽 위에 표시된 리전이 미국 동부(버지니아 북부: us-east-1)인지 확인합니다.
스택 이름(Stack name)은 CFN-SM-IM-Lambda-catalog여야 하며 변경할 수 없습니다. 이 스택은 모든 리소스를 생성하는 데 약 10분이 걸립니다.
AWS CloudFormation에서 사용자 지정 이름으로 IAM 리소스를 생성할 수 있음을 승인합니다를 선택하고 스택 생성을 선택합니다.
CloudFormation의 스택에서 스택 상태가 CREATE_COMPETE 상태인지 확인합니다.
2. 자동 모델 구축을 위한 SageMaker Canvas 설정
2.1 SageMaker Canvas 시작 및 애플리케이션 생성
SageMaker Canvas로 이동하여 위에서 생성된 사용자 프로필(studio-user)을 클릭하고 Canvas를 엽니다.
SageMaker Canvas 애플리케이션 생성 화면이 나타납니다. 애플리케이션을 로드하는 데 몇 분 정도 걸립니다.
2.2 데이터 조인
SageMaker Canvas 인터페이스의 Datasets를 들어가면 기본적인 샘플 데이터 세트가 있습니다.
shipping-logs.csv 파일과 product-descriptions.csv 파일을 Inner Join하여 새로운 데이터 세트를 만들 계획입니다.
canvas-sample-shipping-logs.csv 파일 클릭 후 Create a data flow를 선택합니다.
Data flow name을 임의로 작성 후, Add data를 통해 canvas-sample-product-descriptions.csv 파일을 불러옵니다.
샘플 데이터 세트는 sagemaker-<your-Region>-<your-account-id> 버킷 밑에 존재합니다.
Data types 옆의 메뉴를 선택하여 Combine data > Join을 클릭합니다.
Join type이 Inner이고 Join keys가 ProductId인지 확인합니다. Left Node는 shipping-logs이고, Right Node는 product_descriptions입니다.
Preview를 클릭하여 조인된 데이터를 확인하고 Add로 추가합니다.
조인된 데이터 세트를 Export data to Canvas dataset 으로 내보내기 합니다. 데이터 세트의 이름은 ConsolidatedShippingData로 지정합니다.
3. 기계 학습 모델 구축, 훈련 및 분석
3.1 Select 단계를 통한 데이터 세트 선택
사용자 인터페이스에서 My Models를 선택하고 Create new model를 클릭하여 사진과 같이 모델을 만듭니다.
모델 보기 페이지는 모델 구축 및 예측과 관련한 단계를 나타내는 4개의 탭으로 구성되어 있습니다.
- 선택(Select): 입력 데이터를 설정합니다.
- 구축(Build): 기계 학습 모델을 구축합니다.
- 분석(Analyze): 모델 출력과 특성을 분석합니다.
- 예측(Predict): 대량으로 또는 단일 샘플에 대해 예측을 실행합니다.
이전 단계에서 생성한 ConsolidatedShippingData 데이터 세트를 클릭하고 Select dataset을 눌러 넘어갑니다.
3.2 Build 단계를 통한 ML 모델 구축
Target column을 ActualShippingDays로 선택합니다. 이 열에는 과거에 제품이 도착하는 데 걸린 시간(일수)가 포함되어 있으므로 대상 열로 사용하기에 적합합니다.
대상 열을 선택하면 SageMaker Canvas가 문제 유형을 자동으로 유추합니다. 제품이 고객에게 도착하는 데 며칠이 걸릴지 알아보려는 것이므로 이는 회귀 또는 수치 예측 문제에 해당합니다. 회귀 분석에서는 상관 관계가 있는 하나 이상의 다른 변수 또는 속성을 기준으로 종속 대상 변수의 값을 추정합니다. 이 예의 경우 SageMaker Canvas는 데이터 세트에서 날짜가 있는 열을 감지했기 때문에, 처음에는 이 사용 사례를 Time series forecasting 문제로 예측할 수 있습니다. Configure model을 통해 문제 유형을 수동으로 선택하여 Numeric model type으로 변경할 수 있습니다.
예측에 사용하지 않는 열은 체크 박스를 해제하여 Drop시킵니다. 5개의 열을 갖고 예측을 해볼 예정입니다.
4. ML 모델 학습 및 분석
4.1 Quick build를 통한 모델 학습
SageMaker Canvas에는 빠른 빌드 와 표준 빌드의 두 가지 학습 방법이 있습니다 . 빠른 빌드는 일반적으로 모델을 빌드하는 데 2~15분이 걸리는 반면 표준 빌드는 일반적으로 2~4시간이 걸리고 일반적으로 정확도가 더 높습니다. 빠른 빌드는 속도를 우선시하기 위해 더 적은 모델과 하이퍼파라미터 조합을 학습합니다. 이번 핸즈온에서는 Quck build를 사용하여 학습을 시작합니다.
빌드를 검증하고 완료하는 데 약 5분이 걸립니다. 완료되면 페이지 모델이 분석 단계로 이동하여 Quick build 결과를 볼 수 있습니다.
완료되면 실제 값의 +/-1.817 범위 내에서 배송 일수를 예측할 수 있습니다.
머신 러닝은 모델을 훈련하는 과정에서 약간의 확률성을 도입하는데, 이는 다른 빌드에 대해 다른 결과를 가져올 수 있습니다. 따라서 여러분이 보는 지표 측면에서 정확한 성과는 다를 수 있습니다.
Overview 탭 에서 대상 열을 예측하는 데 있어 각 입력 열의 열 영향 또는 추정된 중요도를 보여줍니다. ExpectedShippingDays 열은 배송 일 수를 예측하는 데 가장 큰 영향을 미칩니다. 오른쪽 패널에서 기능의 영향 방향도 볼 수 있습니다. 예를 들어, ExpectedShippingDays 값이 높을수록 배송 일수 예측에 미치는 영향이 더 긍정적입니다.
Scoring 탭에서 ActualshippingDays에 대한 최적 회귀선을 나타내는 플롯을 볼 수 있습니다. 평균적으로 모델 예측은 ActualShippingDays의 실제 값과 +/- 1.817의 차이가 있습니다. 수치 예측에 대한 채점 섹션에는 예측에 사용된 데이터와 관련된 모델의 예측값을 나타내는 선이 표시됩니다. 수치적 예측 값은 거의 +/- RMSE(제곱 평균 오차) 값이며 모델이 예측하는 값은 보통 RMSE 범위 내에 있습니다. 선 주위의 보라색 띠의 너비는 RMSE 범위를 나타냅니다. 예측된 값은 보통 범위 내에 있습니다.
Advanced metrics 탭 에서는 모델 성능에 대한 자세한 내용을 볼 수 있습니다.
탭에 표시된 다양한 메트릭은 R2, 평균 절대 오차(MAE), 평균 절대 백분율 오차(MAPE), 평균 제곱근 오차(RMSE)입니다. 고급 메트릭 페이지에는 모델 성능을 시각적으로 검사할 수 있는 플롯도 표시됩니다. 한 이미지는 잔차 또는 오류의 그래프를 보여줍니다. 수평선은 0의 오류 또는 완벽한 예측을 나타냅니다. 파란색 점은 오류입니다. 수평선으로부터의 거리는 오류의 크기를 나타냅니다.
Error Density를 선택하면 모델의 MAE 및 RMSE에 대한 오류 분포와 그 분포를 볼 수 있습니다. 정규 분포와 유사한 모양의 오류 밀도는 좋은 모델 성능을 나타냅니다.
5. ML 모델 예측 생성
5.1 데이터 세트에서 일괄 예측
이제 회귀 모델이 있으므로 모델을 사용하여 예측을 실행하거나 이 모델의 새 버전을 만들어 표준 빌드 프로세스로 학습할 수 있습니다. 이 단계에서는 SageMaker Canvas를 사용하여 데이터 세트에서 단일 및 일괄 예측을 생성합니다.
예측 생성을 시작하려면 Predict 탭을 선택하세요. Preditc target values 섹션 에서 Manual을 선택해 일회성 Batch prediction을 수행합니다.
참고 : Automatic을 선택하면 데이터 세트가 업데이트될 때마다 데이터 세트에 대한 일괄 예측을 할 수 있습니다. 실제 ML Workflow에서 이 데이터 세트는 학습 데이터 세트와 분리되어야 합니다. 그러나 단순화를 위해 동일한 데이터 세트를 사용하여 SageMaker Canvas가 예측을 생성하는 방식을 보여줍니다.
예측을 위한 데이터 세트 선택 페이지 에서 ConsolidatedShippingData 데이터 세트를 선택 하고 예측 생성을 클릭합니다.
몇 초 후에 예측이 완료되었다는 알림이 표시되고, 메시지 창에서 View를 선택하면 예측 내용을 미리 볼 수 있습니다.
다운로드를 선택하여 CSV 파일을 다운로드할 수도 있습니다. SageMaker Canvas는 각 데이터 행에 대한 예측을 반환합니다.
이 핸즈온에서 가장 중요한 기능은 ExpectedShippingDays입니다. 시각적 비교를 위해 예측 옆에도 표시됩니다.
5.2 데이터 세트에서 단일 예측
예측 페이지에서 Single prediction을 선택하여 단일 샘플에 대한 예측을 생성할 수 있습니다 .
SageMaker Canvas는 모델에서 사용된 각 입력 변수에 대한 값을 수동으로 입력할 수 있는 인터페이스를 제공합니다. 이러한 유형의 분석은 하나 이상의 변수 값이 증가하거나 감소할 때 예측이 어떻게 변하는지 알고 싶은 가정 시나리오에 이상적입니다.
5.3 버킷에 저장된 결과물 확인
모델 구축 프로세스 후, SageMaker Canvas는 피클 파일로 저장된 훈련된 모델, 메트릭, 데이터 세트 및 예측을 포함한 모든 아티팩트를 SageMaker Canvas가 자동 생성한 S3 버킷 (sagemaker-<your-region>-<your-account-id>-<your-domain-name>) 아래에 업로드 합니다.
3. 결론
이번 핸즈온을 통해 Amazon SageMaker Canvas를 사용하여 코드를 작성하지 않고도 머신러닝 모델을 구축하고 예측을 생성하는 과정을 경험할 수 있었습니다. 데이터를 간단히 업로드하고 시각적으로 탐색한 뒤, AutoML 기능을 활용해 신속하게 모델을 생성할 수 있었습니다. 이를 통해 데이터 과학에 대한 전문적인 지식이 없더라도 실무에서 머신러닝을 활용하는 데 큰 장점을 얻을 수 있음을 확인했습니다. SageMaker Canvas는 데이터 분석가와 비즈니스 사용자에게 강력하면서도 접근성이 높은 머신러닝 도구로, 기업의 데이터 기반 의사 결정을 가속화할 수 있습니다.
4. 참고 문서
- https://aws.amazon.com/ko/sagemaker/
- https://aws.amazon.com/ko/sagemaker/canvas/
- https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/canvas.html
- https://aws.amazon.com/ko/getting-started/hands-on/machine-learning-tutorial-generate-predictions-without-writing-code/?nc1=h_ls