제퍼넷 로고

Amazon SageMaker Canvas를 사용하여 제조 데이터의 이상 징후 감지 | 아마존 웹 서비스

시간

클라우드 컴퓨팅, 빅데이터 및 머신러닝(ML) 도구를 사용하면 다음과 같습니다. 아마존 아테나 or 아마존 세이지 메이커 생성 및 유지 관리에 많은 노력을 기울이지 않고도 누구나 사용할 수 있게 되었습니다. 산업 기업에서는 운영부터 예측 유지 관리 또는 계획 수행에 이르기까지 전체 포트폴리오에서 리소스 효율성을 높이기 위해 데이터 분석 및 데이터 기반 의사 결정에 점점 더 주목하고 있습니다.

IT 변화의 속도로 인해 기존 산업의 고객은 기술 세트의 딜레마에 직면해 있습니다. 한편, 분석가와 도메인 전문가는 문제의 데이터와 그 해석에 대해 매우 깊은 지식을 갖고 있지만 데이터 과학 도구와 Python과 같은 고급 프로그래밍 언어에 대한 노출이 부족한 경우가 많습니다. 반면, 데이터 과학 전문가는 머신 데이터 콘텐츠를 해석하고 관련성을 필터링하는 경험이 부족한 경우가 많습니다. 이러한 딜레마는 데이터를 사용하여 비즈니스 관련 통찰력을 생성하는 효율적인 모델의 생성을 방해합니다.

Amazon SageMaker 캔버스 예측, 분류 또는 회귀 모델과 같은 강력한 분석 및 ML 모델을 생성할 수 있는 코드 없는 인터페이스를 도메인 전문가에게 제공하여 이러한 딜레마를 해결합니다. 또한 이러한 모델을 생성한 후 ML 및 MLOps 전문가와 배포하고 공유할 수도 있습니다.

이 게시물에서는 SageMaker Canvas를 사용하여 데이터에서 올바른 기능을 선별 및 선택한 다음 모델 튜닝을 위해 SageMaker Canvas의 코드 없는 기능을 사용하여 이상 탐지를 위한 예측 모델을 교육하는 방법을 보여줍니다.

제조 산업에 대한 이상 탐지

이 글을 쓰는 시점에서 SageMaker Canvas는 예측, 회귀, 분류 등 일반적인 비즈니스 사용 사례에 중점을 두고 있습니다. 이 게시물에서는 이러한 기능이 복잡한 비정상 데이터 포인트를 감지하는 데 어떻게 도움이 되는지 보여줍니다. 이 사용 사례는 예를 들어 산업용 기계의 오작동이나 비정상적인 작동을 찾아내는 데 적합합니다.

기계(기차에서 터빈까지)는 일반적으로 매우 안정적이며 고장 간격이 수년에 걸쳐 있기 때문에 이상 탐지는 산업 영역에서 중요합니다. 온도 센서 판독값이나 상태 메시지 등 이러한 기계에서 나오는 대부분의 데이터는 정상적인 작동을 설명하며 의사 결정에 제한된 가치를 갖습니다. 엔지니어는 결함의 근본 원인을 조사하거나 향후 결함에 대한 경고 지표로 비정상적인 데이터를 찾고, 성능 관리자는 잠재적인 개선을 식별하기 위해 비정상적인 데이터를 검사합니다. 따라서 데이터 기반 의사결정으로 나아가는 일반적인 첫 번째 단계는 관련(비정상) 데이터를 찾는 것입니다.

이 게시물에서는 SageMaker Canvas를 사용하여 데이터에서 올바른 기능을 선별 및 선택한 다음, 모델 튜닝을 위한 SageMaker Canvas 노코드 기능을 사용하여 이상 탐지를 위한 예측 모델을 교육합니다. 그런 다음 모델을 SageMaker 엔드포인트로 배포합니다.

솔루션 개요

이상 탐지 사용 사례의 경우, 자동차에 적용된 속도 및 최근 토크와 같은 영향을 미치는 특성으로부터 자동차에 표시된 모터 온도와 같은 기계의 정상적인 작동에 대한 특징을 예측하도록 예측 모델을 훈련합니다. . 새로운 측정 샘플에 대한 이상 탐지를 위해 특징적인 특징에 대한 모델 예측을 제공된 관찰과 비교합니다.

자동차 모터의 경우 도메인 전문가는 정상 모터 온도, 최근 모터 토크, 주변 온도 및 기타 잠재적 영향 요인에 대한 측정값을 얻습니다. 이를 통해 다른 특성으로부터 온도를 예측하도록 모델을 훈련할 수 있습니다. 그런 다음 모델을 사용하여 정기적으로 모터 온도를 예측할 수 있습니다. 해당 데이터에 대한 예측 온도가 해당 데이터에서 관찰된 온도와 유사하면 모터가 정상적으로 작동하는 것입니다. 불일치는 냉각 시스템 고장이나 모터 결함과 같은 이상 현상을 나타냅니다.

다음 다이어그램은 솔루션 아키텍처를 보여줍니다.

프로세스 개요: 모델은 SageMaker Canvas에서 생성되고 배포된 다음 AWS Lambda Funcino에서 액세스됩니다.

이 솔루션은 다음 네 가지 주요 단계로 구성됩니다.

  1. 도메인 전문가는 SageMaker Canvas를 사용하여 데이터 분석 및 기능 큐레이션을 포함한 초기 모델을 생성합니다.
  2. 도메인 전문가는 다음을 통해 모델을 공유합니다. Amazon SageMaker 모델 레지스트리 또는 실시간 엔드포인트로 직접 배포합니다.
  3. MLOps 전문가는 예측의 모델 출력을 변칙 지표로 변환하는 추론 인프라와 코드를 만듭니다. 이 코드는 일반적으로 내부에서 실행됩니다. AWS 람다 기능.
  4. 애플리케이션에 이상 감지가 필요한 경우 추론을 위해 모델을 사용하고 이상 여부에 관계없이 응답을 제공하는 Lambda 함수를 호출합니다.

사전 조건

이 게시물을 진행하려면 다음 전제 조건을 충족해야 합니다.

SageMaker를 사용하여 모델 생성

모델 생성 프로세스는 SageMaker Canvas에서 회귀 모델을 생성하는 표준 단계를 따릅니다. 자세한 내용은 다음을 참조하세요. Amazon SageMaker Canvas 사용 시작하기.

먼저, 도메인 전문가는 시계열 측정값과 같은 관련 데이터를 SageMaker Canvas에 로드합니다. 이 게시물에서는 전기 모터의 (합성으로 생성된) 측정값이 포함된 CSV 파일을 사용합니다. 자세한 내용은 다음을 참조하세요. 캔버스로 데이터 가져오기. 사용된 샘플 데이터는 다음과 같이 다운로드할 수 있습니다. CSV.

CSV의 첫 번째 줄을 보여주는 그림입니다. 또한 빠른 미리보기 모델에 대한 히스토그램 및 벤치마크 측정항목이 표시됩니다.

SageMaker Canvas를 사용하여 데이터 관리

데이터가 로드된 후 도메인 전문가는 SageMaker Canvas를 사용하여 최종 모델에 사용되는 데이터를 선별할 수 있습니다. 이를 위해 전문가는 문제의 문제에 대한 특성 측정값이 포함된 열을 선택합니다. 보다 정확하게는 전문가는 예를 들어 압력-온도 곡선과 같은 물리적 관계에 의해 서로 관련되어 있고 해당 관계의 변화가 사용 사례에 관련된 예외인 열을 선택합니다. 이상 탐지 모델은 선택한 열 간의 정상적인 관계를 학습하고 모터의 현재 부하를 고려할 때 비정상적으로 높은 모터 온도와 같이 데이터가 이를 따르지 않는 경우를 나타냅니다.

실제로 도메인 전문가는 적합한 입력 열 집합과 대상 열을 선택해야 합니다. 입력은 일반적으로 수요 설정부터 부하, 속도 또는 주변 온도까지 기계의 동작을 결정하는 수량(숫자 또는 범주형)의 모음입니다. 출력은 일반적으로 에너지 손실을 측정하는 온도 또는 기계가 최적이 아닌 조건에서 작동할 때 변경되는 다른 성능 측정항목과 같이 기계 작동 성능을 나타내는 숫자 수량입니다.

입력 및 출력에 대해 선택할 수량에 대한 개념을 설명하기 위해 몇 가지 예를 고려해 보겠습니다.

  • 이 게시물에서 구축한 모델과 같은 회전 장비의 경우 일반적인 입력은 회전 속도, 토크(전류 및 기록), 주변 온도이며 목표는 회전의 양호한 작동 조건을 나타내는 결과 베어링 또는 모터 온도입니다.
  • 풍력 터빈의 경우 일반적인 입력은 풍속 및 로터 블레이드 설정의 현재 및 최근 기록이며, 목표 수량은 생성된 전력 또는 회전 속도입니다.
  • 화학 공정의 경우 일반적인 입력은 다양한 성분의 비율과 주변 온도이며 목표는 생성된 열 또는 최종 제품의 점도입니다.
  • 슬라이딩 도어와 같은 이동 장비의 경우 일반적인 입력은 모터에 대한 전원 입력이며 목표 값은 이동 속도 또는 완료 시간입니다.
  • HVAC 시스템의 경우 일반적인 입력은 달성된 온도 차이와 부하 설정이며, 목표 수량은 측정된 에너지 소비입니다.

궁극적으로 특정 장비에 대한 올바른 입력 및 목표는 감지할 사용 사례 및 비정상적인 동작에 따라 달라지며 특정 데이터 세트의 복잡성을 잘 알고 있는 도메인 전문가에게 가장 잘 알려져 있습니다.

대부분의 경우 적절한 입력 및 목표 수량을 선택한다는 것은 올바른 열만 선택하고 목표 열을 표시하는 것을 의미합니다(이 예에서는 bearing_temperature). 그러나 도메인 전문가는 SageMaker Canvas의 코드 없는 기능을 사용하여 열을 변환하고 데이터를 구체화하거나 집계할 수도 있습니다. 예를 들어 관련 없는 데이터에서 특정 날짜나 타임스탬프를 추출하거나 필터링할 수 있습니다. SageMaker 캔버스는 선택한 수량에 대한 통계를 표시하는 이 프로세스를 지원하므로 수량에 모델 결과에 영향을 미칠 수 있는 이상값과 스프레드가 있는지 이해할 수 있습니다.

모델 학습, 조정, 평가

도메인 전문가가 데이터 세트에서 적합한 열을 선택한 후 모델을 훈련하여 입력과 출력 간의 관계를 학습할 수 있습니다. 보다 정확하게는 모델은 입력에서 선택된 목표 값을 예측하는 방법을 학습합니다.

일반적으로 SageMaker Canvas를 사용할 수 있습니다. 모델 미리보기 옵션. 이를 통해 예상되는 모델 품질을 빠르게 표시할 수 있으며 다양한 입력이 출력 측정항목에 미치는 영향을 조사할 수 있습니다. 예를 들어 다음 스크린샷에서 모델은 다음의 영향을 가장 많이 받습니다. motor_speedambient_temperature 예측할 때 측정항목 bearing_temperature. 이러한 온도는 밀접하게 관련되어 있기 때문에 이는 합리적입니다. 동시에 추가적인 마찰이나 다른 에너지 손실 수단이 이에 영향을 미칠 수 있습니다.

모델 품질의 경우 모델의 RMSE는 모델이 훈련 데이터의 정상적인 동작을 얼마나 잘 학습하고 입력 및 출력 측정값 간의 관계를 재현할 수 있었는지 나타내는 지표입니다. 예를 들어, 다음 모델에서 모델은 올바른 것을 예측할 수 있어야 합니다. motor_bearing 예를 들어 3.67도보다 큰 모델 예측과 실제 온도의 편차를 이상 현상으로 간주할 수 있습니다. 그러나 사용하게 될 실제 임계값은 배포 시나리오에 필요한 민감도에 따라 달라집니다.

실제 및 예측 모터 속도를 보여주는 그래프입니다. 관계는 약간의 노이즈가 있지만 선형입니다.

마지막으로 모델 평가 및 튜닝이 완료된 후 추론에 사용할 모델을 생성하는 전체 모델 교육을 시작할 수 있습니다.

모델 배포

SageMaker Canvas는 추론을 위해 모델을 사용할 수 있지만 이상 탐지를 위한 생산적인 배포에는 SageMaker Canvas 외부에 모델을 배포해야 합니다. 보다 정확하게는 모델을 엔드포인트로 배포해야 합니다.

이 게시물에서는 단순화를 위해 SageMaker Canvas에서 직접 모델을 엔드포인트로 배포합니다. 지침은 다음을 참조하세요. 엔드포인트에 모델 배포. 배포 이름을 기록하고 배포할 인스턴스 유형의 가격을 고려하세요(이 게시물에서는 ml.m5.large를 사용합니다). 그런 다음 SageMaker Canvas는 예측을 얻기 위해 호출할 수 있는 모델 엔드포인트를 생성합니다.

모델 배포 구성을 보여주는 애플리케이션 창입니다. 표시된 설정은 머신 크기 ml.m5.large 및 배포 이름 Sample-anomaly-model입니다.

산업 환경에서는 모델을 배포하기 전에 철저한 테스트를 거쳐야 합니다. 이를 위해 도메인 전문가는 모델을 배포하지 않고 대신 SageMaker 모델 레지스트리에 모델을 공유합니다. 여기에서는 MLOps 운영 전문가가 인계받을 수 있습니다. 일반적으로 해당 전문가는 모델 엔드포인트를 테스트하고, 대상 애플리케이션에 필요한 컴퓨팅 장비의 크기를 평가하고, 서버리스 추론 또는 배치 추론을 위한 배포와 같은 가장 비용 효율적인 배포를 결정합니다. 이러한 단계는 일반적으로 자동화됩니다(예: Amazon Sagemaker 파이프라인 또는 아마존 SDK).

Amazon Sgemaker의 모델을 모델 레지스트리로 공유하는 버튼을 보여주는 이미지.

이상 탐지를 위해 모델 사용

이전 단계에서는 SageMaker Canvas에 다음과 같은 모델 배포를 생성했습니다. canvas-sample-anomaly-model. 우리는 이를 사용하여 다음과 같은 예측을 얻을 수 있습니다. bearing_temperature 데이터세트의 다른 열을 기반으로 한 값입니다. 이제 우리는 이 엔드포인트를 사용하여 이상 징후를 탐지하려고 합니다.

변칙적인 데이터를 식별하기 위해 우리 모델은 예측 모델 엔드포인트를 사용하여 대상 지표의 예상 값을 가져온 다음 예측 값을 데이터의 실제 값과 비교합니다. 예측 값은 훈련 데이터를 기반으로 한 목표 측정항목의 예상 값을 나타냅니다. 따라서 이 값의 차이는 관찰된 실제 데이터의 비정상성을 나타내는 지표입니다. 다음 코드를 사용할 수 있습니다.

# We are using pandas dataframes for data handling
import pandas as pd 
import boto3,json
sm_runtime_client = boto3.client('sagemaker-runtime')

# Configuration of the actual model invocation
endpoint_name="canvas-sample-anomaly-model"
# Name of the column in the input data to compare with predictions
TARGET_COL='bearing_temperature' 

def do_inference(data, endpoint_name):
    # Example Code provided by Sagemaker Canvas
    body = data.to_csv(header=False, index=True).encode("utf-8")
    response = sm_runtime_client.invoke_endpoint(Body = body,
                              EndpointName = endpoint_name,
                              ContentType = "text/csv",
                              Accept = "application/json",
                              )
    return json.loads(response["Body"].read())


def input_transformer(input_data, drop_cols = [ TARGET_COL ] ):
    # Transform the input: Drop the Target column
    return input_data.drop(drop_cols,axis =1 )

def output_transformer(input_data,response):
    # Take the initial input data and compare it to the response of the prediction model
    scored = input_data.copy()
    scored.loc[ input_data.index,'prediction_'+TARGET_COL ] = pd.DataFrame(
response[ 'predictions' ],
index = input_data.index 
)['score']
    scored.loc[ input_data.index,'error' ] = (
scored[ TARGET_COL ]-scored[ 'prediction_'+TARGET_COL ]
).abs()
    return scored

# Run the inference
raw_input = pd.read_csv(MYFILE) # Read my data for inference
to_score = input_transformer(raw_input) # Prepare the data
predictions = do_inference(to_score, endpoint_name) # create predictions
results = output_transformer(to_score,predictions) # compare predictions & actuals

앞의 코드는 다음 작업을 수행합니다.

  1. 입력 데이터는 올바른 기능으로 필터링됩니다(함수 “input_transformer").
  2. SageMaker 모델 엔드포인트는 필터링된 데이터로 호출됩니다(함수 "do_inference')에서는 SageMaker Canvas에서 배포 세부 정보 페이지를 열 때 제공된 샘플 코드에 따라 입력 및 출력 형식을 처리합니다.
  3. 호출 결과는 원래 입력 데이터와 조인되고 그 차이는 오류 열(함수 "output_transform").

이상 현상 찾기 및 이상 이벤트 평가

일반적인 설정에서는 이상 현상을 가져오는 코드가 Lambda 함수에서 실행됩니다. Lambda 함수는 애플리케이션에서 호출하거나 아마존 API 게이트웨이. 기본 함수는 입력 데이터의 각 행에 대한 변칙 점수(이 경우 변칙 점수의 시계열)를 반환합니다.

테스트를 위해 SageMaker 노트북에서 코드를 실행할 수도 있습니다. 다음 그래프는 샘플 데이터를 사용할 때 모델의 입력과 출력을 보여줍니다. 예측 값과 실제 값 사이의 편차(하단 그래프에 표시된 변칙 점수)의 최고점은 변칙을 나타냅니다. 예를 들어, 그래프에서 이상 점수(예상 온도와 실제 온도의 차이)가 섭씨 7도를 초과하는 세 개의 뚜렷한 피크를 볼 수 있습니다. 첫 번째는 긴 유휴 시간 이후이고 두 번째는 급격한 온도 하락입니다. bearing_temperature, 그리고 마지막 위치 bearing_temperature 비해 높다 motor_speed.

시계열에 대한 두 개의 그래프. 상단에는 모터 온도와 모터 속도에 대한 시계열이 표시됩니다. 아래쪽 그래프는 이상을 나타내는 3개의 피크를 포함하여 시간 경과에 따른 이상 점수를 보여줍니다.

대부분의 경우 이상 징후 점수의 시계열을 아는 것만으로도 충분합니다. 모델 민감도의 필요성에 따라 중요한 이상 현상을 경고할 시기에 대한 임계값을 설정할 수 있습니다. 그러면 현재 점수는 컴퓨터에 조사가 필요한 비정상적인 상태가 있음을 나타냅니다. 예를 들어, 우리 모델의 경우 이상치 점수의 절대값은 다음 그래프와 같이 분포됩니다. 이는 대부분의 이상 점수가 모델 훈련 중에 일반적인 오류로 발견된 (2xRMS=)8도 미만임을 확인합니다. 그래프는 평가된 샘플의 올바른 비율이 이상 항목으로 표시되도록 임계값을 수동으로 선택하는 데 도움이 될 수 있습니다.

이상 점수 값의 발생에 대한 히스토그램입니다. 곡선은 x=0에서 x=15로 감소합니다.

원하는 출력이 변칙 이벤트인 경우 모델에서 제공하는 변칙 점수를 비즈니스 용도에 맞게 개선해야 합니다. 이를 위해 ML 전문가는 일반적으로 롤링 평균 추가와 같이 이상 점수의 노이즈나 큰 피크를 제거하기 위해 후처리를 추가합니다. 또한 전문가는 일반적으로 지수를 높이는 것과 유사한 논리로 이상 점수를 평가합니다. 아마존 클라우드 워치 특정 기간 동안 임계값 위반을 모니터링하는 등의 경보. 알람 설정에 대한 자세한 내용은 다음을 참조하세요. Amazon CloudWatch 경보 사용. Lambda 함수에서 이러한 평가를 실행하면 예를 들어 경고를 게시하여 경고를 보낼 수 있습니다. 아마존 단순 알림 서비스 (Amazon SNS) 주제.

정리

이 솔루션 사용을 마친 후에는 불필요한 비용을 피하기 위해 정리해야 합니다.

  1. SageMaker Canvas에서 모델 엔드포인트 배포를 찾아 삭제합니다.
  2. 유휴 실행에 대한 요금이 부과되지 않도록 SageMaker Canvas에서 로그아웃하세요.

요약

이 게시물에서는 도메인 전문가가 코드를 작성할 필요 없이 SageMaker Canvas를 사용하여 입력 데이터를 평가하고 ML 모델을 생성하는 방법을 보여주었습니다. 그런 다음 이 모델을 사용하여 간단한 워크플로를 통해 SageMaker 및 Lambda를 사용하여 실시간 이상 탐지를 수행하는 방법을 보여주었습니다. 이 조합을 통해 도메인 전문가는 데이터 과학에 대한 추가 교육 없이 자신의 지식을 사용하여 강력한 ML 모델을 만들 수 있으며, MLOps 전문가는 이러한 모델을 사용하여 유연하고 효율적으로 추론에 사용할 수 있습니다.

SageMaker Canvas에는 2개월 무료 등급이 제공되며 이후에는 사용한 만큼만 비용을 지불하면 됩니다. 지금부터 실험을 시작하고 ML을 추가하여 데이터를 최대한 활용하세요.


저자,

헬게 아우프더하이데 제조 및 이동성과 같은 산업 응용 분야의 자동화, 분석 및 기계 학습에 중점을 두고 데이터를 현실 세계에서 사용할 수 있도록 만드는 데 열정을 쏟고 있습니다.

spot_img

최신 인텔리전스

spot_img