Azure Databricks üzerinde Spark modellerini toplu puanlama

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Azure Blob Storage

Bu başvuru mimarisinde, Azure Databricks kullanarak bir zamanlamaya göre Apache Spark sınıflandırma modelini toplu puanlama için ölçeklenebilir bir çözümün nasıl derlenmesi gösterilmektedir. Azure Databricks, Azure için iyileştirilmiş Apache Spark tabanlı bir analiz platformudur. Azure Databricks yoğun veri gerektiren uygulamalar geliştirmek için üç ortam sunar: Databricks SQL, Databricks Veri Bilimi ve Mühendislik ve Databricks Machine Learning. Databricks Machine Learning, deneme izleme, model eğitimi, özellik geliştirme ve yönetimi ile özellik ve model sunma için yönetilen hizmetleri birleştiren tümleşik bir uçtan uca makine öğrenmesi ortamıdır. Bu başvuru mimarisini, diğer senaryolara genelleştirilebilen bir şablon olarak kullanabilirsiniz. Bu mimari için bir başvuru uygulaması GitHub'da kullanılabilir.

Apache® ve Apache Spark®, Apache Software Foundation'ın Birleşik Devletler ve/veya diğer ülkelerdeki kayıtlı ticari markaları veya ticari markalarıdır. Bu işaretlerin kullanılması Apache Software Foundation tarafından onaylanmamaktadır.

Mimari

Azure Databricks'te Apache Spark sınıflandırma modellerinin toplu puanlamasını gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Mimari, sıralı olarak yürütülen bir dizi not defterini temel alarak tamamen Azure Databricks'te yer alan bir veri akışını tanımlar. Aşağıdaki bileşenlerden oluşur:

Veri dosyaları. Başvuru uygulaması, beş statik veri dosyasında bulunan bir sanal veri kümesi kullanır.

Alım. Veri alımı not defteri, giriş veri dosyalarını databricks veri kümelerinden oluşan bir koleksiyona indirir. Gerçek dünya senaryosunda IoT cihazlarından alınan veriler Azure SQL veya Azure Blob depolama gibi Databricks tarafından erişilebilen depolama alanına akışla aktarılmalarını sağlar. Databricks birden çok veri kaynağını destekler.

Eğitim işlem hattı. Bu not defteri, alınan verilerden bir analiz veri kümesi oluşturmak için özellik mühendisliği not defterini yürütür. Ardından Apache Spark MLlib ölçeklenebilir makine öğrenmesi kitaplığını kullanarak makine öğrenmesi modelini eğiten bir model derleme not defteri yürütür.

Puanlama işlem hattı. Bu not defteri, alınan verilerden puanlama veri kümesi oluşturmak için özellik mühendisliği not defterini yürütür ve puanlama not defterini yürütür. Puanlama not defteri, puanlama veri kümesindeki gözlemler için tahminler oluşturmak üzere eğitilmiş Spark MLlib modelini kullanır. Tahminler, Databricks veri deposundaki yeni bir veri kümesi olan sonuç deposunda depolanır.

Zamanlayıcı. Zamanlanmış bir Databricks işi Spark modeliyle toplu puanlamayı işler. İş, puanlama veri kümesini oluşturma ayrıntılarını ve sonuç veri kümesinin depolanacağı yeri belirtmek üzere not defteri parametreleri aracılığıyla değişken bağımsız değişkenlerini geçirerek puanlama işlem hattı not defterini yürütür.

Çözüm ayrıntıları

Senaryo bir işlem hattı akışı olarak oluşturulur. Her not defteri, alım, özellik mühendisliği, model oluşturma ve model puanlama gibi işlemlerin her biri için toplu iş ayarında gerçekleştirilecek şekilde iyileştirilmiştir. Özellik mühendisliği not defteri, eğitim, kalibrasyon, test veya puanlama işlemlerinden herhangi biri için genel bir veri kümesi oluşturmak üzere tasarlanmıştır. Bu senaryoda, bu işlemler için zamansal bir bölme stratejisi kullanırız, bu nedenle not defteri parametreleri tarih aralığı filtrelemesini ayarlamak için kullanılır.

Senaryo bir toplu işlem hattı oluşturduğundan, işlem hattı not defterlerinin çıkışını keşfetmek için isteğe bağlı inceleme not defterleri kümesi sağlarız. Bu not defterlerini GitHub deposu not defterleri klasöründe bulabilirsiniz:

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Olası kullanım örnekleri

Varlık yoğun bir sektördeki bir işletme, beklenmeyen mekanik hatalarla ilişkili maliyetleri ve kapalı kalma süresini en aza indirmek istiyor. Makinelerinden toplanan IoT verilerini kullanarak tahmine dayalı bir bakım modeli oluşturabilirler. Bu model, işletmenin bileşenleri proaktif olarak korumasını ve başarısız olmadan önce onarmasını sağlar. Mekanik bileşen kullanımını en üst düzeye çıkararak maliyetleri kontrol edebilir ve kapalı kalma süresini azaltabilir.

Tahmine dayalı bakım modeli makinelerden veri toplar ve bileşen hatalarına ilişkin geçmiş örnekleri korur. Model daha sonra bileşenlerin geçerli durumunu izlemek ve belirli bir bileşenin yakında başarısız olup olmadığını tahmin etmek için kullanılabilir. Yaygın kullanım örnekleri ve modelleme yaklaşımları için bkz . Tahmine dayalı bakım çözümleri için Azure AI kılavuzu.

Bu başvuru mimarisi, bileşen makinelerinden yeni verilerin varlığıyla tetiklenen iş yükleri için tasarlanmıştır. İşleme aşağıdaki adımları içerir:

  1. Dış veri deposundaki verileri bir Azure Databricks veri deposuna alın.

  2. Verileri eğitim veri kümesine dönüştürüp spark MLlib modeli oluşturarak makine öğrenmesi modelini eğitin. MLlib, Spark veri ölçeklenebilirliği özelliklerinden yararlanmak için iyileştirilmiş en yaygın makine öğrenmesi algoritmalarından ve yardımcı programlarından oluşur.

  3. Verileri puanlama veri kümesine dönüştürerek bileşen hatalarını tahmin etmek (sınıflandırmak) için eğitilen modeli uygulayın. Spark MLLib modeliyle verileri puanlar.

  4. İşlem sonrası tüketim için sonuçları Databricks veri deposunda depolayın.

Bu görevlerin her birini gerçekleştirmek için GitHub'da not defterleri sağlanır.

Öneriler

Databricks, eğitilen modellerinizi yükleyip dağıtarak yeni verilerle tahminde bulunabilmeniz için ayarlanır. Databricks başka avantajlar da sağlar:

  • Microsoft Entra kimlik bilgilerini kullanarak çoklu oturum açma desteği.
  • Üretim işlem hatları için işleri yürütmek için iş zamanlayıcı.
  • İşbirliği, panolar, REST API'leri ile tam etkileşimli not defteri.
  • Her boyuta ölçeklenebilen sınırsız küme.
  • Gelişmiş güvenlik, rol tabanlı erişim denetimleri ve denetim günlükleri.

Azure Databricks hizmetiyle etkileşime geçmek için web tarayıcısında Databricks Çalışma Alanı arabirimini veya komut satırı arabirimini (CLI) kullanın. Databricks CLI'ya Python 2.7.9 ile 3.6'yi destekleyen tüm platformlardan erişin.

Başvuru uygulaması, görevleri sırayla yürütmek için not defterlerini kullanır. Her not defteri ara veri yapıtlarını (eğitim, test, puanlama veya sonuç veri kümeleri) giriş verileriyle aynı veri deposunda depolar. Amaç, özel kullanım örneğinizde gerektiği gibi kullanmanızı kolaylaştırmaktır. Uygulamada, not defterlerinin doğrudan depolama alanınıza okuması ve yazması için veri kaynağınızı Azure Databricks örneğine bağlarsınız.

Gerektiğinde Databricks kullanıcı arabirimi, veri deposu veya Databricks CLI aracılığıyla iş yürütmeyi izleyin. Databricks'in sağladığı olay günlüğünü ve diğer ölçümleri kullanarak kümeyi izleyin.

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Performans

Azure Databricks kümesi, çalışma zamanı sırasında çalışanlarınızı işinizin özelliklerini hesaba eklemek üzere dinamik olarak yeniden dağıtacak şekilde varsayılan olarak otomatik ölçeklendirmeyi etkinleştirir. İşlem hattınızın bazı bölümleri, işlem açısından diğerlerinden daha zorlu olabilir. Databricks, işinizin bu aşamalarında fazladan çalışan ekler (ve artık gerekli olmadığında bunları kaldırır). Bir iş yüküyle eşleşmesi için kümeyi hazırlamanız gerekmeyen otomatik ölçeklendirme, yüksek küme kullanımına ulaşmayı kolaylaştırır.

Azure Data Factory'i Azure Databricks ile kullanarak daha karmaşık zamanlanmış işlem hatları geliştirin.

Depolama

Bu başvuru uygulamasında, veriler kolaylık sağlamak için doğrudan Databricks depolama alanında depolanır. Ancak bir üretim ayarında verileri Azure Blob Depolama gibi bulut veri depolama alanında depolayabilirsiniz. Databricks, Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka ve Apache Hadoop'ı da destekler.

Maliyet iyileştirme

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

Genel olarak, maliyetleri tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın. Diğer önemli noktalar, Microsoft Azure İyi Tasarlanmış Çerçeve'nin Maliyet bölümünde açıklanmıştır.

Azure Databricks, ilişkili maliyeti olan premium bir Spark teklifidir. Ayrıca standart ve premium Databricks fiyatlandırma katmanları vardır.

Bu senaryo için standart fiyatlandırma katmanı yeterlidir. Ancak, belirli uygulamanız daha büyük iş yüklerini veya etkileşimli Databricks panolarını işlemek için kümeleri otomatik olarak ölçeklendirmeyi gerektiriyorsa premium düzey maliyetleri daha da artırabilir.

Çözüm not defterleri, Databricks'e özgü paketleri kaldırmak için en az düzenlemeyle herhangi bir Spark tabanlı platformda çalıştırılabilir. Çeşitli Azure platformları için aşağıdaki benzer çözümlere bakın:

Bu senaryoyu dağıtın

Bu başvuru mimarisini dağıtmak için GitHub deposunda açıklanan adımları izleyerek Azure Databricks'te Spark modellerini toplu puanlama için ölçeklenebilir bir çözüm oluşturun.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar