Idejas un diskusijas par to, kÄdus citus procesus varÄtu automatizÄt, rodas katru dienu visu lielumu uzÅÄmumos. TaÄu, lai gan modeļa izveide var aizÅemt ievÄrojamu laiku, tas prasa arÄ« laiku, kas pavadÄ«ts tÄ izvÄrtÄÅ”anÄ un pÄrbaudÄ, vai rezultÄti nav nejauÅ”i. PÄc ievieÅ”anas jebkurÅ” modelis ir jÄuzrauga un periodiski jÄpÄrskata.
Å ie visi ir posmi, kas jÄiziet jebkuram uzÅÄmumam neatkarÄ«gi no tÄ lieluma. Å emot vÄrÄ Sberbank mÄrogu un mantojumu, precizÄÅ”anas prasÄ«bu skaits pieaug eksponenciÄli. LÄ«dz 2019. gada beigÄm Sberbank jau izmantoja vairÄk nekÄ 2000 modeļu. Ar modeļa izstrÄdi vienkÄrÅ”i nepietiek; ir nepiecieÅ”ama integrÄcija ar rÅ«pnieciskajÄm sistÄmÄm, datu krÄtuvju izstrÄde modeļu veidoÅ”anai un tÄ uzraudzÄ«bas nodroÅ”inÄÅ”ana visÄ klasterÄ«.
MÅ«su komanda izstrÄdÄ Sber.DS platformu. TÄ nodroÅ”ina maŔīnmÄcīŔanÄs uzdevumu veikÅ”anu, paÄtrina hipotÄžu testÄÅ”anu, vienkÄrÅ”o modeļu izstrÄdi un validÄciju, kÄ arÄ« uzrauga modeļa veiktspÄju PROM vidÄ.
Lai izvairÄ«tos no vilÅ”anÄs, vÄlos uzreiz norÄdÄ«t, ka Å”is ieraksts ir ievads, un turpmÄk es sÄkÅ”u ar Sber.DS platformas darbÄ«bas pamatprincipu paskaidroÅ”anu. Modeļa dzÄ«ves ciklu, sÄkot no izveides lÄ«dz ievieÅ”anai, aplÅ«kosim atseviÅ”Ä·Ä rakstÄ.
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 pÄrvalda modeļa dzÄ«ves ciklu, sÄkot no brīža, kad rodas ideja par tÄ izstrÄdi, lÄ«dz tÄ ievieÅ”anai PROM, uzraudzÄ«bai un deaktivizÄÅ”anai. Daudzas bibliotÄkas iespÄjas nosaka normatÄ«vie noteikumi, piemÄram, apmÄcÄ«bas un validÄcijas datu kopu ziÅoÅ”ana un glabÄÅ”ana. BÅ«tÄ«bÄ tas 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 pakļauti sÄkotnÄjai validÄcijai un tiek piegÄdÄti izpildes sistÄmai, lai veiktu savas biznesa funkcijas. Modeli var arÄ« uzraudzÄ«t izpildes sistÄmÄ, lai periodiski palaistu validÄcijas metodes tÄ darbÄ«bas uzraudzÄ«bai.
SistÄmai ir vairÄku veidu mezgli. Daži ir paredzÄti savienojuma izveidei ar dažÄdiem datu avotiem, bet citi tiek izmantoti avota datu pÄrveidoÅ”anai un bagÄtinÄÅ”anai (apzÄ«mÄÅ”anai). Ir daudz mezglu dažÄdu modeļu veidoÅ”anai un mezgli to validÄÅ”anai. IzstrÄdÄtÄjs var ielÄdÄt datus no jebkura avota, pÄrveidot, filtrÄt, vizualizÄt starpdatus un sadalÄ«t tos daļÄs.
PlatformÄ ir iekļauti arÄ« gatavi moduļi, kurus var vilkt un nomest projekta apgabalÄ. Visas darbÄ«bas tiek veiktas, izmantojot vizuÄlu saskarni. Faktiski problÄmu var atrisinÄt, nerakstot nevienu koda rindiÅu.
Ja iebÅ«vÄtÄs iespÄjas nav pietiekamas, sistÄma nodroÅ”ina iespÄju Ätri izveidot savus moduļus. Esam izveidojuÅ”i integrÄtu izstrÄdes režīmu, kas balstÄ«ts uz tiem, kas veido jaunus moduļus no nulles.

Sber.DS arhitektÅ«ra ir veidota uz mikropakalpojumiem. PastÄv daudzi viedokļi par to, kas ir mikropakalpojumi. Daži uzskata, ka pietiek ar monolÄ«ta koda sadalīŔanu daļÄs, taÄu tÄs joprojÄm piekļūst vienai un tai paÅ”ai datubÄzei. MÅ«suprÄt, mikropakalpojumam ir jÄsazinÄs ar citu mikropakalpojumu tikai caur REST API. Nav risinÄjumu tieÅ”ai piekļuvei datubÄzei.
MÄs cenÅ”amies nepieļaut, ka pakalpojumi kļūst pÄrÄk lieli un apgrÅ«tinoÅ”i: vienai instancei nevajadzÄtu patÄrÄt vairÄk par 4ā8 gigabaitiem RAM un tai jÄspÄj horizontÄli mÄrogot pieprasÄ«jumus, palaižot jaunas instances. Katrs pakalpojums sazinÄs ar citiem tikai, izmantojot REST API (). Par pakalpojumu atbildÄ«gÄ komanda ir spiesta uzturÄt API atpakaļsaderÄ«bu lÄ«dz pÄdÄjam klientam, kas to izmanto.
Lietojumprogrammas kodols ir rakstÄ«ts Java valodÄ, izmantojot Spring Framework. RisinÄjums tika izstrÄdÄts no paÅ”a sÄkuma, lai to varÄtu Ätri izvietot mÄkoÅinfrastruktÅ«rÄ, tÄpÄc tas tika veidots, izmantojot konteinerizÄcijas sistÄmu. (Platforma nepÄrtraukti attÄ«stÄs gan biznesa funkcionalitÄtes paplaÅ”inÄÅ”anas (tiek pievienoti jauni savienotÄji un AutoML), gan tehnoloÄ£iskÄs efektivitÄtes ziÅÄ.
Viena no mÅ«su platformas galvenajÄm iezÄ«mÄm ir tÄ, ka mÄs varam palaist vizuÄlajÄ saskarnÄ izstrÄdÄtu kodu jebkurÄ Sberbank izpildlaika sistÄmÄ. PaÅ”laik mums ir divas: viena Hadoop un viena OpenShift (Docker). MÄs neapstÄjamies pie tÄ, veidojot integrÄcijas moduļus koda palaiÅ”anai jebkurÄ infrastruktÅ«rÄ, tostarp lokÄli un mÄkonÄ«. Lai nodroÅ”inÄtu efektÄ«vu integrÄciju Sberbank ekosistÄmÄ, mÄs plÄnojam atbalstÄ«t arÄ« esoÅ”Äs izpildlaika vides. NÄkotnÄ risinÄjumu varÄs elastÄ«gi integrÄt "Ärpus kastes" jebkuras organizÄcijas vidÄ.
Ikviens, kurÅ” jebkad ir mÄÄ£inÄjis atbalstÄ«t risinÄjumu, kas darbojas ar Python operÄtÄjsistÄmÄ Hadoop PROM vidÄ, zina, ka vienkÄrÅ”i sagatavot un izvietot pielÄgotu Python vidi katrÄ datu mezglÄ nav pietiekami. MilzÄ«gais C/C++ maŔīnmÄcīŔanÄs bibliotÄku skaits, kas izmanto Python moduļus, jÅ«s liks elpai aizrauties. Pievienojot jaunas bibliotÄkas vai serverus, jÄatceras atjauninÄt pakotnes, saglabÄjot atpakaļsaderÄ«bu ar esoÅ”o modeļa kodu.
To var izdarÄ«t vairÄkos veidos. PiemÄram, iepriekÅ” sagatavot vairÄkas bieži izmantotas bibliotÄkas un ieviest tÄs PROM. Cloudera Hadoop distribÅ«cija parasti izmanto ArÄ« tagad Hadoop ir iespÄja palaist -konteineri. Dažos vienkÄrÅ”os gadÄ«jumos kodu ir iespÄjams piegÄdÄt kopÄ ar iepakojumu. .
Banka ļoti nopietni uztver treÅ”o puÅ”u koda palaiÅ”anas droŔību, tÄpÄc mÄs maksimÄli izmantojam jaunÄs kodola funkcijas. Linux, kur process darbojas izolÄtÄ vidÄ PiemÄram, piekļuvi tÄ«klam un lokÄlajam diskam var ierobežot, ievÄrojami samazinot ļaunprÄtÄ«ga koda iespÄjamÄ«bu. Katras nodaļas datu zonas ir aizsargÄtas un pieejamas tikai Å”o datu Ä«paÅ”niekiem. Platforma nodroÅ”ina, ka dati no vienas zonas var sasniegt citu tikai caur datu publicÄÅ”anas procesu ar kontroli visos posmos, sÄkot no piekļuves avotiem lÄ«dz datu nonÄkÅ”anai mÄrÄ·a krÄtuvÄ.

Å ogad plÄnojam pabeigt MVP testu Python/R/Java valodÄ rakstÄ«tu modeļu palaiÅ”anai Hadoop vidÄ. Esam izvirzÄ«juÅ”i sev ambiciozu mÄrÄ·i iemÄcÄ«ties palaist jebkuru lietotÄja vidi Hadoop vidÄ, lai nekÄdÄ veidÄ neierobežotu mÅ«su platformas lietotÄjus.
TurklÄt izrÄdÄs, ka daudzi datu zinÄtnieki ir labi pÄrzina matemÄtiku un statistiku un veido lieliskus modeļus, taÄu viÅiem trÅ«kst pamatÄ«gas izpratnes par lielo datu transformÄcijÄm un viÅiem ir nepiecieÅ”ama mÅ«su datu inženieru palÄ«dzÄ«ba, lai sagatavotu apmÄcÄ«bas datu kopas. MÄs nolÄmÄm palÄ«dzÄt saviem kolÄÄ£iem, izveidojot lietotÄjam draudzÄ«gus moduļus standarta transformÄcijÄm un funkciju sagatavoÅ”anai Spark balstÄ«tiem modeļiem. Tas ļaus mums veltÄ«t vairÄk laika modeļu izstrÄdei un izvairÄ«ties no gaidīŔanas, 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, to, kÄ modelis virzÄs cauri dzÄ«ves ciklam uzÅÄmumÄ, un kÄ notiek validÄcija un ievieÅ”ana.
Avots: www.habr.com
