Sber.DS je platforma, ki omogoča ustvarjanje in implementacijo modelov tudi brez kode

Zamisli in sestanki o tem, katere druge procese je mogoče avtomatizirati, se vsak dan pojavljajo v podjetjih različnih velikosti. Toda poleg tega, da lahko veliko časa porabite za ustvarjanje modela, ga morate porabiti za njegovo oceno in preverjanje, ali rezultat ni naključen. Po izvedbi je treba vsak model spremljati in redno preverjati.

In to so vse faze, skozi katere morate iti v vsakem podjetju, ne glede na njegovo velikost. Če govorimo o obsegu in dediščini Sberbank, se število finih nastavitev eksponentno poveča. Do konca leta 2019 je Sberbank uporabljala že več kot 2000 modelov. Ni dovolj le razviti model, potrebna je integracija z industrijskimi sistemi, razviti podatkovne marce za gradnjo modelov in zagotoviti nadzor nad njegovim delovanjem v gruči.

Sber.DS je platforma, ki omogoča ustvarjanje in implementacijo modelov tudi brez kode

Naša ekipa razvija platformo Sber.DS. Omogoča reševanje problemov strojnega učenja, pospeši proces testiranja hipotez, načeloma poenostavi proces razvoja in validacije modelov ter nadzoruje tudi rezultat modela v PROM.

Da ne bi zavajal vaših pričakovanj, želim vnaprej povedati, da je ta objava uvodna in pod rezom, za začetek, je povedano o tem, kaj je v bistvu pod pokrovom platforme Sber.DS. Ločeno bomo pripovedovali o življenjskem ciklu modela od nastanka do implementacije.

Sber.DS je sestavljen iz več komponent, ključne pa so knjižnica, razvojni sistem in sistem za izvajanje modelov.

Sber.DS je platforma, ki omogoča ustvarjanje in implementacijo modelov tudi brez kode

Knjižnica nadzoruje življenjski cikel modela od trenutka, ko se pojavi ideja za razvoj, do njegove implementacije v PROM, spremljanja in razgradnje. Številne funkcije knjižnice narekujejo pravila regulatorja, na primer poročanje in shranjevanje vzorcev za usposabljanje in validacijo. Pravzaprav je to register vseh naših modelov.

Razvojni sistem je namenjen vizualnemu razvoju modelov in metod validacije. Razviti modeli so podvrženi primarni validaciji in dostavljeni v izvršilni sistem za opravljanje svojih poslovnih funkcij. Tudi v sistemu izvajanja je mogoče model postaviti na monitor, da se občasno zaženejo validacijske metode za nadzor njegovega delovanja.

V sistemu je več vrst vozlišč. Nekateri so zasnovani za povezovanje z različnimi viri podatkov, drugi - za preoblikovanje izvornih podatkov in njihovo obogatitev (markup). Obstaja veliko vozlišč za gradnjo različnih modelov in vozlišč za njihovo validacijo. Razvijalec lahko naloži podatke iz katerega koli vira, transformira, filtrira, vizualizira vmesne podatke, jih razdeli na dele.

Platforma vsebuje tudi že pripravljene module, ki jih lahko povlečete na območje projekta. Vsa dejanja se izvajajo z uporabo vizualiziranega vmesnika. Pravzaprav lahko težavo rešite brez ene vrstice kode.

Če vgrajene zmogljivosti niso dovolj, potem sistem omogoča hitro ustvarjanje lastnih modulov. Izdelali smo način integriranega razvoja, ki temelji na Jupyter Kernel Gateway za tiste, ki ustvarjajo nove module iz nič.

Sber.DS je platforma, ki omogoča ustvarjanje in implementacijo modelov tudi brez kode

Arhitektura Sber.DS je zgrajena na mikrostoritvah. Obstaja veliko mnenj o tem, kaj so mikrostoritve. Nekateri mislijo, da je dovolj, da monolitno kodo razdelijo na dele, vendar še vedno gredo v isto bazo podatkov. Naša mikrostoritev mora komunicirati z drugo mikrostoritvijo samo preko REST API-ja. Ni rešitev za neposreden dostop do baze podatkov.

Trudimo se, da storitve ne bi postale zelo velike in počasne: posamezen primerek ne bi smel porabiti več kot 4–8 gigabajtov RAM-a in bi moral imeti možnost vodoravnega prilagajanja zahtev z zagonom novih primerkov. Vsaka storitev komunicira z drugimi samo prek REST API (Odpri API). Skupina, odgovorna za storitev, mora vzdrževati združljivost API-ja za nazaj do zadnjega odjemalca, ki ga uporablja.

Jedro aplikacije je napisano v Javi z uporabo Spring Framework. Rešitev je bila prvotno zasnovana za hitro uvajanje v infrastrukturo v oblaku, zato je aplikacija zgrajena s sistemom kontejnerizacije Red Hat OpenShift (Kubernetes). Platforma se nenehno razvija, tako v smislu povečanja poslovne funkcionalnosti (dodani so novi konektorji, AutoML), kot v smislu tehnološke učinkovitosti.

Eden od "čipov" naše platforme je, da lahko izvajamo kodo, razvito v vizualnem vmesniku, na katerem koli sistemu izvajanja modela Sberbank. Zdaj sta že dva: eden na Hadoop, drugi na OpenShift (Docker). Ne ustavimo se pri tem in ustvarjamo integracijske module za izvajanje kode na kateri koli infrastrukturi, vključno z lokalno in v oblaku. Z vidika možnosti učinkovite integracije v ekosistem Sberbank načrtujemo tudi podporo delu z obstoječimi izvajalnimi okolji. V prihodnosti bo rešitev mogoče fleksibilno integrirati "izven škatle" v katero koli pokrajino katere koli organizacije.

Tisti, ki so kdaj poskušali vzdrževati rešitev, ki poganja Python na Hadoop v PROM, vedo, da ni dovolj pripraviti in dostaviti prilagojeno okolje python za vsako podatkovno vozlišče. Ogromno število knjižnic C / C ++ za strojno učenje, ki uporabljajo module Python, vam ne bo pustilo miru. Pri dodajanju novih knjižnic ali strežnikov ne smemo pozabiti posodobiti paketov, hkrati pa ohraniti združljivost za nazaj z že implementirano kodo modela.

Obstaja več pristopov, kako to storiti. Na primer, vnaprej pripravite več pogosto uporabljenih knjižnic in jih implementirajte v PROM. Cloudera Hadoop distribucija običajno uporablja parcel. Zdaj je v Hadoopu tudi priložnost za tek Docker- posode. V nekaterih preprostih primerih je možno kodo dostaviti skupaj s paketom python.jajca.

Banka jemlje varnost izvajanja kode tretjih oseb zelo resno, zato kar najbolje izkoristimo nove funkcije jedra Linuxa, kjer se proces izvaja v izoliranem okolju. Imenski prostor Linuxa, lahko omejite na primer dostop do omrežja in lokalnega diska, kar močno zmanjša možnost zlonamerne kode. Podatkovna območja vsakega oddelka so zaščitena in na voljo samo lastnikom teh podatkov. Platforma zagotavlja, da lahko podatki iz ene domene pridejo v drugo domeno samo s postopkom objave podatkov z nadzorom na vseh stopnjah od dostopa do virov do pristanka podatkov v ciljni trgovini.

Sber.DS je platforma, ki omogoča ustvarjanje in implementacijo modelov tudi brez kode

Letos načrtujemo dokončanje MVP izvajanja modelov, napisanih v Python/R/Java na Hadoop. Zadali smo si ambiciozno nalogo, da se naučimo poganjati poljubno uporabniško okolje na Hadoopu, da v ničemer ne omejujemo uporabnikov naše platforme.

Poleg tega, kot se je izkazalo, so številni strokovnjaki za DS odlični v matematiki in statistiki, izdelujejo kul modele, vendar niso preveč seznanjeni s transformacijami velikih podatkov in potrebujejo pomoč naših podatkovnih inženirjev za pripravo vzorcev za usposabljanje. Odločili smo se pomagati našim kolegom in ustvariti priročne module za tipično transformacijo in pripravo funkcij za modele na motorju Spark. To bo omogočilo, da se več časa posveti razvoju modelov in ne čaka na podatkovne inženirje, da pripravijo nov nabor podatkov.

Imamo ljudi z znanjem na različnih področjih: Linux in DevOps, Hadoop in Spark, Java in Spring, Scala in Akka, OpenShift in Kubernetes. Naslednjič bomo govorili o knjižnici modelov, kako gre model skozi življenjski cikel znotraj podjetja, kako poteka validacija in implementacija.

Vir: www.habr.com

Dodaj komentar