문의 주신 내용에 맞는 전문 컨설턴트 배정 후 연락드리겠습니다.
안녕하세요. GS네오텍 SA 김성혁입니다. AWS re:invent 2021에서 발표된 새로운 서비스 중 하나인 Amazon Sagemaker Canvas에 대해 설명드리도록 하겠습니다. 먼저 오늘 살펴볼 내용을 3줄로 요약하면 다음과 같습니다.
* No Code로 기계학습 모델을 생성할 수 있습니다
* 데이터를 가시화하여 전처리 및 분석을 할 수 있으며, 생성된 모델의 추론 상황도 확인할 수 있습니다
* 모델 생성 결과 리포트가 출력되어 Data Scientist나 엔지니어에게 인계 가능합니다.
"Amazon SageMaker Canvas is a visual, point-and-click service that makes it easy for business analysts to build ML models and generate accurate predictions without writing code or requiring ML expertise. In this session, learn how SageMaker Canvas makes access and combine data from a variety of sources, automatically clean data and apply a variety of data adjustments, and create ML models to generate predictions with a single click. In addition, learn how you can use SageMaker Canvas to easily publish results, explain and interpret models, and share models with others within your organization to improve productivity."
(1) Amazon SageMaker & Sagemaker Canvas
머신러닝 작업은 데이터 수집, 모델 생성, 배포 등 여러 과정을 거칩니다. 매일매일 축적되는 데이터를 처리하고 비즈니스 결과를 예측 가능한 시스템을 구축하는 것은 느린 프로세스를 자동화하고 문제를 좀 더 빠르고 효율적으로 해결할 수 있도록 도와줍니다. But, 이러한 머신러닝 시스템을 구축할 땐 숙련된 경험과 기술력을 보유한 Data scientist와 머신러닝 엔지니어가 필수적입니다. AWS에서는 이러한 부분에 대한 제약조건을 Sagemaker를 통해 해결하고자 합니다. Sagemaker는 AWS에서 제공하는 머신러닝 도구로서 기계학습 모델을 구축하고 모델을 학습하고 배포하는 것을 도와주는 도구입니다. 즉 데이터 과학자 및 개발자가 모든 규모의 기계 학습 모델을 간편하게 빌드, 학습 및 배포할 수 있도록 하는 완전 관리형 서비스로, 기계 학습 모델을 빌드, 학습 및 배포할 수 있는 모듈이 포함되어 있습니다. 결과적으로 Sagemaekr는 기계학습 엑세스 기능성을 향상시켜주고 대규모의 저비용 고성능 기계학습 도구로서 팀 생산성을 10배 증가시켜준다고 합니다.
AWS에서는 모두가 깊은 전문지식 없이 기계학습 모델을 구축하고 배포하도록 하는것을 목표로 Sagemaker에 많은 투자와 집중을 하고있습니다. 이번 Reinvent에서도 Sagemaker의 새로운 기능인 "Sagemaker Canvas"라는 기능을 출시하였습니다. Amazon SageMaker Canvas는 기계 학습 모델을 구축하기 위한 사용자 인터페이스를 제공하며. 자동으로 모델을 훈련하고 구축하는 Amazon SageMaker의 강력한 AutoML 기술을 활용합니다. 또한 단일 또는 대량 예측을 생성할 수 있도록 데이터 집합에 기반하여 최상의 모델을 식별할 수 있도록 도와주며 비즈니스 분석가가 데이터 사이언티스트와 모델을 쉽게 공유하도록 도와줍니다. 결과적으로 SageMaker 캔버스는 기술 수준에 상관없이 기업 내 분석가가 다양한 데이터 집합에서 정확한 기계 학습 모델을 생성하고 데이터 사이언티스트와 보다 효율적으로 협업하도록 도와줍니다.
(2) SageMaker Canvas
SageMaker canvas는 직관적인 UI를 통해 클라우드 또는 온프레미스에서 서로 다른 데이터 소스를 탐색 및 엑세스하고, 버튼 클릭 몇번으로 데이터 세트를 결합 가능하며, 모델을 훈련하고 생성할 수 있도록 도와줍니다. Sagamaker Canavas는 Amazon Sagemaker와 동일한 기술을 활용하여 데이터를 자동으로 결합하고 모델을 생성하고 가장 성능이 좋은 모델을 추천해주며, 예측을 도와줍니다. Sagemaekr Canvas에서는 binary classification, multi-class classification, numerical regression, time series forecasting 등 다양한 유형을 지원합니다. 이러한 기능을 통해 코드 한줄 없이 사기탐지, 고객 이탈 감소, 재고 최적화 등 비즈니스 문제에 활용 가능합니다.
(3) SageMaker Canvas 데모
Amazon SageMaker 캔버스는 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오레곤), EU(프랑크푸르트), EU(아일랜드) AWS 리전에서 사용 가능합니다..
* 데이터 준비 및 시작하기: 다음과 같이 SageMaker Console에서 Canvas를 눌러서 들어가줍니다.
들어가셔서 Launch app을 누르시고 canvas를 눌러주세요
그럼 아래같은 화면이 나오고 좀 기다려야 합니다.
아래같은 화면이 나오구요. 그러고나서 New model을 눌러주시면 모델을 생성할 수 있습니다. 하지만 저희는 모델 생성전에 데이터를 준비해 줘야겠죠?
AWS 블로그에서도 실습내용을 볼 수 있는데요. 실습에 사용한 데이터를 찾을수가 없었습니다. 그래서 저희는 머신러닝 공부하는데 있어서 정석과 같은 타이타닉 생존자 데이터를 활용하도록 합니다. 데이터는 https://www.kaggle.com/c/titanic 에서 받으시면 될것 같네요. 아래 그림에 나온것처럼 과정은 데이터를 선택하고, 모델을 구축하고, 결과를 분석하고, 예측을 생성하는 단계로 나아갑니다.
자 데이터를 받으셨다면 데이터를 S3에 업로드하고 아래처럼 데이터 Import를 눌러줍니다.
아래와 같이 S3에 있는 데이터를 선택해서 Import 해주시면
이렇게 데이터가 import 된 것을 볼 수 있습니다.
S3를 활용하는것 이외에도 또는 고급 사용자가 Redshift 또는 Snowflake 데이터베이스 에 연결할 수 있습니다. 그런 다음 자체 SQL 코드를 실행하여 데이터를 가져오고 결합할 수 있습니다. 자세한 부분은 https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-connecting-external.html 참고부탁드립니다.
아래처럼 눈 모양을 눌러주시면
그림과 같이 데이터를 미리 보실수도 있습니다. 저희가 사용할 데이터에는 승객의 아이디, 좌석클래스, 이름, 성별, 나이 등으로 구성되어 있네요.
* 모델 학습 및 추론
자 이제 데이터가 준비되었으니 모델을 생성해야합니다. 모델생성은 아래 그림처럼 아까 처음보셨던 New Model을 눌러줍니다.
그럼 아래와같이 우선 모델 이름을 입력해주세요 저는 GSN-sagemaker-test라는 모델을 만들어보겠습니다.
모델을 구축하는데는 다음과 같은 과정으로 진행됩니다.
일단 모델을 학습할 데이터를 선택해줍니다.
다음으로 예측할 Columm을 선택해줍니다. 저희는 생존 여부를 예측할 것이기 때문에 Survived를 눌러줍니다.
그럼 아래와 같이 데이터 분포, 추천모델 등이 나옵니다. Model type에보면 2 category prediction이라고 나와 있네요. 아마 binary 이진분류를 뜻하는것 같네요. 몇번 확인해보니 "2 category"는 “binary classification” 대신 사용하며 "multi-class classification 대신 “3+ category” 라는 용어를 사용하는 등 표준 용어를 사용하지 않는듯 합니다.
뭐 암튼. 모델 타입에서 change type을 눌러주면 변경도 가능합니다.
다음과 같이 데이터 구성도 확인이 가능하며 통계와 시각화를 제공합니다. 좋은 통계이니 확인해보시길 바라며 이후에 Preview model을 눌러봅니다
preview 모델을 눌러주면 아래와같이 모델 생성전에 대략 결과를 볼 수 있습니다. Column impact는 모델이 결과를 예측하는데 각 컬럼이 어느정도의 영향을 미쳤는지를 나타냅니다. 이러한 정보는 향후 모델을 구축하는데 모든 데이터를 이용하는것보다는 예측에 영향을 미치는 중요 데이터만 활용할수 있는 등 통계적 지식 없이 모델을 구축하는데 도움을 줄 수 있습니다. 어떠한 테이터 요소를(column) 활용할지는 주관적인 판단이며, 사용하고싶은 데이터만 사용하고싶으면 아래 데이터 통계에서 체크박스를 눌러주시면 데이터를 선택하실 수 있습니다. 우선은 모든 데이터를 활용해보도록 하고 quick build를 눌러줍니다.
Quick Build를 눌러주면 아래와 같은 화면이 나옵니다.. 2~15분 기다리라고 하는데 엄청난 속도네요.
금방 모델이 만들어지구요
preview에서 본것과 비슷한 결과가 도출되는것을 볼 수 있습니다. 아래 그림처럼 스코어링도 확인이 가능합니다 또한 오른쪽 하단에 Model Accuracy insights 옆 Advanced metrics도 눌러봅니다.
그럼 Precision, Recall, F1 Score 등과 같은 고급 메트릭을 검사할 수도 있습니다. 이러한 메트릭은 모델의 성능과 이 모델에서 기대할 수 있는 false positives(FP) 와 false negatives(FN), False positive(FP), True negative(TN), True positive(TP) 등도 확인 가능합니다.
모델을 만들었으면 테스트를 해봐야겠죠? Predict 버튼을 눌러주면 아래와같은 화면이나옵니다. 그럼 select dataset을 눌러주시고 테스트할 데이터를 입력해줍니다.
아래처럼 테스트데이터셋을 눌러서 입력해 주시고요.
금방 결과를 얻을 수 있습니다.
아래 뜬 view버튼을 눌러보시면 결과도 미리 보실 수 있고 CSV파일로도 다운로드하실 수 있습니다.
single prediction에서는 다음과같이 하나하나의 값을 변경하며 결과를 예측할 수 있습니다.
다음과 같이 버져닝(Versioning)도 가능합니다.
새로운 버전을 생성해야 모델 공유가 가능하다고 나오니 새로운 버전도 생성해보겠습니다. 위 그림처럼 ADD version을 눌러주시구요. 이번엔 아까 Column impact가 낮았던 SibSP, Embarked, parch, cabin등의 열을 제거해줍니다.
이후 앞에서 하신것처럼 모델을 생성해주시구요 아까보다 좀더 나은 성능을 보인 모델이 생성된것을 볼 수 있습니다. 모델을 학습할때 모든 데이터가 아닌 필요한 데이터만 선택하는것이 모델 성능을 올려줄 수 있다는걸 보여주네요.
그런데 공유버튼이 아직도 비활성화 상태입니다. 다시 읽어보니 새로운 모델을 만들고 "Standard build"를 해줘야한다고 하네요. 다시 돌아가서 이번엔 standard build를 눌러봅니다 standard build는 2~4시간이 걸린다고 써있습니다.
standard build는 1시간 45분이 예상되네요. 실제로는 더 많은시간이 걸리기도 합니다.
몇번 실패하던데 정확한 이유는 찾을 수 없었습니다. 기존 도메인을 삭제하시려면 https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-delete-domain.html?icmpid=docs_sagemaker_console_studio 를 참고하세요. 이후에 Quick Setup을 Standard Setup으로 변경해서 진행했습니다.
아무튼 위 작업 완료 이후에는 정상적으로 모델 Build가 진행되었구요. Quick Build 대비 좀더 좋은 성능을 보이는것을 볼 수 있습니다. 또한 quick build로 진행할때와 다르게 오른쪽 위에 Share버튼이 활성화 된것을 볼 수 있습니다.
그럼 이젠 모델을 공유해 보겠습니다. share 버튼을 누르면 그림과같이 선택할 모델의 버전을 클릭하고 Create Sagemaker studio link 버튼이 활성화 된 것을 볼 수 있습니다. 그 버튼을 누르면
아래처럼 링크가 생성되구요.
생성된 링크로 접속하면
다음과 같이 Sagamaker Studio로 연결되는것을 볼 수 있습니다. 이후엔 아래 그림처럼 모델 Overview나
model detail등을 보실 수 있고, Model Deploy도 가능하며 Sagemaker Studio와 연동한 다양한 기능을 활용할 수 있습니다.
(4) 결론
이렇게 오늘은 Sagemaker의 기본 내용부터 새로 발표한 Sagemaker Canvas의 주요 기능등을 실습을 통해 소개드렸습니다. 아직 정식 서비스로 시작된지 얼마 되지 않아서 아직은 이것저것 문제가 존재하는듯 하고 아직 많은 자료를 찾아볼 수는 없는게 불편하네요. 그래도 사용해보니 머신러닝에 대한 깊은 지식 없이 모델을 생성하는게 가능하다고 하니 정말 편한것 같긴합니다.
[장점]
* No code로 ML 문제를 해결할 수 있습니다. 머신러닝에대한 깊은 지식 없이 모델을 생성할 수 있다
* UI가 굉장히 직관적이고 사용자 친화적이라 진입장벽이 낮을것 같다
* 사전에 데이터 분석을 진행해주기 때문에 편리하다
* 모델 학습 시에 Quick Build로 진행할 경우 굉장히 빠르게 모델이 학습된다
[단점]
* No Code 기반이기에 하이퍼 파라미터 수정등에 대한 기능을 찾아볼 수 없다 (어디 숨어있는지 확인중입니다)
* 표준용어를 사용하지 않는게 불편하다 ("2 category", “3+ category”..등)
* Standard Build로 진행할 경우 실패하는 경우도 있고, 예상시간보다 작업시간이 길게 소요되면 이유를 알 수 없어 불편하다
* 복잡한 테이터는 사전에 데이터 전처리가 필요할 것 같다
* 자동화가 불편함. 새로운 데이터가 수집되면 매번 클릭 클릭을 새로 해줘야? Studio와 모델을 공유하면 될것 같긴 함 (테스트 필요)
* 비싸다. 가격은 시간당 1.9$ 이며 Training 데이터 cell의 수에따라 요금이 추가로 부과되는듯
[링크]
https://aws.amazon.com/about-aws/whats-new/2021/11/amazon-sagemaker-canvas-machine-learning-models/
https://aws.amazon.com/blogs/aws/announcing-amazon-sagemaker-canvas-a-visual-no-code-machine-learning-capability-for-business-analysts/
https://aws.amazon.com/ko/sagemaker/features/
https://aws.amazon.com/ko/sagemaker/canvas/pricing/
https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html