Makine öğrenmesi yaşam döngüsü

Bu sayfada, makine öğrenmesi (ML) projesini ilk kapsam belirlemeden üretime geçirme ve zaman içinde iyi performans göstermeyi sürdürmeye yönelik uçtan uca yolculuk açıklanmaktadır. Kod, veri ve modeller üç geniş aşamadan geçer: geliştirme, hazırlama ve üretim. Her aşamanın farklı hedefleri ve gereksinimleri vardır:

  1. Kullanım örneğinin kapsamını belirleme ve başarıyı tanımlama
  2. Verileri keşfetme ve anlama
  3. Verileri ve özellikleri hazırlama
  4. Modelleri eğitin ve denemeleri izleyin
  5. Değerlendirmek
  6. Modelleri kaydetme, hazırlama ve test et
  7. Üretim ortamına dağıt
  8. İzleyin ve yeniden eğitin

1. Kullanım örneğinin kapsamını belirleme ve başarıyı tanımlama

Herhangi bir şey oluşturmadan önce, modelin ne yapması gerektiği ve işe yarayıp yaramadığını nasıl anlayacağınız konusunda mutabık kalın.

  • Tahmin hedefi nedir ve bu, hangi tür bir makine öğrenimi problemine işaret eder: sınıflandırma, regresyon, zaman serisi tahmini, öneri, sıralama, anomali tespiti veya başka bir şey?
  • Hangi giriş verileri kullanılabilir ve hedef deseni öğrenmek yeterli midir?
  • Başarıyı tanımlayan ölçümler hangileridir: doğruluk, AUC, K'de duyarlık veya iş KPI'leri?
  • Hizmet ve üretim gereksinimleri nelerdir: gecikme süresi, aktarım hızı ve veri tazeliği?
  • Canlı ortam dağıtımlarını hangi paydaşların onaylaması gerekir? Açıklanabilirlik ile ilgili gereksinimleri nelerdir?

Yukarıdaki gereksinimler belirli ML yöntemini dikte etmemektedir. Gradyan artırılmış ağaçlar gibi daha basit bir yaklaşımla modellemeye başlayabilir ve daha sonra daha güçlü derin öğrenme yöntemlerinin gerekli olduğuna karar vekleyebilirsiniz.

2. Verileri keşfetme ve anlama

Özellikleri hazırlamadan veya modeli eğitmeden önce verileri inceleyerek yapısını, kalitesini ve tahmin hedefiyle ilişkisini anlayın. Keşif veri analizi (EDA), aşağı akış modelleme kararlarını şekillendiren dağıtımları, bağıntıları, eksik değerleri ve aykırı değerleri ortaya çıkarmak için bir veri kümesini özetleme ve görselleştirme işlemidir.

Daha önce, eğitimden geri alınmış geçerli test verileriniz olduğunu nasıl doğrulayabileceğinize karar verin. EDA sırasında bile test verilerinize göre modelleme kararları almaya dikkat edin.

EDA, yaşam döngüsünün geri kalanını bilgilendiren soruları yanıtlar:

  • Hangi girişler hedefle ilgili en tahmine dayalıdır ve bunlardan herhangi biri sunum zamanında kullanılamıyor mu?
  • Temizleme veya dönüştürme gerektiren eksik değerler, aykırı değerler veya çarpık dağılımlar var mı?
  • Veri kümesi hedef deseni öğrenmek için yeterince büyük ve yeterince temsili mi?

Azure Databricks etkileşimli, işbirliğine dayalı ve yapay zeka destekli araçlarla EDA'yı basitleştirir. Doğal dil sohbeti, URI'leri veya kodu kullanarak verilerinizi keşfedin ve hem gerçek zamanlı birlikte düzenleme hem de Git tabanlı kod paylaşımı aracılığıyla işbirliği yapın:

  • Not defterleri keşif, görselleştirme ve belgeler için işbirliğine dayalı alanlar sağlar.
  • Panolar SQL ve görselleştirme tabanlı araştırma sağlar.
  • Genie Chat , veri soruları sormak için tam sayfa, doğal dil arabirimi sağlar.
  • Genie Code tam otomatik EDA gerçekleştirebilir veya etkileşimli bir yardımcı olarak görev yapabilir.

3. Verileri ve özellikleri hazırlama

Verilerin anlaşılmasıyla, EDA sırasında tanımlanan ham kaynakları ve dönüşümleri ML modelleri için özelliklere dönüştürün. Veri kaynaklarının hızı, hacmi, güncelliği ve sahipliği dahil olmak üzere veri işlem hatlarınızı eğitim ve sunum için değerlendirin. Veri mühendisliği (verileri hazırlama ve dönüştürme) ile özellik mühendisliği (ML girişlerini türetme) arasındaki sınır belirsizdir. Azure Databricks veri mühendisliği ve ML, Unity Kataloğu'nda aynı platformu ve idare katmanını paylaştığından, bir ekip tarafından hazırlanan veriler veri taşıma veya yinelenen işlem hatları olmadan hemen başka bir ekip için özellik olarak kullanılabilir hale getirilebilir.

Mevcut veri ve özellik tanımlarını arayın:

  • Unity Kataloğu'nda bulunan verileri ve özellikleri keşfedin. Kuruluşunuzda ilgili modeller varsa Unity Kataloğu kökenini kullanarak bu modeller için kullanılan veri kaynaklarını ve özellikleri bulun.
  • Çalışma alanı araması , hangi yönetilen verilerin, modellerin veya uygulamaların zaten mevcut olduğunu keşfetmenize yardımcı olabilir.

Yeni varlıkları gerektiği gibi oluşturun ve yönetin:

  • Yapay zeka destekli, kod içermeyen bir deneyim için Lakeflow Designer da dahil olmak üzere veri alımı ve mühendisliği araçları hakkında daha fazla bilgi için bkz. Databricks ile veri mühendisliği.
  • Özellikleri yeniden kullanılabilir, idare edilen varlıklar olarak tanımlamak ve yönetmek için Özellik Deposu'nı kullanın. Aynı özellik tanımları, toplu ve gerçek zamanlı veri alımı ve toplu ve gerçek zamanlı sunum desteğiyle eğitim ve üretimde kullanılır.

İlgili tabloları bulmak, özellik dönüştürmeleri önermek ve alım ve özellik işlem hatları için başlangıç kodu oluşturmak üzere Unity Kataloğu'na göz atarak veri bulma ve hazırlama sürecini hızlandırmak için Genie Code kullanın.

4. Modelleri eğitin ve denemeleri izleyin

Veri bilimi ve ML uygulamaları, ml algoritmaları ve kitaplıkları, işlem gereksinimleri ve iş akışları için kendi gereksinimleri olan birçok farklı yaklaşım kullanır. Azure Databricks, MLflow altında birleştirilmiş deneme izleme özelliğiyle farklı iş yükleri için esnek ortamlar ve işlem sağlar.

Ortamlar ve işlem kaynakları

Varsayılan olarak, hem etkileşimli not defterleri hem de otomatik işler için sunucusuz işlem kullanın. Sunucusuz işlem anında başlar ve iş yükünüzle ölçeği otomatik olarak büyütüp küçültür.

GPU hızlandırma için, GPU eğitimi ve çıkarım için önceden yapılandırılmış bir ortam olan AI Runtime'ı kullanan sunucusuz işleminize GPU'ları ekleyin.

Hem CPU hem de GPU iş yükleri için, Machine Learning için Databricks Runtime ile klasik işlem de kullanabilirsiniz.

ML kitaplıklarınızla önceki ortamlardan herhangi birini özelleştirin. Ortamlar genellikle ML uygulamaları için yüksek oranda özelleştirilmiş olduğundan, bağımlılıkları kaydetmek, yeniden üretilebilirliği doğrulamak ve eğitim hizmeti dengesizliğini önlemek için MLflow izlemeden yararlanın.

MLflow izleme

Deneylerinizi izlemek ve model meta verilerini günlüğe kaydetmek için Azure Databricks tarafından yönetilen MLflow'u kullanın:

Modellemeye başlama

Genie Code , Tahmin görevinin düz dildeki açıklamasından, Özellik Deposu'ndan özellik seçimi, ML eğitimi ve MLflow izleme dahil olmak üzere eksiksiz bir ML not defteri oluşturabilir.

Ayrıca hiperparametre ayarlama kaynaklarına, model eğitimi örneklerine ve Databricks’te Ray bölümüne göz atın.

Derin öğrenme ve GPU hızlandırmalı klasik ML eğitimi için bkz. AI Runtime için örnek not defterleri.

5. Değerlendir

Geliştirme sırasında, kapsam belirleme gereksinimlerine göre kalite değerlendirme ölçümlerini tanımlayın:

  • Temel ölçümleriniz doğruluk, AUC, RMSE veya etki alanına özgü ölçümler gibi yaygın ML ölçümleri olabilir.
  • Değerlendirmeniz, verilerinizin segmentleri arasında temel ölçümleri karşılaştırarak ölçülen, popülasyon segmentleri genelinde sapma ve eşitlik gibi türetilmiş ölçümleri de içerebilir.

MLflow'un yerleşik ölçüm modülünü veya özel mantığınızı kullanarak seçtiğiniz ML kitaplığını veya çerçevesini kullanarak ölçümleri tanımlayın. Tüm ölçümler için MLflow'daki günlük ölçümleri, bunları ilgili modellerine bağlamak için çalışır. Geliştirme ve eğitim sırasında tanımladığınız ölçümler daha sonra üretim izleme ölçümleri olarak yeniden kullanılabilir.

6. Modelleri kaydetme, hazırlama ve test et

Bir ML modelini veya işlem hattını eğitdikten sonra, modeli üretime yükselterek idareyi ve yönetimi basitleştirmek için bunu Unity Kataloğu'ndaki MLflow Model Kayıt Defteri'ne kaydedin. Kayıtlı bir modelin, her biri onu üreten orijinal eğitim çalıştırmasına bağlantı veren sürümleri vardır. Model sürümleri güvenli dağıtım iş akışlarını etkinleştirir: Üretime yükseltmeden önce hazırlama aşamasında yeni bir sürümü test edebilir, kalitenin düşmesi durumunda önceki bir sürüme geri dönebilir ve dağıtılanların ve ne zaman dağıtıldığına ilişkin tam denetim kaydını tutabilirsiniz.

Yeni bir model sürümü üretim trafiğine hizmet vermeden önce, sürümü gerçekçi koşullar altında hazırlama aşamasında test edin:

  • Yapıtları yeniden adlandırmadan yaşam döngüsü durumunu işaret etmek için aday model sürümünü diğer adlarla (Staging, Production) etiketle.
  • Staging altyapısına karşı tümleştirme testleri çalıştırın: servis uç noktasının başladığını, gecikmenin gereksinimleri karşıladığını ve çıktıların doğru biçimde oluşturulduğunu doğrulayın.
  • Tam geçişten önce performansı doğrulamak için üretim verileriyle A/B veya gölge testleri gerçekleştirin.
  • Değerlendirme sonuçlarına göre paydaş onaylarını alın.

Bu açıklama, dağıtım uygulamalarını ve makine öğrenimi operasyonlarını (MLOps) gereğinden fazla basitleştiriyor. Azure Databricks'daki MLOps iş akışlarında MLOps hakkında daha fazla bilgi edinin.

7. Üretim ortamına dağıtın

Hazırlama doğrulamasından sonra modeli yükseltin ve üretime dağıtarak gerçek dünya girişleri için tahminler oluşturun. Azure Databricks iki birincil sunum deseni destekler:

  • Gerçek zamanlı sunum: İşlem zamanında sahtekarlık kesme, canlı kişiselleştirme veya dinamik fiyatlandırma gibi düşük gecikme süreli kararlar gerektiren kullanım örnekleri için Model Sunma'yı kullanarak modeli düşük gecikme süreli rest uç noktası olarak dağıtın.
  • Toplu çıkarım: ai_queryModel Sunma uç noktaları olarak dağıtılan özel modeller için verimli toplu çıkarım sağlar. Özel kodu Apache Spark UDF'leriyle (örnek) veya mlflow.pyfunc toplu çıkarım için de kullanabilirsiniz. Toplu işlem hatları, alt uygulamalar, panolar veya işlem hatlarında kullanılmak üzere sonuçları Delta tablolarına yazar. Bu düzen günlük tahminleri, gecelik öneri yenilemelerini ve diğer düzenli işleri işler.

Her iki örüntü de aynı eğitilmiş model artefaktını kullanır. Bir kez eğitin ve ardından aynı yönetişim ve soyağacıyla, aynı kayıtlı sürümden toplu veya gerçek zamanlı sunuma alın.

Genie Code hem dağıtım için kod oluşturabilir hem de sunum sorunlarını gidermeye, uç nokta davranışını açıklamaya ve modellerin güncelleştirilip yeniden dağıtılması gerektiğinde yinelemeyi hızlandırmaya yardımcı olabilir.

8. İzleme ve yeniden eğitme

Kullanıcı davranışı değiştikçe veya veri işlem hatları değiştikçe üretim ML sistemleri zaman içinde düşebilir. Üretim verilerinizi ve model tahminlerinizi sürekli izleyin:

  • Dağıtıma alınmış modellerinizin girişlerini ve çıkışlarını günlüğe kaydedin. Gerçek zamanlı kullanım için çıkarım tabloları, model kodunuzda herhangi bir değişiklik yapmadan otomatik günlük kaydı sağlar. Toplu sunum için işlem hatlarınız doğal olarak Unity Catalog tarafından yönetilen Delta tablolarından okur ve bu tablolara yazar.
  • Bu günlükleri veri kalitesi izlemesine aktararak zaman içinde veri kalitesini, özellik kaymasını ve tahmin dağıtımını izleyin. Gerçek değer veya geri bildirim verileriniz varsa, tahmin kalitesi metriklerini hesaplamak için bu verileri servis günlükleriyle birleştirebilirsiniz.
  • Kalite önemli ölçüde azalmadan önce yükseltmeyi veya yeniden eğitme tetiklemesi için izleme kullanıcı arabirimini ve anomali algılama uyarılarını kullanın.

Azure Databricks'daki MLOps iş akışlarında üretim ML'i hakkında daha fazla bilgi edinin.

Ek kaynaklar