Google ve Uber’in Derin Öğrenme İçin En İyi Uygulamaları

Sürdürülebilir bir Derin Öğrenme çözümü oluşturmak için TensorFlow ve PyTorch gibi Deep Learning çerçeveleri tarafından sağlananlardan daha fazlası var. Bu çerçeveler araştırma için yeterince iyidir, ancak üretim dağıtımında ortaya çıkan sorunları hesaba katmazlar. Daha önce teknik borç ve daha uyumlu biyolojik benzeri mimarilerin ihtiyacı hakkında yazdım. Derin Öğrenmeyi kullanarak uygulanabilir bir işletmeyi desteklemek için, kesinlikle çevredeki sık ve beklenmedik değişikliklerin varlığında sürdürülebilir iyileştirmeyi destekleyen bir mimariye ihtiyacınız vardır. Mevcut Derin Öğrenme çerçevesi, komple bir çözümün yalnızca bir bölümünü sağlar.

Neyse ki, Google ve Uber iç mimarilerine bir bakış attılar. Bu iki devin mimarileri, kendi üretiminizi hazırlamaya hazır Deep Learning çözümünüzü oluşturmanız gerekiyorsa, iki mükemmel ana kamp olabilir.

Uber’in Michelangelo adlı sisteminin temel motivasyonları, “eğitim ve tahmin verilerini ölçeklendirmek ve ölçmek için güvenilir, tekdüze ve tekrarlanabilir boru hatları oluşturmak için hiçbir sistemin mevcut olmamasıydı” idi. Makalelerinde, mevcut çerçevelerin dağıtım ve teknik borcu yönetme konuları. Makalede, mevcut çerçevelerin üretim için yetersiz olduğuna dair şüpheci ikna etmesi gereken yeterli tartışma vardır.

Uber’in gazetesinden tamamen geçmeyeceğim. Aksine, sadece mimarileriyle ilgili bazı önemli noktaları vurgulayacağım. Uber sistemi tam anlamıyla bir Derin Öğrenme sistemi değil, uygunluğa bağlı olarak birçok ML yöntemi kullanabilen bir Makine Öğrenme sistemidir. Aşağıdaki açık kaynaklı bileşenler üzerine kuruludur: HDFS, Spark, Samza, Cassandra, MLLib, XGBoost ve TensorFlow. Bu nedenle, analitik için Makine Öğrenimi bileşenlerini içeren geleneksel bir BigData sistemidir:

Michelangelo, Uber'in tüm verileri ve bilgi işlem altyapısı üzerine kuruludur ve tüm Uber'in işlemsel ve kayıtlı verilerini depolayan bir veri gölü, tüm Uber'in hizmetlerinden günlük mesajları toplayan Kafka brokerleri, bir Samza akışlı hesaplama motoru, Cassandra kümelerini yöneten ve Uber'in içindeki ev hizmet sunumu ve dağıtım araçları.

Mimari aşağıdaki iş akışını destekler:

  1. Verileri yönet
  2. Tren modelleri
  3. Modelleri değerlendirin
  4. Dağıt, tahmin et ve izle

Uber’in Michaelangelo mimarileri aşağıdaki şekilde tasvir edilmiştir:

Her zamanki Big Data mimarisinin kaygılarını atlayacağım ve daha fazla makine öğrenmesi ile ilgili bazı önemli fikirlere dikkat çekeceğim.

Michaelangelo, çevrimiçi ve çevrimdışı boru hatları arasındaki verilerin yönetimini ayırır. Ek olarak, bilgi paylaşımını sağlamak ve kuruluş genelinde yeniden kullanmak için, bir “özellik mağazası” kullanıma sunulur:

Şu anda, Feature Store'da makine öğrenimi projelerini hızlandırmak için kullanılan yaklaşık 10.000 özelliğe sahibiz ve şirket genelindeki ekipler her zaman yenilerini ekliyor. Feature Store'daki özellikler otomatik olarak günlük olarak hesaplanır ve güncellenir.

Uber, modelleyicilerin eğitim ve tahmin için bir model göndermeden önce özelliği seçmesi, dönüştürmesi ve birleştirmesi için bir Etki Alanı Özel Dili (DSL) oluşturdu. Şu anda desteklenen ML yöntemleri karar ağaçları, doğrusal ve lojistik modeller, k araçları, zaman serileri ve derin sinir ağlarıdır.

Model konfigürasyonu tip, hiper parametreler, veri kaynağı referansları, özellik DSL ifadeleri ve hesaplama kaynağı gereksinimlerini (yani cpus, bellek, GPU kullanımı vb.) Belirtir. Eğitim, bir YARN veya Mesos kümesinde gerçekleştirilir.

Model eğitiminden sonra performans ölçümleri bir değerlendirme raporunda hesaplanır ve sağlanır. Model konfigürasyonu, öğrenilen model ve değerlendirme raporu olan tüm bilgiler analiz ve dağıtım için versiyonlanmış bir model deposunda saklanır. Model bilgisi şunları içerir:

  • Modeli kim eğitti
  • Eğitim işinin başlangıç ​​ve bitiş saatleri
  • Tam model konfigürasyonu (kullanılan özellikler, hiper-parametre değerleri vb.)
  • Eğitim ve test veri setlerine referans
  • Her özelliğin dağılımı ve göreceli önemi
  • Model doğruluğu ölçümleri
  • Her model tipi için standart çizelgeler ve grafikler (örneğin, bir ikili sınıflandırıcı için ROC eğrisi, PR eğrisi ve karışıklık matrisi)
  • Modelin tam öğrenilmiş parametreleri
  • Model görselleştirme için özet istatistikler

Fikir ML modellerine erişimi demokratikleştirmek, örgütsel bilgiyi geliştirmek için başkalarıyla paylaşmak. Uber’in yaklaşımının benzersiz özelliği, birçok farklı tarafın verilerini farklı ML modelleri arasında paylaşmasına olanak tanıyan bir “Özellik Mağazası” nın ortaya çıkmasıdır.

Google’daki millet, iç sistemlerini ayrıntılandıran yeni bir “TFX: TensorFlow tabanlı üretim ölçekli bir makine öğrenme platformu” yazısına sahip.

Kağıt, aynı iş akışını kapsayacak şekilde Uber’in kağıdına benzer şekilde yapılandırılmıştır:

  1. Verileri yönetme - Veri Analizi, Dönüşüm ve Doğrulama
  2. Tren modelleri - Model Eğitimi: Sıcak Başlangıç ​​ve Model Belirtimi
  3. Modelleri değerlendirin - Model Değerlendirme ve Doğrulama
  4. Dağıt, tahmin et ve izle - Model Sunumu

Google’ın mimarisi, aşağıda belirtilen üst düzey yönergelere dayanmaktadır:

  • Veri Anomalilerini erken yakalayın.
  • Veri doğrulama işlemini otomatikleştirin.
  • Veri hatalarını kodla aynı titizlikle ele alın.
  • Sürekli eğitimi destekleyin.
  • Paylaşımı iyileştirmek için tek tip yapılandırma.
  • Güvenilir ve ölçeklenebilir üretim dağıtımı ve sunumu.

Google’ın TFX’inin benzersiz yeteneklerini daha derinden inceleyelim. Birkaç benzersiz yeteneklerin tanıtılmasının yanı sıra, pek çok bilgelik bilgisi vardır.

TFX, veri yönetimi kapsamında çeşitli yetenekler sunar. Veri analizi, değer dağılımı, nicelikler, ortalama, standart sapma vb. Hakkında bilgi sağlayan her veri setinde istatistikler gerçekleştirmektedir. Bu otomatik analiz, sürekli eğitim ve servis ortamını iyileştirmek için kullanılır.

TFX, verileri düzenlemeyi ele alır ve tutarlılığı korumak için dönüşümleri saklar. Ayrıca, sistem, özellikten tamsayılı eşlemeleri yönetmek için tek tip ve tutarlı bir çerçeve sunar.

TFX, verilerden beklentileri belirten versiyon olan bir şema olduğunu kanıtlamaktadır. Bu şema, bulunan tüm anormallikleri işaretlemek için kullanılır ve ayrıca, eğitimi engelleme veya özellikleri kullanımdan kaldırma gibi eylem önerileri sunar. Takım, yeni projeler için kullanımı kolaylaştırmak için bu şemanın otomatik olarak oluşturulmasını sağlar. Bu, programlama dillerinde bulunan statik tip kontrolünden ilham alan eşsiz bir özelliktir.

TFX, TensorFlow'u model açıklaması olarak kullanır. TFX, Deep Learning'de bulunan transfer öğrenme tekniğinden esinlenerek bu “sıcak başlangıç” kavramına sahiptir. Buradaki fikir, mevcut eğitimi kullanarak eğitim miktarını azaltmaktır. Mevcut bir ön eğitimli ağ kullanan transfer öğrenmenin aksine, sıcak başlangıç ​​seçici bir genel özellikler ağını başlangıç ​​noktası olarak tanımlar. Genel özellikler konusunda eğitilen ağ, daha özel ağların eğitimi için temel olarak kullanılır. Bu özellik TF-Slim'de uygulanmaktadır.

TFX, ortak bir yüksek seviye TensorFlow özelliği kullanır (bkz: TensorFlow Tahmin Edici: Yüksek Seviyede Makine Öğrenim Çerçevelerinde Basitliği ve Esnekliği Yönetme), farklı uygulamalar arasında eşitlik sağlamak ve en iyi uygulamaları kodlamak için. Daha fazla ayrıntı için Tahminciler hakkındaki bu makaleye bakın.

TFX, dağıtım ve servis için TensorFlow Sunum çerçevesini kullanır. Çerçeve, aynı mimariyi ve API'yi korurken farklı modellerin sunulmasına izin verir. TensorFlow Serving, çok kiracı modellerin yerleştirilmesini sağlamak için “yumuşak bir model yalıtımı” sağlar. Çerçeve aynı zamanda ölçeklenebilir çıkarımları desteklemek için tasarlanmıştır.

TFX belgesi, modellerin seri hale getirilmesini optimize etme ihtiyacından bahsetti. Görünüşe göre, performansı 2-5 kata kadar artırmak için özelleştirilmiş bir protokol tamponu ayrıştırması yapıldı.

Uber ve Google’ın iç mimarisini kesmek, kendi iç platformunuzu oluşturmak için acı noktaları ve çözümleri hakkında iyi bir fikir verir. Mevcut açık kaynaklı DL çerçevelerine kıyasla, meta-bilginin yönetilmesi ve paylaşılmasına daha büyük önem verilmektedir. Google’ın yaklaşımı, aynı zamanda otomatik onaylamanın yanı sıra tek biçimliliği sağlamak için ek çaba gerektiriyor. Bunlar, geleneksel yazılım mühendisliği projelerinde daha önce gördüğümüz uygulamalardır.

Test Güdümlü Geliştirme (TDD), sürekli entegrasyon, geri alma ve geri kazanma, değişim kontrolü vb. Gibi yazılım mühendisliği uygulamaları ileri düzey makine öğrenme uygulamalarına tanıtılmaktadır. Bir uzmanın bir Jüpyter dizüstü bilgisayar üzerinde gelişmesi ve onu işletmesi için takıma atması yeterli değildir. Aynı uçtan uca, bugün en iyi mühendislik şirketlerinde bulduğumuz uygulamaları makine öğrenme çalışmalarında da talep edilecektir. Bugün hem Uber'de hem de Google’da görüyoruz ve bu nedenle herhangi bir sürdürülebilir ML / DL uygulamasında beklemeliyiz.

Güncelleme: https://www.linkedin.com/pulse/ai-layer-diego-oppenheimer, https://arxiv.org/abs/1804.09997v1

Derin Öğrenmeyi Keşfedin: Yapay Sezgi: Geliştirilemeyen Derin Öğrenme DevrimiDerin Öğrenmeyi Exploit: Derin Öğrenme AI Oyun Kitabı