Sber.DS is een platform waarmee u zelfs zonder code modellen kunt maken en implementeren

Ideeën en bijeenkomsten over welke andere processen kunnen worden geautomatiseerd, ontstaan ​​elke dag in bedrijven van verschillende groottes. Maar naast het feit dat er veel tijd kan worden besteed aan het maken van een model, moet je het ook besteden aan het evalueren ervan en het controleren of het verkregen resultaat niet willekeurig is. Na implementatie moet elk model worden gemonitord en periodiek worden gecontroleerd.

En dit zijn alle fasen die in elk bedrijf moeten worden doorlopen, ongeacht de grootte ervan. Als we het hebben over de omvang en de erfenis van Sberbank, neemt het aantal verfijningen aanzienlijk toe. Eind 2019 had Sber al meer dan 2000 modellen in gebruik. Het is niet voldoende om simpelweg een model te ontwikkelen; het is noodzakelijk om te integreren met industriële systemen, datamarts te ontwikkelen voor het bouwen van modellen, en de controle over de werking ervan op het cluster te garanderen.

Sber.DS is een platform waarmee u zelfs zonder code modellen kunt maken en implementeren

Ons team ontwikkelt het Sber.DS-platform. Hiermee kunt u machine learning-problemen oplossen, het proces van het testen van hypothesen versnellen, in principe het proces van het ontwikkelen en valideren van modellen vereenvoudigen, en ook het resultaat van het model in PROM controleren.

Om je verwachtingen niet te misleiden, wil ik van tevoren zeggen dat dit bericht een inleidend bericht is, en onder de noemer praten we om te beginnen over wat zich in principe onder de motorkap van het Sber.DS-platform bevindt. Het verhaal over de levenscyclus van het model, van creatie tot implementatie, vertellen we apart.

Sber.DS bestaat uit verschillende componenten, waarvan de belangrijkste de bibliotheek, het ontwikkelsysteem en het modeluitvoeringssysteem zijn.

Sber.DS is een platform waarmee u zelfs zonder code modellen kunt maken en implementeren

De bibliotheek beheert de levenscyclus van het model vanaf het moment dat het idee om het te ontwikkelen ontstaat tot aan de implementatie ervan in PROM, de monitoring en de ontmanteling. Veel bibliotheekmogelijkheden worden bepaald door regels van toezichthouders, bijvoorbeeld de rapportage en opslag van trainings- en validatiemonsters. Feitelijk is dit een register van al onze modellen.

Het ontwikkelsysteem is ontworpen voor de visuele ontwikkeling van modellen en validatietechnieken. De ontwikkelde modellen ondergaan een initiële validatie en worden aan het uitvoeringssysteem geleverd om hun bedrijfsfuncties uit te voeren. Ook kan het model in het runtime-systeem op een monitor worden geplaatst met als doel periodiek validatietechnieken te lanceren om de werking ervan te controleren.

Er zijn verschillende soorten knooppunten in het systeem. Sommige zijn ontworpen om verbinding te maken met verschillende gegevensbronnen, andere zijn ontworpen om brongegevens te transformeren en te verrijken (markup). Er zijn veel knooppunten voor het bouwen van verschillende modellen en knooppunten voor het valideren ervan. De ontwikkelaar kan gegevens uit elke bron laden, transformeren, filteren, tussentijdse gegevens visualiseren en deze in delen opsplitsen.

Het platform bevat ook kant-en-klare modules die naar het ontwerpgebied kunnen worden gesleept en neergezet. Alle acties worden uitgevoerd met behulp van een gevisualiseerde interface. In feite kunt u het probleem oplossen zonder een enkele regel code.

Als de ingebouwde mogelijkheden niet voldoende zijn, biedt het systeem de mogelijkheid om snel uw eigen modules te creëren. We hebben een geïntegreerde ontwikkelingsmodus gemaakt op basis van Jupyter-kernelgateway voor degenen die vanaf het begin nieuwe modules maken.

Sber.DS is een platform waarmee u zelfs zonder code modellen kunt maken en implementeren

De architectuur van Sber.DS is gebouwd op microservices. Er zijn veel meningen over wat microservices zijn. Sommige mensen denken dat het voldoende is om de monolithische code in delen te splitsen, maar tegelijkertijd gaan ze nog steeds naar dezelfde database. Onze microservice mag alleen via REST API met een andere microservice communiceren. Er zijn geen oplossingen om rechtstreeks toegang te krijgen tot de database.

We proberen ervoor te zorgen dat services niet erg groot en onhandig worden: één instance mag niet meer dan 4-8 gigabyte RAM verbruiken en moet de mogelijkheid bieden om verzoeken horizontaal te schalen door nieuwe instances te lanceren. Elke service communiceert alleen met anderen via REST API (Open API). Het team dat verantwoordelijk is voor de service moet de API achterwaarts compatibel houden tot de laatste client die er gebruik van maakt.

De kern van de applicatie is geschreven in Java met behulp van het Spring Framework. De oplossing was in eerste instantie ontworpen voor snelle implementatie in de cloudinfrastructuur, dus werd de applicatie gebouwd met behulp van een containerisatiesysteem Red Hat OpenShift (Kubernetes). Het platform evolueert voortdurend, zowel in termen van toenemende bedrijfsfunctionaliteit (nieuwe connectoren, AutoML worden toegevoegd) als in termen van technologische efficiëntie.

Een van de kenmerken van ons platform is dat we code kunnen uitvoeren die is ontwikkeld in een visuele interface op elk modeluitvoeringssysteem van Sberbank. Nu zijn er al twee: één op Hadoop, de andere op OpenShift (Docker). We stoppen daar niet en creëren integratiemodules om code op elke infrastructuur uit te voeren, inclusief on-premise en in de cloud. Wat de mogelijkheden van effectieve integratie in het Sberbank-ecosysteem betreft, zijn we ook van plan het werk met bestaande uitvoeringsomgevingen te ondersteunen. In de toekomst kan de oplossing flexibel “out of the box” worden geïntegreerd in elk landschap van elke organisatie.

Degenen die ooit hebben geprobeerd een oplossing te ondersteunen die Python op Hadoop draait in PROM, weten dat het niet voldoende is om een ​​Python-gebruikersomgeving voor te bereiden en aan elke datanode te leveren. Het enorme aantal C/C++-bibliotheken voor machinaal leren die Python-modules gebruiken, zorgt ervoor dat u niet gerust kunt zijn. We moeten niet vergeten pakketten bij te werken wanneer we nieuwe bibliotheken of servers toevoegen, terwijl we de achterwaartse compatibiliteit met reeds geïmplementeerde modelcode behouden.

Er zijn verschillende manieren om dit te doen. Maak bijvoorbeeld vooraf een aantal veelgebruikte bibliotheken klaar en implementeer deze in PROM. In de Hadoop-distributie van Cloudera gebruiken ze meestal pakket. Ook nu is het in Hadoop mogelijk om te draaien havenarbeider-containers. In enkele eenvoudige gevallen is het mogelijk om de code mee te leveren met het pakket python.eieren.

De bank neemt de veiligheid van het uitvoeren van code van derden zeer serieus, dus maken we optimaal gebruik van de nieuwe functies van de Linux-kernel, waarbij een proces in een geïsoleerde omgeving wordt uitgevoerd Linux-naamruimtekunt u bijvoorbeeld de toegang tot het netwerk en de lokale schijf beperken, waardoor de mogelijkheden van kwaadaardige code aanzienlijk worden verminderd. De gegevensgebieden van elke afdeling zijn alleen beveiligd en toegankelijk voor de eigenaren van deze gegevens. Het platform zorgt ervoor dat gegevens uit het ene gebied alleen een ander gebied kunnen bereiken via een gegevenspublicatieproces met controle in alle fasen, van toegang tot bronnen tot het landen van gegevens in de doelwinkel.

Sber.DS is een platform waarmee u zelfs zonder code modellen kunt maken en implementeren

Dit jaar zijn we van plan de MVP van het lanceren van modellen geschreven in Python/R/Java op Hadoop te voltooien. We hebben onszelf de ambitieuze taak gesteld om te leren hoe we elke aangepaste omgeving op Hadoop kunnen draaien, om de gebruikers van ons platform op geen enkele manier te beperken.

Bovendien bleek dat veel DS-specialisten uitstekend zijn in wiskunde en statistiek, coole modellen maken, maar niet zo goed thuis zijn in big data-transformaties, en dat ze de hulp van onze data-ingenieurs nodig hebben om trainingsvoorbeelden voor te bereiden. We besloten onze collega's te helpen en handige modules te maken voor standaardtransformatie en voorbereiding van functies voor modellen op de Spark-engine. Hierdoor kunt u meer tijd besteden aan het ontwikkelen van modellen en hoeft u niet te wachten tot data-ingenieurs een nieuwe dataset hebben voorbereid.

Wij hebben mensen in dienst met kennis op verschillende gebieden: Linux en DevOps, Hadoop en Spark, Java en Spring, Scala en Akka, OpenShift en Kubernetes. De volgende keer zullen we het hebben over de modelbibliotheek, hoe het model de levenscyclus binnen het bedrijf doorloopt, hoe validatie en implementatie plaatsvinden.

Bron: www.habr.com

Voeg een reactie