Main Content

클라우드에서 드리프트-인식 학습을 사용하여 장비 건전성 상태 모니터링하기

이 예제에서는 클라우드에서 배포된 버전의 Monitor Equipment State of Health Using Drift-Aware Learning 예제를 실행하는 데 필요한 설정을 설명합니다. 이 항목에서는 다음 그림의 인프라를 이용해 냉각 시스템의 건전성 상태를 모니터링하는 과정을 점진적 드리프트-인식 학습 모델을 사용해서 자동화하는 방법을 보여줍니다. 이 예제를 실행하려면 Statistics and Machine Learning Toolbox™, MATLAB® Compiler SDK™, MATLAB Production Server™, MATLAB Web App Server™가 필요합니다.

infrastructure.png

다음 그림은 드리프트-인식 학습의 아키텍처를 보여줍니다. 이 아키텍처에는 MATLAB Production Server(MPS)에 배포되는 두 개의 분석 함수 processUnlabeledData.ctfprocessLabeledData.ctf가 필요합니다.

processUnlabeledData.ctf는 모델을 불러오고, 모델을 사용하여 장비의 건전성을 예측하고, 센서 측정값과 예측값을 출력 토픽 processedUnlabeled에 씁니다. processedLabeledData.ctf는 레이블이 지정된 입력 토픽에서 레이블이 지정된 데이터를 읽어오고 이 데이터를 사용하여 모델에서 드리프트 현상을 검사합니다. 그런 다음 레이블이 지정된 데이터를 드리프트 진단 정보와 함께 출력 토픽 processedLabeled에 출력합니다.

그러면 처리된 데이터를 Web App Server에 배포된 대시보드에서 읽습니다. 대시보드를 통해 센서 측정값과 모델 성능을 시각적으로 검사할 수 있습니다.

업데이트된 모델을 Redis 서버를 통해 레이블이 지정된 CTF와 레이블이 지정되지 않은 CTF 사이에 공유합니다.

infrastructure2.png

센서 측정값 업로드하기

도커 컨테이너에서 Kafka 서버 시작하기.

센서 측정값을 업로드하려면 먼저 Kafka 토픽 unlabeled, labeled, processedUnlabeled, processedLabeled를 만들어야 합니다. 이 예제에서는 kafka.host.com의 포트 번호 9092에서 Kafka 서버가 실행 중이어야 합니다. Kafka 서버를 사용하여 데이터를 업로드하는 방법에 대한 자세한 내용은 Streaming Data Framework for MATLAB Production Server Basics (MATLAB Production Server) 항목을 참조하십시오.

uploadApp을 통해 측정값 업로드하기.

Monitor Equipment State of Health Using Drift-Aware Learning 예제와 유사하게, 레이블이 미지정된 데이터와 레이블이 지정된 데이터(UnlabeledData.matLabeledData.mat에서 제공함)를 uploadApp2(마찬가지로 지원 파일에서 제공함)를 통해 unlabeled 토픽과 labeled 토픽을 사용하여 Kafka 서버에 업로드합니다. uploadApp2로 배포 가능한 아카이브는 Web App Server에서 실행됩니다. Web App Server에서 배포 가능한 아카이브를 설정하는 방법에 대해 자세히 알아보려면 Create Web App (MATLAB Compiler) 항목의 지침을 참조하십시오.

uploadApp_png.PNG

uploadApp2를 배포한 후 Start Streaming을 클릭합니다. 앱은 레이블이 미지정된 센서 측정값 60,000개(unlabeledData.mat 파일에 저장됨)와 레이블이 지정된 6000개의 센서 측정값(labeledData.mat에 저장됨)을 업로드합니다. 각 센서 측정값은 0.1초마다 샘플링됩니다.

앱이 레이블이 미지정된 데이터와 레이블이 지정된 데이터를 업로드하는 동안 Upload Status 표시등이 빨간색으로 바뀝니다. 업로드가 완료되면 상태 표시등이 녹색으로 바뀝니다. 이제 Kafka 서버에는 냉각 시스템을 유지 관리하는 담당자라면 누구나 액세스할 수 있는 데이터가 들어 있습니다.

냉각 시스템 모니터링하기

냉각 시스템 모니터링을 시작하려면 먼저 배포 가능한 아카이브 processUnlabeledData.ctfprocessLabeledData.ctf를 만들어야 합니다. 이 두 아카이브를 배포하려면 MATLAB Production Server가 실행 중이어야 합니다. 첫 단계로 processUnlabeledData.ctf를 사용하여 드리프트-인식 학습 모델을 Redis 캐시로 불러옵니다. 이 모델은 점진적 나이브 베이즈 분류 모델을 기본 학습기로 사용하는 워밍업된 점진적 드리프트-인식 학습기입니다.

배포 가능한 아카이브 processUnlabeledData.ctf를 만들고 MPS로 옮기기.

지원 파일 createCTFUnlabeled.m의 다음 스크립트를 실행하여 processUnlabeledData.ctf를 배포 가능한 아카이브로 패키징합니다.

kafkaHost = "kafka.host.com";
kafkaPort = 9092;

inputKS = kafkaStream(kafkaHost,kafkaPort,"unlabeled","Rows",1200,"RequestTimeout", 60,'TimestampResolution','Seconds');
outputKS = kafkaStream(kafkaHost,kafkaPort,"processedUnlabeled","Rows",1200,"RequestTimeout",60);

archive = streamingDataCompiler("processUnlabeledData",inputKS,outputKS,StateStore="LocalRedis",InitialState="initUnlabeledData");

이러한 단계에 대해 자세히 알아보려면 Package Streaming Analytic Function (MATLAB Production Server) 항목과 Deploy Streaming Analytic Function to Server (MATLAB Production Server) 항목을 참조하십시오.

Kafka 커넥터 시작하기.

processUnlabeledData.ctf에 대해 포트 1234에서 Kafka 커넥터를 시작합니다.

Windows

powershell -executionPolicy bypass -File kafka-connector-start.ps1 -out out.log -err error.log -c collector.properties -k kafka.properties -p "1234"

Linux

 chmod +x kafka-connector-start.sh
!./kafka-connector-start.sh -out out.log -err error.log -c collector.properties -k kafka.properties -p "1234"

Kafka 커넥터를 시작하면 processUnlabeledData.ctf가 초기화됩니다. 즉, 워밍업된 점진적 드리프트-인식 학습기 모델이 업로드되고, 배포 가능한 아카이브 processUnlabeledData는 입력 토픽 unlabeled의 데이터를 수신할 수 있는 상태가 됩니다.

배포 가능한 아카이브 processLabeledData를 만들고 MPS로 옮기기.

위의 단계를 반복하여 지원 파일 createCTFLabeled.m으로 processLabeledData.ctf를 생성, 배포하고 processLabeledData.ctf에 대해 포트 1235에서 Kafka 커넥터를 시작합니다. processLabeledData 아카이브가 레이블이 지정된 데이터를 읽어오기 시작하고 데이터 분포에 드리프트가 있을 경우 모델 파라미터를 업데이트합니다. Redis 캐시를 통해 배포 가능한 두 아카이브 사이에서 모델을 공유할 수 있습니다.

Web App Server에서 호스팅하는 대시보드 앱 열기.

출력 토픽 processedUnlabeledprocessedLabeled에는 처리된 데이터가 들어 있습니다. processUnlabeledData.ctfprocessLabeledData.ctf가 둘 다 처리를 완료하면 processedUnlabeled 토픽에는 센서 측정값과 모델 예측값이 함께 들어오고 processLabeled 토픽에는 센서 측정값과 모델 드리프트 진단 정보가 함께 들어옵니다.

dashboard2 앱이 processedUnlabeled 토픽과 processedLabeled 토픽으로부터 처리된 데이터를 읽어옵니다. 이 앱은 Web App Server에서 실행됩니다. Create Web App (MATLAB Compiler)의 지침에 따라 MATLAB Web App Server를 사용하여 dashboard2 앱을 배포하십시오.

dashboard_png.PNG

배포가 완료되면 dashboard2 앱은 Kafka 서버에 업로드된 데이터를 스트리밍할 수 있는 상태가 됩니다. Streaming OptionsOn으로 설정하여 스트리밍 프로세스를 시작할 수 있습니다.

지난 2분 동안 수신된 데이터의 센서 측정값을 검사하려면 Sensor Reading 탭을 확인합니다.

sensor_reading_png.PNG

데이터의 드리프트를 모니터링하려면 Model Performance 탭을 확인합니다.

model_performance_png.PNG

참고 항목

|

관련 항목