Modeli tümleştirme
Modeli eğitme şeklinizi veya hangi eğitim verilerini kullandığınızı etkileyeceğinden modeli nasıl tümleştirdiğiniz planlanmalıdır. Modeli tümleştirmek için bir uç noktaya model dağıtmanız gerekir. Gerçek zamanlı veya toplu tahminler için bir modeli uç noktaya dağıtabilirsiniz.
Uç birime model dağıtın
Bir modeli eğitirken, hedef genellikle modeli bir uygulamayla tümleştirmektir.
Bir modeli bir uygulamayla kolayca tümleştirmek için uç noktaları kullanabilirsiniz. Basitçe ifade etmek gerekirse uç nokta, bir uygulamanın iletiyi geri almak için çağırabileceği bir web adresi olabilir.
Bir uç noktaya model dağıttığınızda iki seçeneğiniz vardır:
- Gerçek zamanlı tahminler alma
- Toplu tahminleri al
Gerçek zamanlı tahminler alma
Modelin yeni verileri geldikçe puanlanmasını istiyorsanız, gerçek zamanlı tahminlere ihtiyacınız vardır.
Gerçek zamanlı tahminler genellikle mobil uygulama veya web sitesi gibi bir uygulama tarafından model kullanıldığında gereklidir.
Ürün kataloğunuzu içeren bir web siteniz olduğunu düşünün:
- Müşteri web sitenizde gömlek gibi bir ürün seçer.
- Müşterinin seçimine bağlı olarak model, ürün kataloğundaki diğer öğeleri hemen önerir. Web sitesi modelin önerilerini görüntüler.
Müşteri, web mağazasından istediği zaman bir ürün seçebilir. Modelin önerileri hemen bulmasını istiyorsunuz. Web sayfasının gömlek ayrıntılarını yüklemesi ve görüntülemesi için gereken süre, önerileri veya tahminleri almak için gereken süredir. Ardından, gömlek görüntülendiğinde öneriler de görüntülenebilir.
Toplu tahminleri alma
Modelin yeni verileri toplu olarak puanlanmasını ve sonuçları dosya olarak veya veritabanına kaydetmesini istiyorsanız toplu iş tahminlerine ihtiyacınız vardır.
Örneğin, gelecek haftalar için portakal suyu satışlarını tahmin eden bir model eğitebilirsiniz. Portakal suyu satışlarını tahmin ederek, arzın beklenen talebi karşılamak için yeterli olduğundan emin olabilirsiniz.
Bir rapordaki tüm geçmiş satış verilerini görselleştirdiğiniz düşünün. Tahmin edilen satışları aynı rapora dahil etmek istersiniz.
Gün boyunca portakal suyu satılsa da, tahmini yalnızca haftada bir hesaplamak istiyorsunuz. Hafta boyunca satış verilerini toplayabilir ve modeli yalnızca tüm haftanın satış verilerine sahip olduğunuzda çağırabilirsiniz. Veri noktaları koleksiyonu, veri grubu olarak adlandırılır.
Gerçek zamanlı veya toplu dağıtım arasında karar verme
Gerçek zamanlı veya toplu dağıtım çözümü tasarlamaya karar vermek için aşağıdaki soruları göz önünde bulundurmanız gerekir:
- Tahminler ne sıklıkta oluşturulmalıdır?
- Sonuçlar ne kadar sürede gerekli?
- Tahminler tek tek mi yoksa toplu olarak mı oluşturulmalıdır?
- Modeli yürütmek için ne kadar işlem gücü gerekir?
Gerekli puanlama sıklığını belirleme
Yaygın bir senaryo, yeni verileri puanlayan bir model kullanmanızdır. Tahminleri gerçek zamanlı veya toplu olarak alabilmeniz için önce yeni verileri toplamanız gerekir.
Veri oluşturmanın veya toplamanın çeşitli yolları vardır. Yeni veriler farklı zaman aralıklarında da toplanabilir.
Örneğin, nesnelerin İnterneti (IoT) cihazından dakikada bir sıcaklık verileri toplayabilirsiniz. Müşteri web mağazanızdan her ürün satın alışında işlem verileri alabilirsiniz. Alternatif olarak, bir veritabanındaki finansal verileri her üç ayda bir ayıklayabilirsiniz.
Genellikle iki tür kullanım örneği vardır:
- Yeni veriler gelir gelmez bunları puanlamak için modele ihtiyacınız var.
- Zaman içinde topladığınız yeni verileri puanlamak için modeli zamanlayabilir veya tetikleyebilirsiniz.
Gerçek zamanlı veya toplu tahminler istemeniz, yeni verilerin ne sıklıkta toplandığına bağlı olmayabilir. Bunun yerine, tahminlerin ne sıklıkta ve ne kadar hızlı oluşturulmasına ihtiyacınız olduğuna bağlıdır.
Yeni veriler toplandığında modelin tahminlerine hemen ihtiyacınız varsa gerçek zamanlı tahminlere ihtiyacınız vardır. Modelin tahminleri yalnızca belirli zamanlarda tüketiliyorsa toplu tahminlere ihtiyacınız vardır.
Tahmin sayısına karar verme
Kendinize sormanız gereken bir diğer önemli soru da tahminlerin tek tek mi yoksa toplu olarak mı oluşturulacağıdır.
Tek tek ve toplu tahminler arasındaki farkı göstermek için bir tablo hayal etmek basit bir yoldur. Her satırın bir müşteriyi temsil ettiği bir müşteri verileri tablonuz olduğunu varsayalım. Her müşteri için, web mağazanızdan kaç ürün satın aldığı ve son satın almalarının ne zaman olduğu gibi bazı demografik verileriniz ve davranış verileriniz vardır.
Bu verilere dayanarak müşteri değişim sıklığıyla ilgili tahminde bulunabilirsiniz: bir müşterinin yeniden web mağazanızdan satın alıp almayacağı.
Modeli eğittikte tahmin oluşturmak isteyip istemediğinize karar vekleyebilirsiniz:
- Bireysel olarak: Model tek bir veri satırı alır ve o müşterinin yeniden satın alıp almayacağını belirtir.
- Batch: Model bir tabloda birden çok veri satırı alır ve her müşterinin yeniden satın alıp almayacağını belirler. Sonuçlar, tüm tahminleri içeren bir tabloda harmanlanır.
Dosyalarla çalışırken tek tek veya toplu tahminler de oluşturabilirsiniz. Örneğin, bir görüntü işleme modeliyle çalışırken tek tek bir görüntüyü veya tek bir toplu işlemdeki görüntü koleksiyonunu puanlamalısınız.
İşlem maliyetini göz önünde bulundurun
Modeli eğitirken hesaplama kullanmaya ek olarak, modeli dağıtırken de hesaplama yapmanız gerekir. Modeli gerçek zamanlı veya toplu iş uç noktasına dağıtıp dağıtmadığınıza bağlı olarak, farklı işlem türleri kullanırsınız. Modelinizi gerçek zamanlı veya toplu iş uç noktasına dağıtmaya karar vermek için her işlem türünün maliyetini göz önünde bulundurmanız gerekir.
Gerçek zamanlı tahminlere ihtiyacınız varsa, her zaman kullanılabilir olan ve sonuçları hemen döndürebilen (neredeyse) işlem gerekir. Azure Container Instance (ACI) ve Azure Kubernetes Service (AKS) gibi kapsayıcı teknolojileri, dağıtılan modeliniz için basit bir altyapı sağladığı için bu tür senaryolar için idealdir.
Ancak bir modeli gerçek zamanlı bir uç noktaya dağıtıp bu tür kapsayıcı teknolojisini kullandığınızda işlem her zaman açıktır. Bir model dağıtıldıktan sonra, modelin her zaman anında tahminler yapabilmesi için işlem gücünü duraklatmak veya tamamen durdurmak mümkün olmadığından, hesaplama gücü için sürekli ödeme yapmanız gerekir.
Alternatif olarak, toplu tahminlere ihtiyacınız varsa büyük bir iş yükünü işleyebilen bir işlem gerekir. İdeal olan, birden çok düğüm kullanarak verileri paralel toplu işlerde puanlayan bir işlem kümesi kullanmaktır.
Paralel toplu işlerde veri işleyebilen hesaplama kümeleriyle çalışırken, toplu iş puanlaması tetiklendiğinde hesaplama, çalışma alanı tarafından tahsis edilir ve işlenecek yeni veri olmadığında 0 düğüme kadar ölçeklendirilir. Çalışma alanının boşta işlem kümesinin ölçeğini azaltmasına izin vererek önemli maliyetlerden tasarruf edebilirsiniz.