Sber.DS yra platforma, leidžianti kurti ir įgyvendinti modelius net ir be kodo

Įvairių dydžių įmonėse kasdien kyla idėjų ir susitikimų, kokius dar procesus galima automatizuoti. Bet be to, kad modeliui sukurti galima skirti daug laiko, jį reikia skirti jo įvertinimui ir patikrinimui, ar gautas rezultatas nėra atsitiktinis. Po įdiegimo bet koks modelis turi būti stebimas ir periodiškai tikrinamas.

Ir tai yra visi etapai, kuriuos reikia atlikti bet kurioje įmonėje, nepaisant jos dydžio. Jei kalbame apie „Sberbank“ mastą ir palikimą, koregavimo skaičius žymiai padidėja. Iki 2019 metų pabaigos „Sber“ jau naudojo daugiau nei 2000 modelių. Neužtenka vien sukurti modelį, reikia integruotis su pramoninėmis sistemomis, sukurti duomenų rinkinius modeliams kurti ir užtikrinti jo veikimo klasteryje kontrolę.

Sber.DS yra platforma, leidžianti kurti ir įgyvendinti modelius net ir be kodo

Mūsų komanda kuria Sber.DS platformą. Tai leidžia išspręsti mašininio mokymosi problemas, pagreitina hipotezių tikrinimo procesą, iš esmės supaprastina modelių kūrimo ir patvirtinimo procesą, taip pat kontroliuoja modelio rezultatą PROM.

Kad neapgautumėte jūsų lūkesčių, iš anksto noriu pasakyti, kad šis įrašas yra įvadinis, o po pjūviu pirmiausia kalbame apie tai, kas iš esmės yra po Sber.DS platformos gaubtu. Apie modelio gyvavimo ciklą nuo sukūrimo iki įgyvendinimo papasakosime atskirai.

Sber.DS sudaro keli komponentai, iš kurių pagrindiniai yra biblioteka, kūrimo sistema ir modelio vykdymo sistema.

Sber.DS yra platforma, leidžianti kurti ir įgyvendinti modelius net ir be kodo

Biblioteka kontroliuoja modelio gyvavimo ciklą nuo to momento, kai atsiranda idėja jį sukurti, iki jo įgyvendinimo PROM, stebėjimo ir eksploatavimo nutraukimo. Daugelį bibliotekos galimybių diktuoja reguliavimo taisyklės, pavyzdžiui, mokymo ir patvirtinimo pavyzdžių ataskaitų teikimas ir saugojimas. Tiesą sakant, tai yra visų mūsų modelių registras.

Kūrimo sistema skirta vizualiniam modelių ir patvirtinimo metodų kūrimui. Sukurti modeliai atlieka pirminį patvirtinimą ir pateikiami vykdymo sistemai, kad galėtų atlikti savo verslo funkcijas. Be to, vykdymo sistemoje modelis gali būti dedamas į monitorių, kad būtų galima periodiškai paleisti patvirtinimo metodus, kad būtų galima stebėti jo veikimą.

Sistemoje yra kelių tipų mazgų. Vieni skirti prisijungti prie įvairių duomenų šaltinių, kiti skirti šaltinio duomenims transformuoti ir juos praturtinti (žymėjimas). Yra daug mazgų, skirtų skirtingiems modeliams kurti, ir mazgų, skirtų jiems patvirtinti. Kūrėjas gali įkelti duomenis iš bet kurio šaltinio, transformuoti, filtruoti, vizualizuoti tarpinius duomenis ir suskaidyti į dalis.

Platformoje taip pat yra paruoštų modulių, kuriuos galima vilkti ir numesti į projektavimo sritį. Visi veiksmai atliekami naudojant vizualizuotą sąsają. Tiesą sakant, galite išspręsti problemą be vienos kodo eilutės.

Jei įmontuotų galimybių neužtenka, sistema suteikia galimybę greitai susikurti savo modulius. Remdamiesi sukūrėme integruotą kūrimo režimą Jupyter branduolio vartai tiems, kurie kuria naujus modulius nuo nulio.

Sber.DS yra platforma, leidžianti kurti ir įgyvendinti modelius net ir be kodo

Sber.DS architektūra paremta mikropaslaugomis. Yra daug nuomonių apie tai, kas yra mikropaslaugos. Kai kas mano, kad pakanka monolitinį kodą išskaidyti į dalis, bet tuo pačiu vis tiek eina į tą pačią duomenų bazę. Mūsų mikropaslauga turi susisiekti su kita mikro paslauga tik per REST API. Nėra būdų, kaip tiesiogiai pasiekti duomenų bazę.

Stengiamės, kad paslaugos netaptų labai didelės ir gremėzdiškos: vienas egzempliorius neturi sunaudoti daugiau nei 4-8 gigabaitus RAM ir turi suteikti galimybę horizontaliai mastyti užklausas paleidžiant naujus egzempliorius. Kiekviena paslauga bendrauja su kitomis tik per REST API (Atidaryti API). Už paslaugą atsakinga komanda privalo išlaikyti API suderinamą atgal iki paskutinio kliento, kuris ją naudoja.

Programos šerdis parašyta Java naudojant Spring Framework. Iš pradžių sprendimas buvo skirtas greitam diegimui debesų infrastruktūroje, todėl programa buvo sukurta naudojant konteinerių sistemą Red Hat OpenShift (Kubernetes). Platforma nuolat tobulinama tiek verslo funkcionalumo didinimo (dedamos naujos jungtys, AutoML), tiek technologinio efektyvumo prasme.

Viena iš mūsų platformos ypatybių yra ta, kad galime paleisti kodą, sukurtą vaizdinėje sąsajoje bet kurioje Sberbank modelio vykdymo sistemoje. Dabar jų jau yra du: vienas „Hadoop“, kitas „OpenShift“ („Docker“). Tuo neapsiribojame ir kuriame integravimo modulius, kad galėtume paleisti kodą bet kurioje infrastruktūroje, įskaitant vietoje ir debesyje. Kalbant apie efektyvios integracijos į „Sberbank“ ekosistemą galimybes, taip pat planuojame remti darbą su esamomis vykdymo aplinkomis. Ateityje sprendimas gali būti lanksčiai integruotas „iš dėžutės“ į bet kurią bet kurios organizacijos kraštovaizdį.

Tie, kurie kada nors bandė palaikyti sprendimą, paleidžiantį Python Hadoop sistemoje PROM, žino, kad neužtenka paruošti ir pristatyti Python vartotojo aplinką kiekviename duomenų mazge. Daugybė mašininio mokymosi C/C++ bibliotekų, kuriose naudojami Python moduliai, neleis jums atsipalaiduoti. Pridėdami naujas bibliotekas ar serverius turime nepamiršti atnaujinti paketų, išlaikant atgalinį suderinamumą su jau įdiegtu modelio kodu.

Yra keletas būdų, kaip tai padaryti. Pavyzdžiui, iš anksto paruoškite kelias dažnai naudojamas bibliotekas ir įdiekite jas PROM. Paprastai naudojamas „Cloudera“ „Hadoop“ paskirstymas sklypas. Taip pat dabar Hadoop galima paleisti dokininkas- konteineriai. Kai kuriais paprastais atvejais kodą galima pristatyti kartu su pakuote pitonas.kiaušiniai.

Bankas labai rimtai žiūri į trečiosios šalies kodo vykdymo saugumą, todėl maksimaliai išnaudojame naujas „Linux“ branduolio funkcijas, kai procesas vyksta izoliuotoje aplinkoje. Linux vardų erdvė, galite apriboti, pavyzdžiui, prieigą prie tinklo ir vietinio disko, o tai žymiai sumažina kenkėjiško kodo galimybes. Kiekvieno skyriaus duomenų sritys yra apsaugotos ir prieinamos tik šių duomenų savininkams. Platforma užtikrina, kad duomenys iš vienos srities gali pasiekti kitą sritį tik per duomenų paskelbimo procesą, valdant visais etapais nuo prieigos prie šaltinių iki duomenų nukreipimo į tikslinę parduotuvę.

Sber.DS yra platforma, leidžianti kurti ir įgyvendinti modelius net ir be kodo

Šiais metais planuojame užbaigti MVP paleisti Python/R/Java programoje Hadoop parašytus modelius. Išsikėlėme sau ambicingą užduotį išmokti paleisti bet kokią pasirinktinę „Hadoop“ aplinką, kad jokiu būdu neapribotume savo platformos vartotojų.

Be to, kaip paaiškėjo, daugelis DS specialistų puikiai moka matematiką ir statistiką, kuria šaunius modelius, tačiau nelabai išmano didelių duomenų transformacijas, todėl jiems reikia mūsų duomenų inžinierių pagalbos ruošiant mokomuosius pavyzdžius. Nusprendėme padėti savo kolegoms ir sukurti patogius modulius standartinei transformacijai ir modelių su Spark varikliu funkcijų paruošimui. Tai leis daugiau laiko skirti modelių kūrimui ir nelaukti, kol duomenų inžinieriai paruoš naują duomenų rinkinį.

Pas mus dirba žmonės, turintys žinių įvairiose srityse: Linux ir DevOps, Hadoop ir Spark, Java ir Spring, Scala ir Akka, OpenShift ir Kubernetes. Kitą kartą kalbėsime apie modelių biblioteką, kaip modelis praeina per gyvavimo ciklą įmonėje, kaip vyksta patvirtinimas ir diegimas.

Šaltinis: www.habr.com

Добавить комментарий