Google un Uber paraugprakse padziļinātai apmācībai

Ilgtspējīga dziļās mācīšanās risinājuma veidošanai ir vairāk nekā tas, ko nodrošina tādas dziļās mācīšanās sistēmas kā TensorFlow un PyTorch. Šie ietvari ir pietiekami labi, lai veiktu izpēti, taču tie neņem vērā problēmas, kas rodas ražošanas izvietošanas rezultātā. Iepriekš esmu rakstījis par tehnisko parādu un nepieciešamību pēc adaptīvākām bioloģiskām, piemēram, arhitektūrām. Lai atbalstītu dzīvotspējīgu biznesu, izmantojot dziļo mācīšanos, jums absolūti nepieciešama arhitektūra, kas atbalsta ilgtspējīgus uzlabojumus biežu un negaidītu vides izmaiņu gadījumā. Pašreizējā padziļinātās mācīšanās sistēma nodrošina tikai pilnīga risinājuma vienu daļu.

Par laimi, Google un Uber ir ieskatu viņu iekšējā arhitektūrā. Šo divu gigantu arhitektūra var būt divas lieliskas bāzes nometnes, ja jums ir jāveido savs ražošanas gatavs Deep Learning risinājums.

Ubera sistēmas Mikelandželo galvenā motivācija bija tā, ka “nebija ieviestas sistēmas, lai izveidotu uzticamus, vienveidīgus un reproducējamus cauruļvadus apmācības un prognozēšanas datu izveidošanai un pārvaldībai mērogā.” Savā rakstā viņi apraksta esošo ietvaru ierobežojumus ar tehniskā parāda izvietošanas un pārvaldības jautājumi. Darbā ir pietiekami daudz argumentu, kas pārliecinātu skeptiķus, ka esošie ietvari ir nepietiekami iestudējumam.

Es negrasos kopā ar jums lasīt visu Uber papīru. Drīzāk es tikai gribētu uzsvērt dažus svarīgus jautājumus par viņu arhitektūru. Uber sistēma nav stingri dziļo mācību sistēma, bet drīzāk mašīnmācīšanās sistēma, kas atkarībā no piemērotības var izmantot daudzas ML metodes. Tas ir veidots uz šādiem atvērtā pirmkoda komponentiem: HDFS, Spark, Samza, Cassandra, MLLib, XGBoost un TensorFlow. Tātad, tā ir parasta BigData sistēma, kas savā analītikā iekļauj Machine Learning komponentus:

Mikelandželo ir veidots, balstoties uz Uber datiem un skaitļošanas infrastruktūru, nodrošinot datu ezeru, kurā tiek glabāti visi Uber darījumu un reģistrētie dati, Kafka brokeri, kas apkopo reģistrētos ziņojumus no visiem Uber pakalpojumiem, Samza straumēšanas skaitļošanas motoru, pārvalda Cassandra kopas un Uber - mājas pakalpojumu nodrošināšanas un izvietošanas rīki.

Arhitektūra atbalsta šādu darbplūsmu:

  1. Pārvaldiet datus
  2. Vilcienu modeļi
  3. Novērtējiet modeļus
  4. Izvietot, prognozēt un pārraudzīt

Ubera Michaelangelo arhitektūras ir attēlotas šādi:

Es gatavojos izlaist parastās Big Data arhitektūras problēmas un norādīt uz dažām ievērojamām idejām, kas vairāk attiecas uz mašīnmācību.

Mikelandželo datu pārvaldību sadala starp tiešsaistes un bezsaistes cauruļvadiem. Turklāt, lai ļautu dalīties ar zināšanām un atkārtoti izmantot visā organizācijā, ir pieejams “funkciju veikals”:

Pašlaik Feature Store mums ir aptuveni 10 000 funkciju, kuras tiek izmantotas, lai paātrinātu mašīnmācīšanās projektus, un komandas visā uzņēmumā visu laiku pievieno jaunas. Funkciju veikalā esošās funkcijas tiek automātiski aprēķinātas un atjauninātas katru dienu.

Uber izveidoja domēna specifisko valodu (DSL), lai modelētāji varētu izvēlēties, pārveidot un apvienot funkciju pirms modeļa nosūtīšanas apmācībai un prognozēšanai. Pašlaik atbalstītās ML metodes ir lēmumu koki, lineārie un loģistikas modeļi, k-līdzekļi, laikrindas un dziļi neironu tīkli.

Modeļa konfigurācijā ir norādīts tips, hiperparametri, datu avota atsauces, objekta DSL izteiksmes un aprēķināt resursa prasības (t.i., kopija, atmiņa, GPU izmantošana utt.). Apmācība tiek veikta YARN vai Mesos klasterī.

Pēc modeļa apmācības tiek aprēķināta veiktspējas metrika un sniegta novērtējuma ziņojumā. Visa informācija, tas ir, modeļa konfigurācija, iemācītais modelis un novērtējuma ziņojums, tiek glabāta versijas modeļa krātuvē analīzei un izvietošanai. Informācija par modeli satur:

  • Kas apmācīja modeli
  • Apmācības darba sākuma un beigu laiks
  • Pilna modeļa konfigurācija (izmantotās funkcijas, hiperparametru vērtības utt.)
  • Atsauce uz apmācības un testa datu kopām
  • Katras pazīmes izplatība un relatīvā nozīme
  • Modeļa precizitātes metrika
  • Katra modeļa veida standarta diagrammas un diagrammas (piemēram, ROC līkne, PR līkne un binārā klasifikatora sajaukšanas matrica)
  • Pilni apgūtie modeļa parametri
  • Kopsavilkuma statistika modeļa vizualizācijai

Ideja ir demokratizēt piekļuvi ML modeļiem, daloties tajā ar citiem, lai uzlabotu zināšanas par organizāciju. Uber pieejas unikālā iezīme ir “Feature Store” pārklājums, kas ļauj daudzām dažādām pusēm apmainīties ar datiem dažādos ML modeļos.

Google ļaudīm ir nesen izdots raksts “TFX: uz TensorFlow balstīta ražošanas apjoma mašīnu apguves platforma”, kurā aprakstīta viņu iekšējā sistēma.

Papīrs ir veidots līdzīgi kā Uber papīrs, jo tas attiecas uz to pašu darbplūsmu:

  1. Pārvaldiet datus - datu analīze, pārveidošana un apstiprināšana
  2. Vilcienu modeļi - Modeļu apmācība: iesildīšana un modeļa specifikācija
  3. Novērtēt modeļus - modeļa novērtēšana un apstiprināšana
  4. Izvietot, prognozēt un uzraudzīt - modeļa apkalpošana

Google arhitektūru virza šādas noteiktas augsta līmeņa vadlīnijas:

  • Datu anomāliju uztveršana agri.
  • Automatizējiet datu validāciju.
  • Datu kļūdas apstrādājiet ar tādu pašu stingrību kā kodu.
  • Atbalstiet nepārtrauktu apmācību.
  • Vienota konfigurācija, lai uzlabotu koplietošanu.
  • Uzticama un pielāgojama ražošanas izvietošana un apkalpošana.

Padziļināti izpētīsim Google TFX unikālās iespējas. Ir daudz sīkumu gudrības, kā arī ieviestas vairākas unikālas iespējas.

TFX nodrošina vairākas iespējas datu pārvaldības jomā. Datu analīze veic statistiku par katru datu kopu, sniedzot informāciju par vērtību sadalījumu, kvantām, vidējo vērtību, standartnovirzi utt. Ideja ir tāda, ka tas lietotājiem ļauj ātri gūt ieskatu par datu kopas formu. Šī automatizētā analīze tiek izmantota, lai uzlabotu nepārtrauktu apmācību un apkalpošanas vidi.

Lai saglabātu konsekvenci, TFX apstrādā datu izkropļošanu un saglabā pārvērtības. Turklāt šī sistēma nodrošina vienotu un konsekventu sistēmu, lai pārvaldītu pazīmju un skaitļu salīdzinājumus.

TFX pierāda shēmu, kas ir versija, kas norāda uz datiem sagaidāmo. Šī shēma tiek izmantota, lai apzīmētu konstatētās novirzes, kā arī sniedz ieteikumus par darbībām, piemēram, apmācības bloķēšanu vai funkciju pārtraukšanu. Instrumenti nodrošina šīs shēmas automātisku ģenerēšanu, lai to būtu ērti izmantot jauniem projektiem. Šī ir unikāla spēja, kas smeļas iedvesmu no statiskās tipa pārbaudes, kas atrodama programmēšanas valodās.

TFX kā modeļa aprakstu izmanto TensorFlow. TFX ir šis “siltās palaišanas” jēdziens, kuru iedvesmojusi nodošanas mācīšanās tehnika, kas atrodama Dziļajā apmācībā. Ideja ir samazināt apmācību daudzumu, izmantojot esošās apmācības. Atšķirībā no tālākizglītības, kurā tiek izmantots jau izveidots iepriekš apmācīts tīkls, siltā uzsākšana selektīvi identificē vispārējo funkciju tīklu kā tā sākumpunktu. Tīkls, kas tiek apmācīts par vispārējām īpašībām, tiek izmantots par pamatu specializētāku tīklu apmācībai. Šķiet, ka šī funkcija ir ieviesta TF-Slim.

TFX izmanto kopēju augsta līmeņa TensorFlow specifikāciju (sk. TensorFlow novērtētājus: vienkāršības pārvaldība un elastība augsta līmeņa mašīnmācīšanās shēmās), lai nodrošinātu vienveidību un kodētu labāko praksi dažādās ieviešanās. Sīkāku informāciju skatiet šajā rakstā par aprēķiniem.

TFX izvietošanai un apkalpošanai izmanto TensorFlow apkalpošanas sistēmu. Ietvars ļauj apkalpot dažādus modeļus, saglabājot to pašu arhitektūru un API. TensorFlow apkalpošana pierāda “maigu modeļa izolāciju”, kas ļauj vairākiem īrniekiem izvietot modeļus. Ietvars ir paredzēts arī pielāgojamiem secinājumiem.

TFX rakstā tika pieminēta nepieciešamība optimizēt modeļu pelnīšanu. Acīmredzot tika izveidots pielāgots protokola buferis, lai uzlabotu veiktspēju pat 2–5 reizes.

Uber un Google iekšējās arhitektūras sadalīšana sniedz labu ieskatu sāpju punktos un risinājumus savas iekšējās platformas izveidošanai. Salīdzinājumā ar pieejamajiem atvērtā koda DL ietvariem ir lielāks uzsvars uz metainformācijas pārvaldību un apmaiņu. Google pieeja prasa arī papildu pūles, lai nodrošinātu vienveidību, kā arī automātisku validāciju. Tāda ir prakse, ko iepriekš esam redzējuši parastos programmatūras inženierijas projektos.

Mūsdienīgās mašīnmācīšanās praksēs tiek ieviestas tādas programmatūras inženierijas prakses kā Test Driven Development (TDD), nepārtraukta integrācija, atcelšana un atkopšana, izmaiņu kontrole utt. Nepietiek ar to, ka speciālists izstrādā uz Jupyter piezīmju grāmatiņas un met to virs sienas komandai, lai tā darbotos. Tāda pati end-to-end devops prakse, kādu mēs šodien sastopam labākajos inženiertehniskajos uzņēmumos, tiks pieprasīta arī mašīnmācības centienos. Mēs to redzam šodien gan Uber, gan Google, un tāpēc mums to vajadzētu gaidīt jebkurā ilgtspējīgā ML / DL praksē.

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

Izpētiet dziļo mācīšanos: mākslīgā intuīcija: neiespējamā dziļā mācību revolūcijaIzmantot dziļo mācīšanos: Dziļās mācīšanās AI mācību grāmata