cCube:进化机器学习的云微服务架构

cCube:一种用于进化机器学习分类的云微服务架构

1 引言

我们提出cCube(比较、竞争、协作),一种开源架构,帮助用户开发应用程序以将EML算法部署到云中。源代码在 https://github.com/ccube-emll 共享,遵循 MIT 许可证。

cCube支持竞争与协作,如同FCUBE[1]这一先前项目一样,曾应对EML社区的挑战,协作开发出针对“大数据”分类问题的综述性解决方案。尽管FCUBE具有重要意义,但其架构被“锁定”在单一云提供商,即亚马逊AWS,并且缺乏自动化和强健的容错能力。

一个cCube EML应用程序处理数据、管理参数配置、使用不同算法进行平行分类器训练、过滤并融合分类器结果,最终生成一个集成模型。

cCube服务于三类用户:EML算法设计者、多算法EML应用管理者和“黑盒”终端用户。在cCube中,研究人员可以运行不同的EML算法,包括自己或其他人开发的、使用不同编程语言编写的算法,而无需插入任何代码以适应云扩展。cCube还支持众筹,即由希望执行大规模多学习器、因子化、过滤和融合应用的协作组共同分担成本。

与单体式架构不同,cCube采用微服务架构[4],每个微服务在独立的进程中运行,并通过轻量级协议(如HTTP资源API和消息队列)进行通信。每项服务均可通过完全自动化方式独立部署,使应用程序更易于扩展且具备更高的容错性。cCube为其所有微服务使用以“软件容器”形式存在的轻量级运行环境[2],并通过Docker和Docker Swarm自动部署。通过使用Docker,我们隐式地使cCube能够灵活应对云服务商通常对其用户所限制的机器数量,从而构建出一种称为“多云”的基础设施,即基于不同云服务商提供的实例分配,但这些实例共同参与同一系统[3]。

2 cCube架构

我们设计了cCube架构,该架构包含多个微服务,全部由客户端Orchestrator进行管理。它负责创建和配置计算单元,并启动及协调微服务的协同工作。该架构采用桥接模式[5]来对接不同云服务商,例如OpenStack和亚马逊EC2。

要构建一个cCube应用程序,EML开发人员需从cCube的代码仓库中复制一个模板,并自定义配置,例如EML算法调用。然后,cCube作为守护进程运行,负责管理与系统中其他微服务的通信。与cCube连接的唯一要求是定义一些预设的环境变量,这些变量规定了cCube守护进程如何在学习和预测阶段与EML算法及其结果进行交互。

开发者随后成为最终用户,在其机器上启动Orchestrator,并提供授权密钥,从而将其敏感信息保留在本地并确保安全。客户端通过Docker在资源配置、资源发现和设置完成后启动应用程序。所有生成的输出都存储到支持数据库中,例如MongoDB。

具体来说,我们定义了以下微服务,其概览如图1所示。

示意图0

因子化器 :它通过REST接口与存储(例如,PostgreSQL)进行交互,从而使用HTTP实现通信。这允许上传数据集,然后根据组件需求按需将数据集拆分为不同的部分,例如用于训练、融合和测试。

调度器 :它通过REST接口接收作业。一个作业被视为在cCube集群上执行的一系列进程,涉及所有组件,即微服务。一旦有新的作业请求,调度器会为学习器、过滤器和融合器创建任务,并以JSON格式将这些任务发布到不同的消息队列中。如果某个微服务失败,该任务将被重新放入队列,并由另一个容器重新运行。此外,任务包含运行活动所需的所有相关信息,例如目标数据集名称、训练、融合和测试的分离参数、要包含/排除的特征、持续时间等。生产者/消费者模式由“队列管理器”控制,例如RabbitMQ。

学习器 :多个学习器中的每一个都会消费一个任务、训练数据样本和参数,这些参数可能是在调度器创建任务时随机生成的,从而也允许进行参数因子化。首先,由因子化器提供用于训练的数据样本,学习器在接收到该样本后,根据给定的持续时间(即任务中包含的参数之一)执行EML算法。然后,将计算得到的模型进行压缩,存储在消息中,并发送到输出队列。
过滤器 :它会消费输出,直到最后一个预期的模型到达。然后,根据过滤策略,这些模型会在已预留的数据子集上执行。在集合的过滤后的模型完成后,会作为单条消息发布到另一个队列进行融合。

融合器 :过滤后的模型最终被融合在一起,以协作形成一个集成模型。融合任务被消费,提供所需的信息。用于融合的数据来自因子化器,即在过滤阶段使用的相同数据分割。然后,使用另一个数据分割来测试集成模型并计算一些预测性能指标。

3 结论与未来工作

我们提出了cCube,这是一个开源架构,用于EML算法和用户之间的比较、竞争和多方协作。在未来的工作中,我们计划实现并实验cCube,使用不同的用例、算法和云服务商。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值