Idejas un tikÅ”anÄs par to, kÄdus citus procesus var automatizÄt, rodas dažÄda lieluma uzÅÄmumos katru dienu. Bet papildus tam, ka modeļa izveidei var veltÄ«t daudz laika, tas jÄvelta tÄ izvÄrtÄÅ”anai un pÄrbaudei, vai iegÅ«tais rezultÄts nav nejauÅ”s. PÄc ievieÅ”anas jebkurÅ” modelis ir jÄuzrauga un periodiski jÄpÄrbauda.
Un tie ir visi posmi, kas jÄveic jebkurÄ uzÅÄmumÄ neatkarÄ«gi no tÄ lieluma. Ja mÄs runÄjam par Sberbank mÄrogu un mantojumu, precizÄjumu skaits ievÄrojami palielinÄs. LÄ«dz 2019. gada beigÄm Sber jau bija izmantojis vairÄk nekÄ 2000 modeļu. Nepietiek tikai ar modeļa izstrÄdi, ir nepiecieÅ”ams integrÄties ar industriÄlajÄm sistÄmÄm, izstrÄdÄt datu centrus modeļu veidoÅ”anai un nodroÅ”inÄt tÄ darbÄ«bas kontroli klasterÄ«.
MÅ«su komanda izstrÄdÄ Sber.DS platformu. Tas ļauj atrisinÄt maŔīnmÄcÄ«Å”anÄs problÄmas, paÄtrina hipotÄžu pÄrbaudes procesu, principÄ vienkÄrÅ”o modeļu izstrÄdes un apstiprinÄÅ”anas procesu, kÄ arÄ« kontrolÄ modeļa rezultÄtu PROM.
Lai nemaldinÄtu jÅ«su cerÄ«bas, es vÄlos iepriekÅ” pateikt, ka Å”is ir ievada ieraksts, un sÄkumÄ mÄs runÄjam par to, kas principÄ atrodas zem Sber.DS platformas pÄrsega. Par modeļa dzÄ«ves ciklu no radÄ«Å”anas lÄ«dz ievieÅ”anai pastÄstÄ«sim atseviŔķi.
Sber.DS sastÄv no vairÄkiem komponentiem, no kuriem galvenie ir bibliotÄka, izstrÄdes sistÄma un modeļa izpildes sistÄma.
BibliotÄka kontrolÄ modeļa dzÄ«ves ciklu no brīža, kad parÄdÄs ideja to izstrÄdÄt, lÄ«dz tÄ ievieÅ”anai PROM, monitoringam un ekspluatÄcijas pÄrtraukÅ”anai. Daudzas bibliotÄkas iespÄjas nosaka regulatora noteikumi, piemÄram, apmÄcÄ«bas un validÄcijas paraugu ziÅoÅ”ana un uzglabÄÅ”ana. Faktiski Å”is ir visu mÅ«su modeļu reÄ£istrs.
IzstrÄdes sistÄma ir paredzÄta modeļu un validÄcijas metožu vizuÄlai izstrÄdei. IzstrÄdÄtie modeļi tiek sÄkotnÄji pÄrbaudÄ«ti un tiek piegÄdÄti izpildes sistÄmai to biznesa funkciju veikÅ”anai. ArÄ« izpildlaika sistÄmÄ modeli var ievietot monitorÄ, lai periodiski palaistu validÄcijas metodes tÄ darbÄ«bas uzraudzÄ«bai.
SistÄmÄ ir vairÄki mezglu veidi. Daži ir paredzÄti, lai izveidotu savienojumu ar dažÄdiem datu avotiem, citi ir paredzÄti avota datu pÄrveidoÅ”anai un bagÄtinÄÅ”anai (marÄ·Äjums). Ir daudz mezglu dažÄdu modeļu veidoÅ”anai un mezglu to apstiprinÄÅ”anai. IzstrÄdÄtÄjs var ielÄdÄt datus no jebkura avota, pÄrveidot, filtrÄt, vizualizÄt starpposma datus un sadalÄ«t tos daļÄs.
PlatformÄ ir arÄ« gatavi moduļi, kurus var vilkt un nomest dizaina zonÄ. Visas darbÄ«bas tiek veiktas, izmantojot vizualizÄtu saskarni. Faktiski jÅ«s varat atrisinÄt problÄmu bez vienas koda rindiÅas.
Ja ar iebÅ«vÄtajÄm iespÄjÄm nepietiek, sistÄma nodroÅ”ina iespÄju Ätri izveidot savus moduļus. MÄs izveidojÄm integrÄtu izstrÄdes režīmu, pamatojoties uz
Sber.DS arhitektÅ«ra ir balstÄ«ta uz mikropakalpojumiem. Ir daudz viedokļu par to, kas ir mikropakalpojumi. Daži cilvÄki domÄ, ka ir pietiekami sadalÄ«t monolÄ«tu kodu daļÄs, bet tajÄ paÅ”Ä laikÄ viÅi joprojÄm dodas uz to paÅ”u datu bÄzi. MÅ«su mikropakalpojumam ir jÄsazinÄs ar citu mikropakalpojumu, tikai izmantojot REST API. Nav risinÄjumu, lai tieÅ”i piekļūtu datu bÄzei.
MÄs cenÅ”amies nodroÅ”inÄt, lai pakalpojumi nekļūtu ļoti lieli un neveikli: viena instance nedrÄ«kst patÄrÄt vairÄk par 4-8 gigabaitiem RAM un jÄnodroÅ”ina iespÄja horizontÄli mÄrogot pieprasÄ«jumus, palaižot jaunas instances. Katrs pakalpojums sazinÄs ar citiem tikai caur REST API (
Lietojumprogrammas kodols ir rakstÄ«ts Java, izmantojot Spring Framework. RisinÄjums sÄkotnÄji bija paredzÄts Ätrai izvietoÅ”anai mÄkoÅu infrastruktÅ«rÄ, tÄpÄc lietojumprogramma tika veidota, izmantojot konteinerizÄcijas sistÄmu
Viena no mÅ«su platformas iespÄjÄm ir tÄda, ka mÄs varam palaist kodu, kas izstrÄdÄts vizuÄlÄ saskarnÄ jebkurÄ Sberbank modeļa izpildes sistÄmÄ. Tagad jau ir divi no tiem: viens Hadoop, otrs OpenShift (Docker). MÄs neapstÄjamies pie tÄ un veidojam integrÄcijas moduļus, lai palaistu kodu jebkurÄ infrastruktÅ«rÄ, tostarp lokÄlajÄ un mÄkonÄ«. AttiecÄ«bÄ uz iespÄjÄm efektÄ«vi integrÄties Sberbank ekosistÄmÄ, mÄs arÄ« plÄnojam atbalstÄ«t darbu ar esoÅ”ajÄm izpildes vidÄm. NÄkotnÄ risinÄjumu varÄs elastÄ«gi integrÄt āno kastesā jebkurÄ jebkuras organizÄcijas ainavÄ.
Tie, kas kÄdreiz ir mÄÄ£inÄjuÅ”i atbalstÄ«t risinÄjumu, kas palaiž Python Hadoop programmÄ PROM, zina, ka nepietiek ar Python lietotÄja vides sagatavoÅ”anu un piegÄdi katram datu mezglam. Lielais C/C++ bibliotÄku skaits maŔīnmÄcÄ«bai, kas izmanto Python moduļus, neļaus jums bÅ«t mierÄ«gam. Mums ir jÄatceras atjauninÄt pakotnes, pievienojot jaunas bibliotÄkas vai serverus, vienlaikus saglabÄjot atpakaļejoÅ”u saderÄ«bu ar jau ieviesto modeļa kodu.
Ir vairÄkas pieejas, kÄ to izdarÄ«t. PiemÄram, iepriekÅ” sagatavojiet vairÄkas bieži lietotas bibliotÄkas un ieviesiet tÄs PROM. Cloudera Hadoop izplatÄ«Å”anÄ viÅi parasti izmanto
Banka ļoti nopietni uztver treÅ”Äs puses koda palaiÅ”anas droŔību, tÄpÄc mÄs maksimÄli izmantojam Linux kodola jaunÄs iespÄjas, kur process darbojas izolÄtÄ vidÄ.
Å ogad mÄs plÄnojam pabeigt Python/R/Java valodÄ rakstÄ«tu modeļu palaiÅ”anas MVP vietnÄ Hadoop. MÄs esam izvirzÄ«juÅ”i sev ambiciozu uzdevumu iemÄcÄ«ties palaist jebkuru pielÄgotu vidi Hadoop, lai nekÄdÄ veidÄ neierobežotu mÅ«su platformas lietotÄjus.
TurklÄt, kÄ izrÄdÄ«jÄs, daudzi DS speciÄlisti lieliski pÄrvalda matemÄtiku un statistiku, veido forÅ”us modeļus, taÄu nav Ä«paÅ”i labi orientÄti lielo datu transformÄcijÄs, un viÅiem nepiecieÅ”ama mÅ«su datu inženieru palÄ«dzÄ«ba, lai sagatavotu mÄcÄ«bu paraugus. MÄs nolÄmÄm palÄ«dzÄt saviem kolÄÄ£iem un izveidot Ärtus moduļus standarta pÄrveidoÅ”anai un funkciju sagatavoÅ”anai Spark dzinÄja modeļiem. Tas ļaus jums pavadÄ«t vairÄk laika modeļu izstrÄdei, nevis gaidÄ«t, kamÄr datu inženieri sagatavos jaunu datu kopu.
MÄs nodarbinÄm cilvÄkus ar zinÄÅ”anÄm dažÄdÄs jomÄs: Linux un DevOps, Hadoop un Spark, Java un Spring, Scala un Akka, OpenShift un Kubernetes. NÄkamajÄ reizÄ mÄs runÄsim par modeļu bibliotÄku, kÄ modelis iziet dzÄ«ves ciklu uzÅÄmumÄ, kÄ notiek validÄcija un ievieÅ”ana.
Avots: www.habr.com