Birden fazla deneyin paralel yinelemesini nasıl elde edebilirsiniz, Alimama'nın A / B testi uygulaması hakkında konuşun

Çevrimiçi hizmet sistemleri için birçok çeşit AB testi yöntemi vardır. Birden çok hizmet verilebilir küme oluşturmanın ve trafiği fiziksel olarak izole etmenin yaygın bir yoludur. Bu yöntem, büyük ve karmaşık bir çevrimiçi hizmet sistemine uygulandığında, yavaş dağıtım sorunu vardır. Bu yaklaşımın tipik mimarisi aşağıdaki şekilde gösterilmektedir.

QueryRewrite: Daha iyi sorgu sonuçları beklemek için kullanıcı arama terimlerini yeniden yazın.

Eşleştirme: Kullanıcının arama terimlerine göre, kullanıcının niyetini en iyi karşılayan promosyonları hatırlayın.

Sıralama: Promosyonun çıktı sırasını belirlemek için, kullanıcı deneyimini ve arama platformunun gelirini hesaba katmanız gerekir.

Bu mimarinin iki avantajı vardır.

Kod, temel ve deneysel koda bölünmüştür.Deneysel kod, işletmeye daha az müdahalecidir.

Deneysel alanın akışı ve taban çizgisinin akışı, deneyin işletme üzerindeki etkisini sıkı bir şekilde kontrol ederek fiziksel olarak kesin bir şekilde ayrılmıştır.

Bu mimarinin eksiklikleri de esas olarak aşağıdaki gibi belirgindir.

Operasyon ve bakımın karmaşıklığının artması, operasyon ve bakımın birden fazla ortam setini sürdürmesi gerekir.

Her ortamın erişim trafiği, trafik genişlemesi senaryosunu esnek bir şekilde doğrulayamayan tek bir deneysel alan kümesindeki fiziksel makinelerin sayısı ile sabitlenir. Bu, küçük trafik denemelerinin etkisine yol açacaktır

İyi bir algoritma, temelde iyi sonuçlar vermeyebilir.

Deneysel trafik sınırlıdır, bu da daha az deneme yapılmasına neden olur ve deneysel trafiği artırmak, iş tabanını etkileyecektir.

Mevcut çeşitli deneysel mekanizmaları özetlemek ve Alimama'nın uygulama senaryolarını birleştirmek temelinde, trafikten ve paralel çoklu denemelerden tam olarak yararlanabilen verimli ve kullanışlı bir yöntem geliştirdik. Bu yöntem aynı zamanda sistemin gri tonlamalı yayınını da destekleyebilir ve aşağıdaki avantajlara sahiptir.

Eşzamanlılığı iyileştirin: Birden fazla deneyin paralel yinelemesini gerçekleştirin ve yinelemeyi hızlandırın.

Adil karşılaştırma: Deneysel etkilerin adil ve doğru bir şekilde karşılaştırılmasını ve değerlendirilmesini sağlamak için, beklentileri karşılamayan deneyleri hemen durdurun; her zaman iyi sonuçlarla deney akışını genişletin.

Eşiği düşürün: Deneme yönetimi araçları sağlayın. Algoritmalara ek olarak, ürünler, işlemler, ön uçlar gibi diğer deneysel ihtiyaçlar, deneyleri yayınlamak için bağımsız olarak uygulanabilir.

Kapalı bir döngü oluşturun: fikirlerden, deney öncesi değerlendirmeden, deney yayınından, deneyden, deney değerlendirmesinden ve son deney özetinden elde edilen deneysel sonuçların kalitesini sağlamak için.

Sistem mimarisi ve modül açıklaması

1. Genel sistem mimarisi

Genel mimari, aşağıdaki şekilde gösterildiği gibi üç sisteme ayrılabilir.

Daha sonra her bir alt sistem ayrıntılı olarak tanıtıldı.

1. Deneysel yapılandırma yönetimi sürüm sistemi

Bu sistem, kullanıcılara, deneysel yapılandırma trafiği eklemek ve ardından dinamik olarak çevrimiçi yayınlamak için uygun olan kullanışlı bir UI işletim arayüzü sağlar. Çeşitli beklenmedik hataları telafi etmek için, sistem geçmiş sürümlerin hızlı geri alınmasını destekler.

2. Çevrimiçi Hizmet Sistemi

Kullanıcının deneysel yapılandırma dosyasına göre yönlendirme işlemini gerçekleştirin ve karşılık gelen akışı her deneye tahsis edin. Deneysel şönt modülü, bir kütüphane şeklinde çevrimiçi hizmet sistemine bağlanır. Sistemin akış girişindeki bu şönt kitaplığını arayın. Şöntleme ilkesi ve sistematik deney yöntemi daha sonra ayrıntılı olarak tanıtılacaktır.

3. Log analizi görüntüleme sistemi

Çevrimiçi hizmet sistemi tarafından kaydedilen günlüğe göre, her deneyin etkisi, sistem analistleri veya deney gözlemcileri tarafından kullanılmak üzere hesaplanır. Daha sonra, deneyin etkisine göre, her deney akışının oranını ayarlamak için deney yönetim sistemini kullanın.

2. Her modülün tanıtımı

1. Deneysel yapılandırma yönetimi sürüm sistemi

(1) Deneysel sahne. Reklam sisteminde, belirli bir grup reklam alanı veya belirli sayfalar için deney yapılır. Trafiği PID'ye (reklamları işaretlemek için konum bilgisi) veya sayfalara göre sınıflandırmak güçlü bir gerekliliktir. Böyle bir grup reklam alanını deneysel bir senaryo olarak tanımlayın. Web işlem sayfası, deneysel sahneyi yapılandırmak için bir UI arayüzü sağlamalıdır. Kullanıcı, bu arayüzde yeni bir sahne oluşturabilir ve ilgili deneysel sahneye girmek için belirli PID gereksinimlerini veya URL gereksinimlerini karşılayan bir istek belirleyebilir. UI arayüzü aşağıda gösterilmiştir.

Bu sayfada kullanıcılar kolaylıkla yeni bir sahne ekleyebilir ve sahnenin giriş PID'sini belirleyebilir (çoklu giriş PID'leri ayarlanabilir).

(2) Deney katmanlaşması ve akış bölümlemesi. Belirli bir deneysel sahneye girdikten sonra, trafiğin yeniden kullanımını sağlamak için birden çok katman kullanılır. Her katmandaki trafik, bu sahneye akan trafiğin eksiksiz bir kümesidir. Her katmanın trafiği gruplara bölünebilir ve kullanıcı tarafından belirlenen bölme işaretine göre kesilebilir.

Bir katman, çoklu deneylerin bir koleksiyonu olarak kabul edilebilir. Deney katmanlandırma ilkesi aşağıdaki gibidir:

Birbirini etkilemeyen deneyler farklı katmanlara ayrılabilir.

Birbirini etkileyen deneyler aynı seviyeye yerleştirilir.

Birbirini etkilemeyen deneyler farklı katmanlara tahsis edildiği için trafiği çoklama amacına ulaşılır. Birbirini etkileyen deneyler, aynı katmanda gruplandırılır ve bu, aynı isteğin birbirini dışlayan iki deney için kullanılmamasını sağlar.

2. Çevrimiçi Hizmet Sistemi

Tesla, çevrimiçi hizmet sistemine bir kitaplık biçiminde erişir. Sistemin karmaşıklığını ve işletme ve bakım iş yükünü artırmadan, esas olarak basit erişim göz önünde bulundurularak bir servis formuna dönüştürülmez.

(1) Yönlendirme kuralları. Kullanıcılar, trafik segmentasyonu için her katmanda farklı segmentasyon işaretleri belirleyebilir. Sistem, kullanıcı tarafından belirtilen segmentasyon işareti değerine göre hash değerini hesaplayacaktır. Hesaplanan karma değeri modulo 100'dür ve daha sonra kova numarasını almak için 1 ile eklenir. Her deney, belirtilen aralıktaki bölüm numarasını kaplar, böylece bu istek için hangi denemenin gerçekleştirilmesi gerektiğini bilebiliriz. Burada küçük bir sapma ile bir hash fonksiyonu seçtiğimizi belirtmek gerekir Deneysel etki istatistiklerinin göz ardı edilebileceği aralıktaki sapmayı kontrol etmek için 10 çeşit hash fonksiyonundan optimal bir hash fonksiyonu seçtik.

Her katman bu segmentasyon kuralını kullanıyorsa, farklı katmanlar üzerinde deneyler yapan kullanıcılar aynı segmentasyon kuralını seçtiğinde, istek her zaman aynı gruba düşecektir. Farklı katmanların deneyleri arasında bir ilişki olmadığından, deneysel sonuçların kesinlikle inandırıcı olmasını sağlamak için, farklı katmanların trafiğinin ortogonalliğini sağlamak gerekir. Bu amaca ulaşmak için, layerID ayrı bir faktör olarak tanıtıldı. Her katmanın katman kimliği sabit olduğundan, aynı isteğin iki ziyaretin aynı deneyde yer almasını da sağlayabilir, bu da aynı kullanıcının birden fazla ziyaret ve tutarsız dönüş sonuçlarıyla karıştırılmasına neden olmaz. Şematik diyagram aşağıdaki gibidir.

(2) Deneysel parametrelerin işlenmesi. Bir seferde hangi deneylerin talep edileceğine nasıl karar vereceğimi anlattım. Bu bölüm, belirli bir deneyin kurucu unsurlarını ve sistemin deneyi nasıl gerçekleştirdiğini tanıtır. Bir deney, aslında bir dizi soyut parametredir. Her isteğe belirli bir deney atandıktan sonra, sistem, isteğin bir parçası olarak çevrimiçi hizmet sisteminin her işleme modülüne deneyin soyut parametre setini iletecektir.

Sistem için, talepte taşınan parametre değerine göre hangi deney belirlenebilir. Burada, sistemin sağlamlığını sağlamak için, bir talep belirli bir deneysel parametrenin değerinden yoksun ise, sistemin bir dip avlanma değeri ayarlaması gerektiği unutulmamalıdır.

(3) Deneysel sürüm. Bir denemenin etkisi çok iyi olduğunda, hızlı bir şekilde fayda sağlamak için denemenin trafiğinin oranını dinamik olarak ayarlayabilir ve büyük miktarda trafik üzerinde denemenin etkinliğini doğrulayabilirsiniz. Deneysel sonuçların çok iyi olduğu onaylandıktan sonra, tam trafikle çevrimiçi olabilirsiniz. Şu anda denemenin silinmesi gerekir ve denemenin parametreleri tüm trafiğe uygulanır. Bu, her sahnede bir başlangıç katmanı ayarlayarak elde edilir.

Her sahnenin ilk katmanı, tam trafik üzerinde hareket etmesi gereken tüm parametreleri başlatan başlatma katmanı olarak ayarlanır. Bir denemenin tam trafikte çevrimiçi olması gerektiğinde, denemeyi silebilir ve denemenin parametrelerini başlangıç katmanına taşıyabilirsiniz. Bu şekilde, deney sayısının sürekli artması ve katman sayısının sürekli artması sorunu önlenebilir ve tam çevrimiçi trafikte bir deney yayınlama amacı da elde edilir.

3. Log analizi görüntüleme sistemi

Deneysel sonuçların istatistikleri şüphesiz sistemde çok önemli bir bağlantıdır. Basit AB testi için (fiziksel küme izolasyonunun deneysel yöntemi), deneysel verilerin istatistikleri nispeten kolaydır. Bu tür çoğullamalı trafik için, bir istek üzerine birden çok deneme gerçekleştirme yöntemi, istatistiksel deney etkileri açısından nispeten daha karmaşıktır. İşte nispeten basit bir deneysel istatistiksel analiz yöntemi. Her denemenin benzersiz bir deneme kimliği vardır. Bir istek için, şönt kitaplığını çağırdıktan sonra, tüm deneysel parametreleri döndürürken, Exp1_Exp3_Exp6_Exp8_Exp9 gibi istek üzerine etki eden tüm deney kimliklerini birleştirecek bir dize döndürülür. İstek ayrıca bu dizeyi taşıyacak ve sistemin her modülüne iletecek ve sistem günlüğünü kaydederken diziyi kaydedecektir.

Günlük analizi işleme modülü, birden fazla deney kimliği elde etmek için dizeyi ayırıcı olarak "_" ile böler, her bir deneyin etkilerini gerçek zamanlı olarak analiz etmek için fırtına gibi gerçek zamanlı bir akış işleme sistemi kullanır ve ardından akışı dinamik olarak ayarlamak için deneysel yayınlama sistemini kullanır. Böylece makalede önerilen bir tür iyi huylu kapalı döngü geri bildirimi elde edildi.

Başvurular

Aşağıda, yukarıdaki yöntemi ayrıntılı olarak açıklamak için yukarıdaki platforma erişen basit bir reklam motoru sistemine bir örnek verilmiştir. Sistemin iki deneysel noktası vardır (Sorgu Yeniden Yazma ve Sıralama), bu nedenle iki deney katmanına bölünebilir. Aşağıda, talep işleme akışıyla birlikte motor sisteminin çalışma prensibi kısaca açıklanmaktadır.

Yukarıdaki şekilde gösterildiği gibi, Tesla motora bir kitaplık şeklinde bağlanmıştır. Motor talebi aldıktan sonra, ilgili deneysel parametre bilgilerini almak için Tesla'nın kitaplığını arar ve ardından deneysel bilgileri şeffaf bir şekilde Sorgu Yeniden Yazma ve Sıralamaya iletir. Sorgu Yeniden Yazma ve Sıralama modüllerinde, ilgili deneyleri yürütmek için gerekli deneysel parametreleri alın ve son olarak, deneysel etkilerin istatistiği amacıyla yerleştirme günlüğünün karşılık gelen alanına paket kimliğini kaydedin.

Aşağıdaki şekil, tüm deney için yapılandırma dosyasının şematik bir diyagramıdır.

Tüm motorun deneyi iki senaryoya bölünmüştür: İhtiyaçlara göre PC ve kablosuz ve sırasıyla strateji optimizasyonu ve ayarlaması yapılır. Algoritma deneylerinin ihtiyaçlarına göre, iki senaryo iki katmana ayrılır (QR ve Rank katmanları, QR, Sorgu Yeniden Yazmadır). Her katmana üç deney dahildir. Her deney, bazı deneysel parametrelerin bir koleksiyonudur. Örneğin, exp 100, qr_plan = 5 ve qr_weight = 3 parametrelerini içerir. Exp 103, rank_level = 2 ve rank_stragety = 9 parametrelerini içerir.

Bu yapılandırma dosyasını kullanarak, bir kullanıcı isteği gönderildikten sonra, istek, acookie saptırma hesaplamasına göre PC sahnesinin exp 100 ve exp 103 arasındaki iki deneyine girerse, döndürülen paket kimliği 100_103 olmalı ve parametre seti qr_plan = 5. qr_weight = 3, rank_level = 2, rank_stragety = 9. BucketID, sonraki günlük istatistikleri ve analizi için günlüğe kaydedilebilir. Lojistik istatistiksel analiz sırasında, BucketID'yi kesmek için kısa çizgiye basın ve ardından Storm'u kullanarak her bir denemenin gerçek zamanlı istatistiklerini gerçekleştirin veya çevrimdışı günlük analizi ve işleme için Hadoop'u kullanın. Çevrimiçi motorlar için her deneysel nokta, deneysel parametrelerin değerlerine göre hangi strateji ve model parametrelerinin kullanılacağını belirler.

sonuç olarak

Çevrimiçi hizmet sistemlerinin deneysel yöntemleriyle ilgili mevcut makalelere dayanan bu makale, paralel deneyleri desteklemek için trafiği yeniden kullanabilen bir dizi etkili yöntemi uygulamak için reklam sistemlerinin özelliklerini birleştirir. Bu yöntem aynı zamanda gri tonlamalı yayınlama sorununu da çözebilir. Bu sistem, Alimama'nın tüm iş kolu uygulamalarının deneysel verimliliğini büyük ölçüde artırır.

Gelecek iş

Gelecekte, hiyerarşik deneysel platform, deneysel yapılandırma sistemini, gerçek zamanlı deneysel sonuç analizini ve çevrimdışı günlük analiz sistemini daha iyi entegre etmeyi ve deneysel kullanıcılara iyi bir tek elden hizmet deneyimi sunmayı, yapılandırma deneylerini, sürümlerin yürürlüğe girmesini ve gerçek zamanlı gözlem deneylerini etkinleştirmeyi planlıyor. Sonuç birkaç dakika içinde tamamlanabilir. Aynı zamanda, Taobao tüccarları için bu sistem platformunun gelişimini de araştırıyor ve tüccarlar, kendi mağaza resimlerini ve metinlerini daha iyi tasarlamak için iki farklı metin yazarlığı tasarımının getirdiği tıklama oranı ve işlem oranındaki farkı net bir şekilde görmek için bu sistemi kullanabilirler. .

SpringBoot projesi: RedisTemplate hafif mesaj kuyruğu uygular
önceki
On milyarlarca trafik taşıyan yüksek performanslı bir mimari nasıl tasarlanır?
Sonraki
Ant Financial'ın 100 milyon düzeyinde eşzamanlılık altında mobil uçtan uca ağ erişim mimarisinin analizi
Zookeeper tarafından dağıtılmış kilit ve Zookeeper'a dayalı liderlik seçimi hakkında derinlemesine anlayış
Kandırılmaktan bunalıma giren sarhoş bir adam yüz dolarlık banknot dağıtır ve intihar etmek ister.
Tayland'da okumak için sahip olmanız gereken yetenekleri biliyor musunuz?
Lisansüstü eğitim için Tayland'a gitmek ister misiniz, bunların hepsini biliyor musunuz?
iyi haberler! Tayland'da hastaneden taburcu edilen iki önemli hasta: Tayland, bulaşıcı hastalıkları önleme ve kontrol etme kabiliyetiyle dünyada altıncı sırada
Bahşiş verme bilgisi ile ilgili olarak, Tayland seyahati için ipucu açmanın doğru yolu
Tmall 618 Tayland Reklamı: Tanrı "Sıcak" dizisini tersine çeviriyor
Tayland'da "Tayland'ı Görüntüleyin" Ulaşımı
İpuçları: Seyahat sırasında güvenlik için "tatil" yapmayın
Yurtdışında okurken oynamayı unutmayın, dil artık bir engel değil
Tayland'da okumak için bir okul seçerken dikkate alınması gereken faktörler nelerdir?
To Top