ML ardışık düzenleri

Üretim makine öğreniminde hedef, tek bir model derleyip dağıtmak değildir. Amaç, zaman içinde modelleri geliştirmek, test etmek ve dağıtmak için otomatik ardışık düzenler oluşturmaktır. Neden? Dünya değişirken veri trendleri de değişiyor ve üretimdeki modellerin eskimesine neden oluyor. Modellerin uzun vadede yüksek kaliteli tahminler sunmaya devam edebilmesi için genellikle güncel verilerle yeniden eğitilmesi gerekir. Başka bir deyişle, eski modelleri yenileriyle değiştirmek istersiniz.

Eski bir modelin değiştirilmesi, ardışık düzenler olmadan hataya yatkın bir işlemdir. Örneğin, bir model kötü tahminler sunmaya başladığında, kişinin yeni verileri manuel olarak toplayıp işlemesi, yeni bir model eğitmesi, kalitesini doğrulaması ve son olarak da modeli dağıtması gerekecektir. ML ardışık düzenleri, bu tekrarlayan işlemlerin çoğunu otomatikleştirerek modellerin yönetimini ve bakımını daha verimli ve güvenilir hale getirir.

Ardışık düzen oluşturma

Makine öğrenimi ardışık düzenleri, modelleri derleme ve iyi tanımlanmış görevlere dağıtma adımlarını düzenler. Ardışık düzenlerin iki işlevi vardır: tahmin sunma veya modeli güncelleme.

Tahminleri gerçekleştirme

Sunma ardışık düzeni, tahminler sunar. Modelinizi gerçek dünyaya sunarak kullanıcılarınızın erişimine sunar. Örneğin, bir kullanıcı yarın havanın nasıl olacağı veya havaalanına gitmek için kaç dakika sürecek ya da önerilen videoların listesi gibi bir tahmin istediğinde, hizmet hattı kullanıcının verilerini alıp işler, bir tahminde bulunur ve ardından kullanıcıya sunar.

Model güncelleniyor

Modeller, üretime sunulduktan hemen sonra eskimeye başlar. Aslında, eski bilgileri kullanarak tahminlerde bulunuyorlar. Eğitim veri kümeleri, dünyanın durumunu bir gün, bazı durumlarda bir saat önce kaydetti. Dünyanın değişmesi kaçınılmaz olarak değişti: Kullanıcılar daha fazla video izledi ve yeni bir öneri listesine ihtiyaç duyuyordu; yağmur, trafiğin yavaşlamasına ve kullanıcıların varış zamanlarıyla ilgili güncel tahminlere ihtiyaç duymasına neden oldu; popüler bir trend, perakendecilerin belirli ürünler için güncellenmiş envanter tahminleri istemesine neden oluyor.

Genellikle, ekipler yeni modelleri üretim modeli eskimeye başlamadan epey önce eğitir. Bazı durumlarda ekipler yeni modelleri sürekli bir eğitim ve dağıtım döngüsü içinde her gün eğitir ve dağıtır. İdeal olarak, yeni bir modelin eğitilmesi, üretim modeli eskimeden çok önce tamamlanmalıdır.

Aşağıdaki ardışık düzenler, yeni bir model eğitmek için birlikte çalışır:

  • Veri ardışık düzeni. Veri ardışık düzeni, eğitim ve test veri kümeleri oluşturmak için kullanıcı verilerini işler.
  • Eğitim ardışık düzeni. Eğitim ardışık düzeni, veri ardışık düzenindeki yeni eğitim veri kümelerini kullanarak modelleri eğitir.
  • Doğrulama ardışık düzeni. Doğrulama ardışık düzeni, eğitilen modeli veri ardışık düzeni tarafından oluşturulan test veri kümelerini kullanarak üretim modeliyle karşılaştırarak doğrular.

Şekil 4'te her bir ML ardışık düzeninin girişleri ve çıkışları gösterilmiştir.

ML ardışık düzenleri

Giriş ve çıkışlarını gösteren ML ardışık düzenleri. Sunum ardışık düzeni kullanıcı girişlerini alır ve tahminlerde bulunur. Veri ardışık düzeni, uygulama veri günlüklerini işleyerek eğitim ve doğrulama ardışık düzeninin yeni modelleri eğitmek ve doğrulamak için kullandığı eğitim ve test veri kümelerini oluşturur.

4. Şekil. ML ardışık düzenleri, model geliştirmek ve sürdürmek için birçok işlemi otomatikleştirir. Her ardışık düzenin giriş ve çıkışları gösterilir.

Genel bir düzeyde, ardışık düzenlerin üretimde yeni bir modeli nasıl tuttuğu aşağıda açıklanmıştır:

  1. İlk olarak, bir model üretime girer ve sunum ardışık düzeni tahminde bulunmaya başlar.

  2. Veri ardışık düzeni, yeni eğitim ve test veri kümeleri oluşturmak için hemen veri toplamaya başlar.

  3. Eğitim ve doğrulama ardışık düzenleri, bir programa veya tetikleyiciye bağlı olarak veri ardışık düzeni tarafından oluşturulan veri kümelerini kullanarak yeni bir modeli eğitir ve doğrular.

  4. Doğrulama ardışık düzeni yeni modelin üretim modelinden daha kötü olmadığını onayladığında yeni model dağıtılır.

  5. Bu işlem sürekli tekrar eder.

Model eskiliği ve eğitim sıklığı

Neredeyse tüm modellerin eskimiş olması. Bazı modeller diğerlerinden daha hızlı eskir. Örneğin, giysi öneren modeller genellikle hızlı bir şekilde eskir, çünkü tüketici tercihleri sık sık değiştiği için kötü olur. Öte yandan, çiçekleri tanımlayan modeller asla eskimeyebilir. Çiçeğin ayırt edici özellikleri değişmez.

Çoğu model, üretime geçtikten hemen sonra eskimeye başlar. Verilerinizin doğasını yansıtan bir eğitim sıklığı belirlemelisiniz. Veriler dinamikse sık sık eğitim yapın. Daha az dinamikse o kadar sık eğitim vermeniz gerekmeyebilir.

Modelleri eskimeden eğitin. Erken eğitim, veri veya eğitim ardışık düzeninin başarısız olması ya da model kalitesinin düşük olması gibi olası sorunları çözmek için bir tampon sağlar.

Önerilen en iyi uygulamalardan biri, her gün yeni modeller eğitmek ve dağıtmaktır. Günlük derleme ve yayınlama süreci olan normal yazılım projelerinde olduğu gibi, eğitim ve doğrulama için kullanılan makine öğrenimi ardışık düzenleri de genellikle günlük olarak çalıştırıldığında en iyi performansı gösterir.

Hizmet ardışık düzeni

Sunma ardışık düzeni, iki yöntemden biriyle tahminler oluşturur ve sunar: çevrimiçi veya çevrimdışı.

  • Online tahminler. Online tahminler, genellikle online bir sunucuya istek gönderip bir tahmin döndürerek gerçek zamanlı olarak gerçekleşir. Örneğin, kullanıcı bir tahmin istediğinde kullanıcının verileri modele gönderilir ve model, tahmini döndürür. Örneğin, Gmail online tahminleri kullanarak gelen iletileri gerçek zamanlı olarak sınıflandırır.

  • Çevrimdışı tahminler. Çevrimdışı tahminler önceden hesaplanır ve önbelleğe alınır. Uygulama, bir tahmin sunmak için veritabanında önbelleğe alınan tahmini bulur ve döndürür. Örneğin, aboneliğe dayalı bir hizmet, abonelerini kaybetme oranını tahmin edebilir. Model, her abonenin uygulamayı kullanmayı bırakma olasılığını tahmin eder ve bunu önbelleğe alır. Uygulama, tahmine ihtiyaç duyduğunda (örneğin, uygulamayı kullanmayı bırakabilecek kullanıcıları teşvik etmek için) yalnızca önceden hesaplanmış tahmini inceler.

Şekil 5'te çevrimiçi ve çevrimdışı tahminlerin nasıl oluşturulup yayınlandığı gösterilmektedir.

Online ve çevrimdışı tahminler

Tahminler, gerçek zamanlı olarak sunulabilir veya arama için toplu olarak işlenip önbelleğe alınabilir.

5. Şekil. Online tahminler, tahminleri gerçek zamanlı olarak sunar. Çevrimdışı tahminler önbelleğe alınır ve sunum sırasında bakılır.

İşleme sonrası tahmin

Tahminler genellikle teslim edilmeden önce işlenir. Örneğin, tahminler toksik veya taraflı içeriği kaldırmak için işlendikten sonra gerçekleştirilebilir. Sınıflandırma sonuçları, örneğin daha güvenilir içeriği artırmak, çeşitli sonuçlar sunmak, belirli sonuçların sıralamasını düşürmek (tıklama tuzağı gibi) veya yasal nedenlerle sonuçları kaldırmak amacıyla modelin ham çıktısını göstermek yerine sonuçları yeniden sıralamak için tarama özelliğini kullanabilir.

Şekil 6'da bir sunum ardışık düzeni ve tahmin yürütmekle ilgili tipik görevler gösterilmektedir.

İşlem sonrası tahminleri

Sunum ardışık düzeni genellikle tahminleri işleme sonrası alır.

6. Şekil. Tahmin göndermek için gereken tipik görevleri gösteren hizmet ardışık düzeni.

Özellik mühendisliği adımının genellikle model içinde oluşturulduğunu, ayrı ve bağımsız bir süreç olmadığını unutmayın. Sunum ardışık düzenindeki veri işleme kodu genellikle veri ardışık düzeninin eğitim ve test veri kümeleri oluşturmak için kullandığı veri işleme koduyla neredeyse aynıdır.

Öğeler ve meta veri depolama

Sunum ardışık düzeni, model tahminlerini ve mümkünse kesin referansı günlüğe kaydetmek için bir depo içermelidir.

Model tahminlerini günlüğe kaydetme, modelinizin kalitesini izlemenize olanak tanır. Tahminleri toplayarak modelinizin genel kalitesini izleyebilir ve kaliteyi kaybetmeye başlayıp başlamadığını belirleyebilirsiniz. Genel olarak üretim modelinin tahminleri, eğitim veri kümesindeki etiketlerle aynı ortalamaya sahip olmalıdır. Daha fazla bilgi için tahmin ön yargısı bölümünü inceleyin.

Kesin gerçeği yakalama

Bazı durumlarda kesin referans çok daha sonra kullanıma sunulur. Örneğin, bir hava durumu uygulaması gelecek altı hafta sonraki hava durumunu tahmin ederse kesin bilgi (hava durumu) altı hafta boyunca kullanılamaz.

Mümkün olduğunda, uygulamaya geri bildirim mekanizmaları ekleyerek kullanıcıların kesin bilgileri bildirmesini sağlayın. Kullanıcılar postaları gelen kutularından spam klasörüne taşıdığında Gmail, kullanıcı geri bildirimlerini dolaylı olarak yakalar. Ancak bu yalnızca kullanıcı, postalarını doğru bir şekilde kategorilere ayırdığında işe yarar. Kullanıcılar gelen kutularında spam bıraktığında (spam olduğunu bilip hiçbir zaman açmadığı için) eğitim verileri doğru olmaz. Söz konusu posta, "spam" olması gerektiğinde "spam değil" olarak etiketlenir. Bir başka deyişle, her zaman kesin referansı yakalayıp kaydetmenin yollarını bulmaya çalışın ama geri bildirim mekanizmalarında olabilecek eksikliklere dikkat edin.

Şekil 7'de bir kullanıcıya teslim edilen ve depoya kaydedilen tahminler gösterilmektedir.

Tahminleri günlüğe kaydetme

Sunum ardışık düzeni, modelin eskiliğini izlemek için tahminleri günlüğe kaydetmelidir.

7. Şekil. Model kalitesini izlemek için tahminleri günlüğe kaydedin.

Veri ardışık düzenleri

Veri ardışık düzenleri, uygulama verilerinden eğitim ve test veri kümeleri oluşturur. Ardından eğitim ve doğrulama ardışık düzenleri, yeni modelleri eğitmek ve doğrulamak için veri kümelerini kullanır.

Veri ardışık düzeni, modeli eğitmek için başlangıçta kullanılan özellik ve etiketle aynı özelliklere ve daha yeni bilgilere sahip eğitim ve test veri kümeleri oluşturur. Örneğin, bir harita uygulaması, milyonlarca kullanıcının noktalar arasındaki son seyahat zamanlarından eğitim ve test veri kümeleri ile hava durumu gibi başka alakalı veriler üretir.

Video öneri uygulaması, kullanıcının önerilenler listesinden tıkladığı videoları (tıklanmayanlar dahil) ve izleme geçmişi gibi ilgili verileri içeren eğitim ve test veri kümeleri oluşturur.

Şekil 8'de eğitim ve test veri kümeleri oluşturmak için uygulama verilerini kullanan veri ardışık düzeni gösterilmiştir.

Veri ardışık düzeni

Veri ardışık düzeni, eğitim ve test veri kümeleri oluşturur.

8. Şekil. Veri ardışık düzeni, uygulama verilerini işleyerek eğitim ve doğrulama ardışık düzenleri için veri kümeleri oluşturur.

Veri toplama ve işleme

Veri ardışık düzenlerinde veri toplama ve işleme görevleri, muhtemelen çözümünüzün uygun olduğunu belirlediğiniz deneme aşamasından farklı olacaktır:

  • Veri toplama. Deneme sırasında veri toplamak için genellikle kayıtlı verilere erişmeniz gerekir. Veri ardışık düzenlerinde veri toplamak, akış günlük verilerinin tespit edilmesi ve bu verilere erişmek için onay alınması gerekebilir.

    İnsan etiketli verilere (ör. tıbbi görüntüler) ihtiyacınız varsa bu verileri toplamak ve güncellemek için de bir sürece ihtiyacınız vardır. İnsan etiketli verilere ihtiyacınız varsa CrowdCompute sayfasını inceleyin.

  • Veri işleme. Deneme sırasında doğru özellikler deneme veri kümelerini kazıma, birleştirme ve örnekleme süreçlerinde ortaya çıktı. Veri ardışık düzenleri için aynı özellikleri oluşturmak tamamen farklı işlemler gerektirebilir. Bununla birlikte, aynı matematik işlemlerini özelliklere ve etiketlere uygulayarak deneme aşamasındaki veri dönüşümlerini kopyalamayı unutmayın.

Öğeler ve meta veri depolama

Eğitim ve test veri kümelerinizi depolamak, yayınlamak ve yönetmek için bir sürece ihtiyacınız olacaktır. Sürüm kontrollü depolar aşağıdaki avantajları sağlar:

  • Yeniden oluşturulabilirlik. Model eğitim ortamlarını yeniden oluşturup standart hâle getirin ve farklı modeller arasında tahmin kalitesini karşılaştırın.

  • Uygunluk. Denetlenebilirlik ve şeffaflık için mevzuata uygunluk gereksinimlerine uymalısınız.

  • Elde tutma. Verilerin ne kadar süreyle depolanacağına ilişkin veri saklama değerleri belirleyin.

  • Erişim yönetimi. Verilerinize kimlerin erişebileceğini ayrıntılı izinlerle yönetin.

  • Veri bütünlüğü. Zaman içinde veri kümelerinde yapılan değişiklikleri izleyip anlayın. Böylece verilerinizle veya modelinizle ilgili sorunları teşhis etmek kolaylaşır.

  • Keşfedilebilirlik. Başkalarının veri kümelerinizi ve özelliklerinizi bulmasını kolaylaştırın. Daha sonra diğer ekipler de bu araçların kendi amaçları için faydalı olup olmayacağına karar verebilir.

Verilerinizi belgeleme

İyi belgeleme, diğer kullanıcıların verilerinizle ilgili türü, kaynağı, boyutu ve diğer önemli meta veriler gibi önemli bilgileri anlamasına yardımcı olur. Çoğu durumda, verilerinizi bir tasarım belgesinde veya g3doc belgesinde belgelemek yeterlidir. Verilerinizi paylaşmayı veya yayınlamayı planlıyorsanız bilgileri yapılandırmak için veri kartlarını kullanın. Veri kartları, başkalarının veri kümelerinizi keşfetmesini ve anlamasını kolaylaştırır.

Eğitim ve doğrulama ardışık düzenleri

Eğitim ve doğrulama ardışık düzenleri, eski hale gelmeden önce üretim modellerinin yerini alacak yeni modeller üretir. Yeni modelleri sürekli olarak eğitmek ve doğrulamak, en iyi modelin her zaman üretim aşamasında olmasını sağlar.

Eğitim ardışık düzeni, eğitim veri kümelerinden yeni bir model oluşturur ve doğrulama ardışık düzeni, test veri kümeleri kullanarak yeni modelin kalitesini üretimdeki modelle karşılaştırır.

Şekil 9'da yeni model eğitmek için eğitim veri kümesi kullanılarak eğitim ardışık düzeni gösterilmiştir.

Eğitim ardışık düzeni

Eğitim ardışık düzeni, yeni modelleri yeni verilerle eğitir.

9. Şekil. Eğitim ardışık düzeni, en yeni eğitim veri kümesini kullanarak yeni modeller eğitir.

Model eğitildikten sonra doğrulama ardışık düzeni, üretim modelinin kalitesini eğitilen modelle karşılaştırmak için test veri kümelerini kullanır.

Genel olarak, eğitilen modelin üretim modelinden daha kötü bir anlam ifade etmemesi durumunda, eğitilen model üretime girer. Eğitilen model daha kötüyse izleme altyapısı bir uyarı oluşturacaktır. Daha kötü tahmin kalitesine sahip eğitilmiş modeller, veriler veya doğrulama ardışık düzenleri ile ilgili olası sorunlara işaret edebilir. Bu yaklaşım, en yeni veriler üzerinde eğitilen en iyi modelin her zaman üretim aşamasında olmasını sağlar.

Öğeler ve meta veri depolama

Modeller ve meta verileri, model dağıtımlarını düzenlemek ve izlemek için sürüme ayrılmış depolarda depolanmalıdır. Model depoları şu avantajları sağlar:

  • İzleme ve değerlendirme. Üretim aşamasında modelleri takip edin ve bunların değerlendirme ve tahmin kalitesi metriklerini anlayın.

  • Model kullanıma sunma süreci. Modelleri kolayca inceleyin, onaylayın, yayınlayın veya geri çekin.

  • Yeniden oluşturulabilirlik ve hata ayıklama. Dağıtımlar genelinde bir modelin veri kümelerini ve bağımlılıklarını izleyerek model sonuçlarını yeniden oluşturun ve sorunlarda daha etkili bir şekilde hata ayıklayın.

  • Keşfedilebilirlik. Diğer kullanıcıların modelinizi bulmasını kolaylaştırın. Daha sonra diğer ekipler, modelinizin (veya bazı parçalarının) kendi amaçları için kullanılıp kullanılamayacağını belirleyebilir.

Şekil 10'da model deposunda saklanan doğrulanmış bir model gösterilmektedir.

Model depolama

Modelleri sürümü olan bir depoda depolama

Şekil 10. Doğrulanan modeller, izleme ve bulunabilirlik amacıyla bir model deposunda saklanır.

Modelinizin amacı, mimarisi, donanım gereksinimleri, değerlendirme metrikleri gibi önemli bilgileri belgeleyip paylaşmak için model kartları kullanın.

Ardışık düzen oluşturmada karşılaşılan zorluklar

Ardışık düzenler oluştururken aşağıdaki zorluklarla karşılaşabilirsiniz:

  • İhtiyaç duyduğunuz verilere erişim sağlama. Veri erişimi için neden ihtiyaç duyduğunuzu gerekçelendirmeniz gerekebilir. Örneğin, verilerin nasıl kullanılacağını açıklamanız ve kimliği tanımlayabilecek bilgiler (PII) sorunlarının nasıl çözüleceğini netleştirmeniz gerekebilir. Modelinizin belirli veri türlerine erişerek nasıl daha iyi tahminler yaptığını gösteren bir kavram kanıtlama göstermeye hazır olun.

  • Doğru özellikleri kullanma. Bazı durumlarda deneme aşamasında kullanılan özellikler gerçek zamanlı verilerden kullanılamaz. Bu nedenle, denemeler yaparken aynı özellikleri üretimde de kullanabileceğinizi onaylamaya çalışın.

  • Verilerin nasıl toplandığını ve temsil edildiğini anlamak. Verilerin nasıl, kimin tarafından ve nasıl toplandığını (diğer sorunlarla birlikte) öğrenmek zaman ve çaba gerektirebilir. Verileri bütünüyle anlamak önemlidir. Üretime gidebilecek bir modeli eğitmek için emin olmadığınız verileri kullanmayın.

  • Çaba, maliyet ve model kalitesi arasındaki dengeyi anlama. Bir veri ardışık düzenine yeni bir özellik eklemek çok fazla çaba gerektirebilir. Ancak, ek özellik, modelin kalitesini yalnızca biraz artırabilir. Diğer durumlarda ise yeni bir özellik eklemek kolay olabilir. Ancak, özelliği almak ve depolamak için kaynaklar aşırı derecede pahalı olabilir.

  • İşleme başlama. Yeniden eğitim için TPU'lara ihtiyacınız varsa gereken kotayı almak zor olabilir. Ayrıca, TPU'ların yönetimi karmaşık bir süreçtir. Örneğin, modelinizin veya verilerinizin bazı bölümlerinin birden fazla TPU çipine bölünerek TPU'lar için özel olarak tasarlanması gerekebilir.

  • Doğru altın veri kümesini bulma. Veriler sık sık değişiyorsa tutarlı ve doğru etiketlere sahip altın veri kümeleri elde etmek zor olabilir.

Deneme sırasında bu tür sorunları yakalamak size zaman kazandırır. Örneğin, en iyi özellikleri ve modeli yalnızca üretimde uygulanabilir olmadığını öğrenmek için geliştirmek istemezsiniz. Bu nedenle, çözümünüzün üretim ortamının kısıtlamaları dahilinde çalışacağını mümkün olduğunca erken onaylamaya çalışın. Ardışık düzen aşaması aşılmaz sorunları ortaya çıkardığından deneme aşamasına dönmek yerine çözümün işe yaradığını doğrulamak için zaman ayırmak daha iyidir.