Sber.DS je platforma koja vam omogućuje kreiranje i implementaciju modela čak i bez koda

Ideje i sastanci o tome koji se drugi procesi mogu automatizirati nastaju u tvrtkama različitih veličina svaki dan. No, osim što se puno vremena može potrošiti na izradu modela, potrebno ga je potrošiti na njegovu evaluaciju i provjeru da dobiveni rezultat nije slučajan. Svaki model nakon implementacije mora se pratiti i povremeno provjeravati.

I to su sve faze koje treba proći u svakoj tvrtki, bez obzira na veličinu. Ako govorimo o razmjerima i nasljeđu Sberbanke, broj finih podešavanja značajno raste. Do kraja 2019. Sber je već koristio više od 2000 modela. Nije dovoljno samo razviti model, potrebno je izvršiti integraciju s industrijskim sustavima, razviti podatkovne martove za izgradnju modela i osigurati kontrolu nad njegovim radom na klasteru.

Sber.DS je platforma koja vam omogućuje kreiranje i implementaciju modela čak i bez koda

Naš tim razvija Sber.DS platformu. Omogućuje vam rješavanje problema strojnog učenja, ubrzava proces testiranja hipoteza, u principu pojednostavljuje proces razvoja i validacije modela, a također kontrolira rezultat modela u PROM-u.

Kako ne bih prevario vaša očekivanja, želim unaprijed reći da je ovaj post uvodni, a ispod ruba, za početak, govorimo o tome što se, u principu, nalazi ispod haube Sber.DS platforme. Priču o životnom ciklusu modela od nastanka do implementacije ispričat ćemo posebno.

Sber.DS se sastoji od nekoliko komponenti od kojih su ključne biblioteka, razvojni sustav i sustav za izvođenje modela.

Sber.DS je platforma koja vam omogućuje kreiranje i implementaciju modela čak i bez koda

Knjižnica kontrolira životni ciklus modela od trenutka kada se pojavi ideja za razvoj do implementacije u PROM, praćenja i razgradnje. Mnoge mogućnosti knjižnice diktiraju pravila regulatora, na primjer, izvješćivanje i pohranjivanje uzoraka za obuku i validaciju. Zapravo, ovo je registar svih naših modela.

Razvojni sustav dizajniran je za vizualni razvoj modela i tehnika validacije. Razvijeni modeli prolaze početnu validaciju i isporučuju se izvršnom sustavu za obavljanje svojih poslovnih funkcija. Također, u runtime sustavu, model se može postaviti na monitor u svrhu povremenog pokretanja validacijskih tehnika za praćenje njegovog rada.

Postoji nekoliko vrsta čvorova u sustavu. Neki su dizajnirani za povezivanje s različitim izvorima podataka, drugi su dizajnirani za transformaciju izvornih podataka i njihovo obogaćivanje (markup). Postoji mnogo čvorova za izgradnju različitih modela i čvorova za njihovu provjeru valjanosti. Programer može učitati podatke iz bilo kojeg izvora, transformirati, filtrirati, vizualizirati međupodatke i rastaviti ih na dijelove.

Platforma također sadrži gotove module koji se mogu povući i ispustiti na područje dizajna. Sve radnje izvode se pomoću vizualiziranog sučelja. Zapravo, možete riješiti problem bez ijednog retka koda.

Ako ugrađene mogućnosti nisu dovoljne, sustav pruža mogućnost brze izrade vlastitih modula. Na temelju njega napravili smo integrirani način razvoja Jupyter Kernel Gateway za one koji stvaraju nove module od nule.

Sber.DS je platforma koja vam omogućuje kreiranje i implementaciju modela čak i bez koda

Arhitektura Sber.DS-a izgrađena je na mikroservisima. Postoje mnoga mišljenja o tome što su mikroservisi. Neki ljudi misle da je dovoljno podijeliti monolitni kod na dijelove, ali u isto vrijeme i dalje idu u istu bazu podataka. Naša mikrousluga mora komunicirati s drugom mikrouslugom samo putem REST API-ja. Nema rješenja za izravan pristup bazi podataka.

Trudimo se osigurati da usluge ne postanu jako velike i nespretne: jedna instanca ne bi trebala trošiti više od 4-8 gigabajta RAM-a i mora pružiti mogućnost horizontalnog skaliranja zahtjeva pokretanjem novih instanci. Svaka usluga komunicira s drugima samo putem REST API-ja (Otvori API). Tim odgovoran za uslugu mora održavati API kompatibilnim unatrag do posljednjeg klijenta koji ga koristi.

Jezgra aplikacije napisana je u Javi koristeći Spring Framework. Rješenje je prvotno dizajnirano za brzu implementaciju u infrastrukturu oblaka, tako da je aplikacija izgrađena korištenjem sustava kontejnerizacije Red Hat OpenShift (Kubernetes). Platforma se stalno razvija, kako u smislu povećanja poslovne funkcionalnosti (dodaju se novi konektori, AutoML), tako i u smislu tehnološke učinkovitosti.

Jedna od značajki naše platforme je da možemo pokrenuti kod razvijen u vizualnom sučelju na bilo kojem sustavu za izvršavanje modela Sberbank. Sada ih već ima dva: jedan na Hadoopu, drugi na OpenShiftu (Docker). Ne stajemo tu i stvaramo integracijske module za pokretanje koda na bilo kojoj infrastrukturi, uključujući on-premise i u oblaku. Što se tiče mogućnosti učinkovite integracije u ekosustav Sberbank, također planiramo podržati rad s postojećim izvršnim okruženjima. U budućnosti, rješenje se može fleksibilno integrirati "iz kutije" u bilo koje okruženje bilo koje organizacije.

Oni koji su ikada pokušali podržati rješenje koje pokreće Python na Hadoopu u PROM-u znaju da nije dovoljno pripremiti i isporučiti Python korisničko okruženje svakom podatkovnom čvoru. Ogroman broj C/C++ biblioteka za strojno učenje koje koriste Python module neće vam dopustiti da budete mirni. Moramo zapamtiti da ažuriramo pakete kada dodajemo nove biblioteke ili poslužitelje, dok održavamo kompatibilnost unatrag s već implementiranim kodom modela.

Postoji nekoliko pristupa kako to učiniti. Na primjer, pripremite nekoliko često korištenih biblioteka unaprijed i implementirajte ih u PROM. U Clouderinoj Hadoop distribuciji obično koriste parcela. Također je sada u Hadoopu moguće pokrenuti lučki radnik-kontejneri. U nekim jednostavnim slučajevima moguće je isporučiti kod zajedno s paketom piton.jaja.

Banka vrlo ozbiljno shvaća sigurnost pokretanja koda treće strane, tako da maksimalno iskorištavamo nove značajke jezgre Linuxa, gdje se proces izvodi u izoliranom okruženju Linux imenski prostor, možete ograničiti, na primjer, pristup mreži i lokalnom disku, što značajno smanjuje mogućnosti zlonamjernog koda. Područja podataka svakog odjela su zaštićena i dostupna samo vlasnicima tih podataka. Platforma osigurava da podaci iz jednog područja mogu dospjeti u drugo područje samo kroz proces objavljivanja podataka uz kontrolu u svim fazama od pristupa izvorima do slijetanja podataka u ciljni izlog.

Sber.DS je platforma koja vam omogućuje kreiranje i implementaciju modela čak i bez koda

Ove godine planiramo završiti MVP lansiranja modela napisanih u Python/R/Javi na Hadoopu. Postavili smo si ambiciozan zadatak naučiti kako pokrenuti bilo koje prilagođeno okruženje na Hadoopu, kako ni na koji način ne bismo ograničavali korisnike naše platforme.

Osim toga, kako se pokazalo, mnogi stručnjaci za DS izvrsni su u matematici i statistici, izrađuju cool modele, ali nisu baš dobro upućeni u transformacije velikih podataka i potrebna im je pomoć naših inženjera podataka za pripremu uzoraka za obuku. Odlučili smo pomoći našim kolegama i stvoriti prikladne module za standardnu ​​transformaciju i pripremu značajki za modele na Spark motoru. To će vam omogućiti da potrošite više vremena na razvoj modela i da ne čekate da inženjeri podataka pripreme novi skup podataka.

Zapošljavamo ljude sa znanjem iz različitih područja: Linux i DevOps, Hadoop i Spark, Java i Spring, Scala i Akka, OpenShift i Kubernetes. Sljedeći put ćemo govoriti o biblioteci modela, kako model prolazi kroz životni ciklus unutar tvrtke, kako dolazi do validacije i implementacije.

Izvor: www.habr.com

Dodajte komentar