Zephyrnet Logosu

Amazon SageMaker Canvas'ı kullanarak üretim verilerindeki anormallikleri tespit edin | Amazon Web Hizmetleri

Tarih:

Bulut bilişim, büyük veri ve makine öğrenimi (ML) araçlarının kullanımıyla Amazon Atina or Amazon Adaçayı Yapıcı oluşturma ve bakım konusunda fazla çaba harcamadan herkes tarafından kullanılabilir ve kullanılabilir hale geldi. Endüstriyel şirketler, operasyonlardan tahmine dayalı bakım veya planlamaya kadar tüm portföylerinde kaynak verimliliğini artırmak için veri analitiğine ve veriye dayalı karar almaya giderek daha fazla bakıyor.

BT'deki değişimin hızı nedeniyle, geleneksel endüstrilerdeki müşteriler beceri seti ikilemiyle karşı karşıya kalıyor. Bir yandan, analistler ve alan uzmanları, söz konusu veriler ve bunların yorumlanması hakkında çok derin bir bilgiye sahiptir, ancak çoğu zaman veri bilimi araçlarına ve Python gibi üst düzey programlama dillerine erişimden yoksundurlar. Öte yandan, veri bilimi uzmanları genellikle makine veri içeriğini yorumlama ve onu alakalı olana göre filtreleme deneyiminden yoksundur. Bu ikilem, işle ilgili içgörüler oluşturmak için verileri kullanan verimli modellerin oluşturulmasını engellemektedir.

Amazon SageMaker Tuval etki alanı uzmanlarına tahminler, sınıflandırma veya regresyon modelleri gibi güçlü analizler ve makine öğrenimi modelleri oluşturmaları için kodsuz bir arayüz sağlayarak bu ikilemi giderir. Ayrıca bu modelleri oluşturduktan sonra ML ve MLOps uzmanlarıyla dağıtmanıza ve paylaşmanıza da olanak tanır.

Bu yazıda, verilerinizdeki doğru özellikleri düzenlemek ve seçmek için SageMaker Canvas'ı nasıl kullanacağınızı ve ardından model ayarlama için SageMaker Canvas'ın kodsuz işlevini kullanarak anormallik tespiti için bir tahmin modelini nasıl eğiteceğinizi göstereceğiz.

İmalat endüstrisi için anormallik tespiti

Bu yazının yazıldığı sırada SageMaker Canvas, tahmin, regresyon ve sınıflandırma gibi tipik iş kullanım senaryolarına odaklanıyordu. Bu yazı için, bu yeteneklerin karmaşık anormal veri noktalarının tespit edilmesine nasıl yardımcı olabileceğini de gösteriyoruz. Bu kullanım durumu, örneğin endüstriyel makinelerin arızalarını veya olağandışı işlemlerini tespit etmek için geçerlidir.

Anormallik tespiti endüstri alanında önemlidir, çünkü makineler (trenlerden türbinlere kadar) normalde çok güvenilirdir ve arızalar arasındaki süreler yıllara yayılmaktadır. Sıcaklık sensörü okumaları veya durum mesajları gibi bu makinelerden gelen verilerin çoğu normal çalışmayı tanımlar ve karar verme açısından sınırlı değere sahiptir. Mühendisler bir hatanın temel nedenlerini araştırırken veya gelecekteki hatalara yönelik uyarı göstergeleri olarak anormal verileri ararlar ve performans yöneticileri potansiyel iyileştirmeleri belirlemek için anormal verileri inceler. Bu nedenle, veriye dayalı karar almaya doğru ilerlemenin tipik ilk adımı, ilgili (anormal) verilerin bulunmasına dayanır.

Bu yazıda, verilerdeki doğru özellikleri düzenlemek ve seçmek için SageMaker Canvas'ı kullanıyoruz ve ardından model ayarlama için SageMaker Canvas'ın kodsuz işlevselliğini kullanarak anormallik tespiti için bir tahmin modeli eğitiyoruz. Daha sonra modeli SageMaker uç noktası olarak konuşlandırıyoruz.

Çözüme genel bakış

Anormallik tespiti kullanım durumumuz için, arabada gösterilen motor sıcaklığı gibi bir makinenin normal çalışmasına yönelik karakteristik bir özelliği, arabaya uygulanan hız ve son tork gibi etkileyen özelliklerden tahmin etmek için bir tahmin modeli eğitiyoruz. . Yeni bir ölçüm örneğinde anormallik tespiti için, karakteristik özelliğe yönelik model tahminlerini sağlanan gözlemlerle karşılaştırırız.

Araba motoru örneğinde, bir alan uzmanı normal motor sıcaklığı, güncel motor torku, ortam sıcaklığı ve diğer potansiyel etkileyen faktörlere ilişkin ölçümleri elde eder. Bunlar, diğer özelliklerden sıcaklığı tahmin edecek bir model eğitmenize olanak tanır. Daha sonra modeli motor sıcaklığını düzenli olarak tahmin etmek için kullanabiliriz. Bu veri için tahmin edilen sıcaklık, o veride gözlemlenen sıcaklığa benzer olduğunda motor normal çalışıyor demektir; bir tutarsızlık, soğutma sisteminin arızalanması veya motordaki bir arıza gibi bir anormalliğe işaret edecektir.

Aşağıdaki şemada çözüm mimarisi gösterilmektedir.

Sürece genel bakış: SageMaker Canvas'ta bir model oluşturulur, dağıtılır ve ardından AWS Lambda Funcino'dan erişilir.

Çözüm dört temel adımdan oluşur:

  1. Etki alanı uzmanı, SageMaker Canvas'ı kullanarak veri analizi ve özellik iyileştirme dahil olmak üzere ilk modeli oluşturur.
  2. Etki alanı uzmanı modeli şu adresten paylaşır: Amazon SageMaker Model Kaydı veya doğrudan gerçek zamanlı bir uç nokta olarak dağıtır.
  3. Bir MLOps uzmanı, model çıktısını bir tahminden bir anormallik göstergesine dönüştüren çıkarım altyapısını ve kodu oluşturur. Bu kod genellikle bir AWS Lambda fonksiyonu.
  4. Bir uygulama bir anormallik tespitine ihtiyaç duyduğunda, modeli çıkarım için kullanan ve (bir anormallik olup olmadığına bakılmaksızın) yanıt sağlayan Lambda işlevini çağırır.

Önkoşullar

Bu gönderiyi takip etmek için aşağıdaki önkoşulları karşılamanız gerekir:

SageMaker'ı kullanarak modeli oluşturun

Model oluşturma süreci, SageMaker Canvas'ta bir regresyon modeli oluşturmaya yönelik standart adımları takip eder. Daha fazla bilgi için bkz. Amazon SageMaker Canvas'ı kullanmaya başlama.

İlk olarak alan uzmanı, ölçümlerin zaman serisi gibi ilgili verileri SageMaker Canvas'a yükler. Bu yazı için bir elektrik motorunun (sentetik olarak oluşturulmuş) ölçümlerini içeren bir CSV dosyası kullanıyoruz. Ayrıntılar için bkz. Verileri Canvas'a aktarın. Kullanılan örnek veriler şu şekilde indirilebilir: CSV.

CSV'nin ilk satırlarını gösteren bir resim. Ek olarak, hızlı önizleme modeli için bir histogram ve kıyaslama ölçümleri gösterilir.

Verileri SageMaker Canvas ile düzenleyin

Veriler yüklendikten sonra alan uzmanı, son modelde kullanılan verileri düzenlemek için SageMaker Canvas'ı kullanabilir. Bunun için uzman, söz konusu problemin karakteristik ölçümlerini içeren sütunları seçer. Daha kesin olarak, uzman, örneğin basınç-sıcaklık eğrisi gibi fiziksel bir ilişkiyle birbiriyle ilişkili olan ve bu ilişkideki bir değişikliğin kullanım durumuyla ilgili bir anormallik olduğu sütunları seçer. Anormallik tespit modeli, seçilen sütunlar arasındaki normal ilişkiyi öğrenecek ve motordaki mevcut yük göz önüne alındığında anormal derecede yüksek motor sıcaklığı gibi veriler buna uymadığında bunu gösterecektir.

Uygulamada, alan uzmanının bir dizi uygun girdi sütunu ve bir hedef sütun seçmesi gerekir. Girdiler genellikle talep ayarlarından yüke, hıza veya ortam sıcaklığına kadar bir makinenin davranışını belirleyen niceliklerin (sayısal veya kategorik) toplamıdır. Çıktı tipik olarak makinenin çalışma performansını gösteren sayısal bir miktardır; örneğin sıcaklık ölçümü, enerji dağıtımı veya makine optimumun altında koşullar altında çalıştığında değişen başka bir performans ölçütü.

Girdi ve çıktı için hangi niceliklerin seçileceği kavramını açıklamak için birkaç örneği ele alalım:

  • Bu yazıda oluşturduğumuz model gibi dönen ekipmanlar için tipik girdiler dönüş hızı, tork (akım ve geçmiş) ve ortam sıcaklığıdır ve hedefler, dönüşlerin iyi çalışma koşullarını gösteren sonuçta ortaya çıkan yatak veya motor sıcaklıklarıdır.
  • Bir rüzgar türbini için tipik girdiler, rüzgar hızı ve rotor kanadı ayarlarının güncel ve yakın geçmişidir ve hedef miktar ise üretilen güç veya dönüş hızıdır.
  • Kimyasal bir proses için tipik girdiler, farklı bileşenlerin yüzdesi ve ortam sıcaklığıdır; hedefler ise üretilen ısı veya son ürünün viskozitesidir.
  • Kayar kapılar gibi hareketli ekipmanlar için tipik girdiler, motorlara giden güç girişidir ve hedef değer, hareketin hızı veya tamamlanma süresidir.
  • Bir HVAC sistemi için tipik girdiler, elde edilen sıcaklık farkı ve yük ayarlarıdır; hedef miktar ise ölçülen enerji tüketimidir.

Sonuçta, belirli bir ekipman için doğru girdiler ve hedefler, kullanım durumuna ve tespit edilecek anormal davranışa bağlı olacaktır ve en iyi, belirli veri kümesinin karmaşıklıklarına aşina olan bir alan uzmanı tarafından bilinir.

Çoğu durumda, uygun girdi ve hedef miktarların seçilmesi, yalnızca doğru sütunların seçilmesi ve hedef sütunun işaretlenmesi anlamına gelir (bu örnek için, bearing_temperature). Ancak bir etki alanı uzmanı, sütunları dönüştürmek ve verileri hassaslaştırmak veya toplamak için SageMaker Canvas'ın kod içermeyen özelliklerini de kullanabilir. Örneğin, alakalı olmayan verilerden belirli tarihleri ​​veya zaman damgalarını çıkarabilir veya filtreleyebilirsiniz. SageMaker Canvas, seçilen miktarlara ilişkin istatistikleri göstererek bu süreci destekler ve bir miktarın modelin sonuçlarını etkileyebilecek aykırı değerlere ve yayılmaya sahip olup olmadığını anlamanıza olanak tanır.

Modeli eğitin, ayarlayın ve değerlendirin

Alan uzmanı veri kümesindeki uygun sütunları seçtikten sonra, girdiler ve çıktılar arasındaki ilişkiyi öğrenmek için modeli eğitebilir. Daha doğrusu model, girdilerden seçilen hedef değeri tahmin etmeyi öğrenecektir.

Normalde SageMaker Canvas'ı kullanabilirsiniz. Model Önizlemesi seçenek. Bu, beklenecek model kalitesine ilişkin hızlı bir gösterge sağlar ve farklı girdilerin çıktı metriği üzerindeki etkisini araştırmanıza olanak tanır. Örneğin aşağıdaki ekran görüntüsünde model en çok etkilenen motor_speed ve ambient_temperature tahmin yaparken metrikler bearing_temperature. Bu mantıklıdır çünkü bu sıcaklıklar birbiriyle yakından ilişkilidir. Aynı zamanda ilave sürtünme veya diğer enerji kaybı araçlarının da bunu etkilemesi muhtemeldir.

Model kalitesi için, modelin RMSE'si, modelin eğitim verilerindeki normal davranışı ne kadar iyi öğrenebildiğinin ve girdi ve çıktı ölçümleri arasındaki ilişkileri yeniden üretebildiğinin bir göstergesidir. Örneğin aşağıdaki modelde modelin doğru tahmin edebilmesi gerekmektedir. motor_bearing Sıcaklık 3.67 santigrat derece dahilinde olduğundan, gerçek sıcaklığın örneğin 7.4 dereceden daha büyük bir model öngörüsünden sapmasını bir anormallik olarak değerlendirebiliriz. Ancak kullanacağınız gerçek eşik, dağıtım senaryosunda gereken hassasiyete bağlı olacaktır.

Gerçek ve tahmin edilen motor hızını gösteren bir grafik. İlişki bir miktar gürültüyle birlikte doğrusaldır.

Son olarak, model değerlendirmesi ve ayarlama tamamlandıktan sonra çıkarım için kullanılacak modeli oluşturacak model eğitiminin tamamına başlayabilirsiniz.

Modeli dağıtın

SageMaker Canvas çıkarım için bir model kullanabilse de anormallik tespiti için verimli dağıtım, modeli SageMaker Canvas'ın dışına dağıtmanızı gerektirir. Daha doğrusu modeli uç nokta olarak konuşlandırmamız gerekiyor.

Bu yazıda basitlik adına modeli doğrudan SageMaker Canvas'tan uç nokta olarak dağıtıyoruz. Talimatlar için bkz. Modellerinizi bir uç noktaya dağıtın. Dağıtım adını not ettiğinizden ve dağıttığınız bulut sunucusu tipinin fiyatını dikkate aldığınızdan emin olun (bu yazı için ml.m5.large kullanıyoruz). SageMaker Canvas daha sonra tahminler elde etmek için çağrılabilecek bir model uç noktası oluşturacaktır.

Bir model dağıtımının yapılandırmasını gösteren bir uygulama penceresi. Gösterilen ayarlar ml.m5.large makine boyutu ve örnek anormallik modeli dağıtım adıdır.

Endüstriyel ortamlarda bir modelin uygulamaya koyulmadan önce kapsamlı testlerden geçmesi gerekir. Bunun için etki alanı uzmanı modeli dağıtmayacak, bunun yerine modeli SageMaker Model Kayıt Defteriyle paylaşacaktır. Burada bir MLOps operasyon uzmanı görevi devralabilir. Tipik olarak bu uzman, model uç noktasını test edecek, hedef uygulama için gereken bilgi işlem ekipmanının boyutunu değerlendirecek ve sunucusuz çıkarım veya toplu çıkarım için dağıtım gibi en uygun maliyetli dağıtımı belirleyecektir. Bu adımlar normalde otomatiktir (örneğin, Amazon Sagemaker Boru Hatları ya da Amazon SDK'sı).

Bir modeli Amazon Sgemaker'dan Model Kaydına paylaşma düğmesini gösteren resim.

Anormallik tespiti için modeli kullanın

Önceki adımda SageMaker Canvas'ta adı verilen bir model dağıtımı oluşturduk. canvas-sample-anomaly-model. Bunu bir tahmin elde etmek için kullanabiliriz. bearing_temperature veri kümesindeki diğer sütunlara dayalı değer. Şimdi anormallikleri tespit etmek için bu uç noktayı kullanmak istiyoruz.

Anormal verileri tanımlamak için modelimiz, hedef metriğin beklenen değerini elde etmek için tahmin modeli uç noktasını kullanacak ve ardından tahmin edilen değeri verilerdeki gerçek değerle karşılaştıracaktır. Tahmin edilen değer, eğitim verilerine dayalı olarak hedef metriğimiz için beklenen değeri gösterir. Dolayısıyla bu değerin farkı, gözlemlenen gerçek verilerdeki anormallik için bir ölçümdür. Aşağıdaki kodu kullanabiliriz:

# 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

Önceki kod aşağıdaki eylemleri gerçekleştirir:

  1. Giriş verileri doğru özelliklere göre filtrelenir (işlev “input_transformer").
  2. SageMaker modeli uç noktası, filtrelenen verilerle çağrılır (işlev "do_inference“), burada SageMaker Canvas'ta dağıtımımızın ayrıntılar sayfasını açarken sağlanan örnek koda göre giriş ve çıkış biçimlendirmesini ele alıyoruz.
  3. Çağrının sonucu, orijinal giriş verilerine birleştirilir ve fark, hata sütununda saklanır ("işlev"output_transform").

Anormallikleri bulun ve anormal olayları değerlendirin

Tipik bir kurulumda anormallikleri elde etmeye yönelik kod bir Lambda işlevinde çalıştırılır. Lambda işlevi bir uygulamadan çağrılabilir veya Amazon API Ağ Geçidi. Ana işlev, giriş verilerinin her satırı için bir anormallik puanı döndürür; bu durumda, bir anormallik puanının zaman serisidir.

Test için kodu bir SageMaker not defterinde de çalıştırabiliriz. Aşağıdaki grafikler örnek verileri kullanırken modelimizin giriş ve çıkışlarını göstermektedir. Tahmin edilen ve gerçek değerler arasındaki sapmadaki zirveler (alt grafikte gösterilen anormallik puanı) anormallikleri gösterir. Örneğin, grafikte anormallik puanının (beklenen ve gerçek sıcaklık arasındaki fark) 7 santigrat dereceyi aştığı üç farklı zirve görebiliyoruz: ilki uzun bir boşta kalma süresinden sonra, ikincisi ise dik bir düşüşle. bearing_temperatureve sonuncusu nerede bearing_temperature karşılaştırıldığında yüksektir motor_speed.

Zaman serileri için iki grafik. Üstte motor sıcaklıkları ve motor hızlarına ilişkin zaman serileri gösterilir. Alttaki grafik, anormallikleri gösteren üç tepe noktasıyla zaman içindeki anormallik puanını gösterir.

Çoğu durumda anormallik puanının zaman serisini bilmek zaten yeterlidir; model hassasiyeti ihtiyacına bağlı olarak önemli bir anormallik konusunda ne zaman uyarı verileceği konusunda bir eşik ayarlayabilirsiniz. Mevcut puan, makinenin araştırılması gereken anormal bir duruma sahip olduğunu gösterir. Örneğin modelimiz için anomali puanının mutlak değeri aşağıdaki grafikte gösterildiği gibi dağıtılmaktadır. Bu, çoğu anormallik puanının, tipik hata olarak modelin eğitimi sırasında bulunan (2xRMS=)8 derecenin altında olduğunu doğrular. Grafik, değerlendirilen örneklerin doğru yüzdesinin anormallik olarak işaretleneceği şekilde manuel olarak bir eşik seçmenize yardımcı olabilir.

Anormallik puanına ilişkin değerlerin ortaya çıkış histogramı. Eğri x=0'dan x=15'e düşer.

İstenilen çıktı anormallik olaylarıysa, model tarafından sağlanan anormallik puanlarının iş kullanımına uygun olması için iyileştirme yapılması gerekir. Bunun için, makine öğrenimi uzmanı genellikle gürültüyü veya anomali skorundaki büyük tepe noktalarını ortadan kaldırmak için yuvarlanan ortalama eklemek gibi son işlemeler ekleyecektir. Ek olarak uzman, anormallik puanını tipik olarak bir artışa benzer bir mantıkla değerlendirecektir. Amazon Bulut İzleme Belirli bir süre boyunca eşik ihlalinin izlenmesi gibi alarmlar. Alarmları ayarlama hakkında daha fazla bilgi için bkz. Amazon CloudWatch alarmlarını kullanma. Bu değerlendirmeleri Lambda işlevinde çalıştırmak, örneğin bir uyarı yayınlayarak uyarılar göndermenize olanak tanır. Amazon Basit Bildirim Servisi (Amazon SNS) konusu.

Temizlemek

Bu çözümü kullanmayı bitirdikten sonra gereksiz maliyetlerden kaçınmak için temizlik yapmalısınız:

  1. SageMaker Canvas'ta model uç nokta dağıtımınızı bulun ve silin.
  2. Boşta çalışması nedeniyle ücretlendirilmemek için SageMaker Canvas'tan çıkış yapın.

Özet

Bu yazıda, bir alan uzmanının giriş verilerini nasıl değerlendirebileceğini ve SageMaker Canvas'ı kullanarak kod yazmaya gerek kalmadan nasıl bir makine öğrenimi modeli oluşturabileceğini gösterdik. Daha sonra basit bir iş akışı aracılığıyla SageMaker ve Lambda kullanarak gerçek zamanlı anormallik tespitini gerçekleştirmek için bu modelin nasıl kullanılacağını gösterdik. Bu kombinasyon, alan uzmanlarına, veri bilimi konusunda ek eğitim gerektirmeden güçlü makine öğrenimi modelleri oluşturmak için bilgilerini kullanma yetkisi verir ve MLOps uzmanlarının bu modelleri kullanmasına ve bunları esnek ve verimli bir şekilde çıkarım için kullanılabilir hale getirmesine olanak tanır.

SageMaker Canvas için 2 aylık ücretsiz kullanım mevcuttur ve sonrasında yalnızca kullandığınız kadar ödeme yaparsınız. Bugün denemeye başlayın ve verilerinizden en iyi şekilde yararlanmak için makine öğrenimi ekleyin.


Yazar hakkında

Helge Aufderheide Üretim ve Mobilite gibi Endüstriyel Uygulamalarda Otomasyon, Analitik ve Makine Öğrenimine güçlü bir şekilde odaklanarak verileri gerçek dünyada kullanılabilir hale getirme meraklısıdır.

spot_img

En Son İstihbarat

spot_img