Sber.DS je platforma, která umožňuje vytvářet a implementovat modely i bez kódu

Nápady a schůzky o tom, jaké další procesy lze automatizovat, vznikají v podnicích různých velikostí každý den. Ale kromě toho, že vytvářením modelu lze strávit spoustu času, musíte jej věnovat i jeho vyhodnocení a kontrole, zda získaný výsledek není náhodný. Po implementaci musí být jakýkoli model monitorován a pravidelně kontrolován.

A to jsou všechny fáze, které je potřeba absolvovat v každé firmě bez ohledu na její velikost. Pokud mluvíme o rozsahu a dědictví Sberbank, počet doladění se výrazně zvyšuje. Do konce roku 2019 Sber používal již více než 2000 modelů. Nestačí pouze vyvinout model, je třeba se integrovat s průmyslovými systémy, vyvinout datové tržiště pro modely budov a zajistit kontrolu jeho provozu na clusteru.

Sber.DS je platforma, která umožňuje vytvářet a implementovat modely i bez kódu

Náš tým vyvíjí platformu Sber.DS. Umožňuje řešit problémy se strojovým učením, zrychluje proces testování hypotéz, v principu zjednodušuje proces vývoje a ověřování modelů a také řídí výsledek modelu v PROM.

Abych nezklamal vaše očekávání, chci předem říci, že tento příspěvek je úvodní a pod řezem pro začátek mluvíme o tom, co se v zásadě skrývá pod kapotou platformy Sber.DS. Příběh o životním cyklu modelu od vytvoření až po implementaci si povíme samostatně.

Sber.DS se skládá z několika komponent, z nichž klíčové jsou knihovna, vývojový systém a systém provádění modelů.

Sber.DS je platforma, která umožňuje vytvářet a implementovat modely i bez kódu

Knihovna řídí životní cyklus modelu od okamžiku, kdy se objeví myšlenka na jeho vývoj, až po jeho implementaci v PROM, monitorování a vyřazení z provozu. Mnoho funkcí knihoven je diktováno pravidly regulátorů, například hlášení a ukládání školicích a ověřovacích vzorků. Ve skutečnosti se jedná o rejstřík všech našich modelů.

Vývojový systém je určen pro vizuální vývoj modelů a validačních technik. Vyvinuté modely procházejí počáteční validací a jsou dodávány do exekučního systému, aby plnily své obchodní funkce. Také v běhovém systému lze model umístit na monitor za účelem periodického spouštění ověřovacích technik pro monitorování jeho provozu.

V systému je několik typů uzlů. Některé jsou určeny pro připojení k různým datovým zdrojům, jiné jsou určeny k transformaci zdrojových dat a jejich obohacení (markup). Existuje mnoho uzlů pro vytváření různých modelů a uzlů pro jejich ověřování. Vývojář může načítat data z libovolného zdroje, transformovat, filtrovat, vizualizovat mezilehlá data a rozdělit je na části.

Platforma také obsahuje hotové moduly, které lze přetáhnout a pustit na plochu návrhu. Všechny akce se provádějí pomocí vizualizovaného rozhraní. Ve skutečnosti můžete problém vyřešit bez jediného řádku kódu.

Pokud vestavěné možnosti nestačí, systém poskytuje možnost rychlého vytvoření vlastních modulů. Vytvořili jsme integrovaný vývojový režim založený na Jupyter Kernel Gateway pro ty, kteří vytvářejí nové moduly od začátku.

Sber.DS je platforma, která umožňuje vytvářet a implementovat modely i bez kódu

Architektura Sber.DS je postavena na mikroslužbách. Existuje mnoho názorů na to, co jsou mikroslužby. Někdo si myslí, že stačí rozdělit monolitický kód na části, ale zároveň chodí stále do stejné databáze. Naše mikroslužba musí komunikovat s jinou mikroslužbou pouze přes REST API. Žádná zástupná řešení pro přímý přístup k databázi.

Snažíme se zajistit, aby se služby nestaly příliš velkými a neohrabanými: jedna instance by neměla spotřebovat více než 4–8 gigabajtů paměti RAM a musí poskytovat možnost horizontálně škálovat požadavky spouštěním nových instancí. Každá služba komunikuje s ostatními pouze přes REST API (Otevřete rozhraní API). Tým odpovědný za službu je povinen udržovat API zpětně kompatibilní až do posledního klienta, který jej používá.

Jádro aplikace je napsáno v Javě pomocí Spring Frameworku. Řešení bylo původně navrženo pro rychlé nasazení v cloudové infrastruktuře, takže aplikace byla postavena pomocí kontejnerizačního systému Red Hat OpenShift (Kubernetes). Platforma se neustále vyvíjí, a to jak z hlediska zvyšování obchodní funkčnosti (přidávají se nové konektory, AutoML), tak z hlediska technologické efektivity.

Jednou z funkcí naší platformy je, že můžeme spouštět kód vyvinutý ve vizuálním rozhraní na jakémkoli systému pro provádění modelů Sberbank. Nyní jsou již dva: jeden na Hadoop, druhý na OpenShift (Docker). Tím nekončíme a vytváříme integrační moduly pro spouštění kódu v jakékoli infrastruktuře, včetně on-premise a cloudu. S ohledem na možnosti efektivní integrace do ekosystému Sberbank plánujeme také podporu práce se stávajícími exekučními prostředími. V budoucnu může být řešení flexibilně integrováno „z krabice“ do jakéhokoli prostředí jakékoli organizace.

Ti, kteří se někdy pokoušeli podporovat řešení, které provozuje Python na Hadoopu v PROM, vědí, že nestačí připravit a dodat uživatelské prostředí Pythonu do každého datového uzlu. Obrovské množství knihoven C/C++ pro strojové učení, které využívají moduly Pythonu, vám nedá klid. Při přidávání nových knihoven nebo serverů musíme pamatovat na aktualizaci balíčků a zároveň zachovat zpětnou kompatibilitu s již implementovaným modelovým kódem.

Existuje několik přístupů, jak to udělat. Například předem připravit několik často používaných knihoven a implementovat je do PROM. V distribuci Hadoop společnosti Cloudera obvykle používají balíček. Také nyní v Hadoop je možné spustit přístavní dělník-kontejnery. V některých jednoduchých případech je možné kód doručit spolu s balíkem python.vejce.

Banka bere bezpečnost spouštění kódu třetích stran velmi vážně, takže maximálně využíváme nové funkce linuxového jádra, kde proces běžící v izolovaném prostředí jmenný prostor Linuxu, můžete omezit například přístup k síti a místnímu disku, což výrazně snižuje možnosti škodlivého kódu. Datové oblasti každého oddělení jsou chráněny a přístupné pouze vlastníkům těchto dat. Platforma zajišťuje, že data z jedné oblasti se mohou dostat do jiné oblasti pouze prostřednictvím procesu publikování dat s kontrolou ve všech fázích od přístupu ke zdrojům až po umístění dat do cílového obchodu.

Sber.DS je platforma, která umožňuje vytvářet a implementovat modely i bez kódu

Letos plánujeme dokončit MVP spouštění modelů napsaných v Pythonu/R/Java na Hadoopu. Dali jsme si ambiciózní úkol naučit se provozovat jakékoli vlastní prostředí na Hadoopu, abychom nijak neomezovali uživatele naší platformy.

Navíc, jak se ukázalo, mnoho DS specialistů je vynikajících v matematice a statistice, tvoří skvělé modely, ale nejsou příliš zběhlí v transformacích velkých dat a potřebují pomoc našich datových inženýrů, aby připravili trénovací vzorky. Rozhodli jsme se pomoci našim kolegům a vytvořit pohodlné moduly pro standardní transformaci a přípravu funkcí pro modely na motoru Spark. To vám umožní strávit více času vývojem modelů a nečekat, až datoví inženýři připraví novou datovou sadu.

Zaměstnáváme lidi se znalostmi v různých oblastech: Linux a DevOps, Hadoop a Spark, Java a Spring, Scala a Akka, OpenShift a Kubernetes. Příště si povíme něco o knihovně modelů, jak model prochází životním cyklem v rámci firmy, jak probíhá validace a implementace.

Zdroj: www.habr.com

Přidat komentář