Sber.DS est une plateforme qui vous permet de créer et d'implémenter des modèles même sans code

Des idées et des réunions sur les autres processus pouvant être automatisés surgissent chaque jour dans des entreprises de différentes tailles. Mais en plus du fait que beaucoup de temps peut être consacré à la création d'un modèle, vous devez le passer à l'évaluer et à vérifier que le résultat n'est pas aléatoire. Après la mise en œuvre, tout modèle doit être surveillé et vérifié périodiquement.

Et ce sont toutes les étapes que vous devez franchir dans toute entreprise, quelle que soit sa taille. Si nous parlons de l'ampleur et de l'héritage de Sberbank, le nombre de réglages fins augmente de façon exponentielle. Fin 2019, Sberbank avait déjà utilisé plus de 2000 XNUMX modèles. Il ne suffit pas de développer un modèle, il faut l'intégrer aux systèmes industriels, développer des data marts pour construire des modèles, et assurer la maîtrise de son fonctionnement sur un cluster.

Sber.DS est une plateforme qui vous permet de créer et d'implémenter des modèles même sans code

Notre équipe développe la plateforme Sber.DS. Il vous permet de résoudre des problèmes d'apprentissage automatique, accélère le processus de test des hypothèses, simplifie en principe le processus de développement et de validation des modèles et contrôle également le résultat du modèle dans la PROM.

Afin de ne pas tromper vos attentes, je tiens à dire à l'avance que cet article est une introduction et, sous la coupe, pour commencer, il est expliqué ce qui se cache essentiellement sous le capot de la plate-forme Sber.DS. Nous raconterons l'histoire du cycle de vie d'un modèle de la création à la mise en œuvre séparément.

Sber.DS se compose de plusieurs composants, les principaux étant la bibliothèque, le système de développement et le système d'exécution de modèle.

Sber.DS est une plateforme qui vous permet de créer et d'implémenter des modèles même sans code

La bibliothèque contrôle le cycle de vie du modèle depuis le moment où l'idée de le développer apparaît jusqu'à sa mise en œuvre dans la PROM, son suivi et son démantèlement. De nombreuses fonctionnalités de la bibliothèque sont dictées par les règles du régulateur, par exemple, le reporting et le stockage des échantillons de formation et de validation. En fait, il s'agit d'un registre de tous nos modèles.

Le système de développement est destiné au développement visuel de modèles et de méthodes de validation. Les modèles développés subissent une validation primaire et sont livrés au système d'exécution pour exécuter leurs fonctions commerciales. Aussi, dans le système d'exécution, le modèle peut être mis sur le moniteur afin de lancer périodiquement des méthodes de validation pour contrôler son fonctionnement.

Il existe plusieurs types de nœuds dans le système. Certains sont conçus pour se connecter à diverses sources de données, d'autres - pour transformer les données sources et les enrichir (balisage). Il existe de nombreux nœuds pour construire divers modèles et nœuds pour leur validation. Le développeur peut charger des données à partir de n'importe quelle source, transformer, filtrer, visualiser des données intermédiaires, les diviser en parties.

La plate-forme contient également des modules prêts à l'emploi qui peuvent être glissés dans la zone du projet. Toutes les actions sont effectuées à l'aide d'une interface visualisée. En fait, vous pouvez résoudre le problème sans une seule ligne de code.

Si les capacités intégrées ne suffisent pas, le système offre la possibilité de créer rapidement vos propres modules. Nous avons fait un mode de développement intégré basé sur Passerelle du noyau Jupyter pour ceux qui créent de nouveaux modules à partir de zéro.

Sber.DS est une plateforme qui vous permet de créer et d'implémenter des modèles même sans code

L'architecture Sber.DS repose sur des microservices. Il existe de nombreuses opinions sur ce que sont les microservices. Certaines personnes pensent qu'il suffit de diviser le code monolithique en parties, mais ils vont toujours dans la même base de données. Notre microservice doit communiquer avec un autre microservice uniquement via l'API REST. Aucune solution de contournement pour accéder directement à la base de données.

Nous essayons d'éviter que les services ne deviennent très volumineux et lents : une seule instance ne doit pas consommer plus de 4 à 8 Go de RAM et doit pouvoir faire évoluer horizontalement les demandes en lançant de nouvelles instances. Chaque service communique avec les autres uniquement via l'API REST (Open API). L'équipe responsable du service est tenue de maintenir la rétrocompatibilité de l'API jusqu'au dernier client qui l'utilise.

Le cœur de l'application est écrit en Java à l'aide de Spring Framework. La solution a été initialement conçue pour un déploiement rapide dans l'infrastructure cloud, de sorte que l'application est construite à l'aide d'un système de conteneurisation Red Hat OpenShift (Kubernetes). La plateforme est en constante évolution, tant en termes d'augmentation des fonctionnalités métiers (nouveaux connecteurs, AutoML sont ajoutés), qu'en termes d'efficacité technologique.

L'une des "puces" de notre plate-forme est que nous pouvons exécuter le code développé dans l'interface visuelle sur n'importe quel système d'exécution de modèle Sberbank. Maintenant il y en a déjà deux : l'un sur Hadoop, l'autre sur OpenShift (Docker). Nous ne nous arrêtons pas là et créons des modules d'intégration pour exécuter du code sur n'importe quelle infrastructure, y compris sur site et dans le cloud. En termes de possibilités d'intégration efficace dans l'écosystème Sberbank, nous prévoyons également de prendre en charge le travail avec les environnements d'exécution existants. À l'avenir, la solution pourra être intégrée de manière flexible "prête à l'emploi" dans n'importe quel paysage de n'importe quelle organisation.

Ceux qui ont déjà essayé de maintenir une solution qui exécute Python sur Hadoop en PROM savent qu'il ne suffit pas de préparer et de fournir un environnement python personnalisé à chaque nœud de données. Un grand nombre de bibliothèques C / C ++ pour l'apprentissage automatique qui utilisent des modules Python ne vous laisseront pas reposer en paix. Nous ne devons pas oublier de mettre à jour les packages lors de l'ajout de nouvelles bibliothèques ou de nouveaux serveurs, tout en maintenant la rétrocompatibilité avec le code modèle déjà implémenté.

Il existe plusieurs approches pour y parvenir. Par exemple, préparez à l'avance plusieurs bibliothèques fréquemment utilisées et implémentez-les dans la PROM. La distribution Hadoop de Cloudera utilise généralement parcelle. Aussi maintenant dans Hadoop, il est possible d'exécuter docker- conteneurs. Dans certains cas simples, il est possible de livrer le code avec le colis python.oeufs.

La banque prend très au sérieux la sécurité de l'exécution de code tiers, nous tirons donc le meilleur parti des nouvelles fonctionnalités du noyau Linux, où un processus s'exécutant dans un environnement isolé Espace de noms Linux, vous pouvez restreindre, par exemple, l'accès au réseau et au disque local, ce qui réduit considérablement la possibilité de code malveillant. Les zones de données de chaque département sont protégées et uniquement accessibles aux propriétaires de ces données. La plate-forme garantit que les données d'un domaine ne peuvent pénétrer dans un autre domaine que par le biais d'un processus de publication de données avec un contrôle à toutes les étapes, de l'accès aux sources à l'atterrissage des données dans le marché cible.

Sber.DS est une plateforme qui vous permet de créer et d'implémenter des modèles même sans code

Cette année, nous prévoyons de terminer le MVP des modèles en cours d'exécution écrits en Python/R/Java sur Hadoop. Nous nous sommes fixé la tâche ambitieuse d'apprendre à exécuter n'importe quel environnement utilisateur sur Hadoop, afin de ne limiter en aucune façon les utilisateurs de notre plate-forme.

De plus, il s'est avéré que de nombreux spécialistes de DS sont excellents en mathématiques et en statistiques, créent des modèles sympas, mais ne connaissent pas très bien les transformations de données volumineuses, et ils ont besoin de l'aide de nos ingénieurs de données pour préparer des échantillons de formation. Nous avons décidé d'aider nos collègues et de créer des modules pratiques pour la transformation et la préparation typiques des fonctionnalités des modèles sur le moteur Spark. Cela permettra de consacrer plus de temps au développement de modèles et de ne pas attendre que les ingénieurs de données préparent un nouvel ensemble de données.

Nous avons des personnes ayant des connaissances dans différents domaines : Linux et DevOps, Hadoop et Spark, Java et Spring, Scala et Akka, OpenShift et Kubernetes. La prochaine fois, nous parlerons de la bibliothèque de modèles, de la manière dont le modèle traverse le cycle de vie au sein de l'entreprise, de la manière dont la validation et la mise en œuvre se déroulent.

Source: habr.com

Ajouter un commentaire