1. Arkaplan
ETA (Tahmini Varış Zamanı, "Tahmini Varış Zamanı"), kullanıcı siparişi verdikten sonra teslimat personelinin yemeği kullanıcıya teslim etmelerinin ne kadar sürdüğünü ifade eder. Teslim süresi tahmininin sonucu, kullanıcının müşteri sayfasında "tahmini teslimat süresi" şeklinde görüntülenecektir.Teslimat sisteminde çok önemli bir parametredir ve kullanıcının sipariş verme, kapasite planlaması ve yolcuları verme istekliliğini doğrudan etkiler. Dağıtım sisteminin toplam maliyetini ve kullanıcı deneyimini etkileyen değerlendirme.
Tüm dağıtım sistemi için ETA, dağıtım sisteminin yalnızca girişi ve küresel kısıtlamaları değil, aynı zamanda sistemin ayarlama merkezidir. Özellikle somutlaşan:
Dağıtım sistemindeki ETA'nın rolü
Bu tür çok boyutlu kısıtlamalar altında, yiyecek dağıtımı için ETA'nın modellenmesi ve tahmini daha karmaşık hale gelecektir. Taksi selamlama sahnesindeki ETA ile karşılaştırıldığında, paket servis sahnesindeki ETA aşağıdaki zorluklarla karşı karşıyadır:
Paket servis ve takside tahmini varış süresi
Aşağıdaki şekil, sürücünün tamamlanma sürecinin tümünün zaman çizelgesini göstermektedir. Süreçte çeşitli zaman parametreleri yer almaktadır.Yedisinin anahtar süreleri olan bir düzineden fazla düğüm olduğunu görebilirsiniz. Bu süreler, biniciler (teslim almak için teslim etmek), tüccarlar (yemek) ve kullanıcılar (teslimat) gibi birçok partiyi içerir. İçeride ve dışarıda sahne geçişlerinden geçmeleri gerekir, bu nedenle zorluklar çok yüksektir. ETA modellemesi için, sadece basit bir zaman tahmini değil, aynı zamanda bir tam bağlantı süresi tahminidir.Aynı zamanda, "tek hacim-kapasite-kullanıcı dönüşüm oranı" dönüşüm oranı arasındaki dengeyi de hesaba katmak gerekir. Dağıtım ETA'sının evrimi, veri ve özellik düzeyinde sürekli iyileştirmenin yanı sıra, model düzeyinde LR-XGB-FM-DeepFM-custom yapısından evrimi içerir.
ETA'nın keşfi ve evrimi
Belirli bir ETA'nın tüm dağıtım işindeki konumu ve dağıtım işinin genel makine öğrenimi uygulaması için lütfen "Meituan'ın Dağıtım Sisteminde Makine Öğrenimi Uygulaması: Gerçek Dünyayı Geri Yüklemek için Teknolojiyi Kullanma" bölümüne bakın.
2. İş süreci yinelemesinde model iyileştirme
2.1 Temel model yinelemesi ve seçimi
Çoğu CTR modelinin yineleme yoluna benzer şekilde, dağıtım ETA modelinin iş yinelemesinde LR- > Ağaç modeli > Gömme- > DeepFM- > Hedeflenen yapısal modifikasyonun yolu. Özellik seviyesi de sürekli olarak yinelenir ve zenginleştirilir.
Modelin mevcut versiyonunda, WideDeep, DeepFM, AFM ve diğer yaygın olarak kullanılan modeller, hesaplama performansı ve etkisi göz önünde bulundurularak karşılaştırıldıktan sonra, DeepFM nihayet ön Temel model olarak seçildi. Tüm DeepFM modelinin özelliklerini FM (Faktorizasyon Makinesi) temelinde yerleştirdikten sonra, sırasıyla seyrek ve yoğun özellikler için hedeflenen füzyon gerçekleştirmek için derin kısım eklenmiştir. FM bölümü, gizli değişken iç ürün yoluyla birinci dereceden ve ikinci dereceden özellik füzyonunu dikkate alır ve DNN parçası, İleri Besleme yoluyla yüksek dereceli özellik füzyonunu öğrenir. Model eğitimi sürecinde Learning Decay / Clip Gradient / çözücü seçimi / Dropout / aktivasyon fonksiyonu seçimi vb. Benimsenmiştir, bu yüzden burada tekrar etmeyeceğim.
2.2 Kayıp işlevi
ETA tahmin senaryosunda dakiklik ve güven daha önemli iş göstergeleridir. Square'in kayıp işlevini Mutlak'ın kayıp işleviyle değiştirmeye yönelik ilk girişim, MAE'nin ME'den daha katı kısıtlamalarıyla sezgisel olarak daha tutarlıdır. Uygun Learning Decay altında, sonuç yakınsak ve kararlıdır.
Aynı zamanda, yinelemedeki aynı ETA taahhüt süresi göz önüne alındığında, N dakika öncesi ve sonrası sınırının altında, 1 dakikalık erken varış, 1 dakikalık geç varıştan daha iyidir.Kayıp fonksiyonunun tasarımı, genel tahmin sonucunun mümkün olduğunca ileri olmasını ummaktadır. İlk kısım için, sayısal cezayı uygun şekilde azaltın. Geç kısım için sayısal cezayı uygun şekilde artırın. Birçok kez hata ayıklama ve tasarımdan sonra, ilk ve son N dakikalar ve başlangıç noktası nihayet 3 segment noktası olarak belirlenir. Orijinal mutlak fonksiyon optimizasyonuna dayanarak, ön aşamada 1,2 kat eğimli mutlak fonksiyon tasarlanır ve arka aşamada 1,8 kat eğimli mutlak fonksiyon tasarlanır, böylece sonuç bir bütün olarak merkeze yaklaşır ve tahmin edilen sonuç önceden teslim edilme eğilimindedir. Göstergeler önemli ölçüde arttı.
Kayıp işlevi
2.3 İş kurallarının modele entegrasyonu
Mevcut iş mimarisi "model + kural" dır. Model, belirli bir iş senaryosu için bir ETA değerini tahmin ettikten sonra, belirli senaryonun ihtiyaçlarını karşılamak için belirli iş kuralları üst üste getirilecektir.Her kural, iş göstergelerinin birden çok yinelemesiyle oluşturulur. İşte modelin genel optimizasyonu ile kuralların ayrımı şöyledir: Model zamanı ve kural zamanı ayrı ayrı optimize edildikten sonra, yani model eğitildiğinde kural süresinin etkisi dikkate alınamaz ve kural zamanı yılın farklı zaman dilimlerinde farklı olacaktır. Bir süre tekrarlanan yinelemelerden sonra kayan, parçalanma derecesini artıracaktır.
Farklı çözümler denendikten sonra, genel kurallar nihayet TF modeline yazıldı ve genel kural parametreleri TF modeli içinde ayarlandı.
Farklı bağlantı parçalarını ve parametreleri ayarlayarak, TF modelinde birden çok kural tamamen gerçekleştirilir. Sonuçta, iş göstergeleri üzerinde büyük bir iyileştirme etkisine sahiptir ve bazı sabit değer parametrelerinin değiştirilmesiyle bazı yapay müdahale modeli yeteneklerine sahiptir.
Çok hedefli durdurma süresi yapısı
Burada, genel mimari çok amaçlı bir tahmin mimarisine basitleştirilmiştir.Çok görevli mimaride yaygın olarak kullanılan Paylaşılan Parametreler yapısı burada kullanılır ve eğitimle orantılı olarak farklı alternatif eğitim stratejileri benimsenir. Yapı açısından, alt modelin orta füzyon katmanından başlayarak, geleneksel tahmin yapısı ve çoklu düzenli zaman yapıları TF'de uygulanmaktadır ve karşılık gelen Etiket hala geleneksel tarihsel değerden ve normal zaman değerinden türetilmektedir. Birkaç nokta:
Model yapısı, tahmini hedefi ayarlamaya çalışıyor:
2.4 Eksik değer işleme
Model işlemede, özellik seviyesinde kaçınılmaz olarak bazı eksik değerler vardır ve eksik değerlerin işlenmesi, "Meituan" Beğendiğinizi Tahmin Et "Derin Öğrenme Modeli Uygulaması" makalesindeki yöntemi tamamen ödünç alır. X özelliğinin TF modeline girmesi için değerlendirilir, eksik bir değer ise w1 parametresini ayarlayın.Eğer eksik değilse girilen model değeri w2 * x'dir.Burada w1 ve w2 öğrenilebilir parametreler olarak kullanılır ve eğitim için ağa konulur. Bu yöntem, ortalama / sıfır değerini eksik değer yöntemi olarak değiştirir.
Eksik değer işleme
3. Uzun kuyruk problemi optimizasyonu
3.1 Model tahmin sonucu + uzun kuyruk kuralı telafi süresi
Temel model genel istatistiksel dağılımı öğrenir, ancak uzun kuyruk durumunda kısa tahmini süreye yansıyan bazı uzun kuyruk durumları için yeterli değildir (çünkü ETA sürücüyü değerlendirme işlevine sahiptir, tahmin sürücü için çok kısadır. Çok fazla zarar anlamına gelir). Bu nedenle, uzun kuyruk analiz için iki kısma ayrılır:
Model uzun kuyruk faktörü
Yukarıdaki söküm altında, telafi süresi kuralı, kısa uzun kuyruk tahmini sorununu çözmek için kullanılır: uzun kuyruk kuralı telafi süresi < İş uzun kuyruk faktörü, model uzun kuyruk faktörü > kombinasyon. Bunlar arasında, işletme uzun kuyruk faktörü, mesafe ve fiyat gibi iş faktörleridir ve model uzun kuyruk faktörü, RF standart sapmasıdır. Nihai ETA stratejisi, model tahmin sonucu + uzun kuyruk kuralı telafi süresidir.
4. Mühendislik Geliştirme Uygulaması
4.1 Eğitim bölümü uygulaması
Genel eğitim süreci
Çevrimdışı eğitim için aşağıdaki eğitim süreci benimsenmiştir:
Ham veri entegrasyonunu kıvılcım > Spark TFRecord oluşturur > Veri paralel eğitimi > TensorFlow Çevrimdışı GPU değerlendirmesi sunuyor- > CPU Çıkarımı çevrimiçi tahmini
Yüz milyonlarca veri ve çok sayıda Epoch turu ile tüm rutin eğitim süreci yaklaşık 4 saat sürmektedir.TF eğitiminde, TF'nin gerçek hesaplama verimliliğinin çok yüksek olmadığı düşünüldüğünde, büyük bir oran data IO kısmında yer alır ve TFRecord kısmı Spark aracılığıyla oluşturulur. Hız, yaklaşık 3,6 kat hızlandırılabilir. Veri paralel eğitim bölümünde, paralelliğin 16 kart içinde genişletilmesi temelde doğrusala yakındır ve iyi bir ölçeklenebilirliğe sahiptir. PS üzerindeki parametre miktarı bağımsız kapasiteye ulaşmadığından, parametreler şimdilik PS üzerinde segmentlere ayrılmamıştır. Sunumun çevrimdışı GPU değerlendirme kısmı, tüm süreçte gerekli olmayan bir unsurdur. Baş Çalışanın eğitim süreci sırasında Geçerli seti ayarlaması için belirli göstergeler olsa da, tümü çevrimdışı için GPU'yu Spark verileri aracılığıyla Sunma çağrısının değerlendirilmesi kısa bir süreye sahiptir. Tüm süreç yeteneklerini tamamlayın ve çok sayıda karmaşık özel gösterge belirtebilirsiniz.
Veri paralel eğitim yöntemi
Tüm modelin eğitimi Meituan'ın AFO platformunda gerçekleştirildi ve dağıtılmış çözüm ve tek makineli çoklu kart çözümü arka arkaya denendi. Üretim ve sonuçların istikrarını hesaba katan mevcut çevrimiçi model üretimi, rutin eğitim için tek makineli çoklu kart şemasını benimser.
TF'nin kendi PS-Worker mimarisini, eşzamansız veri paralel modunu benimseyin ve tüm eğitim sürecini koordine etmek için tf.train.MonitoredTrainingSession'ı kullanın. Tüm model parametreleri PS'de saklanır ve her Adımdaki her Çalışan, paralel veri hesaplaması için verileri çeker ve bir güncellemeyi tamamlamak için gradyanı döndürür. Mevcut modelin 1 ~ 2 W / sn'lik tek bir çalışan verimi vardır ve milyarlarca veriye sahip birkaç Epoch turunun tamamlanması birkaç saat sürer. Aynı zamanda platform üzerindeki modelin hızlanma oranı test edildi.Yaklaşık 16 blok oldu.İşçi sayısı ile birlikte hesaplama gücü doğrusal olarak arttı. 16 karttan sonra hafif bir ayrılma oldu. Mevcut iş uygulamasında, temelde 4-6 kart, rutin eğitim görevlerini kısa sürede tamamlayabilir.
PS-Worker çözümünün platform üzerinde iyi bir ölçeklenebilirliği vardır, ancak bazı dezavantajları da vardır.RPC kullanan iletişim diğer görevlerden kolayca etkilenir.Tüm eğitim süreci en yavaş Çalışan tarafından etkilenir. Sonuçlarda da belirli dalgalanmalar var. Bu bağlamda, çevrimiçi üretimde nihayet tek makineli çoklu kart çözümü seçildi, belirli bir ölçeklenebilirlik derecesinden ödün verildi ve genel eğitim etkisi ve eğitim hızı istikrarı sağlandı. Tek makineli çoklu kart çözümü, OP'nin Cihazını manuel olarak belirlemek için birden fazla GPU kullanır ve aynı zamanda her Cihazda değişken paylaşımını tamamlar ve son olarak Kayıp ve gradyanı entegre eder ve Grad'ı model parametrelerine günceller.
Hızlanma eğrisi
TF model entegrasyon ön işleme
Model eğitimi sürecinde, kimlik özelliklerinin düşük frekanslı filtrelenmesi için Kelime Dağarcığı gereklidir ve sürekli özelliklerin normalleştirilmesi gerekir. Burada, çevrim dışı işleme sürecinde Spark'ta Libsvm formatına kolayca işlenebilecek ve daha sonra eğitim için modele yüklenebilecek çok sayıda önceden işlenmiş dosya oluşturulacaktır. Bununla birlikte, çevrimiçi tahmin yaparken, mühendislik geliştirme tarafında birden fazla kelime dağarcığı ve sürekli özelliklerin (ortalama / std değer dosyaları vb.) Normalleştirilmiş ön işleme dosyalarını yüklemek gerekir.Aynı zamanda, model günlük olarak güncellendiğinden, farklı tarih sürümleri vardır. Hizalama sorunları.
Mühendislik geliştirmedeki zorluğu basitleştirmek için, model eğitimi sırasında tüm ön işleme dosyalarını TF hesaplama grafiğine yazmayı düşünün.Her çevrimiçi tahminin yalnızca en ilkel özellikleri girmesi gerekir ve sonuçlar, mühendislik ön işleme olmadan doğrudan elde edilebilir:
4.2 TF modeli çevrimiçi tahmin
Dağıtım makinesi öğrenimi platformunda, algoritma eğitimi tarafından üretilen modelleri tek tip bir şekilde yönetmek ve planlamak, çevrimiçi model tarafından kullanılan sürümü yönetmek ve model sürümünün geçişini ve geri alınmasını desteklemek ve ayrıca düğüm modeli sürüm durumunun yönetimini desteklemek için yerleşik bir model yönetimi platformu vardır. .
ETA tarafından kullanılan DeepFM modeli, SavedModel biçiminde bir model oluşturmak için TensorFlow ile eğitilir.Model yönetim platformunun Tensorflow SavedModel biçimini desteklemesi gerekir.
Uygulama planı
Çevrimiçi hizmetlerde TensorFlow SavedModel modellerini yüklemek için birden fazla uygulama şeması vardır:
Son olarak, TensorFlow Java API, CPU üzerinde tahminler yapmak için SavedModel'i yüklemek için kullanılır.Batch = 1 olduğunda, tahmin süresi 1ms'dir ve uygulama çözümü olarak seçenek 3 seçilir.
Uzaktan bilgi işlem modu
TensorFlow Java API'sinin temel C ++ dinamik bağlantı kitaplığı, libstdc ++ sürümü için gereksinimlere sahiptir, bu nedenle GCC sürümünün 4.8.3'ten az olmamasını gerektirir ve şu anda çevrimiçi olarak sunulan CPU makinelerinin çoğu CentOS 6'dır ve varsayılan GCC sürümü 4.4'tür. .7. Her bir çevrimiçi işletme sunucusu TensorFlow SavedModel yerel bilgi işlemi destekliyorsa, binlerce sunucunun GCC sürümüne yükseltilmesi gerekir.İş yükü nispeten büyüktür ve başka riskler ortaya çıkabilir.
Bu nedenle, düzinelerce uzak bilgi işlem sunucusu için yeniden başvurduk. İşletme sunucusunun yalnızca Giriş verilerini serileştirmesi ve TensorFlowRemote kümesine göndermesi gerekir. Uzak küme hesaplamayı tamamladıktan sonra Çıktıyı seri hale getirecek ve iş tarafına geri gönderecektir. Bunun yalnızca düzinelerce bilgi işlem sunucusunu yükseltmesi gerekir.
Çevrimiçi serileştirme
Çevrimiçi performans
Model çevrimiçi olduktan sonra, birden çok iş tarafının algoritma gereksinimlerini destekler.Uzak küme hesaplama süresinin TP99'u temelde 5 ms'dir ve bu, iş tarafının bilgi işlem ihtiyaçlarını karşılayabilir.
Çevrimiçi etki
5. Özet ve Görünüm
Model piyasaya sürüldükten ve piyasaya sürüldükten sonra, iş göstergelerini büyük ölçüde iyileştirecektir. Takip, iş optimizasyon modeline göre etkiyi daha da iyileştirecektir: