A Google és az Uber legjobb mélyreható gyakorlata

Sokkal inkább egy fenntartható mélyreható tanulási megoldás felépítésére van szükség, mint amit a mély tanulási keretek, például a TensorFlow és a PyTorch biztosítanak. Ezek a keretek elég jók a kutatáshoz, de nem veszik figyelembe a termelés üzembe helyezésével összefüggésben felmerülő problémákat. Korábban írtam a műszaki adósságról és az adaptáltabb biológiai, például az építmények szükségességéről. A Deep Learning segítségével életképes vállalkozás támogatásához feltétlenül szüksége van egy olyan architektúrára, amely támogatja a fenntartható fejlődést a környezet gyakori és váratlan változásainak jelenlétében. A jelenlegi Deep Learning keretrendszer csak a teljes megoldás egyetlen részét biztosítja.

Szerencsére a Google és az Uber betekintést nyújtottak belső architektúrájukba. E két óriás architektúrája két kiváló alaptábor lehet, ha ki kell építeni saját gyártásra kész Deep Learning megoldását.

Az Uber Michelangelo nevű rendszerének elsődleges motivációja az volt, hogy „nem létezik olyan rendszer, amely megbízható, egységes és reprodukálható csővezetékokat építhetne a képzési és előrejelzési adatok létrehozásához és kezeléséhez nagyléptékű”. a műszaki adósság telepítésének és kezelésének kérdése. A cikknek elég érve van, amely meggyőzhet minden szkeptikust, hogy a meglévő keretek nem elegendőek a produkcióhoz.

Nem fogom teljes egészében áttekinteni az Uber papírját. Inkább csak kiemelem néhány fontos szempontot építészetükkel kapcsolatban. Az Uber rendszer nem szigorúan mélyreható tanulási rendszer, hanem egy gépi tanulási rendszer, amely az alkalmazhatóságtól függően számos ML módszert alkalmazhat. A következő nyílt forráskódú összetevőkre épül: HDFS, Spark, Samza, Cassandra, MLLib, XGBoost és TensorFlow. Tehát egy hagyományos BigData rendszer, amely elemzéséhez a Machine Learning összetevőit tartalmazza:

A Michelangelo az Uber adatainak és számítási infrastruktúrájának a tetejére épül, biztosítva az Adattó-tó, amely tárolja az összes Uber tranzakciós és naplózott adatot, a Kafka brókerek, amelyek összesített naplózott üzeneteket tartalmaznak az összes Uber szolgáltatásból, egy Samza streaming számítási motort, irányítják a Cassandra klasztereket és az Uber -ház szolgáltatási és telepítési eszközök.

Az architektúra a következő munkafolyamatot támogatja:

  1. Adatok kezelése
  2. Vonatmodellek
  3. Értékelje modelleket
  4. Telepítés, előrejelzés és figyelés

Az Uber Michaelangelo architektúráját a következőképpen ábrázolják:

Átugorom a Big Data architektúra szokásos aggályait, és rámutatok néhány figyelemre méltó ötletre, amelyek inkább kapcsolódnak a gépi tanuláshoz.

Michaelangelo megosztja az adatkezelést az online és az offline csővezetékek között. Ezen felül, a tudás megosztásának és a szervezet egészében történő újbóli felhasználásának lehetővé tétele érdekében elérhető egy „szolgáltatástároló”:

Jelenleg hozzávetőlegesen 10 000 funkciónk van a Feature Store-ban, amelyek felgyorsítják a gépi tanulási programokat, és a vállalati csapatok folyamatosan újokat építnek. A Feature Store szolgáltatásai automatikusan kiszámolódnak és naponta frissülnek.

Az Uber létrehozott egy domain-specifikus nyelvet (DSL) a modellezők számára, hogy kiválasszák, átalakítsák és kombinálják a szolgáltatást, mielőtt egy modellt továbbítanának az edzéshez és az előrejelzéshez. A jelenleg támogatott ML módszerek döntési fák, lineáris és logisztikai modellek, k-átlagok, idősorok és mély idegi hálózatok.

A modellkonfiguráció meghatározza a típust, a hiperparamétereket, az adatforrás hivatkozásokat, a szolgáltatás DSL kifejezéseit és a számítási erőforrásigényeket (azaz a cpus, a memória, a GPU használata stb.). Az edzést akár YARN, akár Mesos klaszterben végzik.

A modellképzés után kiszámítják a teljesítménymutatót és egy értékelő jelentésben nyújtják be. Az összes információt, azaz a modellkonfigurációt, a megtanult modellt és az értékelő jelentést az elemzett és a központi telepítésre szánt modellezett tárházban tárolják. A modellinformáció a következőket tartalmazza:

  • Ki képzte a modellt
  • A kiképzés kezdő és befejező ideje
  • Teljes modellkonfiguráció (használt szolgáltatások, hiper-paraméter értékek stb.)
  • Hivatkozás a képzési és teszt adatkészletekre
  • Az egyes jellemzők eloszlása ​​és relatív fontossága
  • Modell pontossági mutatók
  • Standard diagramok és grafikonok az egyes modelltípusokhoz (például ROC-görbe, PR-görbe és konfúziós mátrix egy bináris osztályozóhoz)
  • A modell teljes megtanult paraméterei
  • Összefoglaló statisztika a modell megjelenítéséhez

Az ötlet az ML modellekhez való hozzáférés demokratizálása, megosztása másokkal a szervezeti ismeretek javítása érdekében. Az Uber megközelítésének egyedülálló vonása egy „Feature Store” felülete, amely lehetővé teszi sok különböző fél számára, hogy megosszák adataikat a különböző ML modellek között.

A Google munkatársai egy nemrégiben kiadott, „TFX: A TensorFlow-alapú gyártási méretű gépi tanulási platform” című tanulmányt tartalmaznak, amely ismerteti a belső rendszerüket.

A papír felépítése hasonló az Uber papírjának, mivel ugyanazt a munkafolyamatot takarja le:

  1. Adatok kezelése - Adatelemzés, átalakítás és érvényesítés
  2. Vonatmodellek - modellképzés: melegindítás és a modell specifikációja
  3. Értékelje modelleket - Modell kiértékelése és validálása
  4. Telepítés, előrejelzés és monitorozás - modellszolgáltatás

A Google architektúráját az alábbi, magas szintű iránymutatások vezérlik:

  • Az adatok rendellenességeinek korai felvétele.
  • Automatizálja az adatok érvényesítését.
  • Az adathibákat ugyanolyan szigorúan kezelje, mint a kódot.
  • Támogassa a folyamatos képzést.
  • Egységes konfiguráció a megosztás javításához.
  • Megbízható és méretezhető gyártási telepítés és kiszolgálás.

Nézzünk egy kicsit mélyebben a Google TFX egyedülálló képességeire. Rengeteg apróság van a bölcsességgel, valamint számos egyedi képesség bevezetése.

A TFX számos lehetőséget kínál az adatkezelés területén. Az adatelemzés statisztikákat végez az egyes adatkészletekről, információkat szolgáltatva az érték eloszlásáról, kvantáiról, átlagáról, szórásáról stb. Az ötlet az, hogy ez lehetővé teszi a felhasználók számára, hogy gyorsan betekintést nyerjen az adatkészlet alakjáról. Ez az automatizált elemzés a folyamatos képzési és kiszolgálási környezet javítására szolgál.

A TFX kezeli az adatok kóborolását és tárolja az átalakításokat a konzisztencia fenntartása érdekében. Ezenkívül a rendszer egységes és következetes keretet biztosít a jellemzők és egészek leképezésének kezelésére.

A TFX olyan sémát bizonyít, amely olyan verzió, amely meghatározza az adatok elvárásait. Ezt a sémát használják a feltárt rendellenességek megjelölésére, valamint javaslatokat adnak olyan tevékenységekre, mint például a képzés blokkolása vagy az elavult szolgáltatások. Az eszköz lehetővé teszi ennek a sémanak az automatikus generálását, hogy az új projektekhez könnyen használható legyen. Ez egy egyedülálló képesség, amely inspirálja a programozási nyelveken található statikus típusellenőrzést.

A TFX a TensorFlow modellt használja a modellleíráshoz. A TFX e „melegindítás” fogalmát képviseli, amelyet a mély tanulásban található transzfer-tanulási technika ihlette. Az ötlet az, hogy csökkentse a képzés mennyiségét a meglévő képzések kihasználásával. A transzfertanulástól eltérően, amely egy meglévő, előre képzett hálózatot alkalmaz, a melegindítás szelektíven azonosítja az általános funkciók hálózatát kiindulópontjának. A speciálisabb hálózatok képzésének alapjául az általános jellemzőkkel kiképzett hálózat szolgál. Úgy tűnik, hogy ez a szolgáltatás a TF-Slim alkalmazásban van.

A TFX egy általános, magas szintű TensorFlow specifikációt használ (lásd: TensorFlow Estimators: Az egyszerűség és a rugalmasság kezelése a magas szintű gépi tanulási keretekben), hogy biztosítsa az egységességet és a legjobb gyakorlatok kódolását a különböző megvalósítások között. Bővebben lásd a Becslésekről szóló cikket.

A TFX a TensorFlow Serving keretrendszert használja a telepítéshez és a kiszolgáláshoz. A keret lehetővé teszi a különböző modellek kiszolgálását, ugyanakkor ugyanazt az architektúrát és az API-t megtartva. A TensorFlow kiszolgálás egy „puha modell-elkülönítést” tesz lehetővé, amely lehetővé teszi a modellek több bérlő számára történő telepítését. A keretet a méretezhető következtetések támogatására is tervezték.

A TFX cikk megemlítette a modellek optimalizálásának optimalizálásának szükségességét. Úgy tűnik, hogy testreszabott protokoll puffert hoztak létre a teljesítmény javítása érdekében akár 2–5-szer.

Az Uber és a Google belső architektúrájának boncolása jó betekintést nyújt a fájdalompontokra és a belső platform felépítéséhez szükséges megoldásokra. A rendelkezésre álló nyílt forráskódú DL-keretekhez képest nagyobb hangsúly van a metaadatok kezelésében és megosztásában. A Google megközelítése további erőfeszítéseket igényel az egységesség, valamint az automatikus érvényesítés biztosítása érdekében. Ezeket a gyakorlatokat már korábban láttuk a hagyományos szoftverfejlesztési projektek során.

A fejlett gépi tanulási gyakorlatokba bevezetik a szoftverfejlesztési gyakorlatokat, mint például a tesztvezérelt fejlesztés (TDD), a folyamatos integráció, a visszaállítás és helyreállítás, a változásvezérlés stb. Nem elegendő, ha egy szakember fejleszti ki a Jupyter notebookot, és a falra dobja azt egy csapat számára, hogy működőképessé váljon. A gépi tanulási törekvésekben ugyanazokat a végpontok közötti gyakorlatokat kell elvégezni, mint amelyeket ma a legjobb mérnöki vállalatokban találunk. Ezt ma látjuk mind az Uberben, mind a Google-ban, és ezért ezt minden fenntartható ML / DL gyakorlatban elvárnunk kell.

Frissítés: https://www.linkedin.com/pulse/ai-layer-diego-oppenheimer, https://arxiv.org/abs/1804.09997v1

Fedezze fel a mély tanulást: Mesterséges intuíció: A lehetetlen mély tanulási forradalomHasználja ki a Deep Learning: A Deep Learning AI Playbook-ot