By Jules S. Damji , Michael Galarnyk
Veri bilimi veya makine öğrenimi araştırmacıları veya uygulayıcıları arasında ortak bir söylenti, üretime bir model koymanın zor olmasıdır. Sonuç olarak, bazıları modellerin büyük bir yüzdesinin, %87'sinin üretimde asla gün ışığını görmediğini iddia ediyor .
"Bir modelim var, onu dizüstü bilgisayarımda geliştirmek için çok zaman harcadım. Sıradaki ne? Bunu üretim ortamımıza nasıl sokabilirim? ML yığınım ve araçlarım için nelere dikkat etmeliyim?"
Bu sorular, makine öğrenimi operasyonları (MLOps) üzerine yapılan görüşmelerden sonra genellikle toplantılarda veya konferanslarda ortaya çıkar. MLOps En İyi Uygulamalarının bu yeni alanı için, bu önemli sorunu ele almaya ve gidermeye çalışan tekil bir derde deva veya gümüş kurşun yoktur .
Ancak, makine öğrenimi yığınınızı ve araçlarınızı değerlendirirken akılda tutulması gereken bazı kabul edilebilir ve yaygın teknik hususlar ve tuzaklar vardır. Makine öğrenimi modellerinin üretime alınmasıyla ilgili bir dizinin bu ilk bölümünde, model geliştirmeden üretimde devreye almaya kadar olan yolculuğunuzun önemli bir parçası olan takımlar ve en iyi uygulamalar için bazı genel hususları ve yaygın tuzakları ve makine öğrenimi modeli hizmet modellerini tartışacağız.
Önce geliştirme ortamınızı düşünün. Çoğu veri bilimcisi veya ML mühendisi, kod geliştirme, test etme veya hata ayıklama için her zaman dizüstü bilgisayarlarını kullanır. Basitliği, en son ML kitaplıklarına erişmesi ve yüklemesi kolay olduğundan, uygulayıcılar geliştirme için kümelere kıyasla ezici bir çoğunlukla dizüstü bilgisayarları tercih ediyor. IDE'ler ve sözdizimi vurgulu editörler tarafından iyi bir nedenle şımartıldık.
Python geliştiricileri, conda veya Python sanal ortamlarını kullanan kitaplık bağımlılıklarıyla ortamlarını hazırlama ortamlarına uyacak şekilde özelleştirmeyi sever. İdeal olarak, en iyi uygulama olarak, dizüstü bilgisayarlarında geliştirilen aynı kodun kümedeki bir hazırlama veya üretim ortamında minimum değişiklikle çalıştırılabilmesi, geliştirici üretkenliğini uçtan uca büyük ölçüde artırır.
Kodunuzu buluttaki küme ortamına genişletme veya eşitleme olasılığı ile dizüstü bilgisayarınızı tercih edilen bir geliştirme ortamı seçeneği olarak düşünün.
Değerlendirme Numarası 1 : En iyi uygulama olarak geliştirme için dizüstü bilgisayarınızı kullanın
Geleneksel yazılım geliştirme döngüsünün aksine, model geliştirme döngüsü paradigması farklıdır. Bir makine öğrenimi modelinin üretimdeki başarısını bir dizi faktör etkiler. İlk olarak, bir modelin sonucu, kabul edilebilir bir doğruluk gibi metrikleriyle ölçülür.
İkinci olarak, iş hedefini karşılayan bir doğruluk elde etmek, yalnızca bir model veya ML kitaplığı ile değil, aynı zamanda birçok model ve birçok ML kitaplığı ile denemeler yapmak anlamına gelir; bu sırada her bir deneme çalıştırması: metrikler, parametreler, yapay nesneler vb. geliştiricinin deneme yapmak için ML kitaplıkları seçimi.
Üçüncüsü, doğruluk doğrudan elde edilen verilerin kalitesiyle bağlantılıdır: kötü veriler kötü bir modelle sonuçlanır. Aşağıdaki şemada veri hazırlama (özellik çıkarma, özellik seçimi, standartlaştırılmış veya normalleştirilmiş özellikler, veri yüklemeleri ve kodlama) gösterildiği gibi, temizlenen verilerin bir özellik deposuna, model eğitim ve test aşamanız veya dağıtımda çıkarım için erişilebilir olan bir özellik deposuna erişmeden önceki zorunlu adımlardır. .
Dördüncüsü, yalnızca veri ekibinizin (veri analistleri, veri bilimcileri ve makine öğrenimi mühendisleri) aşina olduğu değil, aynı zamanda model deneme ve eğitim aşamalarında kullanılan birçok makine öğrenimi kitaplığı tarafından desteklenen bir programlama dili seçimi. Python fiili seçim gibi görünüyor .
Bir programlama dili seçiminin yanı sıra, bilgi işlem yoğun ML iş yüklerini evcilleştirmek için bir ML çerçevesi seçimi de vardır: derin öğrenme, dağıtılmış eğitim, hiperparametre optimizasyonu (HPO) ve çıkarım - tümü yatay ölçekte - dizüstü bilgisayarınızdan, tek düğümlü çoklu çekirdeklerden birden çok çekirdekli birden çok düğüme.
Ve son olarak, modelleri çeşitli ortamlarda farklı ölçekte kolayca dağıtma yeteneği: web uygulamalarının bir parçası, mobil cihazların içinde, bulutta bir web hizmeti olarak vb.
Değerlendirme Numarası #2: MLflow , DVC , Weights & Biases veya SageMaker Studio gibi model yaşam döngüsü geliştirme ve yönetim platformlarını kullanmayı düşünün . Ve Ray , Ray Ayarlama , Ray Tren (eski Ray SGD), PyTorch ve TensorFlow , dağıtık işlem yoğun ve derin öğrenme ML iş yükleri için.
Özellik mağazaları , modern makine öğrenimi geliştirme döngüsünde ortaya çıkan önemli bileşenlerdir. Modelleri üretime başarıyla koymak için daha fazla veri bilimcisi ve mühendis birlikte çalıştıkça, temizlenmiş ve özellikli verileri sürdürmek için tek bir mağazaya sahip olmak, gösterilen model geliştirme döngüsünün bir parçası olarak artan bir gereklilik haline geliyor.
Özellik mağazaları operasyonel zorlukları ele alır. Eğitim ve çıkarım arasında tutarlı bir veri seti sağlarlar. Herhangi bir veri çarpıklığını veya yanlışlıkla veri sızıntısını önlerler. Eğitim sırasında özellik çıkarma işlemi sırasında hem toplu hem de akış verilerinde özellik dönüşümleri yazma konusunda özelleştirilmiş yetenek sunarlar. Ayrıca, büyük sahtekarlık ve anormallik algılaması kullanılan modellerde veya öneri sistemlerinde yaygın olan çıkarımdaki geçmiş verilerle istek artırmaya izin verirler.
Modelleri üretime sokmanın zorlukları ve düşünceleri bir yana, makine öğrenimi verilerini operasyonel hale getirmek de aynı derecede önemlidir. Model doğruluğu, iyi verilere bağlıdır ve özellik mağazaları, model sunumu sırasında model eğitiminiz ve üretim çıkarımınız için önceden hesaplanmış ve temizlenmiş özelliklerin yönetilmesine yardımcı olur.
Değerlendirme Numarası 3: Model geliştirme sürecinizin bir parçası olarak özellik depolarını düşünün. Özellik mağazaları için Feast , Tecton , SageMaker ve Databricks'e bakın.
Model, model doğruluğu için iş gereksinimlerini karşıladığından emin olarak eğitilip test edildikten sonra, ölçeklenebilir model hizmet çerçevelerinin dikkate alınması gereken yedi önemli gereksinim şunlardır:
Çerçeveden bağımsız : Bir model hizmet veren tarafından seçilen çerçeve, makine öğrenimi çerçevesinden bağımsız olmalıdır. Yani, ortak ML çerçeveleriyle oluşturulmuş herhangi bir ortak modeli dağıtabilir. Örneğin, her biri kendi algoritmalarına ve model mimarilerine sahip olan PyTorch, TensorFlow, XGBoost veya Scikit-learn.
Business Logic: Model prediction often requires preprocessing, post processing or ability to augment request data by connecting to a feature store or any other data store for validation. Model serving should allow this as part of its inference.
Model Replication: Some models are compute-intensive or network-bound. As such the elected framework can fan out requests over to model replicas, load balancing among replicas to support parallel request handling during peak traffic.
Toplu İşlem Talebi: Üretimdeki tüm modeller gerçek zamanlı hizmet için kullanılmaz. Çoğu zaman, modeller büyük istek grupları halinde puanlanır. Örneğin, derin öğrenme modelleri için bu görüntü isteklerini birden çok çekirdeğe paralel hale getirmek, donanım hızlandırıcılarından yararlanmak, toplu puanlamayı hızlandırmak ve donanım kaynaklarını kullanmak dikkate değerdir.
Yüksek Eşzamanlılık ve Düşük Gecikme: Üretimdeki modeller, yoğun istek trafiği patlamalarını işlerken düşük gecikme süresiyle gerçek zamanlı çıkarım gerektirir. Tahmin isteklerine milisaniyelik yanıtlar almak için en iyi kullanıcı deneyimi için bu değerlendirme çok önemlidir.
Model Dağıtımı CLI ve API'leri: Bir modeli dağıtmaktan sorumlu bir ML mühendisi, model yapılarını üretime dağıtmak için model sunucusunun dağıtım API'lerini veya komut satırı arabirimlerini (CLI) kullanabilmelidir. Bu, mevcut bir CI/CD ardışık düzeni veya iş akışı içinden model dağıtımına izin verir.
Üretimdeki Model Kalıpları : Makine öğrenimi uygulamaları endüstrinin tüm sektörlerinde giderek yaygınlaştığından, bu Makine Öğrenimi uygulamaları için eğitilen modeller karmaşık ve bileşiktir. Bilgisayarla görmeden doğal dil işlemeye, öneri sistemlerine ve pekiştirmeli öğrenmeye kadar çeşitlilik gösterirler.
Yani, modeller ayrı ayrı mevcut değildir. Sonuçları tekil olarak da tahmin etmezler. Bunun yerine ortaklaşa ve genellikle dört model modelinde çalışırlar : boru hattı, topluluk, iş mantığı ve çevrimiçi öğrenme. Her desenin amacı ve değeri vardır.
Makine Öğrenimi mühendisleri, bu model modellerini üretimde dağıtmak için iki yaygın yaklaşımı benimser . Biri modelleri bir web sunucusuna gömmek, diğeri ise harici bir hizmete boşaltmak. Yukarıdaki yedi hususa göre her yaklaşımın kendi artıları ve eksileri vardır.
Değerlendirme Numarası #4: Tüm bu yedi gereksinim için Seldon , KFServing veya Ray Serve'ye bakın .
Model geliştirme yaşam döngüsünün bir parçası olarak genellikle gözden kaçan bir aşama olan model izleme, dağıtım sonrası üretim aşamasında modelin uygulanabilirliği için kritik öneme sahiptir. Bir makine öğrenimi mühendisinin tehlikede olduğu durumlarda, genellikle sonradan düşünülen bir durumdur.
Modellerin bir sonraki uygulanabilirliği vardır. Üretimdeki bu yaşayabilir yaşam, sürekli tetikte veya nöbetçi bir göze ihtiyaç duyar. Aslında, bir aşama olarak izleme, aşağıdaki şemada gösterildiği gibi, hizmet veren modelin basitçe bir devamıdır.
Neden model izlemeyi düşünmelisiniz? Bir dizi pratik nedenden dolayı, bu aşama çok önemlidir. Bunlardan kısaca bahsedelim.
Data drifts over time: As we mentioned above, our quality and accuracy of the model depends on the quality of the data. Data is complex and never static, meaning what the original model was trained with the extracted features may not be as important over time. Some new features may emerge that need to be taken into account. For example, seasonal data changes. Such features drifts in data require retraining and redeploying the model, because the distribution of the variables is no longer relevant.
Model kavramı zamanla değişir: Birçok uygulayıcı buna model bozulması veya model durgunluğu olarak atıfta bulunur . Eğitilmiş modellerin kalıpları artık sürüklenen verilerle uyuşmadığında, model artık geçerli değildir çünkü girdi özelliklerinin ilişkileri mutlaka modelin beklenen tahminini üretmeyebilir. Bu nedenle, doğruluğu azalır.
Modeller zamanla başarısız olur: Modeller açıklanamayan nedenlerle başarısız olur: bir sistem hatası veya kötü ağ bağlantısı; aşırı yüklenmiş bir sistem; hatalı giriş veya bozuk istek. Bu arızaların kök nedenlerini erkenden veya sıklıklarının tespit edilmesi, kullanıcının kötü deneyimini azaltır veya kullanıcı yanlış veya sahte sonuçlar alırsa hizmete olan güvensizliği ortadan kaldırır.
Sistemler aşırı yükte bozulur: Dağıtılan özel model sunucularınızın veya hizmetlerinizin sağlığı konusunda sürekli tetikte olmak, verileri dönüştüren veri boru hatlarınızın veya tüm veri altyapınızın temel bileşenlerinin (veri depoları, web sunucuları, yönlendiriciler, vb.) sağlığını izlemek kadar önemlidir. küme düğümlerinin sistem sağlığı vb.
Toplu olarak, yukarıda belirtilen bu izleme modeli kavramlarına model gözlemlenebilirliği denir . Bu adım artık MLOps en iyi uygulamalarında kabul edilebilir bir zorunluluktur . Verilerinizin ve modellerinizin sağlığını izlemek asla sonradan düşünülmemelidir. Bunun yerine, model geliştirme döngünüzün bir parçası olmalıdır.
Gözönünde Numarası # 5: model gözlenebilirliği görünüm için Evidently.ai , Arize.ai , Arthur.ai , Fiddler.ai , Valohai.com veya whylabs.ai .
Tekrar özetleyelim. Üretime geçemeyen veya modelinizin gün ışığını üretimde görmesini sağlayan yaygın model mırıltılarından kaçınmak için, modellerinizin istenen hedefe ulaşmasını ve uygulanabilir bir ürüne sahip olmasını istiyorsanız, yukarıdaki tüm hususları göz önünde bulundurun. ahiret de.
Her düşüncenin kendine göre avantajları vardır. Her değerlendirme, her sorunu ele alan açık kaynaklı bir çözüme veya bir satıcıdan yönetilen bir çözüme sahiptir. Her birinin mevcut makine öğrenimi araçları yığınınıza en iyi nasıl uyduğunu ve tüm hususları nasıl karşıladığını değerlendirin.
But making it part and parcel of your ML model development tooling stack is crucial; it will significantly improve your end-to-end success in putting your models into production.
In future blogs, we will examine how you can implement consideration #1 and #2, focusing on some of the tools we suggested.
Originally published at https://www.anyscale.com.
Yasal Uyarı: Bu makale yalnızca eğitim amaçlıdır. Kimseyi web sitelerini, özellikle de bu tür eylemlere karşı hüküm ve koşulları olabilecek web mülklerini kazımaya teşvik etmiyoruz.
Zeta Alpha'dan aylık ML makaleleri seçkisi: Ses oluşturma, Backprop'suz Gradyanlar, Uzmanların Karışımı, Çok Modluluk, Bilgi Alma ve daha fazlası. Mart ayı yapay zeka dünyasındaki gelişmelerle dolu olarak geldi: hemen arkamızda WSDM konferansı ve AAAI'nin de henüz sona ermiş olması gibi yayınlar ve konferanslar gelmeye devam ediyor.
Hey millet, eski bulgularımdan birini paylaşmak için buradayım. Bir hesabın ele geçirilmesine yol açan benzersiz bir açık yönlendirme yöntemi buldum.
Son 24 saat içinde, Alibaba Group başkanı J. Michael Evans, bireysel bir karbon ayak izi takip cihazı üzerinde çalıştıklarını açıkladı.
Kava Rise, DeFi, NFT ve GameFi sektörlerindeki en iyi geliştiricileri Kava Layer-1'e yerleştirmek için tasarlanmış otomatik ve adil bir teşvik programıdır ve tüm Kava ekosisteminde büyümeyi teşvik eder. Kurallar basit - Kava ekosisteminin büyümesine ne kadar çok katkıda bulunursanız, ödüllerinden o kadar çok pay alırsınız.
Bu blog için potansiyel bir başlık düşününce bile kalbim çarpmaya başlıyor. Kafamdaki davulların neşeli bir melodinin seslerine değil, korku ve endişenin sağır edici kükremelerine çarptığını duyabiliyorum.