Google va Uber-ni chuqur o'rganish uchun eng yaxshi amaliyotlar

Deep Learning tizimlari TensorFlow va PyTorch singari taqdim etilgandan ko'ra Barqaror Deep Learning yechimini yaratish uchun ko'proq narsa bor. Ushbu tuzilmalar tadqiqotlar uchun etarlicha yaxshi, ammo ular ishlab chiqarishni joylashtirish bilan bog'liq muammolarni hisobga olmaydilar. Men texnik qarzlar va moslashuvchan biologik me'morchilik kabi ehtiyojlar haqida ilgari yozganman. Deep Learning yordamida hayotiy biznesni qo'llab-quvvatlash uchun sizga atrof-muhitda tez-tez va kutilmagan o'zgarishlar mavjud bo'lganda barqaror yaxshilanishni qo'llab-quvvatlaydigan me'morchilik zarur. Hozirgi chuqur o'rganish tizimi to'liq echimning faqat bir qismini ta'minlaydi.

Yaxshiyamki, Google va Uber o'zlarining ichki arxitekturalari bilan tanishdilar. Agar siz o'zingizning ishlab chiqarishingizni chuqur o'rganishga tayyor echimni yaratishingiz kerak bo'lsa, bu ikki gigantning me'morchiligi ikkita a'lo bazaviy lager bo'lishi mumkin.

Uberning Mikelanjelo nomli tizimining asosiy g'oyalari shundan iborat ediki, "miqyosda o'qitish va bashorat qilish ma'lumotlarini yaratish va boshqarish uchun ishonchli, bir xil va qayta tiklanadigan quvurlar qurish uchun tizimlar mavjud emas edi". Ularning ishlarida ular mavjud ramkalarning cheklanishini tasvirlaydi. texnik qarzlarni joylashtirish va boshqarish masalalari. Qog'ozda mavjud bo'lgan ramkalar ishlab chiqarish uchun etarli emasligiga har qanday skeptikni ishontirish uchun etarli dalillar mavjud.

Men Uber qog'ozini siz bilan to'liq ko'rib chiqmoqchi emasman. Aksincha, men ularning me'morchiligi bilan bog'liq ba'zi muhim fikrlarni aytib o'tmoqchiman. Uber tizimi qat'iy ravishda chuqur o'rganish tizimi emas, balki yaroqlilik darajasiga qarab ko'plab ML usullaridan foydalanishi mumkin bo'lgan Machine Learning tizimi. HDFS, Spark, Samza, Cassandra, MLLib, XGBoost va TensorFlow quyidagi ochiq manbali tarkibiy qismlarga qurilgan. Shunday qilib, bu odatiy BigData tizimi, uning tahlillari uchun Machine Learning tarkibiy qismlarini birlashtiradi:

Mikelanjelo Uber-ning ma'lumotlari va hisoblash infratuzilmasi ustiga qurilgan bo'lib, Uber-ning barcha tranzaktsiyalangan va qayd qilingan ma'lumotlarini saqlaydigan ma'lumot ko'lini beradi, Kafka brokerlari Uber-ning barcha xizmatlaridan kiruvchi xabarlarni birlashtirgan Samza oqim kompyuterlari, boshqariladigan Cassandra klasterlari va Uber-da. - maishiy xizmatni taqdim etish va tarqatish vositalari.

Arxitektura quyidagi ish jarayonini qo'llab-quvvatlaydi:

  1. Ma'lumotlarni boshqarish
  2. Poyezd modellari
  3. Modellarni baholang
  4. Joylashtirish, bashorat qilish va nazorat qilish

Uber-ning Michaelangelo arxitekturasi quyidagicha tasvirlangan:

Men odatdagi Big Data arxitekturasi tashvishlarini chetlab o'tib, mashina o'rganish bilan bog'liq ba'zi muhim g'oyalarni aytib o'tmoqchiman.

Michaelangelo ma'lumotlarni boshqarishni onlayn va oflayn quvurlar o'rtasida taqsimlaydi. Bundan tashqari, tashkilotda ma'lumot almashish va qayta foydalanishga ruxsat berish uchun "xususiyatlar do'koni" mavjud:

Hozirgi vaqtda bizda Feature Store-da mashinalarni o'rganish bo'yicha loyihalarni tezlashtirish uchun ishlatiladigan taxminan 10,000 funktsiyalar mavjud va kompaniyadagi jamoalar har doim yangilarini qo'shib kelishmoqda. Xususiyatlar do'konidagi xususiyatlar avtomatik ravishda hisoblanadi va har kuni yangilanadi.

Uber modelni o'qitish va bashorat qilish uchun yuborishdan oldin modellarni tanlash, o'zgartirish va birlashtirish uchun Domen uchun maxsus tilni (DSL) yaratdi. Hozirgi vaqtda qo'llab-quvvatlanadigan ML usullari - qarorlar daraxtlari, chiziqli va logistika modellari, k-vositalari, vaqt qatorlari va chuqur neyron tarmoqlari.

Modelning konfiguratsiyasi turni, giper-parametrlarni, ma'lumot manbalariga havolalarni, DSL ifoda xususiyatlarini va hisoblash manbalariga bo'lgan talablarni (ya'ni cpus, xotira, GPU-dan foydalanish va hokazo) belgilaydi. O'qitish YARN yoki Mesos klasterida olib boriladi.

Namunaviy mashg'ulotdan so'ng ishlash ko'rsatkichlari hisoblab chiqiladi va baholash hisobotida taqdim etiladi. Barcha ma'lumotlar, ya'ni modelning konfiguratsiyasi, o'rganilgan model va baholash to'g'risidagi hisobot tahlil qilish va joylashtirish uchun versiya versiyasida saqlanadi. Model to'g'risidagi ma'lumotlar quyidagilarni o'z ichiga oladi:

  • Modelni kim o'qitgan
  • O'quv mashg'ulotining boshlanishi va tugash vaqti
  • Modelning to'liq konfiguratsiyasi (ishlatiladigan xususiyatlar, giper-parametr qiymatlari va boshqalar)
  • Trening va test ma'lumotlari to'plamiga havola
  • Har bir xususiyatning taqsimlanishi va nisbiy ahamiyati
  • Model aniqligi o'lchovlari
  • Har bir model turi uchun standart jadvallar va grafikalar (masalan, ROC egri, PR egri va ikkilik tasniflagich uchun tartibsizlik matritsasi)
  • Modelning to'liq o'rganilgan parametrlari
  • Modelni vizualizatsiya qilish uchun qisqacha statistika

G'oya ML modellariga kirishni demokratlashtirish va tashkilot bilimlarini oshirish uchun boshqalar bilan almashishdir. Uber yondashuvining o'ziga xos xususiyati ko'plab xususiyatlarga ega bo'lgan turli xil ML modellarida ma'lumotlarni almashish imkonini beradigan "Xususiyatlar do'koni" ning paydo bo'lishi.

Google-dagi odamlar yaqinda "TFX: TensorFlow-ga asoslangan ishlab chiqarish miqyosidagi mashina o'qitish platformasi" nomli qog'ozga ega, bu ularning ichki tizimini batafsil yoritadi.

Qog'oz Uber qog'oziga o'xshash tarzda tuzilgan, chunki ular bir xil ish jarayonini qamrab oladi:

  1. Ma'lumotni boshqarish - ma'lumotlarni tahlil qilish, o'zgartirish va tekshirish
  2. Poezd modellari - Model o'qitish: Issiq boshlang'ich va modelning tavsifi
  3. Modellarni baholang - Modelni baholash va tasdiqlash
  4. Joylashtirish, bashorat qilish va nazorat qilish - Model Serving

Google-ning arxitekturasi quyidagi yuqori darajadagi ko'rsatmalarga asoslanadi:

  • Ma'lumot anomaliyalarini erta yozib oling.
  • Ma'lumotni tekshirishni avtomatlashtirish.
  • Ma'lumot xatolarini kod bilan bir xil qat'iylik bilan muomala qiling.
  • Doimiy mashg'ulotlarni qo'llab-quvvatlang.
  • Birgalikda almashishni yaxshilash uchun yagona konfiguratsiya.
  • Ishonchli va kengaytiriladigan ishlab chiqarishni joylashtirish va xizmat ko'rsatish.

Google TFX-ning noyob imkoniyatlarini biroz chuqurroq ko'rib chiqaylik. Donolikning xushchaqchaqligi, shuningdek, bir nechta noyob qobiliyatlarning taqdimoti mavjud.

TFX ma'lumotlarni boshqarish sohasida bir nechta imkoniyatlarni taqdim etadi. Ma'lumotlar tahlili har bir ma'lumotlar to'plami bo'yicha statistikani amalga oshiradi, natijada qiymat taqsimoti, kviling, o'rtacha ko'rsatkich, standart og'ish va hokazo. Bu fikr foydalanuvchilarga ma'lumotlar bazasi shakli haqida tezroq ma'lumot olishga imkon beradi. Ushbu avtomatlashtirilgan tahlil uzluksiz o'qitish va xizmat ko'rsatish muhitini yaxshilash uchun ishlatiladi.

TFX ma'lumotlar almashinuvi bilan shug'ullanadi va izchillikni saqlab qolish uchun o'zgarishlarni saqlaydi. Bundan tashqari, tizim bir xil va to'liq sonli xaritalarni boshqarish uchun yagona va izchil tizimni ta'minlaydi.

TFX ma'lumotlarga bo'lgan taxminlarni aniqlaydigan sxemani isbotlaydi. Ushbu sxema topilgan har qanday anomaliyalarni belgilash uchun ishlatiladi, shuningdek, mashg'ulotlarni blokirovka qilish yoki xususiyatlarni bekor qilish kabi harakatlar tavsiyalarini beradi. Uskunalar yangi sxemalarda foydalanishni osonlashtirish uchun ushbu sxemani avtomatik yaratilishini ta'minlaydi. Bu dasturlash tillarida topilgan statik turni tekshirishdan ilhom oladigan noyob qobiliyatdir.

TFX model tavsifi sifatida TensorFlow-dan foydalanadi. TFX bu "iliq boshlang'ich" tushunchasiga ega, bu Deep Learning-da topilgan o'qitish usulidan ilhomlangan. G'oya mavjud treninglardan foydalangan holda mashg'ulotlar hajmini kamaytirishdir. Oldindan o'rgatilgan tarmoqdan foydalangan holda o'qitishdan farqli o'laroq, "iliq boshlash" umumiy xususiyatlarni tarmoqni boshlang'ich nuqtasi sifatida tanlaydi. Umumiy xususiyatlar bo'yicha o'qitiladigan tarmoq ko'proq ixtisoslashgan tarmoqlarni o'qitish uchun asos sifatida ishlatiladi. Ushbu xususiyat TF-Slim-da taqlid qilingan ko'rinadi.

TFX yuqori darajadagi TensorFlow umumiy spetsifikatsiyasidan foydalanadi (qarang: TensorFlow Hisoblagichlari: Boshqaruv soddaligi va yuqori darajadagi mashinalarni o'rganish tizimlarida moslashuvchanlik) va bir xillikni ta'minlash va turli xil amaliyotlardagi eng yaxshi amaliyotlarni kodlash. Qo'shimcha ma'lumot olish uchun ushbu maqolani Hisoblagichda ko'ring.

TFX tarqatish va xizmat qilish uchun TensorFlow Serving tizimidan foydalanadi. Frame bir xil arxitektura va API-ni saqlab turganda turli xil modellarga xizmat ko'rsatishga imkon beradi. TensorFlow Serving modellarni ko'p qavatli ijarachilarga joylashtirish uchun "yumshoq model-izolyatsiya" ni ta'minlaydi. Ramka shuningdek kengaytirilishi mumkin bo'lgan natijalarni qo'llab-quvvatlash uchun mo'ljallangan.

TFX qog'ozida modellarning chayqalishini optimallashtirish zarurligi ta'kidlangan. Ko'rinishidan, ishlashni 2–5 martagacha oshirish uchun sozlangan protokollar bufer partslari yaratilgan.

Uber va Google-ning ichki arxitekturasini buzish og'riqli joylar va o'zingizning ichki platformangizni yaratish echimlari haqida yaxshi ma'lumot beradi. Mavjud ochiq manbali DL ramkalari bilan taqqoslaganda, meta-ma'lumotni boshqarish va almashishda ko'proq e'tibor mavjud. Google-ning yondashuvi, shuningdek, avtomatlashtirilgan tasdiqlash bilan bir xillikni ta'minlash uchun qo'shimcha harakatlar talab qiladi. Bular biz odatiy dasturiy injiniring loyihalarida ilgari ko'rgan narsalardir.

Mashinalarni o'qitishning ilg'or tajribalariga dasturiy ta'minot muhandislik amaliyotlari, masalan, Test Driven Development (TDD), doimiy integratsiya, orqaga qaytarish va tiklash, o'zgarishlarni boshqarish va boshqalar. Mutaxassis uchun Jupyter daftarini ishlab chiqish va uni operatsiya qilish uchun jamoaga devorga tashlashning o'zi etarli emas. Bugungi kunda eng yaxshi muhandislik kompaniyalarida topadigan bir xil "end-to-end" amaliyotlari, shuningdek, mashinalarni o'rganish ishlarida ham talab qilinadi. Biz buni bugun Uberda ham, Google-da ham ko'rmoqdamiz va shu sababli biz har qanday barqaror ML / DL amaliyotida kutishimiz kerak.

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

Chuqur o'rganishni o'rganing: sun'iy sezgi: aql bovar qilmaydigan chuqur o'rganish inqilobiFoydalanishni chuqur o'rganish: chuqur o'rganish AI o'yin kitobi