Amazon Kinesis, AWS Glue ve Amazon SageMaker PlatoBlockchain Data Intelligence ile tahmine dayalı bir bakım çözümü oluşturun. Dikey Arama. Ai.

Amazon Kinesis, AWS Glue ve Amazon SageMaker ile tahmine dayalı bir bakım çözümü oluşturun

Kuruluşlar, makine parçalarının tahmine dayalı bakımı, müşteri tercihlerine dayalı ürün önerileri, kredi profili oluşturma, içerik denetleme, dolandırıcılık tespiti ve daha fazlası dahil olmak üzere çeşitli kullanım durumları ve sorunları için makine öğrenimi (ML) destekli çözümler geliştiriyor ve kullanıyor. Bu senaryoların çoğunda, bu ML destekli çözümlerden elde edilen etkinlik ve faydalar, veri olaylarını neredeyse gerçek zamanlı olarak işleyip onlardan öngörüler elde edebildiklerinde daha da geliştirilebilir.

Gerçek zamanlıya yakın ML destekli çözümlerin iş değeri ve faydaları iyi belirlenmiş olsa da, bu çözümleri optimum güvenilirlik ve performansla ölçekte uygulamak için gereken mimari karmaşıktır. Bu gönderi, nasıl birleştirebileceğinizi açıklar Amazon Kinesis, AWS Tutkal, ve Amazon Adaçayı Yapıcı tahmine dayalı bakım için gerçek zamanlıya yakın bir özellik mühendisliği ve çıkarım çözümü oluşturmak.

Kullanım örneğine genel bakış

Sahada kullanılan sensörlerin (endüstriyel ekipman veya ağ cihazları gibi), arızalanmadan ve arıza süresine neden olmadan önce değiştirilmesi veya düzeltilmesi gereken bir kestirimci bakım kullanım durumuna odaklanıyoruz. Kesinti süresi işletmeler için pahalı olabilir ve kötü müşteri deneyimine yol açabilir. Bir makine öğrenimi modeli tarafından desteklenen kestirimci bakım, iyi durumdaki bir makine parçasının ne zaman değiştirilmemesi gerektiği konusunda bilgi vererek, böylece gereksiz maliyetlerden kaçınarak düzenli program tabanlı bakım döngülerini artırmaya da yardımcı olabilir.

Bu yazıda, hava sıcaklığı, proses sıcaklığı, dönüş hızı, tork ve takım aşınması gibi özelliklerden kaynaklanan makine arızalarını içeren sentetik bir veri kümesine makine öğrenimi uygulamaya odaklanıyoruz. Kullanılan veri seti kaynaktan alınmıştır. UCI Veri Havuzu.

Makine arızası beş bağımsız arıza modundan oluşur:

  • Takım Aşınma Arızası (TWF)
  • Isı Dağılım Arızası (HDF)
  • Elektrik Kesintisi (PWF)
  • Aşırı Gerilme Arızası (OSF)
  • Rastgele Arıza (RNF)

Makine arızası etiketi, önceki arıza modlarından herhangi biri doğruysa, makinenin belirli bir veri noktası için arızalanıp arızalanmadığını gösterir. Arıza modlarından en az biri doğruysa, süreç başarısız olur ve makine arızası etiketi 1'e ayarlanır. ML modelinin amacı, makine arızalarını doğru bir şekilde tanımlamaktır, böylece aşağı yönlü bir kestirimci bakım eylemi başlatılabilir.

Çözüme genel bakış

Tahmine dayalı bakım kullanım durumumuz için, cihaz sensörlerinin makine parçaları hakkında çeşitli ölçümler ve okumalar yayınladığını varsayıyoruz. Çözümümüz daha sonra her seferinde bir parça akış verisi alır (mikro toplu) ve özellikler oluşturmak için işleme ve özellik mühendisliği gerçekleştirir. Oluşturulan özellikler daha sonra neredeyse gerçek zamanlı olarak eğitilmiş ve dağıtılmış bir ML modelinden çıkarımlar oluşturmak için kullanılır. Oluşturulan çıkarımlar, uygun eylemlerin gerçekleştirilmesi ve bakım faaliyetinin başlatılması için alt uygulamalar tarafından daha fazla işlenebilir ve tüketilebilir.

Aşağıdaki şema, genel çözümümüzün mimarisini göstermektedir.

Çözüm, genel olarak, bu yazının ilerleyen bölümlerinde ayrıntılı olarak açıklanan aşağıdaki bölümlerden oluşur:

  • Akış veri kaynağı ve alımı - Kullanırız Amazon Kinesis Veri Akışları saha sensörlerinden akış verilerini uygun ölçekte toplamak ve daha sonraki işlemler için kullanılabilir hale getirmek.
  • Gerçek zamanlıya yakın özellik mühendisliği – Bir Kinesis veri akışından veri okumak ve türetilmiş özellikleri depolamadan önce veri işleme ve özellik mühendisliği gerçekleştirmek için AWS Glue akış işlerini kullanıyoruz. Amazon Basit Depolama Hizmeti (Amazon S3). Amazon S3, büyük hacimli verileri depolamak için güvenilir ve uygun maliyetli bir seçenek sunar.
  • Model eğitimi ve dağıtımı – SageMaker kullanarak XGBoost algoritmasına dayalı bir ML modelini eğitmek için UCI Veri Havuzundan AI4I kestirimci bakım veri kümesini kullanıyoruz. Daha sonra eğitilmiş modeli bir SageMaker eşzamansız çıkarım uç noktasına dağıtırız.
  • Gerçek zamanlıya yakın ML çıkarımı – Özellikler Amazon S3'te kullanıma sunulduktan sonra, dağıtılan modelden neredeyse gerçek zamanlı olarak çıkarımlar oluşturmamız gerekir. SageMaker eşzamansız çıkarım uç noktaları, daha büyük yük boyutlarını (1 GB'a kadar) destekledikleri ve dakikalar içinde (en fazla 15 dakikaya kadar) çıkarımlar oluşturabildikleri için bu gereksinim için çok uygundur. Çalıştırmak için S3 olay bildirimlerini kullanırız. AWS Lambda bir SageMaker zaman uyumsuz çıkarım uç noktasını çağırma işlevi. SageMaker eşzamansız çıkarım uç noktaları, S3 konumlarını girdi olarak kabul eder, dağıtılan modelden çıkarımlar oluşturur ve bu çıkarımları neredeyse gerçek zamanlı olarak Amazon S3'e geri yazar.

Bu çözümün kaynak kodu şu adreste bulunur: GitHub. Çözüm test edildi ve us-east-1'de çalıştırılmalıdır.

Biz kullanıyoruz AWS CloudFormation kullanarak dağıtılan şablon AWS Sunucusuz Uygulama Modeli (AWS SAM) ve çözümü dağıtmak için SageMaker not defterleri.

Önkoşullar

Başlamak için, bir ön koşul olarak, SAM CLI, Python 3, ve PIP Kurulmuş. Ayrıca sahip olmalısınız AWS Komut Satırı Arayüzü (AWS CLI) düzgün yapılandırılmış.

Çözümü dağıtın

Sen kullanabilirsiniz AWS BulutKabuğu Bu adımları çalıştırmak için CloudShell, konsol kimlik bilgilerinizle önceden doğrulanmış ve önceden yüklenmiş ortak geliştirme ve operasyon araçlarını (AWS SAM, AWS CLI ve Python gibi) içeren tarayıcı tabanlı bir kabuktur. Bu nedenle, yerel kurulum veya yapılandırma gerekmez.

  • AWS Glue akış işimiz için komut dosyasını depoladığımız bir S3 kovası oluşturarak başlıyoruz. Yeni bir kova oluşturmak için terminalinizde aşağıdaki komutu çalıştırın:
aws s3api create-bucket --bucket sample-script-bucket-$RANDOM --region us-east-1

  • Oluşturulan kovanın adını not edin.

ML-9132 Çözüm Kemeri

  • Ardından, yığını dağıtmak için CloudFormation şablonunu içeren kod deposunu yerel olarak klonlarız. Terminalinizde aşağıdaki komutu çalıştırın:
git clone https://github.com/aws-samples/amazon-sagemaker-predictive-maintenance

  • Sam-template dizinine gidin:
cd amazon-sagemaker-predictive-maintenance/sam-template

ML-9132 git klon deposu

  • AWS Glue iş komut dosyasını (glue_streaming/app.py adresinden) oluşturduğunuz S3 kovasına kopyalamak için aşağıdaki komutu çalıştırın:
aws s3 cp glue_streaming/app.py s3://sample-script-bucket-30232/glue_streaming/app.py

ML-9132 kopya tutkal komut dosyası

  • Artık AWS SAM aracılığıyla CloudFormation şablonu aracılığıyla çözümün oluşturulmasına ve devreye alınmasına devam edebilirsiniz. Aşağıdaki komutu çalıştırın:

ML-9132 SAM Yapısı

sam deploy --guided

  • Yığın adı, tercih edilen AWS Bölgesi (us-east-1), Ve GlueScriptsBucket.

AWS Glue komut dosyası S3 kovası için daha önce oluşturduğunuz aynı S3 kovasını sağladığınızdan emin olun (parametre GlueScriptsBucket aşağıdaki ekran görüntüsünde).

ML-9132 SAM Dağıtım Paramı

Siz gerekli bağımsız değişkenleri sağladıktan sonra AWS SAM yığın dağıtımını başlatır. Aşağıdaki ekran görüntüsü oluşturulan kaynakları göstermektedir.

ML-9132 SAM Dağıtıldı

Yığın başarıyla dağıtıldıktan sonra aşağıdaki mesajı görmelisiniz.

ML-9132 SAM CF dağıtıldı

  • AWS CloudFormation konsolunda yığını açın (bu gönderi için, nrt-streaming-inference) CloudFormation şablonunu dağıtırken sağlandı.
  • Üzerinde Kaynaklar sekmesinde, SageMaker not defteri örneği kimliğini not edin.
  1. ML-9132 SM Defter Oluşturuldu
  • SageMaker konsolunda bu örneği açın.

ML-9132 resim018

SageMaker not defteri örneğinde gerekli not defterleri önceden yüklenmiştir.

Not defterleri klasörüne gidin ve not defterlerindeki talimatları açıp izleyin (Data_Pre-Processing.ipynb ve ModelTraining-Evaluation-and-Deployment.ipynb) veri kümesini keşfetmek, ön işleme ve özellik mühendisliği yapmak ve modeli eğitmek ve bir SageMaker eşzamansız çıkarım uç noktasına dağıtmak için.

ML-9132 Açık SM Defterleri

Akış veri kaynağı ve alımı

Kinesis Data Streams, büyük veri akışlarını gerçek zamanlı olarak toplamak ve işlemek için kullanabileceğiniz sunucusuz, ölçeklenebilir ve dayanıklı bir gerçek zamanlı veri akışı hizmetidir. Kinesis Veri Akışları, BT altyapısı günlük verileri, uygulama günlükleri, sosyal medya, pazar veri akışları, web tıklama akışı verileri, IoT cihazları ve sensörleri gibi çeşitli kaynaklardan veri akışlarının yakalanmasını, işlenmesini ve depolanmasını sağlar. Bir Kinesis veri akışını, aktarım hızı ve ölçeklendirme gereksinimlerine bağlı olarak isteğe bağlı modda veya sağlanan modda sağlayabilirsiniz. Daha fazla bilgi için, bkz Veri Akışı Kapasite Modunu Seçme.

Kullanım durumumuz için, çeşitli sensörlerin bir veri akışına sıcaklık, dönüş hızı, tork ve takım aşınması gibi ölçümler gönderdiğini varsayıyoruz. Kinesis Data Streams, veri akışlarını toplamak ve almak için bir huni görevi görür.

Biz kullanın Amazon Kinesis Veri Oluşturucu (KDG) bu gönderide daha sonra, sensörler tarafından oluşturulan verileri simüle ederek bir Kinesis veri akışına veri oluşturmak ve göndermek için. Veri akışı sensörü-veri akışından gelen veriler, daha sonra tartışacağımız bir AWS Glue akış işi kullanılarak alınır ve işlenir.

Gerçek zamanlıya yakın özellik mühendisliği

AWS Glue akış işleri bilgi işlem ortamını yönetmeye gerek kalmadan akış verilerini ölçekte işlemek için uygun bir yol sağlar. AWS Glue, sürekli çalışan işleri kullanarak akış verilerinde ayıklama, dönüştürme ve yükleme (ETL) işlemleri gerçekleştirmenize olanak tanır. AWS Glue akış ETL, Apache Spark Structured Streaming motoru üzerine kurulmuştur ve Kinesis, Apache Kafka ve Apache Kafka için Amazon Tarafından Yönetilen Akış (Amazon MSK'sı).

Akış ETL işi, hem AWS Glue yerleşik dönüşümlerini hem de Apache Spark Structured Streaming'e özgü dönüşümleri kullanabilir. Spark ML'yi de kullanabilirsiniz ve MLLib AWS Glue işlerindeki kitaplıklar, hazır yardımcı kitaplıkları kullanarak daha kolay özellik işleme için.

Akış veri kaynağının şeması önceden belirlenmişse, bunu bir AWS Veri Kataloğu tablosunda belirtebilirsiniz. Şema tanımı önceden belirlenemezse, akış ETL işinde şema algılamayı etkinleştirebilirsiniz. Ardından iş, gelen verilerden şemayı otomatik olarak belirler. Ek olarak, AWS Tutkal Şeması Kayıt Defteri veri akışı şemalarının merkezi keşfine, kontrolüne ve evrimine izin vermek. Veri Kataloğu'nda AWS Glue tabloları veya bölümleri oluştururken veya güncellerken isteğe bağlı olarak Schema Registry'de depolanan şemaları kullanmak için Schema Registry'yi Veri Kataloğu ile daha fazla entegre edebilirsiniz.

Bu gönderi için bir AWS Glue Veri Kataloğu tablosu oluşturuyoruz (sensor-stream) kaynak olarak Kinesis veri akışımızla ve sensör verilerimiz için şemayı tanımlayın.

Kinesis'ten akış verilerini okumak için Veri Kataloğu tablosundan bir AWS Glue dinamik veri çerçevesi oluşturuyoruz. Ayrıca aşağıdaki seçenekleri de belirtiyoruz:

  • AWS Glue işinin verileri 60 saniyelik pencerelerde okuyup işlemesi için 60 saniyelik bir pencere boyutu
  • başlangıç ​​pozisyonu TRIM_HORIZON, Kinesis veri akışındaki en eski kayıtlardan okumaya izin vermek için

Ayrıca Spark MLlib'leri kullanıyoruz StringIndexer dize sütun türünü etiket dizinlerine kodlamak için özellik dönüştürücü. Bu dönüşüm, Spark ML Pipelines kullanılarak uygulanır. Spark ML İşlem Hatları birden çok algoritmayı tek bir işlem hattında veya iş akışında birleştirmeyi kolaylaştırmak için makine öğrenimi algoritmaları için tek tip bir üst düzey API kümesi sağlar.

foreachBatch API'sini processBatch adlı bir işlevi çağırmak için kullanırız ve bu da bu veri çerçevesi tarafından başvurulan verileri işler. Aşağıdaki koda bakın:

# Read from Kinesis Data Stream
sourceStreamData = glueContext.create_data_frame.from_catalog(database = "sensordb", table_name = "sensor-stream", transformation_ctx = "sourceStreamData", additional_options = {"startingPosition": "TRIM_HORIZON"})
type_indexer = StringIndexer(inputCol="type", outputCol="type_enc", stringOrderType="alphabetAsc")
pipeline = Pipeline(stages=[type_indexer])
glueContext.forEachBatch(frame = sourceStreamData, batch_function = processBatch, options = {"windowSize": "60 seconds", "checkpointLocation": checkpoint_location})

processBatch işlevi, belirtilen dönüştürmeleri gerçekleştirir ve verileri yıl, ay, gün ve toplu iş kimliğine göre Amazon S3'te bölümlere ayırır.

Ayrıca Amazon S3'te çok fazla küçük dosya olmasını önlemek için AWS Glue bölümlerini tek bir bölüme yeniden bölümlere ayırıyoruz. Birkaç küçük dosyaya sahip olmak, her dosyayı aramak, açmak ve okumakla ilgili ek yükü artırdığı için okuma performansını engelleyebilir. Sonunda çıkarımlar oluşturmak için özellikleri S3 kovası içindeki bir önek (özellikler) içine yazıyoruz. Aşağıdaki koda bakın:

# Function that gets called to perform processing, feature engineering and writes to S3 for every micro batch of streaming data from Kinesis.
def processBatch(data_frame, batchId):
transformer = pipeline.fit(data_frame)
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
if (data_frame.count() > 0):
data_frame = transformer.transform(data_frame)
data_frame = data_frame.drop("type")
data_frame = DynamicFrame.fromDF(data_frame, glueContext, "from_data_frame")
data_frame.printSchema()
# Write output features to S3
s3prefix = "features" + "/year=" + "{:0>4}".format(str(year)) + "/month=" + "{:0>2}".format(str(month)) + "/day=" + "{:0>2}".format(str(day)) + "/hour=" + "{:0>2}".format(str(hour)) + "/min=" + "{:0>2}".format(str(minute)) + "/batchid=" + str(batchId)
s3path = "s3://" + out_bucket_name + "/" + s3prefix + "/"
print("-------write start time------------")
print(str(datetime.datetime.now()))
data_frame = data_frame.toDF().repartition(1)
data_frame.write.mode("overwrite").option("header",False).csv(s3path)
print("-------write end time------------")
print(str(datetime.datetime.now()))

Model eğitimi ve dağıtım

SageMaker, veri bilimcilerin ve makine öğrenimi mühendislerinin makine öğrenimi modellerini hızlı ve kolay bir şekilde oluşturmasını, eğitmesini ve dağıtmasını sağlayan tam olarak yönetilen ve entegre bir makine öğrenimi hizmetidir.

Data_Pre-Processing.ipynb not defterinde, önce UCI Veri Havuzundan AI4I Öngörücü Bakım veri setini içe aktarıyoruz ve keşifsel veri analizini (EDA) gerçekleştiriyoruz. Modeli eğitmek için özelliklerimizi daha kullanışlı hale getirmek için özellik mühendisliği de yapıyoruz.

Örneğin, veri kümesi içinde, ürünün kalite türünü L (düşük), M (orta) veya H (yüksek) olarak temsil eden type adında bir özelliğimiz var. Bu kategorik bir özellik olduğu için modelimizi eğitmeden önce onu kodlamamız gerekiyor. Bunu başarmak için Scikit-Learn's LabelEncoder kullanıyoruz:

from sklearn.preprocessing import LabelEncoder
type_encoder = LabelEncoder()
type_encoder.fit(origdf['type'])
type_values = type_encoder.transform(origdf['type'])

Özellikler işlendikten ve küratörlü tren ve test veri kümeleri oluşturulduktan sonra, sistem okumalarına dayalı olarak makinenin arızalanıp arızalanmadığını tahmin etmek için bir ML modeli eğitmeye hazırız. SageMaker yerleşik algoritmasını kullanarak bir XGBoost modeli eğitiyoruz. XGBoost eğitim örnekleri sınırlı olsa bile, sınıflandırma da dahil olmak üzere birden çok ML problemi için iyi sonuçlar sağlayabilir.

SageMaker eğitim işleri ML modellerini SageMaker üzerinde eğitmek için güçlü ve esnek bir yol sağlar. SageMaker, temel bilgi işlem altyapısını yönetir ve çoklu seçenek kullanım durumuna göre çeşitli model eğitim gereksinimleri için seçim yapmak için.

xgb = sagemaker.estimator.Estimator(container,
role,
instance_count=1,
instance_type='ml.c4.4xlarge',
output_path=xgb_upload_location,
sagemaker_session=sagemaker_session)
xgb.set_hyperparameters(max_depth=5,
eta=0.2,
gamma=4,
min_child_weight=6,
subsample=0.8,
silent=0,
objective='binary:hinge',
num_round=100)

xgb.fit({'train': s3_train_channel, 'validation': s3_valid_channel})

Model eğitimi tamamlandığında ve iş gereksinimlerine göre model değerlendirmesi tatmin edici olduğunda, model dağıtımına başlayabiliriz. Önce AsyncInferenceConfig nesne seçeneğiyle ve daha önce eğitilmiş modeli kullanarak bir uç nokta yapılandırması oluşturuyoruz:

endpoint_config_name = resource_name.format("EndpointConfig")
create_endpoint_config_response = sm_client.create_endpoint_config(
EndpointConfigName=endpoint_config_name,
ProductionVariants=[
{
"VariantName": "variant1",
"ModelName": model_name,
"InstanceType": "ml.m5.xlarge",
"InitialInstanceCount": 1,
}
],
AsyncInferenceConfig={
"OutputConfig": {
"S3OutputPath": f"s3://{bucket}/{prefix}/output",
#Specify Amazon SNS topics
"NotificationConfig": {
"SuccessTopic": "arn:aws:sns:<region>:<account-id>:<success-sns-topic>",
"ErrorTopic": "arn:aws:sns:<region>:<account-id>:<error-sns-topic>",
}},
"ClientConfig": {"MaxConcurrentInvocationsPerInstance": 4},
},)

Ardından, oluşturduğumuz uç nokta yapılandırmasını kullanarak bir SageMaker eşzamansız çıkarım uç noktası oluştururuz. Sağlandıktan sonra, eşzamansız olarak çıkarımlar oluşturmak için uç noktayı çağırmaya başlayabiliriz.

endpoint_name = resource_name.format("Endpoint")
create_endpoint_response = sm_client.create_endpoint(
EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name)

Gerçek zamanlıya yakın çıkarım

SageMaker asenkron çıkarım uç noktalar, gelen çıkarım isteklerini sıraya koyma ve bunları eşzamansız olarak neredeyse gerçek zamanlı olarak işleme yeteneği sağlar. Bu, daha büyük veri yükü boyutlarına (1 GB'a kadar) sahip çıkarım istekleri olan, daha uzun işlem süreleri gerektirebilen (15 dakikaya kadar) ve neredeyse gerçek zamanlı gecikme gereksinimleri olan uygulamalar için idealdir. Zaman uyumsuz çıkarım, işlenecek istek olmadığında örnek sayısını otomatik olarak sıfıra ölçeklendirerek maliyetlerden tasarruf etmenizi sağlar, böylece yalnızca uç noktanız istekleri işlerken ödeme yaparsınız.

Gerçek zamanlı bir çıkarım bitiş noktası oluşturma şeklinize benzer bir SageMaker eşzamansız çıkarım bitiş noktası oluşturabilir ve ek olarak AsyncInferenceConfig nesne, CreateEndpointConfig API'sindeki EndpointConfig alanıyla uç nokta yapılandırmanızı oluştururken. Aşağıdaki diyagram, çıkarım iş akışını ve zaman uyumsuz bir çıkarım uç noktasının nasıl bir çıkarım oluşturduğunu gösterir.

ML-9132 SageMaker Asych Arşivi

Zaman uyumsuz çıkarım uç noktasını çağırmak için istek yükü Amazon S3'te depolanmalıdır ve bu veriye referansın InvokeEndpointAsync isteğinin bir parçası olarak sağlanması gerekir. Çağrı üzerine, SageMaker işleme talebini kuyruğa alır ve yanıt olarak bir tanımlayıcı ve çıktı konumu döndürür. İşlendikten sonra SageMaker, sonucu Amazon S3 konumuna yerleştirir. İsteğe bağlı olarak başarı veya hata bildirimleri almayı seçebilirsiniz. Amazon Basit Bildirim Servisi (Amazon SNS'si).

Uçtan uca çözümü test edin

Çözümü test etmek için aşağıdaki adımları tamamlayın:

  • AWS CloudFormation konsolunda, daha önce oluşturduğunuz yığını açın (nrt-streaming-inference).
  • Üzerinde Çıkışlar sekmesinde, S3 paketinin adını kopyalayın (EventsBucket).

Bu, AWS Glue akış işimizin Kinesis veri akışını okuduktan ve işlendikten sonra özellikleri yazdığı S3 paketidir.

ML-9132 S3 olay paketi

Ardından, bu S3 paketi için etkinlik bildirimleri ayarlıyoruz.

  • Amazon S3 konsolunda kovaya gidin EventsBucket.
  • Üzerinde Emlaklar sekmesinde, Etkinlik bildirimleri bölümü, seçim Etkinlik bildirimi oluştur.

ML-9132 S3 olay paketi özellikleri

ML-9132 S3 olay paketi bildirimi

  • İçin Etkinlik ismi, girmek invoke-endpoint-lambda.
  • İçin Önek, girmek features/.
  • İçin Sonek, girmek .csv.
  • İçin Etkinlik türleriseçin Tüm nesne oluşturma etkinlikleri.

ML-9132 S3 olay kovası bildirim yapılandırması
ML-9132 S3 olay kovası bildirim yapılandırması

  • İçin Varış yeriseçin Lambda işlevi.
  • İçin Lambda işlevive işlevi seçin invoke-endpoint-asynch.
  • Klinik Değişiklikleri Kaydet.

ML-9132 S3 olayları kova bildirim yapılandırma lambda

  • AWS Glue konsolunda işi açın GlueStreaming-Kinesis-S3.
  • Klinik İşi çalıştır.

ML-9132 Tutkal işini çalıştır

Ardından, Kinesis veri akışımıza veri gönderen sensörleri simüle etmek için Kinesis Veri Üreticisini (KDG) kullanıyoruz. KDG'yi ilk kez kullanıyorsanız, bkz. Genel Bakış İlk kurulum için. KDG, kullanıcıyı oluşturmak ve olayları Kinesis'e göndermek için KDG'yi kullanmak için yeterli izinleri atamak için bir CloudFormation şablonu sağlar. Çalıştır CloudFormation şablonu Bu gönderideki çözümü oluşturmak için kullandığınız AWS hesabında. KDG kurulduktan sonra, Kinesis veri akışımıza test olayları göndermek için oturum açın ve KDG'ye erişin.

  • Kinesis veri akışını (us-east-1) oluşturduğunuz Bölge'yi kullanın.
  • Açılır menüde veri akışını seçin sensor-data-stream.
  • içinde Saniye başına kayıt bölümünde, seçin sabit ve 100 girin.
  • Seçimi kaldır Kayıtları Sıkıştır.
  • İçin Kayıt şablonu, aşağıdaki şablonu kullanın:
{
"air_temperature": {{random.number({"min":295,"max":305, "precision":0.01})}},
"process_temperature": {{random.number({"min":305,"max":315, "precision":0.01})}},
"rotational_speed": {{random.number({"min":1150,"max":2900})}},
"torque": {{random.number({"min":3,"max":80, "precision":0.01})}},
"tool_wear": {{random.number({"min":0,"max":250})}},
"type": "{{random.arrayElement(["L","M","H"])}}"
}

  • Tıkla Veri gönder Kinesis veri akışına veri göndermeye başlamak için.

ML-9132 Kineses Veri Oluşturma

AWS Glue akış işi, sağlanan pencere boyutuna bağlı olarak Kinesis veri akışından bir mikro veri yığınını (sensör okumalarını temsil eden) okur ve ayıklar. Akış işi daha sonra, S3 kovası içindeki önek özelliklerine bölümlemeden ve yazmadan önce bu mikro toplu iş üzerinde özellik mühendisliğini işler ve gerçekleştirir.

AWS Glue akış işi tarafından oluşturulan yeni özellikler, bir Lambda işlevi olan S3 kovasına yazıldığından (invoke-endpoint-asynch) tetiklenir ve dağıtılan ML modelimizden çıkarımlar almak için bir çağırma isteği göndererek bir SageMaker eşzamansız çıkarım uç noktasını çağırır. Eşzamansız çıkarım uç noktası, eşzamansız çağırma isteğini kuyruğa alır. İşlem tamamlandığında SageMaker, çıkarım sonuçlarını Amazon S3 konumunda saklar (S3OutputPath) zaman uyumsuz çıkarım bitiş noktası yapılandırması sırasında belirtilen.

Kullanım durumumuz için, çıkarım sonuçları, sensör okumalarına dayanarak bir makine parçasının arızalanma olasılığının olup olmadığını gösterir.

ML-9132 Model çıkarımları

SageMaker ayrıca Amazon SNS ile bir başarı veya hata bildirimi gönderir. Örneğin, bir E-Posta Aboneliği başarı ve hata SNS konuları için (eşzamansız SageMaker çıkarım uç noktası yapılandırmasında belirtilir), bir çıkarım isteği her işlendiğinde bir e-posta gönderilebilir. Aşağıdaki ekran görüntüsü, SNS başarısı konusundan örnek bir e-posta gösterir.

ML-9132 SNS e-posta aboneliği

Gerçek dünya uygulamaları için, SNS bildirimlerini aşağıdakiler gibi diğer hizmetlerle entegre edebilirsiniz. Amazon Basit Kuyruk Hizmeti (Amazon SQS) ve Lambda, oluşturulan çıkarımların ek sonradan işlenmesi veya gereksinimlerinize göre diğer aşağı akış uygulamalarıyla entegrasyon için. Örneğin, tahmine dayalı bakım kullanım durumumuz için, Amazon S3'ten oluşturulan çıkarımı okumak, daha fazla işlemek (toplama veya filtreleme gibi) ve aşağıdakiler için iş emirleri göndermek gibi iş akışları başlatmak için SNS bildirimine dayalı bir Lambda işlevi çağırabilirsiniz. teknisyenlere ekipman onarımı.

Temizlemek

Yığını test etmeyi tamamladığınızda, beklenmedik ücretleri önlemek için kaynakları (özellikle Kinesis veri akışı, Tutkal akışı işi ve SNS konuları) silin.

Yığınınızı silmek için aşağıdaki kodu çalıştırın:

sam delete nrt-streaming-inference

Ayrıca ModelTraining-Değerlendirme-ve-Dağıtım not defterindeki temizleme bölümünü izleyerek SageMaker uç noktaları gibi kaynakları da silin.

Sonuç

Bu gönderide, Kinesis, AWS Glue ve SageMaker gibi çeşitli hizmetlerin gerçek zamanlıya yakın bir çıkarım hattı oluşturmak için nasıl kullanılacağını göstermek için bir tahmine dayalı bakım kullanım örneği kullandık. Bu çözümü denemenizi ve ne düşündüğünüzü bize bildirmenizi öneririz.

Herhangi bir sorunuz varsa, yorumlarda paylaşın.


yazarlar hakkında

Amazon Kinesis, AWS Glue ve Amazon SageMaker PlatoBlockchain Data Intelligence ile tahmine dayalı bir bakım çözümü oluşturun. Dikey Arama. Ai. Rahul Sharma AWS Data Lab'de bir Çözüm Mimarıdır ve AWS müşterilerinin AI/ML çözümleri tasarlamasına ve oluşturmasına yardımcı olur. Rahul, AWS'ye katılmadan önce finans ve sigorta sektöründe birkaç yıl geçirerek müşterilerin veri ve analitik platformlar oluşturmasına yardımcı oldu.

Amazon Kinesis, AWS Glue ve Amazon SageMaker PlatoBlockchain Data Intelligence ile tahmine dayalı bir bakım çözümü oluşturun. Dikey Arama. Ai.Pat Reilly AWS Veri Laboratuvarı'nda, müşterilerin işlerini desteklemek için veri iş yükleri tasarlamalarına ve oluşturmalarına yardımcı olan bir Mimardır. Pat, AWS'den önce bir AWS Çözüm Ortağına danışarak çeşitli sektörlerde AWS veri iş yükleri oluşturdu.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi