Sber.DS je platforma koja vam omogućava da kreirate i implementirate modele čak i bez koda

Ideje i sastanci o tome koji se drugi procesi mogu automatizirati svakodnevno se javljaju u preduzećima različitih veličina. Ali pored činjenice da se puno vremena može potrošiti na kreiranje modela, potrebno ga je potrošiti na njegovu procjenu i provjeru da dobijeni rezultat nije slučajan. Nakon implementacije, svaki model se mora pratiti i periodično provjeravati.

A to su sve faze koje treba završiti u svakoj kompaniji, bez obzira na njenu veličinu. Ako govorimo o obimu i naslijeđu Sberbanke, broj finih podešavanja se značajno povećava. Do kraja 2019. Sber je već koristio više od 2000 modela. Nije dovoljno samo razviti model, potrebno je integrirati se s industrijskim sistemima, razviti data marts za izgradnju modela i osigurati kontrolu njegovog rada na klasteru.

Sber.DS je platforma koja vam omogućava da kreirate i implementirate modele čak i bez koda

Naš tim razvija platformu Sber.DS. Omogućava 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.

Da ne bih zavarao vaša očekivanja, unaprijed želim reći da je ovaj post uvodni, a ispod reza, za početak, govorimo o tome šta se, u principu, nalazi ispod platforme Sber.DS. Zasebno ćemo ispričati priču o životnom ciklusu modela od kreiranja do implementacije.

Sber.DS se sastoji od nekoliko komponenti, od kojih su ključne biblioteka, razvojni sistem i sistem za izvršavanje modela.

Sber.DS je platforma koja vam omogućava da kreirate i implementirate modele čak i bez koda

Biblioteka kontroliše životni ciklus modela od trenutka kada se pojavi ideja da se on razvije do implementacije u PROM, praćenja i dekomisije. Mnoge bibliotečke mogućnosti diktiraju regulatorna pravila, na primjer, izvještavanje i skladištenje uzoraka za obuku i validaciju. Zapravo, ovo je registar svih naših modela.

Razvojni sistem je dizajniran za vizuelni razvoj modela i tehnika validacije. Razvijeni modeli prolaze inicijalnu validaciju i dostavljaju se izvršnom sistemu za obavljanje svojih poslovnih funkcija. Takođe, u runtime sistemu, model se može postaviti na monitor u svrhu periodičnog pokretanja tehnika validacije za praćenje njegovog rada.

Postoji nekoliko tipova čvorova u sistemu. Neki su dizajnirani da se povežu na različite izvore podataka, drugi su dizajnirani da transformišu izvorne podatke i obogate ih (markup). Postoji mnogo čvorova za izgradnju različitih modela i čvorova za njihovu validaciju. Programer može učitati podatke iz bilo kojeg izvora, transformirati, filtrirati, vizualizirati međupodatke i razbiti ih na dijelove.

Platforma također sadrži gotove module koji se mogu prevući i spustiti na područje dizajna. Sve radnje se izvode pomoću vizualizovanog interfejsa. Zapravo, problem možete riješiti bez ijednog reda koda.

Ako ugrađene mogućnosti nisu dovoljne, sistem pruža mogućnost brzog kreiranja vlastitih modula. Napravili smo integrisani način razvoja zasnovan na Jupyter Kernel Gateway za one koji kreiraju nove module od nule.

Sber.DS je platforma koja vam omogućava da kreirate i implementirate modele čak i bez koda

Arhitektura Sber.DS-a je izgrađena na mikroservisima. Mnogo je mišljenja o tome šta su mikroservise. Neki ljudi misle da je dovoljno podijeliti monolitni kod na dijelove, ali u isto vrijeme i dalje idu u istu bazu podataka. Naš mikroservis mora komunicirati sa drugom mikroservisom samo preko REST API-ja. Nema rješenja za direktan pristup bazi podataka.

Trudimo se da usluge ne postanu veoma velike i nespretne: jedna instanca ne bi trebalo da troši više od 4-8 gigabajta RAM-a i mora da obezbedi mogućnost horizontalnog skaliranja zahteva pokretanjem novih instanci. Svaka usluga komunicira s drugima samo preko REST API-ja (Open API). Tim odgovoran za uslugu je dužan da zadrži API unatrag kompatibilan do posljednjeg klijenta koji ga koristi.

Jezgro aplikacije je napisano u Javi koristeći Spring Framework. Rješenje je prvobitno bilo dizajnirano za brzu implementaciju u infrastrukturi oblaka, pa je aplikacija napravljena korištenjem sistema kontejnerizacije Red Hat OpenShift (Kubernet). Platforma se stalno razvija, kako u smislu povećanja poslovne funkcionalnosti (dodaju se novi konektori, AutoML) tako i u smislu tehnološke efikasnosti.

Jedna od karakteristika naše platforme je da možemo pokrenuti kod razvijen u vizuelnom interfejsu na bilo kom sistemu za izvršavanje modela Sberbank. Sada ih već postoje dva: jedan na Hadoop-u, drugi na OpenShift (Docker). Ne zaustavljamo se 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 efikasne integracije u ekosistem Sberbanke, takođe planiramo da podržimo rad sa postojećim okruženjima za izvršavanje. U budućnosti, rješenje se može fleksibilno integrirati “iz kutije” u bilo koji krajolik bilo koje organizacije.

Oni koji su ikada pokušali da podrže rešenje koje pokreće Python na Hadoop-u u PROM-u znaju da nije dovoljno pripremiti i isporučiti Python korisničko okruženje svakom datanodu. Ogroman broj C/C++ biblioteka za mašinsko učenje koje koriste Python module neće vam omogućiti da se opustite. Moramo zapamtiti da ažuriramo pakete kada dodajemo nove biblioteke ili servere, uz održavanje kompatibilnosti unatrag s već implementiranim kodom modela.

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

Banka vrlo ozbiljno shvaća sigurnost pokretanja koda treće strane, tako da maksimalno koristimo nove karakteristike Linux kernela, gdje se proces izvodi u izolovanom 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 ovih podataka. Platforma osigurava da podaci iz jednog područja mogu doći do drugog područja 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ćava da kreirate i implementirate modele čak i bez koda

Ove godine planiramo da završimo MVP lansiranja modela napisanih u Python/R/Java na Hadoop-u. Postavili smo sebi ambiciozan zadatak da naučimo kako pokrenuti bilo koje prilagođeno okruženje na Hadoop-u, kako ne bismo na bilo koji način ograničavali korisnike naše platforme.

Osim toga, kako se ispostavilo, mnogi DS stručnjaci su odlični u matematici i statistici, prave cool modele, ali nisu baš dobro upućeni u transformacije velikih podataka i potrebna im je pomoć naših inženjera podataka da pripreme uzorke za obuku. Odlučili smo pomoći našim kolegama i kreirati zgodne module za standardnu ​​transformaciju i pripremu karakteristika za modele na Spark motoru. Ovo će vam omogućiti da provedete više vremena u razvoju modela i da ne čekate da inženjeri podataka pripreme novi skup podataka.

Zapošljavamo ljude sa znanjem iz različitih oblasti: 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 kompanije, kako se validacija i implementacija odvijaju.

izvor: www.habr.com

Dodajte komentar