Bir ML Uygulama Projesinin Süresini, Maliyetini ve Çıktılarını Tahmin Etme
Yayınlanan: 2019-11-20Bir mağazadan özelleştirilmiş bir cüzdan alacağınızı hayal edin.
Ne tür bir cüzdana ihtiyacınız olduğunun farkında olsanız da, özelleştirilmiş sürümü elde etmenin maliyetini veya süresini bilmiyorsunuz.
Makine öğrenimi projelerinde de durum aynıdır. Ve bu ikilemde size yardımcı olmak için, başarılı bir projeye sahip olmanız için size ayrıntılı bilgi verdik.
Makine Öğrenimi , iki yüzü olan bir madeni para gibidir .
Bir yandan süreçlerden kaynaklanan belirsizlikleri ortadan kaldırmaya yardımcı olur. Ama öte yandan gelişimi belirsizliklerle dolu.
Hemen hemen her Makine Öğrenimi (ML) projesinin sonucu, işletmeleri daha iyi hale getiren ve süreçleri kolaylaştıran bir çözüm olsa da; geliştirme bölümünün paylaşacak tamamen farklı bir hikayesi var.
ML, birçok yerleşik mobil uygulama markasının kâr hikayesini ve iş modelini değiştirmede büyük bir rol oynamış olsa da, hala gelişme aşamasında çalışıyor. Bu yenilik, mobil uygulama geliştiricilerinin bir makine öğrenimi proje planını ele alıp, zaman ve maliyet kısıtlamalarını göz önünde bulundurarak üretime hazır hale getirmesini daha da zorlaştırıyor .
Bu zorluğun bir çözümü ( muhtemelen tek çözüm ), zaman, maliyet ve çıktıların siyah beyaz Makine Öğrenimi uygulaması projesi tahminidir.
Ancak bu bölümlere geçmeden önce gece mumlarının zorluğunu ve yanmasını neye değer kıldığına bir bakalım.
Uygulamanızın Neden Bir Makine Öğrenimi Çerçevesine İhtiyacı Var?
Nasıl oluyor da zaman, maliyet ve çıktı tahminlerinin ortasında çerçeveden bahsettiğimizi düşünüyor olabilirsiniz.
Ancak, zaman ve maliyetin arkasındaki gerçek neden, bizi uygulama geliştirmenin ardındaki neden hakkında bilgilendiren burada yatmaktadır. Aşağıdakiler için makine öğrenimine ihtiyacınız olsun:
Kişiselleştirilmiş Deneyim Sunmak İçin
Gelişmiş Aramayı Birleştirmek İçin m
Kullanıcı Davranışını Tahmin Etmek İçin
Daha İyi Güvenlik İçin
Derin Kullanıcı Etkileşimi İçin
Bu nedenlere bağlı olarak, zaman, maliyet ve teslimat buna göre değişecektir.
Makine Öğrenimi Modellerinin Türleri
Zamanı ve maliyeti ayarlamak için ne tür bir model düşünürdünüz? Bilmiyorsanız, ihtiyaçlarınıza ve bütçenize göre modelleri anlamanız ve seçmeniz için bilgiler verdik.
Farklı kullanım durumları arasında makine öğrenimi, ilkel uygulamaları akıllı mobil uygulamalara dönüştürmede rol oynayan üç model türüne ayrılabilir : Denetimli, Denetimsiz ve Güçlendirme. Bu Makine Öğrenimi Modellerinin neyi temsil ettiği bilgisi, ML özellikli bir uygulamanın nasıl geliştirileceğini tanımlamaya yardımcı olur .
Denetimli Öğrenme
Algoritmanın giriş ve çıkışlarının doğru olarak etiketlendiği , sisteme veri sağlandığı süreçtir . Giriş ve çıkış bilgileri etiketlendiğinden, sistem , algoritma içindeki verilerdeki kalıpları tanımlamak için eğitilir.
Gelecekteki girdi verilerine dayanarak sonucu tahmin etmek için kullanıldığından daha da faydalı hale gelir. Bunun bir örneği, bir fotoğrafta etiketlendiğinde sosyal medya birinin yüzünü tanıdığında görülebilir.
Denetimsiz Öğrenme
Denetimsiz öğrenme durumunda, veriler sisteme beslenir ancak çıktıları denetimli modeldeki gibi etiketlenmez . Sistemin verileri tanımlamasına ve bilgilerden kalıpları belirlemesine olanak tanır . Modeller bir kez saklandıktan sonra, gelecekteki tüm girdiler bir çıktı üretmek için modele atanır.
Bu modelin bir örneği, sosyal medyanın demografi, eğitim durumu vb. gibi bilinen birkaç veriye dayanarak arkadaşlara önerilerde bulunduğu durumlarda görülebilir .
Pekiştirmeli Öğrenme
Denetimsiz öğrenmede olduğu gibi pekiştirmeli öğrenmede de sisteme verilen veriler etiketlenmez. Her iki makine öğrenimi türü de, doğru çıktı üretildiğinde sisteme çıktının doğru olduğu söylendiği için farklılık gösterir. Bu öğrenme türü, sistemin çevreden ve deneyimlerden öğrenmesini sağlar.
Bunun bir örneği Spotify'da görülebilir. Spotify uygulaması , kullanıcıların daha sonra beğenmesi veya beğenmemesi gereken şarkılar için bir öneride bulunur . Spotify uygulaması, seçim bazında kullanıcıların müzik zevkini öğreniyor.
Bir Makine Öğrenimi Projesinin Yaşam Döngüsü
Bir Makine Öğrenimi projesinin teslim edilebilir zaman çizelgesinin yaşam döngüsü genellikle şu şekilde görünür:
ML Proje Planı Kurulumu
- Görevi ve gereksinimleri tanımlayın
- Proje fizibilitesini belirleyin
- Genel model ödünleşimlerini tartışın
- Bir proje kod tabanı oluşturun
Verilerin Toplanması ve Etiketlenmesi
- Etiketleme belgelerini oluşturun
- Veri alma ardışık düzenini oluşturun
- Veri kalitesinin doğrulanması
Model Keşfi
- Model performansı için temel oluşturun
- İlk veri ardışık düzeniyle basit bir model oluşturun
- Erken aşamalarda paralel fikirleri deneyin
- Varsa, sorun alanı için SoTA modelini bulun ve sonuçları yeniden oluşturun.
Modelin İyileştirilmesi
- Model merkezli optimizasyonlar yapın
- Karmaşıklık eklendikçe modellerde hata ayıklama
- Arıza modlarını ortaya çıkarmak için hata analizi yapın.
Test Et ve Değerlendir
- Modeli test dağıtımında değerlendirin
- İstenilen kullanıcı davranışını yönlendirdiğinden emin olarak model değerlendirme metriğini tekrar gözden geçirin
- Model çıkarım işlevi, girdi veri hattı, üretimde beklenen açık senaryolar için testler yazın.
Modelin Dağıtımı
- Modeli REST API aracılığıyla gösterin
- Son kullanıma sunmadan önce her şeyin sorunsuz olduğundan emin olmak için yeni modeli bir kullanıcı alt kümesine dağıtın.
- Modelleri önceki sürümüne geri alma olanağına sahip olun
- Canlı verileri izleyin.
Model Bakımı
- Model bayatlığını önlemek için modeli yeniden eğitin
- Model sahipliğinde bir aktarım varsa ekibi eğitin
Bir Makine Öğrenimi Projesinin Kapsamı Nasıl Tahmin Edilir?
Appinventiv Makine Öğrenimi ekibi, Makine Öğrenimi türünü ve geliştirme yaşam döngüsünü inceledikten sonra , aşağıdaki aşamaları izleyerek projenin Makine Öğrenimi uygulaması proje tahminini tanımlamaya devam eder:
Aşama 1 – Keşif (7 ila 14 gün)
ML proje planı yol haritası, bir problemin tanımlanmasıyla başlar. Ele alınması gereken sorunları ve operasyonel verimsizlikleri inceler.
Buradaki amaç, gereksinimleri belirlemek ve Makine Öğreniminin iş hedeflerini karşılayıp karşılamadığını görmektir . Aşama, mühendislerimizin hangi sorunları çözmek istediklerine ilişkin vizyonlarını anlamak için müşteri tarafındaki iş insanlarıyla görüşmelerini gerektirir.
İkinci olarak, geliştirme ekibi hangi tür verilere sahip olduklarını ve bunları dış hizmetten almaları gerekip gerekmediğini belirlemelidir.
Ardından, geliştiricilerin algoritmaları denetleyip denetleyemeyeceklerini - her tahmin yapıldığında doğru yanıtı döndürüp döndürmediğini - ölçmeleri gerekir.
Teslim Edilebilir – Bir projenin önemsiz mi yoksa karmaşık mı olacağını tanımlayan bir Sorun Bildirimi.
Aşama 2 – Keşif (6 ila 8 hafta)
Bu aşamanın amacı, daha sonra API olarak kurulabilecek bir Kavram Kanıtı üzerine inşa etmektir. Temel model eğitildikten sonra, makine öğrenimi uzmanlarından oluşan ekibimiz üretime hazır çözümün performansını tahmin eder.
Bu aşama bize keşif aşamasında planlanan metriklerle hangi performansın beklenmesi gerektiği konusunda netlik kazandırıyor.
Teslim Edilebilir – Kavram Kanıtı
Aşama 3 – Geliştirme (4+ ay)
Bu, ekibin üretime hazır bir cevaba ulaşana kadar yinelemeli olarak çalıştığı aşamadır. Proje bu aşamaya gelene kadar çok daha az belirsizlik olduğundan, tahmin çok kesin olur.
Ancak sonucun iyileştirilmemesi durumunda, geliştiricilerin farklı bir model uygulaması veya veriler üzerinde yeniden çalışması veya gerekirse yöntemi değiştirmesi gerekecekti.
Bu aşamada, geliştiricilerimiz sprintlerde çalışır ve her bir yinelemeden sonra ne yapılması gerektiğine karar verir. Her sprintin sonuçları etkili bir şekilde tahmin edilebilir.
Sprint sonucu etkili bir şekilde tahmin edilebilirken, Makine Öğrenimi durumunda sprintleri önceden planlamak bir hata olabilir, çünkü keşfedilmemiş sular üzerinde çalışacaksınız.
Teslim Edilebilir – Üretime hazır bir ML çözümü
Aşama 4 – İyileştirme (sürekli)
Bir kez konuşlandırıldıktan sonra, karar vericiler neredeyse her zaman maliyetten tasarruf etmek için projeyi bitirmek için acele ederler. Projelerin %80'inde formül çalışırken, Machine Learning uygulamalarında aynı şey geçerli değil.
Olan, verilerin Machine Learning proje zaman çizelgesi boyunca değişmesidir. Bir AI modelinin sürekli olarak izlenmesi ve gözden geçirilmesinin nedeni budur - onu bozulmadan kurtarmak ve mobil uygulama geliştirmeyi mümkün kılan güvenli bir AI sağlamak için .
Makine Öğrenimi merkezli projeler, tatmin edici sonuçlara ulaşmak için zaman gerektirir. Algoritmalarınızı en başından itibaren karşılaştırma ölçütlerini aştığını bulsanız bile, tek bir vuruş olma ihtimalleri vardır ve program farklı bir veri kümesinde kullanıldığında kaybolabilir.
Genel Maliyeti Etkileyen Faktörler
Bir makine öğrenimi sistemi geliştirmenin yolu, veriyle ilgili sorunlar ve son harcamaya karar veren performansla ilgili faktörler gibi bazı ayırt edici özelliklere sahiptir.
Verilerle İlgili Sorunlar
Güvenilir makine öğreniminin geliştirilmesi yalnızca olağanüstü kodlamaya bağlı değildir, aynı zamanda eğitim bilgilerinin kalitesi ve miktarı da çok önemli bir rol oynar.
- Uygun Veri Eksikliği
- Karmaşık Çıkarma, Dönüştürme, Yükleme Prosedürleri
- Yapılandırılmamış Veri İşleme
Performansla İlgili Sorunlar
Yeterli algoritma performansı, bir başka önemli maliyet faktörüdür, çünkü yüksek kaliteli bir algoritma birkaç tur ayar oturumu gerektirir.
- Doğruluk Oranı Değişir
- İşleme Algoritmalarının Performansı
Bir Makine Öğrenimi Projesinin Maliyetini Nasıl Tahmin Ediyoruz?
Bir makine öğrenimi projesinin maliyetinin tahmini hakkında konuştuğumuzda, öncelikle hangi proje türünden bahsedildiğini belirlemek önemlidir.
Makine Öğreniminin maliyetinin ne kadar olduğunu yanıtlamada rol oynayan başlıca üç tür Makine Öğrenimi projesi vardır:
Birincisi – Bu türün zaten bir çözümü var – hem model mimarisi hem de veri kümesi zaten mevcut. Bu tür projeler pratikte ücretsizdir, bu yüzden onlardan bahsetmeyeceğiz.
İkincisi – Bu projeler temel araştırma gerektirir – ana akım modellere kıyasla tamamen yeni bir alanda veya farklı veri yapılarında ML uygulaması. Bu proje türlerinin maliyeti , genellikle yeni başlayanların çoğunun karşılayamayacağı bir maliyettir.
Üçüncüsü – Bunlar, maliyet tahminimizde odaklanacağımız şeylerdir. Burada, halihazırda var olan model mimarisini ve algoritmaları alır ve daha sonra bunları üzerinde çalıştığınız verilere uyacak şekilde değiştirirsiniz.
Şimdi ML projesinin maliyetini tahmin ettiğimiz kısma gelelim.
veri maliyeti
Veriler, bir Makine Öğrenimi projesinin temel para birimidir. Çözümlerin ve araştırmaların çoğu, denetimli öğrenme modelinin varyasyonlarına odaklanır. Denetimli öğrenme ne kadar derine inerse, açıklamalı verilere olan ihtiyacın o kadar fazla olduğu ve buna bağlı olarak Makine Öğrenimi uygulama geliştirme maliyetinin de o kadar yüksek olduğu iyi bilinen bir gerçektir .
Şimdi Scale ve Amazon'un Mechanical Turk gibi hizmetler veri toplama ve açıklama ekleme konusunda size yardımcı olabilirken, Kalite ne olacak?
Veri örneklerini kontrol etmek ve ardından düzeltmek son derece zaman alıcı olabilir. Sorunun çözümü iki yönlüdür - ya veri toplamayı dışarıdan temin edin ya da kurum içinde hassaslaştırın.
Veri doğrulama ve iyileştirme çalışmasının büyük bir kısmını dışarıdan temin etmeli ve ardından veri örneklerini temizlemek ve etiketlemek için kurum içinde bir veya iki kişiyi görevlendirmelisiniz.
araştırma maliyeti
Projenin araştırma kısmı, yukarıda paylaştığımız gibi, giriş seviyesi fizibilite çalışması, algoritma arama ve deneme aşaması ile ilgilenmektedir. Genellikle bir Ürün Teslimat Atölyesinden çıkan bilgiler . Temel olarak, keşif aşaması, her projenin üretimden önce geçtiği aşamadır.
Aşamayı en mükemmel şekilde tamamlamak, makine öğrenimi tartışmasını uygulama maliyetinde ekli bir numarayla gelen bir süreçtir.
üretim maliyeti
Machine Learning proje maliyetinin üretim kısmı, altyapı maliyeti, entegrasyon maliyeti ve bakım maliyetinden oluşur. Bu maliyetlerden en az masrafı bulut hesaplama ile yapmak zorunda kalacaksınız. Ancak bu da bir algoritmanın karmaşıklığından diğerine değişecektir.
Entegrasyon maliyeti, bir kullanım durumundan diğerine değişir. Genellikle, buluta bir API uç noktası koymak ve ardından sistemin geri kalanı tarafından kullanılmak üzere belgelemek yeterlidir .
İnsanların bir makine öğrenimi projesi geliştirirken göz ardı etme eğiliminde olduğu önemli bir faktör, projenin tüm yaşam döngüsü boyunca sürekli desteği geçme ihtiyacıdır. API'lerden gelen veriler temizlenmeli ve uygun şekilde açıklanmalıdır. Ardından, modellerin yeni veriler üzerinde eğitilmesi ve test edilmesi, devreye alınması gerekir.
Yukarıda belirtilen noktalara ek olarak, bir AI uygulaması/ML uygulaması geliştirme maliyetinin tahmininde önem taşıyan iki faktör daha vardır .
Makine Öğrenimi Uygulamaları Geliştirmedeki Zorluklar
Genellikle, bir Makine Öğrenimi uygulaması proje tahmini çizildiğinde, bununla ilişkili gelişimsel zorluklar da dikkate alınır. Ancak, ML destekli uygulama geliştirme sürecinin ortasında zorlukların bulunduğu durumlar olabilir. Bu gibi durumlarda toplam süre ve maliyet tahmini otomatik olarak artar.
Makine Öğrenimi projelerinin zorlukları şunlar olabilir:
- Hangi özelliklerin makine öğrenimi özellikleri olacağına karar vermek
- Yapay Zeka ve Makine Öğrenimi alanında yetenek açığı
- Veri kümelerini edinmek pahalıdır
- Tatmin edici sonuçlara ulaşmak zaman alır
Çözüm
Modüler tasarımlar temelinde geliştirildiğinde ve Çevik bir yaklaşımla deneyimli bir ekip tarafından yapıldığında bir yazılım projesini bitirmek için gereken insan gücü ve zamanı tahmin etmek nispeten kolaydır . Bununla birlikte, Makine Öğrenimi uygulaması proje tahminine göre zaman ve çaba oluşturmaya çalıştığınızda aynı şey daha da zorlaşır.
Hedefler iyi tanımlanmış olsa bile , bir modelin istenen sonucu elde edip etmeyeceğinin garantisi yoktur. Kapsamı düşürmek ve ardından projeyi önceden tanımlanmış bir teslim tarihi boyunca kutulu bir ortamda çalıştırmak genellikle mümkün değildir.
Belirsizliklerin olacağını belirlemeniz çok önemlidir. Gecikmeleri azaltmaya yardımcı olabilecek bir yaklaşım, girdi verilerinin Makine Öğrenimi için doğru biçimde olmasını sağlamaktır.
Ancak nihayetinde, hangi yaklaşımı izlemeyi planlıyor olursanız olun, yalnızca karmaşıklıkları en basit haliyle nasıl geliştirip dağıtacağını bilen bir Makine Öğrenimi uygulama geliştirme ajansıyla ortak olduğunuzda başarılı sayılacaktır.
Machine Learning uygulaması proje tahmini hakkında SSS
S. Bir uygulama geliştirirken neden Makine Öğrenimi kullanmalısınız?
İşletmelerin, Makine Öğrenimi'ni mobil uygulamalarına dahil ederek yararlanabilecekleri bir dizi avantaj vardır. En yaygın olanlardan bazıları uygulama pazarlaması cephesindedir –
- Kişiselleştirilmiş deneyim sunmak
- Gelişmiş Arama
- Kullanıcı davranışını tahmin etme
- Daha derin kullanıcı etkileşimi
S. Makine öğrenimi işinize nasıl yardımcı olabilir?
Makine Öğreniminin işletmeler için faydaları, onları yıkıcı bir marka olarak işaretlemenin ötesine geçer. Tekliflerinin daha kişisel ve gerçek zamanlı hale gelmesine kadar dalgalanıyor.
Makine Öğrenimi, işletmeleri müşterilerine nasıl yaklaşmak istiyorlarsa öyle yaklaştıran gizli formül olabilir.
S. Bir Makine öğrenimi projesi geliştirmeye ilişkin yatırım getirisi nasıl tahmin edilir?
Makale, Makine Öğrenimi uygulaması proje tahminini oluşturmanıza yardımcı olacak olsa da, yatırım getirisini hesaplamak farklı bir oyundur. Karışımdaki fırsat maliyetini de göz önünde bulundurmanız gerekecek. Ek olarak, işletmenizin projeden beklentisini de araştırmanız gerekecek.
S. Bir makine öğrenimi projesi için hangi platform daha iyidir?
Bir Android uygulama geliştirme şirketiyle mi yoksa iOS geliştiricileriyle mi bağlantı kuracağınız konusundaki seçiminiz, tamamen kullanıcı tabanınıza ve amacınıza bağlı olacaktır - ister kâr amaçlı ister değer odaklı olsun.