Sber.DS 是一个平台,即使没有代码,您也可以创建和实现模型

各种规模的企业每天都会出现关于哪些其他流程可以自动化的想法和会议。 但是,除了需要花费大量时间来创建模型之外,您还需要花费大量时间来评估模型并检查所获得的结果不是随机的。 实施后,任何模型都必须受到监控并定期检查。

这些都是任何公司都需要完成的阶段,无论其规模大小。 如果我们谈论俄罗斯联邦储蓄银行的规模和遗产,微调的数量就会显着增加。 截至2019年底,Sber已使用超过2000个型号。 仅仅开发一个模型是不够的,还需要与工业系统集成,开发用于构建模型的数据集市,并确保其在集群上运行的控制。

Sber.DS 是一个平台,即使没有代码,您也可以创建和实现模型

我们的团队正在开发 Sber.DS 平台。 它允许您解决机器学习问题,加快测试假设的过程,原则上简化了开发和验证模型的过程,还可以在 PROM 中控制模型的结果。

为了不辜负您的期望,我想提前说明,这篇文章是介绍性文章,在开头部分,我们原则上讨论 Sber.DS 平台的底层内容。 我们将分别讲述模型从创建到实施的生命周期。

Sber.DS由几个组件组成,其中关键的是库、开发系统和模型执行系统。

Sber.DS 是一个平台,即使没有代码,您也可以创建和实现模型

该库控制着模型的生命周期,从开发模型的想法出现到在 PROM 中实现、监控和退役。 许多库的功能是由监管规则规定的,例如训练和验证样本的报告和存储。 事实上,这是我们所有模型的寄存器。

该开发系统专为模型和验证技术的可视化开发而设计。 开发的模型经过初步验证并提供给执行系统以执行其业务功能。 此外,在运行时系统中,可以将模型放置在监视器上,以便定期启动验证技术来监视其操作。

系统中有多种类型的节点。 有些旨在连接到各种数据源,另一些则旨在转换源数据并丰富它(标记)。 有许多用于构建不同模型的节点和用于验证它们的节点。 开发人员可以从任何来源加载数据、转换、过滤、可视化中间数据,并将其分解为多个部分。

该平台还包含可以拖放到设计区域的现成模块。 所有操作均使用可视化界面执行。 事实上,不需要一行代码就可以解决问题。

如果内置功能不够,系统提供快速创建自己的模块的能力。 我们提出了基于集成开发模式 Jupyter 内核网关 对于那些从头开始创建新模块的人。

Sber.DS 是一个平台,即使没有代码,您也可以创建和实现模型

Sber.DS 的架构建立在微服务之上。 关于什么是微服务有很多观点。 有些人认为将整体代码拆分成多个部分就足够了,但同时它们仍然访问同一个数据库。 我们的微服务必须仅通过 REST API 与另一个微服务通信。 没有直接访问数据库的解决方法。

我们努力确保服务不会变得非常庞大和笨拙:一个实例不应消耗超过 4-8 GB 的 RAM,并且必须能够通过启动新实例来水平扩展请求。 每个服务仅通过 REST API 与其他服务通信(开放API)。 负责服务的团队需要保持 API 向后兼容,直到最后一个客户端使用它。

该应用程序的核心是使用 Spring 框架用 Java 编写的。 该解决方案最初是为了在云基础设施中快速部署而设计的,因此该应用程序是使用容器化系统构建的 红帽OpenShift (Kubernetes)。 无论是在增加业务功能(正在添加新的连接器、AutoML)方面还是在技术效率方面,该平台都在不断发展。

我们平台的特点之一是我们可以在任何 Sberbank 模型执行系统上运行在可视化界面中开发的代码。 现在已经有两个:一个在 Hadoop 上,另一个在 OpenShift (Docker) 上。 我们并不止于此,我们还创建集成模块以在任何基础设施(包括本地和云端)上运行代码。 关于有效融入俄罗斯联邦储蓄银行生态系统的可能性,我们还计划支持现有执行环境的工作。 未来,该解决方案可以“开箱即用”灵活地集成到任何组织的任何环境中。

那些曾经尝试支持在 PROM 中的 Hadoop 上运行 Python 的解决方案的人知道,为每个数据节点准备和交付 Python 用户环境是不够的。 大量使用 Python 模块的用于机器学习的 C/C++ 库不会让您高枕无忧。 我们必须记住在添加新的库或服务器时更新包,同时保持与已实现的模型代码的向后兼容性。

有多种方法可以实现此目的。 例如,提前准备几个常用的库,并在PROM中实现。 在Cloudera的Hadoop发行版中,他们通常使用 。 现在在 Hadoop 中也可以运行 搬运工人-容器。 在某些简单的情况下,可以将代码与包一起交付 python.eggs.

银行非常重视运行第三方代码的安全性,因此我们充分利用Linux内核的新功能,让进程在隔离的环境中运行 Linux命名空间例如,您可以限制对网络和本地磁盘的访问,从而显着降低恶意代码的能力。 每个部门的数据区域都受到保护,并且只有该数据的所有者才能访问。 该平台确保一个区域的数据只能通过数据发布流程到达另一个区域,从访问源到数据落地目标店面的各个阶段都受到控制。

Sber.DS 是一个平台,即使没有代码,您也可以创建和实现模型

今年我们计划完成在 Hadoop 上启动用 Python/R/Java 编写的模型的 MVP。 我们为自己设定了一项雄心勃勃的任务,那就是学习如何在 Hadoop 上运行任何自定义环境,以免以任何方式限制我们平台的用户。

此外,事实证明,许多DS专家在数学和统计学方面非常出色,可以做出很酷的模型,但不太精通大数据转换,他们需要我们数据工程师的帮助来准备训练样本。 我们决定帮助同事创建方便的模块,用于 Spark 引擎上模型的标准转换和特征准备。 这将使您能够花更多的时间开发模型,而不必等待数据工程师准备新的数据集。

我们雇用具有不同领域知识的人员:Linux 和 DevOps、Hadoop 和 Spark、Java 和 Spring、Scala 和 Akka、OpenShift 和 Kubernetes。 下次我们会讲模型库,模型如何在公司内部经历生命周期,如何验证和实施。

来源: habr.com

添加评论