MLOps'un Temelini Öğrenin — Makine Öğrenimi (ML) İşlem Hatları Oluşturma
MLOps Neden Gereklidir?
Yapay zekanın çalışmasını sağlamak için asıl zorluğun bir Makine Öğrenimi (ML) modeli oluşturmak değil, entegre bir ML sistemi oluşturmak ve onu üretimde sürekli olarak çalıştırmak olduğu oldukça iyi kanıtlanmıştır. Bu nedenle MLOps kavramı geliştirildi ve Veri Bilimcileri, Makine Öğrenimi Mühendisleri ve Yapay Zeka meraklıları arasında hızla ivme kazanıyor.
Son yıllarda makine öğrenimi algoritmalarında yapılan güçlü araştırmalar nedeniyle, yapay zeka ve makine öğrenimi, kuruluşlara yeni iş fırsatları yaratma, daha iyi müşteri deneyimleri sağlama, operasyonel verimlilikleri artırma vb. açılardan büyük potansiyel göstermiştir. Ancak bir Jupyter Notebook'ta bir ML modeli eğitmekle bir ML modelini bir üretim sistemine dağıtmak arasında büyük bir teknik boşluk vardır. Sonuç olarak, birçok şirket Makine Öğrenimi/Yapay Zeka hedeflerine nasıl ulaşacaklarını çözememiştir ve MLOps aracılığıyla yapay zekayı gerçek dünya üretim ortamında çalıştırarak faydalarından gerçekten yararlanabileceklerini umarak yardım için MLOps'a başvururlar. yapay zeka ve makine öğrenimi odaklı çözümler
Bu nedenle, MLOps uygulamalarının nasıl uygulanacağını açıklayan bir dizi pratik rehber geliştirmenin oldukça faydalı olacağına inanıyorum. Bu kılavuzlar, temel MLOps bileşenlerinin açıklamalarını, tasarım hususlarını ve uygulama için örnek kodları içerecektir.
MLOps'u tamamen mühendislik ve uygulama perspektifinden ele alırsak, herhangi bir uçtan uca MLOps çözümü için üç temel bölüm vardır:
- İlk bölüm — Veri ve Özellik Mühendisliği Ardışık Düzeni
- İkinci bölüm: Makine Öğrenimi Modeli Eğitimi ve Yeniden Eğitim Ardışık Düzeni
- Üçüncü bölüm: Makine Öğrenimi Modeli Çıkarımı ve Sunum Ardışık Düzeni
MLOps Çözümlerini Uygulamanın Temel Yapı Taşları
Aşağıdaki görüntü, MLOps'un yukarıda belirtilen 3 işlem hattının tüm temel bileşenlerini yakalar. Gördüğünüz gibi, uçtan uca bir MLOps çözümü oluşturmak oldukça karmaşık olabilir, ancak endişelenmeyin, bunları tek tek ayrıntılı olarak açıklayacağım ve her bir bileşenin nasıl uygulanacağını önümüzdeki seride göstereceğim. gönderiler.
Veri ve Özellik Mühendisliği Ardışık Düzenleri
Veriler herhangi bir makine öğrenimi sisteminin çekirdeği olduğundan, verilerle başlayacağım ve mühendislik ardışık düzenlerini öne çıkaracağım. Genel olarak konuşursak, veri boru hatları, veri mühendislerinin kaynak sistemlerden ham verileri aldığı, ardından verileri temizleyip aşağı akış veri tüketicileri için güvenilir ve yüksek kaliteli bilgilere dönüştürdüğü Çıkarma, Dönüştürme ve Yükleme (ETL) boru hatlarına atıfta bulunur. Veri ardışık düzenlerinin nasıl oluşturulacağını anlamakla ilgileniyorsanız, bununla ilgili ayrı bir makalem var. Veri Mühendisliğinin Temelini Öğrenin — Veri Ardışık Düzenleri Oluşturma . Lütfen okumaktan çekinmeyin.
ML ile ilgili benzersiz olan şey, ML modellerinin verilerden yararlı kalıpları etkili bir şekilde öğrenebilmesi için ham verilerin özelliklere dönüştürülmesi gerekmesidir . Ham verileri özelliklere dönüştürme işlemine özellik mühendisliği denir. Bu nedenle, bu gönderinin odak noktası, bir özellik deposunun ne olduğuna dair bir giriş sağlamanın yanı sıra, özellik mühendisliği ardışık düzenlerini uygulamak etrafında olacaktır.
Takdir etme, aykırı değerleri işleme, binning, log dönüştürme, one-hot kodlama vb. dahil olmak üzere çeşitli özellik mühendisliği teknikleri vardır. Onlar hakkında daha fazla bilgi edinmek istiyorsanız, eminim google'da arayabilirsiniz ve özellik mağazalarında birçok blog olacaktır. Bununla birlikte, burada vurgulamak istediğim şey, genellikle bir Makine Öğrenimi (ML) projesi için veri bilimcilerin, makine öğrenimi modellerinde iyi performans elde etmek için özellik mühendisliğine önemli miktarda zaman ve çaba harcadıklarıdır. Bu nedenle, bu özelliklerin keşfedilmesi ve yeniden kullanılması için saklanması değerli ve gereklidir. Bu nedenle, "özellikli mağazalar" kavramı geliştirildi ve tanıtım mağazalarında hem açık kaynaklı hem de ticari teklifler olmak üzere epeyce var. Bununla birlikte, özellik depoları, özelliğin yeniden kullanımından daha fazladır.Özellik deposu, özellikleri paylaşmanıza ve keşfetmenize ve daha etkili makine öğrenimi ardışık düzenleri oluşturmanıza olanak tanıyan makine öğrenimi için veri yönetimi katmanıdır. Özellik depoları, herhangi bir MLOps çözümünün en önemli iki parçası olan model eğitimi ve model sunumunda kullanılabilir. Özetle, özellik deposu aşağıdaki işlevleri ve faydaları sağlar:
- Özellik keşfi ve yeniden kullanımı
- Model eğitimi ve sunumu için tutarlı özellik mühendisliği
- Veri ve özellik kayması için izleme
- Eğitim veri kümeleri için tekrar üretilebilirlik
Makine Öğrenimi Modeli Eğitimi ve Yeniden Eğitim Ardışık Düzenleri
Özellik mühendisliği tamamlandıktan sonraki adım, makine öğrenimi modeli eğitimi olacaktır. Makine öğrenimi modeli eğitimi oldukça yinelemeli bir süreçtir ve bu nedenle makine öğrenimi modeli deneyi olarak da adlandırılır . Veri bilimcileri, en iyi performansa sahip modeli bulmak için farklı parametreler ve hiperparametrelerle birçok deney yapmak zorundadır. Bu nedenle, veri bilimcilerin, her çalışmayı karşılaştırabilmeleri ve en iyisini bulabilmeleri için her deneme çalışmasının hiperparametrelerini ve metriklerini günlüğe kaydetmeye ve izlemeye yönelik sistematik bir yola ihtiyaçları vardır. Veri bilimcilerin model denemelerini günlüğe kaydetmesine ve izlemesine yardımcı olabilecek mlflow gibi bazı açık kaynaklı kitaplıklar vardır . mlflow, deney yapma, yeniden üretilebilirlik, devreye alma ve merkezi bir model kaydı dahil olmak üzere makine öğrenimi yaşam döngüsünü yönetmek için açık kaynaklı bir platformdur.
Model eğitimi dışında, veri bilimcilerin modeli gerçek bir üretim ortamına koyma konusunda rahat olmadan önce modeli değerlendirmeleri ve test etmeleri gerekir . Modelin eğitim verileriyle olduğu kadar gerçek dünyadaki canlı verilerle de iyi performans göstereceğinden emin olmaları gerekir. Bu nedenle, doğru test veri setini seçmek ve en alakalı performans ölçütlerini seçmek oldukça önemlidir. MLOps yürürlükteyken, hem model eğitiminin hem de model değerlendirmesinin otomatikleştirilmesi gerekir.
Makine öğrenimi odaklı bir sistemin temel zorluğu, model performansının onu eğitmek için kullanılan veriler tarafından belirlenmesidir. Ancak veriler her zaman değişir. Bu nedenle, modelin yeniden eğitilmesi, makine öğrenimi odaklı senaryoların çoğu için kesinlikle gerekli hale gelir. Genel olarak, model yeniden eğitimini tetiklemenin birkaç yolu vardır:
- Zamanlamaya dayalı — Model, önceden tanımlanmış bir aralıkta, örneğin haftada bir, en son verilerle yeniden eğitilir. Verilerin ne kadar hızlı değiştiğine ve ek iş gereksinimlerine bağlı olarak, program sıklığı önemli ölçüde değişebilir.
- Tetik tabanlı — Model, veri kayması, özellik kayması veya model performansında bozulma gibi bir kayma belirlendiğinde yeniden eğitilmek üzere tetiklenir. Modeli yeniden eğitmenin tamamen otomatik bir yolunu elde etmek için, hem veri değişikliklerini hem de model değişikliklerini izlemek için sağlam bir izleme çözümü olması gerekir.
Makine Öğrenimi Modeli Çıkarımı/Sunum Ardışık Düzeni
Model eğitilip değerlendirildikten sonra, bir sonraki adım, modeli kullanım için gerçek bir üretim ortamına koymak olacaktır. Genel olarak, eğitimli makine öğrenimi modeline hizmet vermenin 2 yolu vardır:
- Çevrimdışı toplu çıkarım — Belirli bir sıklıkta tahminler için makine öğrenimi modeli çağrılır. Sıklık günlük, haftalık ve hatta daha uzun olabileceği gibi her dakika kadar düşük de olabilir. Sıklık çok düşük olduğunda (çoğunlukla), akış veri işlem hatlarını makine öğrenimi modeli çıkarımlarıyla entegre edebilirsiniz. Toplu çıkarımlar için veri hacmi çok büyük olduğunda, dağıtılmış bir hesaplama çerçevesine ihtiyaç duyulacaktır. Örneğin, modeli Spark Kullanıcı Tanımlı İşlevi (UDF) olarak yükleyebilir ve paralel çıkarımlar için dağıtılmış bilgi işlem kullanarak ölçekte uygulayabilirsiniz.
- Çevrimiçi gerçek zamanlı çıkarım — Makine öğrenimi modeli, bir REST API uç noktası olarak paketlenmiştir. Çevrimiçi gerçek zamanlı çıkarımlar için, paketlenmiş makine öğrenimi modeli genellikle bir talep üzerine model tahmininin oluşturulduğu bir uygulamaya gömülür. İstek hacmi büyük olduğunda model, büyük hacimli tahmin isteklerine yanıt vermek üzere otomatik ölçeklendirme için bir kapsayıcı görüntüsü olarak paketlenebilir ve bir Kubernetes ortamına dağıtılabilir
- Tahmin Sürüklenmesi
- Veri / Özellik Sürüklenmesi
- Hedef Sürüklenmesi
- Veri kalitesi
Şimdiye kadar eksiksiz bir MLOps çözümünün 3 temel ardışık düzenini ele aldık — veri ve özellik mühendisliği ardışık düzeni, ML modeli eğitimi ve yeniden eğitim ardışık düzeni ve ML modeli çıkarım ardışık düzenleri ve ayrıca ML modeli izleme.
Bir MLOps Çözümünün Ölçek Spektrumu
MLOps oldukça yeni bir kavramdır ve muhtemelen yukarıdaki girişten MLOps'un yapay zekanın gerçek dünyada çalışmasını sağlamak için epeyce farklı bileşeni bir araya getirmeyi içerdiğini anlayabilirsiniz. Bu nedenle, birçok kişi MLOps'un göz korkutucu ve karmaşık olduğunu düşünür. Ancak , uçtan uca bir MLOps çözümü uygulamaktan bahsederken çizilmesi gereken bir ölçek spektrumu vardır .
Örneğin, makine öğrenimi çözümünüz küçük ölçekli ve toplu iş tabanlıysa — toplu veri ardışık düzeni, toplu eğitim, toplu çıkarım ve veri hacmi dağıtılmış bilgi işlem gerektirmiyorsa — o zaman MLOps'u uygulamak o kadar da zor değildir ve bir veri bilimcisi bile " tam yığın” ve tüm çözümün sahibi olun. Ancak, büyük ölçekli, sürekli eğitim ve gerçek zamanlı çıkarımdan bahsediyorsanız, birden fazla ekibin ve farklı altyapı setlerinin birlikte çalışmasını gerektirecek kadar karmaşık olabilir.
Bu nedenle, sonraki gönderilerde, her ölçek çok farklı beceri setleri ve farklı altyapı kurulumları içerebileceğinden, bazı ML referans mimarilerini ve farklı ölçeklerde MLOps uygulamak için en iyi uygulamaları açıklayacağım. Bizi izlemeye devam edin.
Umarım bu blogu okumaktan keyif almışsınızdır. Yayınlanan yeni bloglar olduğunda bilgilendirilmek istiyorsanız, lütfen beni Medium'da takip etmekten çekinmeyin, bu beni kesinlikle daha fazla yazmaya motive edecektir.
Modern ve verimli veri+Yapay Zeka yığını hakkında daha fazla kılavuz, ayrıntılı inceleme ve içgörü görmek istiyorsanız, lütfen ücretsiz haber bültenim Efficient Data+AI Yığını'na abone olun , teşekkürler!
Not: Henüz Medium üyesi olmadıysanız ve Medium'a sınırsız erişim elde etmek istiyorsanız, referans bağlantımı kullanarak kaydolabilirsiniz ! Sana hiçbir ücret ödemeden küçük bir komisyon alacağım. Desteğiniz için çok teşekkürler!