Özet
Roblox'ta her gün, 65.5 milyon kullanıcı milyonlarca deneyimle etkileşime giriyor ve toplamda 14.0 üç ayda bir milyar saat. Bu etkileşim, analitik ve makine öğrenimi (ML) amaçları için zenginleştirilmiş petabayt ölçeğinde bir veri gölü oluşturur. Veri gölümüzde olgu ve boyut tablolarını birleştirmek kaynak yoğun olduğundan, bunu optimize etmek ve veri karıştırmayı azaltmak için ML kullanan akıllı veri yapıları olan Learned Bloom Filtrelerini [1] benimsedik. Bu filtreler, varlığı tahmin ederek birleştirme verilerini önemli ölçüde kısaltır, verimliliği artırır ve maliyetleri azaltır. Bu arada, model mimarilerimizi de geliştirdik ve bunların işleme için bellek ve CPU saatlerini azaltmanın yanı sıra operasyonel kararlılığı artırma konusunda sundukları önemli faydaları da gösterdik.
Giriş
Veri gölümüzde, olgu tabloları ve veri küpleri verimli erişim için geçici olarak bölümlendirilmiştir; boyut tablolarında ise bu tür bölümler yoktur ve güncellemeler sırasında bunların olgu tablolarıyla birleştirilmesi yoğun kaynak gerektirir. Birleştirmenin anahtar alanı, birleştirilen olgu tablosunun zamansal bölümü tarafından yönlendirilir. Bu zamansal bölümde mevcut olan boyut varlıkları, tüm boyut veri kümesinde mevcut olanların küçük bir alt kümesidir. Sonuç olarak, bu birleştirmelerdeki karıştırılmış boyut verilerinin çoğunluğu sonunda atılır. Bu süreci optimize etmek ve gereksiz karıştırmayı azaltmak için şunu kullanmayı düşündük: Çiçek Filtreleri farklı birleştirme anahtarlarında ancak filtre boyutu ve bellek alanı sorunlarıyla karşılaşıldı.
Bunları ele almak için araştırdık Bloom Filtrelerini ÖğrendimDüşük hatalı pozitif oranları korurken Bloom Filtresi boyutunu küçülten ML tabanlı bir çözüm. Bu yenilik, hesaplama maliyetlerini azaltarak ve sistem kararlılığını iyileştirerek birleştirme operasyonlarının verimliliğini artırır. Aşağıdaki şema, dağıtılmış bilgi işlem ortamımızdaki geleneksel ve optimize edilmiş birleştirme süreçlerini göstermektedir.
Öğrenilmiş Bloom Filtreleriyle Katılım Verimliliğini Artırma
Gerçek ve boyut tabloları arasındaki birleşimi optimize etmek için Learned Bloom Filter uygulamasını benimsedik. Olgu tablosunda bulunan anahtarlardan bir dizin oluşturduk ve ardından birleştirme işleminden önce boyut verilerini ön filtrelemek için dizini konuşlandırdık.
Geleneksel Çiçeklenme Filtrelerinden Öğrenilmiş Çiçeklenme Filtrelerine Evrim
Geleneksel Bloom Filtresi verimli olsa da, istenen yanlış pozitif oranına ulaşmak için yüklenmesi gereken çalışan düğüm başına %15-25 oranında ek bellek ekler. Ancak Learned Bloom Filters'ı kullanarak aynı hatalı pozitif oranı korurken önemli ölçüde küçültülmüş bir endeks boyutu elde ettik. Bunun nedeni Bloom Filtresinin ikili sınıflandırma problemine dönüşmesidir. Pozitif etiketler endekste değerlerin varlığını belirtirken, negatif etiketler bunların bulunmadığı anlamına gelir.
Bir ML modelinin tanıtılması, değerlerin ilk kontrolünü kolaylaştırır ve ardından hatalı negatifleri ortadan kaldırmak için bir yedek Bloom Filtresi gelir. Küçültülmüş boyut, modelin sıkıştırılmış gösteriminden ve yedek Bloom Filtresi tarafından gereken azaltılmış anahtar sayısından kaynaklanmaktadır. Bu, onu geleneksel Bloom Filtresi yaklaşımından ayırır.
Bu çalışmanın bir parçası olarak, Öğrenilmiş Bloom Filtresi yaklaşımımızı değerlendirmek için iki ölçüm oluşturduk: endeksin son serileştirilmiş nesne boyutu ve birleştirme sorgularının yürütülmesi sırasındaki CPU tüketimi.
Uygulama Zorluklarını Giderme
İlk karşılaştığımız zorluk, olgu tablosunda az sayıda boyut tablosu anahtarı bulunan, oldukça önyargılı bir eğitim veri kümesini ele almaktı. Bunu yaparken tablolar arasında yaklaşık üçte bir oranında anahtar örtüşmesi gözlemledik. Bu sorunun üstesinden gelmek için Sandviç Öğrenilmiş Çiçeklenme Filtresi yaklaşımını kullandık [2]. Bu, olgu tablosunda eksik olan anahtarların çoğunu kaldırarak veri kümesi dağılımını yeniden dengelemek için başlangıçtaki geleneksel Bloom Filtresini entegre eder ve negatif örnekleri veri kümesinden etkili bir şekilde ortadan kaldırır. Daha sonra, yalnızca ilk Bloom Filtresinde bulunan anahtarlar, yanlış pozitiflerle birlikte, genellikle "öğrenilmiş kehanet" olarak adlandırılan ML modeline iletildi. Bu yaklaşım, öğrenilen kehanet için iyi dengelenmiş bir eğitim veri seti ile sonuçlandı ve önyargı sorununu etkili bir şekilde aştı.
İkinci zorluk, model mimarisi ve eğitim özelliklerine odaklanıyordu. Klasik kimlik avı URL'leri sorununun aksine [1], birleştirme anahtarlarımız (çoğu durumda kullanıcılar/deneyimler için benzersiz tanımlayıcılardır) doğası gereği bilgilendirici değildi. Bu bizi, olgu tablosunda bir boyut varlığının mevcut olup olmadığını tahmin etmeye yardımcı olabilecek potansiyel model özellikleri olarak boyut niteliklerini keşfetmeye yönlendirdi. Örneğin, belirli bir dildeki deneyimlere ilişkin kullanıcı oturumu bilgilerini içeren bir olgu tablosu hayal edin. Kullanıcı boyutunun coğrafi konumu veya dil tercihi özelliği, bireysel bir kullanıcının veri tablosunda bulunup bulunmadığının iyi göstergeleri olabilir.
Üçüncü zorluk, yani çıkarım gecikmesi, hem yanlış negatifleri en aza indiren hem de hızlı yanıtlar sağlayan modeller gerektiriyordu. Bu temel ölçümler için degradeyle güçlendirilmiş ağaç modeli en uygun seçimdi ve hassasiyet ile hızı dengelemek için özellik kümesini budadık.
Öğrenilen Bloom Filtrelerini kullanan güncellenmiş birleştirme sorgumuz aşağıda gösterildiği gibidir:
Sonuçlar
Veri gölümüzde Learned Bloom filtreleri ile yaptığımız deneylerin sonuçları aşağıdadır. Bunları, her biri farklı veri özelliklerine sahip olan beş üretim iş yüküne entegre ettik. Bu iş yüklerinin hesaplama açısından en pahalı kısmı, olgu tablosu ile boyut tablosu arasındaki birleştirmedir. Olgu tablolarının anahtar alanı, boyut tablosunun yaklaşık %30'udur. Başlangıç olarak, nihai serileştirilmiş nesne boyutu açısından Öğrenilmiş Bloom Filtresinin geleneksel Bloom Filtrelerinden nasıl daha iyi performans gösterdiğini tartışıyoruz. Daha sonra, Learned Bloom Filtrelerini iş yükü işleme hatlarımıza entegre ederek gözlemlediğimiz performans iyileştirmelerini gösteriyoruz.
Öğrenilen Bloom Filtre Boyutu Karşılaştırması
Aşağıda gösterildiği gibi, belirli bir yanlış pozitif oranına bakıldığında, öğrenilen Bloom Filtresinin iki çeşidi, geleneksel Bloom Filtrelerine kıyasla toplam nesne boyutunu %17-42 arasında artırır.
Ek olarak, degrade destekli ağaç tabanlı modelimizde özelliklerin daha küçük bir alt kümesini kullanarak, çıkarımı daha hızlı yaparken optimizasyonun yalnızca küçük bir yüzdesini kaybettik.
Öğrenilen Bloom Filtresi Kullanım Sonuçları
Bu bölümde Bloom Filtresi tabanlı birleştirmelerin performansını çeşitli ölçümlerde normal birleştirmelerin performansıyla karşılaştırıyoruz.
Aşağıdaki tablo, Öğrenilmiş Bloom Filtreleri kullanılarak ve kullanılmadan iş yüklerinin performansını karşılaştırmaktadır. %1 toplam yanlış pozitif olasılığına sahip bir Öğrenilmiş Bloom Filtresi, her iki birleştirme türü için aynı küme yapılandırmasını korurken aşağıdaki karşılaştırmayı göstermektedir.
İlk olarak, Bloom Filter uygulamasının CPU saatlerinde normal birleştirmeden %60'a kadar daha iyi performans gösterdiğini gördük. Bloom Filtresini değerlendirirken harcanan ek işlem nedeniyle Öğrenilmiş Bloom Filtresi yaklaşımı için tarama adımının CPU kullanımında bir artış gördük. Ancak bu adımda yapılan ön filtreleme, karıştırılan verinin boyutunu azalttı; bu da aşağı yöndeki adımlarda kullanılan CPU'nun azaltılmasına yardımcı oldu ve böylece toplam CPU saati azaltıldı.
İkincisi, Öğrenilmiş Bloom Filtreleri, normal birleştirmeye göre yaklaşık %80 daha az toplam veri boyutuna ve yaklaşık %80 daha az toplam karıştırma baytına sahiptir. Bu, aşağıda tartışıldığı gibi daha istikrarlı birleştirme performansına yol açar.
Ayrıca deneme aşamasındaki diğer üretim iş yüklerimizde de kaynak kullanımının azaldığını gördük. Öğrenilen Çiçeklenme Filtresi yaklaşımı, beş iş yükünün tamamında iki haftalık bir süre boyunca ortalama bir sonuç elde etti günlük maliyet tasarrufu of 25,% bu aynı zamanda model eğitimi ve dizin oluşturulmasını da hesaba katar.
Birleştirmeyi gerçekleştirirken karıştırılan veri miktarının azalması nedeniyle, analiz hattımızın operasyonel maliyetlerini önemli ölçüde azaltmayı ve aynı zamanda onu daha istikrarlı hale getirmeyi başardık.Aşağıdaki grafik, çalıştırma sürelerindeki (duvar) değişkenliği (bir varyasyon katsayısı kullanarak) göstermektedir. deneme yaptığımız beş iş yükü için iki haftalık bir süre boyunca düzenli bir birleştirme iş yükü ve Öğrenilmiş Bloom Filtresi tabanlı iş yükü için saat süresi). Learned Bloom Filters'ı kullanan çalıştırmalar daha istikrarlıydı (süre açısından daha tutarlıydı), bu da onları daha ucuz, geçici, güvenilmez bilgi işlem kaynaklarına taşıma olasılığını ortaya çıkardı.
Referanslar
[1] T. Kraska, A. Beutel, EH Chi, J. Dean ve N. Polyzotis. Öğrenilmiş Endeks Yapıları Örneği. https://arxiv.org/abs/1712.01208, 2017.
[2] M. Mitzenmacher. Öğrenilmiş Bloom Filtrelerini Sandviçleme Yoluyla Optimize Etme.
https://arxiv.org/abs/1803.01474, 2018.
¹3 Haziran 30'te sona eren 2023 ay itibarıyla
²3 Haziran 30'te sona eren 2023 ay itibarıyla
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://blog.roblox.com/2023/11/roblox-reduces-spark-join-query-costs-machine-learning-optimized-bloom-filters/
- :dır-dir
- :olumsuzluk
- $UP
- 1
- 14
- 2017
- 2018
- 30
- 65
- a
- Yapabilmek
- Hakkımızda
- yok
- erişim
- Hesaplar
- elde
- karşısında
- ilave
- Ek
- adres
- adresleme
- Ekler
- benimsenen
- Türkiye
- boyunca
- Ayrıca
- miktar
- an
- analytics
- ve
- yaklaşım
- yaklaşık olarak
- mimari
- ARE
- AS
- At
- öznitelikleri
- ortalama
- yedek
- Bakiye
- merkezli
- BE
- Çünkü
- önce
- başlamak
- olmak
- altında
- faydaları
- arasında
- önyargı
- önyargılı
- Milyar
- Blog
- Çiçek açmak
- arttırdı
- her ikisi de
- fakat
- by
- CAN
- dava
- durumlarda
- merkezli
- meydan okuma
- özellikleri
- Grafik
- daha ucuz
- Kontrol
- seçim
- klasik
- sınıflandırma
- saat
- Küme
- karşılaştırmak
- karşılaştırıldığında
- karşılaştırma
- bilişimsel
- hesaplamak
- bilgisayar
- yapılandırma
- kabul
- tutarlı
- tüketim
- içeren
- geleneksel
- Ücret
- maliyetler
- işlemci
- oluşturma
- veri
- Veri Gölü
- gün
- gösterdi
- gösteriyor
- konuşlandırılmış
- İstediğiniz
- farklı
- Boyut
- tartışmak
- tartışılan
- farklı
- dağıtıldı
- Dağıtılmış bilgi işlem
- dağıtım
- yapıyor
- yapılmış
- tahrik
- gereken
- sırasında
- e
- her
- etkili bir şekilde
- verim
- verimli
- ortadan
- kucakladı
- sona erdi
- meşgul
- Geliştirir
- artırılması
- zenginleştirilmiş
- Tüm
- kişiler
- varlık
- çevre
- kurulmuş
- değerlendirilmesi
- sonunda
- örnek
- infaz
- pahalı
- Deneyimler
- deneyler
- keşfetmek
- keşfedilmeyi
- yüzlü
- kolaylaştırır
- gerçek
- yanlış
- Daha hızlı
- Özellikler(Hazırlık aşamasında)
- Özellikler
- az
- filtre
- filtreler
- son
- beş
- takip
- takip etme
- ayak izi
- İçin
- bulundu
- itibaren
- oluşturulan
- üretir
- coğrafi
- verilmiş
- Tercih Etmenizin
- Koşum
- Var
- yardım et
- yardım
- büyük ölçüde
- vurmak
- SAAT
- Ne kadar
- Ancak
- HTTPS
- tanımlayıcıları
- if
- göstermektedir
- resim
- uygulama
- iyileştirmek
- gelişmiş
- iyileştirmeler
- geliştirme
- in
- dahil
- Artırmak
- artan
- indeks
- belirtmek
- göstergeler
- bireysel
- bilgi
- aydınlatıcı
- doğal olarak
- ilk
- Yenilikçilik
- entegre
- Entegre
- Bütünleştirme
- etkileşim
- içine
- Giriş
- konu
- sorunlar
- IT
- ONUN
- kaydol
- katıldı
- birleştirme
- Katıldı
- Haziran
- anahtar
- anahtarlar
- Etiketler
- Eksiklik
- göl
- dil
- İlanlar
- öğrendim
- öğrenme
- Led
- az
- kaldıraçlı
- yük
- yer
- bakıyor
- kayıp
- Düşük
- makine
- makine öğrenme
- sürdürmek
- çoğunluk
- Yapımı
- maksimum genişlik
- ortalama
- Bellek
- Metrikleri
- milyon
- milyonlarca
- eksik
- ML
- model
- modelleri
- ay
- Daha
- çoğu
- hareketli
- çok
- gerek
- negatif
- negatifler
- sonraki
- düğüm
- numara
- nesne
- gözlenen
- of
- teklif
- sık sık
- on
- bir tek
- açılır
- operasyon
- işletme
- Operasyon
- optimum
- optimizasyon
- optimize
- optimize
- optimize
- or
- kehanet
- Diğer
- bizim
- daha iyi performans
- tekrar
- aşılmasında
- Bölüm
- belirli
- başına
- yüzde
- performans
- icra
- dönem
- Kimlik avı
- boru hattı
- Platon
- Plato Veri Zekası
- PlatoVeri
- pozitif
- olasılık
- potansiyel
- Hassas
- tahmin
- tahmin
- varlık
- mevcut
- olasılık
- Sorun
- süreç
- Süreçler
- işleme
- üretim
- sağlanan
- amaçlı
- sorgular
- hızlı
- oran
- oranlar
- yeniden dengelemeye
- azaltmak
- Indirimli
- azaltır
- azaltarak
- Referans
- düzenli
- kaldırma
- temsil
- gereklidir
- kaynak
- yoğun kaynak
- Kaynaklar
- yanıtları
- sonuç
- sonuçlandı
- Sonuçlar
- Roblox
- koşmak
- ishal
- aynı
- testere
- taramak
- İkinci
- Bölüm
- Oturum
- set
- birkaç
- şov
- gösterilen
- Gösteriler
- karıştırmak
- önemli ölçüde
- beden
- küçük
- daha küçük
- So
- çözüm
- uzay
- Kıvılcım
- hız
- harcanmış
- istikrar
- kararlı
- sapları
- adım
- Basamaklar
- yapılar
- Daha sonra
- önemli
- böyle
- sistem
- T
- tablo
- ele almak
- şartlar
- göre
- o
- The
- Onları
- Bunlar
- onlar
- Üçüncü
- Re-Tweet
- Böylece
- zaman
- için
- Toplam
- geleneksel
- Eğitim
- Dönüşüm
- ağaç
- iki
- türleri
- altında
- benzersiz
- aksine
- güncellenmiş
- Güncellemeler
- us
- kullanım
- kullanım
- Kullanılmış
- kullanıcı
- kullanıcılar
- kullanma
- Değerler
- Duvar
- oldu
- Yol..
- we
- Haftalar
- İYİ
- vardı
- ne zaman
- olup olmadığını
- hangi
- süre
- Vikipedi
- ile
- olmadan
- İş
- işçi
- olur
- yazılı
- zefirnet