Գաղափարներ և հանդիպումներ այն մասին, թե ինչ այլ գործընթացներ կարող են ավտոմատացվել ամեն օր առաջանում են տարբեր չափերի բիզնեսներում: Բայց բացի այն, որ շատ ժամանակ կարելի է ծախսել մոդելի ստեղծման վրա, պետք է ծախսել այն գնահատելու և ստուգելու, որ ստացված արդյունքը պատահական չէ։ Իրագործումից հետո ցանկացած մոդել պետք է մոնիտորինգի ենթարկվի և պարբերաբար ստուգվի:
Եվ սրանք այն բոլոր փուլերն են, որոնք պետք է ավարտին հասցվեն ցանկացած ընկերությունում՝ անկախ նրա մեծությունից։ Եթե մենք խոսում ենք Սբերբանկի մասշտաբների և ժառանգության մասին, ապա ճշգրտումների թիվը զգալիորեն ավելանում է: 2019 թվականի վերջին Sber-ն արդեն օգտագործել է ավելի քան 2000 մոդել։ Բավական չէ պարզապես մոդելի մշակումը, անհրաժեշտ է ինտեգրվել արդյունաբերական համակարգերին, մշակել տվյալների գծերը մոդելների կառուցման համար և ապահովել կլաստերի վրա դրա գործունեության վերահսկումը:
Մեր թիմը մշակում է Sber.DS հարթակը: Այն թույլ է տալիս լուծել մեքենայական ուսուցման խնդիրները, արագացնում է վարկածների փորձարկման գործընթացը, սկզբունքորեն պարզեցնում է մոդելների մշակման և վավերացման գործընթացը, ինչպես նաև վերահսկում է մոդելի արդյունքը PROM-ում:
Ձեր ակնկալիքները չխաբելու համար նախապես ուզում եմ ասել, որ այս գրառումը ներածական է, և կտրվածքի տակ, սկզբի համար, մենք խոսում ենք այն մասին, թե ինչ է, սկզբունքորեն, գտնվում է Sber.DS հարթակի գլխարկի տակ։ Առանձին-առանձին կպատմենք մոդելի կյանքի ցիկլի մասին՝ ստեղծումից մինչև իրականացում։
Sber.DS-ը բաղկացած է մի քանի բաղադրիչներից, որոնցից հիմնականներն են գրադարանը, զարգացման համակարգը և մոդելի կատարման համակարգը:
Գրադարանը վերահսկում է մոդելի կյանքի ցիկլը՝ այն մշակելու գաղափարի ի հայտ գալու պահից մինչև դրա ներդրումը PROM-ում, մոնիտորինգ և շահագործումից հանելը: Գրադարանի բազմաթիվ հնարավորություններ թելադրված են կարգավորիչի կանոններով, օրինակ՝ վերապատրաստման և վավերացման նմուշների հաշվետվությունների և պահպանման մասին: Փաստորեն, սա մեր բոլոր մոդելների ռեգիստրն է։
Զարգացման համակարգը նախատեսված է մոդելների և վավերացման տեխնիկայի տեսողական մշակման համար: Մշակված մոդելները ենթարկվում են նախնական վավերացման և մատակարարվում են կատարողական համակարգին՝ իրենց բիզնես գործառույթները կատարելու համար: Նաև գործարկման ժամանակի համակարգում մոդելը կարող է տեղադրվել մոնիտորի վրա, որպեսզի պարբերաբար գործարկվեն վավերացման տեխնիկան՝ վերահսկելու դրա աշխատանքը:
Համակարգում կան մի քանի տեսակի հանգույցներ. Ոմանք նախագծված են տվյալների տարբեր աղբյուրներին միանալու համար, մյուսները՝ փոխակերպելու աղբյուրի տվյալները և հարստացնելու դրանք (նշում): Կան բազմաթիվ հանգույցներ տարբեր մոդելներ կառուցելու համար և հանգույցներ դրանք վավերացնելու համար: Մշակողը կարող է բեռնել տվյալներ ցանկացած աղբյուրից, վերափոխել, զտել, պատկերացնել միջանկյալ տվյալները և բաժանել դրանք մասերի:
Պլատֆորմը պարունակում է նաև պատրաստի մոդուլներ, որոնք կարելի է քաշել և թողնել դիզայնի տարածք: Բոլոր գործողությունները կատարվում են վիզուալացված ինտերֆեյսի միջոցով: Փաստորեն, դուք կարող եք լուծել խնդիրը առանց կոդի մեկ տողի:
Եթե ներկառուցված հնարավորությունները բավարար չեն, ապա համակարգը հնարավորություն է տալիս արագ ստեղծել ձեր սեփական մոդուլները: Մենք կատարել ենք զարգացման ինտեգրված ռեժիմ՝ հիմնվելով
Sber.DS-ի ճարտարապետությունը կառուցված է միկրոծառայությունների վրա: Շատ կարծիքներ կան այն մասին, թե ինչ են միկրոսերվիսները։ Ոմանք կարծում են, որ բավական է միաձույլ կոդը բաժանել մասերի, բայց միևնույն ժամանակ նրանք դեռ գնում են նույն տվյալների բազա։ Մեր միկրոսերվիսը պետք է այլ միկրոծառայության հետ հաղորդակցվի միայն REST API-ի միջոցով: Տվյալների բազան ուղղակիորեն մուտք գործելու համար լուծումներ չկան:
Մենք փորձում ենք ապահովել, որ ծառայությունները չդառնան շատ մեծ և անշնորհք. մեկ օրինակը չպետք է սպառի 4-8 գիգաբայթից ավելի RAM և պետք է ապահովի հարցումների հորիզոնական մասշտաբի հնարավորություն՝ գործարկելով նոր օրինակներ: Յուրաքանչյուր ծառայություն ուրիշների հետ շփվում է միայն REST API-ի միջոցով (
Հավելվածի առանցքը գրված է Java-ով, օգտագործելով Spring Framework-ը: Լուծումն ի սկզբանե նախատեսված էր ամպային ենթակառուցվածքում արագ տեղակայման համար, ուստի հավելվածը կառուցվել է կոնտեյներացման համակարգի միջոցով:
Մեր պլատֆորմի առանձնահատկություններից մեկն այն է, որ մենք կարող ենք գործարկել կոդ, որը մշակվել է տեսողական ինտերֆեյսով Սբերբանկի ցանկացած մոդելի կատարման համակարգում: Այժմ դրանք արդեն երկուսն են՝ մեկը Hadoop-ում, մյուսը՝ OpenShift-ում (Docker): Մենք կանգ չենք առնում դրանով և ստեղծում ենք ինտեգրման մոդուլներ՝ ցանկացած ենթակառուցվածքի վրա կոդ գործարկելու համար, ներառյալ ներքին և ամպի մեջ: Ինչ վերաբերում է Սբերբանկի էկոհամակարգին արդյունավետ ինտեգրվելու հնարավորություններին, մենք նախատեսում ենք նաև աջակցել գործող կատարողական միջավայրերի հետ աշխատանքին: Ապագայում լուծումը կարող է ճկուն կերպով ինտեգրվել ցանկացած կազմակերպության ցանկացած լանդշաֆտի մեջ:
Նրանք, ովքեր երբևէ փորձել են աջակցել մի լուծում, որն աշխատում է Python-ը Hadoop-ի վրա PROM-ում, գիտեն, որ դա բավարար չէ յուրաքանչյուր տվյալների հանգույցում Python-ի օգտատերերի միջավայր պատրաստելն ու մատուցելը: Python մոդուլներ օգտագործող մեքենայական ուսուցման համար C/C++ գրադարանների հսկայական քանակությունը թույլ չի տա ձեզ հանգիստ լինել: Մենք պետք է հիշենք թարմացնել փաթեթները նոր գրադարաններ կամ սերվերներ ավելացնելիս՝ միաժամանակ պահպանելով հետընթաց համատեղելիությունը արդեն իսկ ներդրված մոդելային կոդի հետ:
Կան մի քանի մոտեցումներ, թե ինչպես դա անել: Օրինակ, նախօրոք պատրաստեք մի քանի հաճախակի օգտագործվող գրադարաններ և դրանք ներդրեք PROM-ում: Cloudera-ի Hadoop բաշխումը սովորաբար օգտագործում է
Բանկը շատ լուրջ է վերաբերվում երրորդ կողմի կոդի գործարկման անվտանգությանը, ուստի մենք առավելագույնս օգտագործում ենք Linux միջուկի նոր հնարավորությունները, որտեղ գործընթացն աշխատում է մեկուսացված միջավայրում:
Այս տարի մենք նախատեսում ենք ավարտել Python/R/Java-ով գրված մոդելների թողարկման MVP-ն Hadoop-ում: Մենք մեր առջեւ դրել ենք հավակնոտ խնդիր՝ սովորել, թե ինչպես վարել ցանկացած հարմարեցված միջավայր Hadoop-ում, որպեսզի որեւէ կերպ չսահմանափակենք մեր հարթակի օգտատերերին:
Բացի այդ, ինչպես պարզվեց, DS-ի շատ մասնագետներ գերազանց են մաթեմատիկայի և վիճակագրության մեջ, պատրաստում են հիանալի մոդելներ, բայց այնքան էլ լավ չեն տիրապետում մեծ տվյալների փոխակերպմանը, և նրանց անհրաժեշտ է մեր տվյալների ինժեներների օգնությունը վերապատրաստման նմուշներ պատրաստելու համար: Մենք որոշեցինք օգնել մեր գործընկերներին և ստեղծել հարմար մոդուլներ՝ Spark շարժիչի մոդելների ստանդարտ փոխակերպման և հնարավորությունների պատրաստման համար: Սա թույլ կտա ձեզ ավելի շատ ժամանակ ծախսել մոդելների մշակման վրա և չսպասել տվյալների ինժեներներին նոր տվյալների բազա պատրաստելու համար:
Մենք աշխատում ենք տարբեր ոլորտներում գիտելիքներ ունեցող մարդկանց՝ Linux և DevOps, Hadoop և Spark, Java and Spring, Scala և Akka, OpenShift և Kubernetes: Հաջորդ անգամ մենք կխոսենք մոդելային գրադարանի մասին, թե ինչպես է մոդելն անցնում ընկերության կյանքի ցիկլը, ինչպես է տեղի ունենում վավերացումն ու իրականացումը:
Source: www.habr.com