CN117891866A - 一种分布式机器学习的批流统一构建系统 - Google Patents
一种分布式机器学习的批流统一构建系统 Download PDFInfo
- Publication number
- CN117891866A CN117891866A CN202311844094.6A CN202311844094A CN117891866A CN 117891866 A CN117891866 A CN 117891866A CN 202311844094 A CN202311844094 A CN 202311844094A CN 117891866 A CN117891866 A CN 117891866A
- Authority
- CN
- China
- Prior art keywords
- data
- real
- time
- machine learning
- offline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 122
- 238000010276 construction Methods 0.000 title claims abstract description 33
- 238000013500 data storage Methods 0.000 claims abstract description 68
- 238000012549 training Methods 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000003860 storage Methods 0.000 claims abstract description 26
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 238000011084 recovery Methods 0.000 claims abstract description 13
- 230000002085 persistent effect Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 45
- 230000000694 effects Effects 0.000 claims description 14
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 6
- 230000002829 reductive effect Effects 0.000 abstract description 8
- 238000013461 design Methods 0.000 abstract description 7
- 238000011161 development Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提出一种分布式机器学习的批流统一构建系统,该系统将传统机器学习数据存储方式和实时机器学习数据存储方式的离线实时数据进行统一存储,不仅能够处理实时数据流,还能提供持久化存储,降低了系统的复杂性,增强了结构的统一性;本发明的系统实现底层API的统一,同时支持两种机器学习方法的工具的开发,满足不同场景下的机器学习需求;本发明针对实时机器学习的高准确性和快速恢复能力的需求,设计可靠的容错机制,能够在训练过程中出现错误或中断时,确保准确且快速地进行恢复,保障了实时训练的准确性,以及高可靠性和高可用性。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种分布式机器学习的批流统一构建系统。
背景技术
随着互联网和信息技术的迅速发展,数据生成的速度急剧增加,促使机器学习领域发生了重大变革,特别是在大数据的推动下。传统机器学习已经广泛应用于日常生活中的多个领域,如媒体的个性化推荐和金融领域的欺诈检测。然而,这些方法主要依赖静态模型和历史数据,无法实时更新以适应用户需求的变化。例如,基于用户历史行为的推荐系统无法立即反映用户当前的兴趣变化。因此,出现了一种新的需求,即实时机器学习(Real-Time Machine Learning),这种方法能够在不断变化的数据流中实时更新模型,适应迅速变化的环境。与传统机器学习相比,实时机器学习面临着诸多挑战,如数据存储的不一致性、使用方式的不同及更高的容错机制需求。这些问题需要通过技术创新来解决,以提高分布式机器学习的批流一体化能力。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的目的在于提出一种分布式机器学习的批流统一构建系统,旨在提高分布式机器学习的批流一体化能力。
为达上述目的,本申请实施例提出了一种分布式机器学习的批流统一构建系统,包括:统一数据存储装置和统一分布式机器学习作业构建装置;其中,
所述统一数据存储装置,用于通过两条不同的通道,使离线数据和实时数据以数据库表的形式落盘到数据湖中;
所述统一分布式机器学习作业构建装置,用于对所述离线数据采用传统机器学习的方式进行数据训练和数据预测,对所述实时数据采用实时机器学习的方式进行数据训练和数据预测,并写入所述数据湖中进行数据保存。
其中,统一数据存储装置包括:
离线数据存储模块,用于基于数据处理引擎,从结构化数据、半结构化数据系统中采集所述离线数据,进行数据处理后写入所述数据湖中;
实时数据存储模块,用于基于数据处理引擎,在不影响数据处理速度的情况下,将所述实时数据进行持久化存储,以降低实时数据存储的成本以及批流数据存储的统一。
其中,离线数据存储模块包括:
离线数据类型选择单元,用于选择需要进入所述数据湖的离线数据的数据类型;
离线数据源表信息创建单元,用于根据选定类型的离线数据创建离线数据源的源表信息;
离线数据存储任务生成单元,用于基于所述原表信息,生成数据处理任务,以将选定类型的离线数据输入所述数据湖中;
离线数据恢复单元,用于确保离线数据入湖的可靠性和数据的完整性,定期创建离线数据处理过程的快照,以在发生错误或失败时恢复到当前次离线数据导入的状态,而不必重新执行整个离线数据导入过程。
其中,实时数据存储模块包括:
实时数据输入源选择单元,用于使用Kafka作为实时数据的流数据输入数据源,同时进行与Kafka集群的连接配置,以保证数据可靠提取;
实时数据源表信息创建单元,用于根据输入的实时数据创建实时数据源的源表信息;
实时数据存储任务生成单元,用于基于所述原表信息,生成数据处理任务,以将所述实时数据输入所述数据湖中;
实时数据恢复单元,用于确保实时数据入湖的可靠性和数据的完整性,定期创建实时数据处理过程的快照,以在发生错误或失败时恢复到当前次实时数据导入的状态,而不必重新执行整个实时数据导入过程。
其中,统一分布式机器学习作业构建装置包括:
离线机器学习作业构建模块,用于为来源于数据湖的离线数据提供数据训练和数据预测,产生的数据预测结果输出至所述数据湖中进行数据统一保存;
实时机器学习作业构建模块,用于为来源于数据湖的实时数据提供数据训练和数据预测,产生的数据预测结果输出至所述数据湖中进行数据统一保存。
其中,离线机器学习作业构建模块包括:
离线批数据输入单元,用于从作为大型数据存储系统的数据湖中提取离线批数据;
离线模型训练单元,用于将输入的离线批数据转换为适合机器学习处理的数据格式,并输入离线机器学习组件中进行模型训练;
离线批数据写出单元,用于在离线模型训练完成后,将离线数据预测结果写入所述数据湖中;
离线任务提交运行单元,用于接收预设的训练作业,且保证离线模型训练和数据预测任务并行执行;
离线机器学习效果展示单元,用于根据使用的算法和任务类型的不同,采用相应的评估标准来评估离线模型效果。
其中,实时机器学习作业构建模块包括:
实时数据输入单元,用于从作为大型数据存储系统的数据湖中提取实时批数据;
在线预测单元,用于将输入的实时批数据转换为适合机器学习处理的数据格式,并输入实时机器学习组件中进行模型训练;
在线学习单元,用于以所述离线模型训练单元训练得到的离线模型作为初始模型进行在线学习,通过实时数据实时更新在线学习模型,并对实时数据进行预测;
实时数据预测结果写出单元,用于将实时机器学习产生的预测结果以流式方式写入Kafka中;
实时任务提交运行单元,用于接收预设的训练作业,且保证实时机器学习作业和数据预测任务并行执行;
实时机器学习效果展示单元,用于根据使用的算法和任务类型的不同,采用相应的评估标准来评估在线学习模型效果。
其中,还包括针对分布式实时机器学习的容错机制;其中,
所述针对分布式实时机器学习的容错机制用于完善所述实时数据存储模块对实时数据的数据存储,确保实时数据流的可靠性,使实时机器学习过程中数据落到数据湖中统一存储。
区别于现有技术,本申请提供的一种分布式机器学习的批流统一构建系统,该系统将传统机器学习数据存储方式和实时机器学习数据存储方式的离线实时数据进行统一存储,不仅能够处理实时数据流,还能提供持久化存储,降低了系统的复杂性,增强了结构的统一性;本发明的系统实现底层API的统一,同时支持两种机器学习方法的工具的开发,满足不同场景下的机器学习需求;本发明针对实时机器学习的高准确性和快速恢复能力的需求,设计可靠的容错机制,能够在训练过程中出现错误或中断时,确保准确且快速地进行恢复,保障了实时训练的准确性,以及高可靠性和高可用性。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中统一数据存储装置的架构示意图。
图2为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中离线数据存储模块的架构示意图。
图3为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中实时数据存储模块的架构示意图。
图4为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中统一分布式机器学习作业构建装置的架构示意图。
图5为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中离线机器学习作业构建模块的架构示意图。
图6为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中实时机器学习作业构建模块的架构示意图。
图7为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中实时机器学习作业构建模块在线预测的逻辑示意图。
图8为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中实时机器学习作业构建模块在线学习的逻辑示意图。
图9为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中某一时刻的容错状态的示意图。
图10为本申请实施例所提供的一种分布式机器学习的批流统一构建系统中容错状态进行恢复的示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的一种分布式机器学习的批流统一构建系统。
本申请实施例提供了一种分布式机器学习的批流统一构建系统的结构示意图。该系统包括:
统一数据存储装置和统一分布式机器学习作业构建装置;其中,
所述统一数据存储装置,用于通过两条不同的通道,使离线数据和实时数据以数据库表的形式落盘到数据湖中;
所述统一分布式机器学习作业构建装置,用于对所述离线数据采用传统机器学习的方式进行数据训练和数据预测,对所述实时数据采用实时机器学习的方式进行数据训练和数据预测,并写入所述数据湖中进行数据保存。
具体的,本发明的系统总体架构分为离线和实时两部分。通过两条不同的通道,离线数据和实时数据最终将会以数据库表的形式落盘到数据湖中,交由上层服务进行应用,包括但不限于机器学习、BI分析等。数据湖(Data Lake)是以原始数据格式存储各种来源数据,简化和改进大数据存储、管理和分析的一种技术。数据湖的数据组织方式是根据重复使用的需求而不是提前定义的,直到需要使用数据时才进行处理。可以将其想象成一个大型数据池,用来汇总所有已积累的历史数据和近实时新增数据,无论数据的结构如何,都能够被容纳在同一位置。数据湖是经过良好管理和保护的,拥有可扩展架构,高可用性,中央目录和索引等特点。基于数据湖所拥有的上述特点,本文选择其作为离线数据与实时数据统一存储的大数据存储框架组件基础。目前现有数据湖框架有以下几种,分别是Iceberg、Hudi、Delta Lake,以及于2023年6月由阿里发布的流式数据湖Paimon的v0.4版本。经过比较,Hudi较依赖于Spark引擎,开源的Delta Lake功能较不完善,Paimon因为仍处于早期阶段所以很多功能还不稳定,本发明实施例中选择使用Iceberg作为数据统一存储的框架,HDFS作为数据存储的基础。
如图1所示,统一数据存储装置包括:
离线数据存储模块,用于基于数据处理引擎,从结构化数据、半结构化数据系统中采集所述离线数据,进行数据处理后写入所述数据湖中。
本发明所涉及的离线数据存储模块为大量的离线批数据提供数据入湖存储的功能。基于与后续实时数据存储系统使用统一API(应用程序编程接口)的考量,故使用Flink作为数据处理引擎,实现了从结构化数据、半结构化数据等系统采集离线数据,进行简单的ETL(ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)等操作,最后根据需求写入到iceberg数据湖中。具体设计如下图2所示。
进一步,离线数据存储模块包括:
离线数据类型选择单元,用于选择需要进入所述数据湖的离线数据的数据类型。
离线数据入湖需要根据需求选择数据源类型。这可以包括各种结构化数据源,如MySQL、Oracle等,以及半结构化数据,比如通过Flume采集的日志数据等。对于每个数据源,使用者需要配置地址、端口号、用户名和密码等连接信息,以确保可靠的数据提取。
离线数据源表信息创建单元,用于根据选定类型的离线数据创建离线数据源的源表信息。
当数据源的配置完成,使用者需要根据输入数据创建数据源的源表信息。包括定义数据的结构、模式、以及字段映射等元数据。同时,需要为Iceberg数据湖中的目标表提供信息,包括表的模式和结构定义。系统会设计可视化的界面进行点选操作,通过较为直观的交互方式完成,从而减少了用户的复杂性和提高了生产效率。
离线数据存储任务生成单元,用于基于所述原表信息,生成数据处理任务,以将选定类型的离线数据输入所述数据湖中。
将根据上述配置自动生成相应的数据处理任务,使用Flink作为数据处理引擎。这些作业负责数据的抽取、转换、加载以及将数据写入Iceberg数据湖中。
离线数据恢复单元,用于确保离线数据入湖的可靠性和数据的完整性,定期创建离线数据处理过程的快照,以在发生错误或失败时恢复到当前次离线数据导入的状态,而不必重新执行整个离线数据导入过程。
在数据入湖的过程中,为了确保数据入湖的可靠性和数据的完整性,系统可以配置Flink的Checkpoint功能用于定期创建数据处理过程的快照,以便在发生错误或失败时能够恢复到先前的状态,而不必重新执行整个数据导入过程。
实时数据存储模块,用于基于数据处理引擎,在不影响数据处理速度的情况下,将所述实时数据进行持久化存储,以降低实时数据存储的成本以及批流数据存储的统一。
具体的,实时数据存储模块为大量的实时流数据提供数据入湖的功能。目前常用的流数据处理引擎有Spark Streaming和Flink,考虑到Flink在流数据处理方面的优势这里选择Flink作为数据处理引擎。流数据多使用消息中间件作为数据存储的基础以及实时机器学习对于流数据低延迟的需求(比如金融欺诈检测等),所以实时部分主要设计理念是在不影响数据处理速度的情况下如何将实时数据进行持久化存储,以降低实时数据存储的成本以及批流数据存储的统一。具体设计如下图3所示。
其中,实时数据存储模块包括:
实时数据输入源选择单元,用于使用Kafka作为实时数据的流数据输入数据源,同时进行与Kafka集群的连接配置,以保证数据可靠提取。
实时数据目前常使用Kafka作为流数据的输入数据源,所以数据源的选择暂时设置为Kafka。除此之外,还需要配置Kafka集群的地址及端口号、group组id、topic主题、读取模式、数据格式等信息,来保证数据的可靠提取。
实时数据源表信息创建单元,用于根据输入的实时数据创建实时数据源的源表信息。
当数据源的配置完成后,使用者需要根据输入数据创建数据源的源表信息。包括定义数据的结构、模式、以及字段映射等元数据。同时,需要为Iceberg数据湖中的目标表提供信息,包括表的模式和结构定义。系统会设计可视化的界面进行点选操作,通过较为直观的交互方式完成,从而减少了用户的复杂性和提高了生产效率。
实时数据存储任务生成单元,用于基于所述原表信息,生成数据处理任务,以将所述实时数据输入所述数据湖中。
根据上述配置自动生成相应的数据处理任务,使用Flink作为数据处理引擎。同时,将启动一个定时任务,可以按照设定的时间间隔,将Kafka中的流数据按照时间间隔作为一个窗口,将窗口内的数据写入到iceberg数据湖中,对实时数据做备份,从而减少保存在Kafka中的数据量,降低存储成本。
实时数据恢复单元,用于确保实时数据入湖的可靠性和数据的完整性,定期创建实时数据处理过程的快照,以在发生错误或失败时恢复到当前次实时数据导入的状态,而不必重新执行整个实时数据导入过程。
在数据入湖的过程中,为了确保实时数据的可靠性和数据的完整性,配置Flink的Checkpoint功能用于定期创建数据处理过程的快照,以便在发生错误或失败时能够恢复到先前的状态,而不必重新执行整个数据导入过程。
如图4所示,统一分布式机器学习作业构建装置分为离线和实时两部分结构,数据存储基于上述提出的离线与实时数据的统一存储系统。传统机器学习多为离线数据训练且预测数据也是批数据,所以数据完全来源于数据湖部分,经过训练产生的预测结果也可以输出到数据湖中进行数据统一保存。实时机器学习,采用了Chip Huyen文中的划分方式分成两个层级:在线预测和在线学习。在线预测需要使用数据湖中的离线数据进行模型训练,并对实时数据流传递过来的数据进行预测,并将预测传递回Kafka中,由数据存储系统中的定时任务定期写入数据湖。在线学习需要初始的模型避免冷启动问题,同时根据实时数据流传递的数据不断进行在线训练,并对流式输入的数据进行预测,结果也将不断写入Kafka中,并定时写入数据湖中进行保存。
具体的,统一分布式机器学习作业构建装置包括:
离线机器学习作业构建模块,用于为来源于数据湖的离线数据提供数据训练和数据预测,产生的数据预测结果输出至所述数据湖中进行数据统一保存。
如图5所示,离线机器学习作业构建模块包括:
离线批数据输入单元,用于从作为大型数据存储系统的数据湖中提取离线批数据。
批数据通常存储在大型的数据存储系统中,例如本发明实施例中使用的Iceberg数据湖。数据湖作为一个集中的数据存储解决方案,能够存储各种格式和来源的数据,并提供统一的数据访问接口。Flink被用作一个桥梁,将存储在数据湖中的数据库表转化为Flink Table的格式,使得数据可以在后续的步骤中更容易地进行处理。根据数据的信息进行相关配置,确保数据可以正确地被读取。
离线模型训练单元,用于将输入的离线批数据转换为适合机器学习处理的数据格式,并输入离线机器学习组件中进行模型训练。
本发明的实施例中,利用Alink提供的API,Flink Table格式的数据将被转换成适合机器学习处理的格式。Alink提供了丰富的机器学习组件,支持多种常见的机器学习任务,包括分类、回归、聚类和特征工程等。在使用这些组件时,用户需要配置多种参数,例如标签列、预测结果列等,确保机器学习模型可以正确地进行训练。除了基本的配置外,针对部分模型提供了许多高级配置选项,根据需求进行微调,增强了工具的灵活性和可用性。
离线批数据写出单元,用于在离线模型训练完成后,将离线数据预测结果写入所述数据湖中。
模型训练完成后,预测结果可以被写回到数据湖中。根据需要,Alink的输出会被转换回Flink Table的格式,然后再被存储回数据湖中。数据存储需提供数据湖中目标表的模式、结构定义以及存储地址等信息。模型训练的参数可以写出到HDFS中进行保存。同时设计可视化的界面,通过简单的点选操作完成相关的配置,使得整个流程更加直观。
离线任务提交运行单元,用于接收预设的训练作业,且保证离线模型训练和数据预测任务并行执行。
预设的训练作业需要被上传到Flink集群中进行执行。Flink集群通常由多台机器组成,可以并行地处理大量的数据和任务,确保机器学习作业可以在合理的时间内完成。在作业运行的过程中,可以跳转到Flink提供的一个官方的Web UI,用于实时观察作业的进度,追踪可能出现的问题,并进行必要的调试。
离线机器学习效果展示单元,用于根据使用的算法和任务类型的不同,采用相应的评估标准来评估离线模型效果。
根据使用的算法和任务类型的不同,采用不同的评估标准来评估模型的效果,例如准确率、召回率或均方误差等。这些评估结果会被整合并展示在前端界面中,用于快速地介绍模型性能,并根据需要进行进一步优化。
实时机器学习作业构建模块,用于为来源于数据湖的实时数据提供数据训练和数据预测,产生的数据预测结果输出至所述数据湖中进行数据统一保存。
如图6所示,实时机器学习作业构建模块包括:
实时数据输入单元,用于从作为大型数据存储系统的数据湖中提取实时批数据。
实时机器学习的数据输入包括批数据输入,主要用于训练实时数据模型,解决冷启动等问题;实时输入数据对于在线预测模块来说,主要作为需要进行实时预测的数据,对于在线学习模块而言,除了实时预测之外,流数据还会输入到模型训练中,不断矫正实时模型参数。
在线预测单元,用于将输入的实时批数据转换为适合机器学习处理的数据格式,并输入实时机器学习组件中进行模型训练。
Alink提供了丰富的机器学习组件,支持多种常见的机器学习任务,包括分类、回归、聚类和特征工程等。在使用这些组件时,需要配置多种参数,例如标签列、预测结果列等,确保机器学习模型可以正确地进行训练,继而能够实时给出预测结果,具体架构如图7所示。存储系统中的离线数据会被用于离线模型的训练,训练好的模型会被用于对实时流入的数据进行实时预测。除了基本的配置外,系统针对部分模型提供了许多高级配置选项,允许根据需求进行微调,增强了工具的灵活性和可用性。
在线学习单元,用于以所述离线模型训练单元训练得到的离线模型作为初始模型进行在线学习,通过实时数据实时更新在线学习模型,并对实时数据进行预测。
Alink提供了一个在线组件,该组件支持多种在线学习模型并且支持多种在线优化算法。基于此组件设计了在线学习模块,具体架构如图8所示。读入离线数据先训练一个离线模型作为初始模型避免冷启动问题,然后以该模型为初始模型进行在线学习,在线学习过程中,将使用最新的流式数据实时更新在线学习模型,并对实时数据进行预测。
实时数据预测结果写出单元,用于将实时机器学习产生的预测结果以流式方式写入Kafka中。
实时机器学习产生的预测结果可以流式的写入Kafka中,交由其他系统以解耦的方式进行使用。或者重新写回到统一的数据存储系统的Kafka中,根据用户定义的时间间隔,将预测结果数据向下保存到数据湖中。写出时需要配置Kafka集群的地址及端口号、group组id、topic主题、读取模式、数据格式等信息。
实时任务提交运行单元,用于接收预设的训练作业,且保证实时机器学习作业和数据预测任务并行执行。
预设的训练作业需要被上传到Flink集群中进行执行。Flink集群通常由多台机器组成,可以并行地处理大量的数据和任务,确保机器学习作业可以在合理的时间内完成。在作业运行的过程中,可以跳转到Flink提供的一个官方的Web UI,,用于实时观察作业的进度,追踪可能出现的问题,并进行必要的调试。
实时机器学习效果展示单元,用于根据使用的算法和任务类型的不同,采用相应的评估标准来评估在线学习模型效果。
根据使用的算法和任务类型的不同,采用不同的评估标准来评估模型的效果,例如准确率、召回率或均方误差等。这些评估结果会被整合并展示在前端界面中,用于介绍模型的性能,并根据需要进行进一步优化。
本发明的系统还包括针对分布式实时机器学习的容错机制;该机制包括输入端、Flink内部及输出端;
如图9所示,若系统在某一时刻处于容错状态,输入端和Flink算子保存自身状态,但是输出端尚未保存自身状态,状态后端中已提交完成的快照仍然是上一个状态。如果当前系统出现故障时,那么容错机制将会启动,将数据进行恢复,从而避免数据被重复计算等问题,增强计算的准确性,恢复后如图10所示。
该机制的使用相比于传统的容错机制有两点优势:(1)本机制和研究点一的统一存储系统可以紧密结合,将状态数据存入到统一的存储系统中,增强了系统的集中性,降低了容错机制构建的复杂程度;(2)本机制使用Kafka的相关功能结合Flink的Checkpoint机制,实现简单并且同时兼顾了数据的实时性以及高度的准确性,保证了数据不被冗余处理,增强了系统的容错能力。
具体的,输入端的Kafka作为一个分布式流处理平台,提供了高吞吐率、持久化、可扩展以及支持流数据的复制和分区的功能。当它与Apache Flink集成时,能够构建一个强大的实时数据流处理系统。Flink使用FlinkKafkaConsumer连接器与Kafka集成,这个连接器负责从Kafka主题中读取数据,并将这些数据流转换成Flink可以处理的数据流。FlinkKafkaConsumer可以跟踪正在处理的数据的Kafka偏移量,并将这些偏移量作为算子状态存储在Flink的状态后端中。在Flink的每个检查点时刻,当前的偏移量会被保存起来。当发生故障时,从检查点中读取恢复状态,并由连接器FlinkKafkaConsumer向Kafka重新提交偏移量,就可以重新消费数据、保证结果的一致性了。
Flink内部的数据一致性,可以使用检查点(checkpoint)机制进行保证,在线训练过程中产生的模型参数会根据分界线(barrier)到来的时间定期的保存到状态后端中。Flink在1.13版本中对状态后端的分类进行了重新规划,分成‘HashMapStateBackend’和‘EmbeddedRocksDBStateBackend’两类,但是运行时实现和机制没有变,依然可以划分为三种类型的状态后端,分别是:内存状态后端(The MemoryStateBackend),文件系统状态后端(The FsStateBackend)和RocksDB状态后端(The RocksDBStateBackend)[21]。内存状态后端保存的快照会存储在Master节点的内存中,一旦掉电,数据就会丢失,非常不安全。文件系统状态后端保存的快照可以存储在本地,一般选择HDFS或其他分布式文件系统。RocksDB状态后端保存的快照会存储在RocksDB中,提供了增量存储能力,但是本文对这项功能并没有需求,且RocksDB状态后端的保存速度和吞吐量比文件系统状态后端要差。再因为统一数据存储的数据湖本身就建立在HDFS之上,所以本文最终选择文件系统状态后端(TheFsStateBackend)作为模型参数保存的选择。
Flink通过提供FlinkKafkaProducer作为sink连接器,允许数据流的结果被写回到Kafka。当在FlinkKafkaProducer的构造函数中传入参数‘Semantic.EXACTLY_ONCE’时,它指示Flink使用精准一次性的语义来发布消息到Kafka中。在这种语义下,配合Kafka内部的事务机制,每条记录在Kafka中只会被写入一次,即使在发生重启或故障时也不会重复。
本申请中所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
需要说明的是,来自用户的个人信息应当被收集用于合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享,包括但不限于在用户使用该功能前,通知用户阅读用户协议/用户通知,并签署包括授权相关用户信息的协议/授权。此外,还需采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。
本申请预期可提供用户选择性阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件和/或软件,以防止或阻止对此类个人信息数据的访问。一旦不再需要个人信息数据,通过限制数据收集和删除数据可最小化风险。此外,在适用时,对此类个人信息去除个人标识,以保护用户的隐私。
在前述各实施例描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种分布式机器学习的批流统一构建系统,其特征在于,包括:统一数据存储装置和统一分布式机器学习作业构建装置;其中,
所述统一数据存储装置,用于通过两条不同的通道,使离线数据和实时数据以数据库表的形式落盘到数据湖中;
所述统一分布式机器学习作业构建装置,用于对所述离线数据采用传统机器学习的方式进行数据训练和数据预测,对所述实时数据采用实时机器学习的方式进行数据训练和数据预测,并写入所述数据湖中进行数据保存。
2.根据权利要求1所述的分布式机器学习的批流统一构建系统,其特征在于,所述统一数据存储装置包括:
离线数据存储模块,用于基于数据处理引擎,从结构化数据、半结构化数据系统中采集所述离线数据,进行数据处理后写入所述数据湖中;
实时数据存储模块,用于基于数据处理引擎,在不影响数据处理速度的情况下,将所述实时数据进行持久化存储,以降低实时数据存储的成本以及批流数据存储的统一。
3.根据权利要求2所述的分布式机器学习的批流统一构建系统,其特征在于,所述离线数据存储模块包括:
离线数据类型选择单元,用于选择需要进入所述数据湖的离线数据的数据类型;
离线数据源表信息创建单元,用于根据选定类型的离线数据创建离线数据源的源表信息;
离线数据存储任务生成单元,用于基于所述原表信息,生成数据处理任务,以将选定类型的离线数据输入所述数据湖中;
离线数据恢复单元,用于确保离线数据入湖的可靠性和数据的完整性,定期创建离线数据处理过程的快照,以在发生错误或失败时恢复到当前次离线数据导入的状态,而不必重新执行整个离线数据导入过程。
4.根据权利要求2所述的分布式机器学习的批流统一构建系统,其特征在于,所述实时数据存储模块包括:
实时数据输入源选择单元,用于使用Kafka作为实时数据的流数据输入数据源,同时进行与Kafka集群的连接配置,以保证数据可靠提取;
实时数据源表信息创建单元,用于根据输入的实时数据创建实时数据源的源表信息;
实时数据存储任务生成单元,用于基于所述原表信息,生成数据处理任务,以将所述实时数据输入所述数据湖中;
实时数据恢复单元,用于确保实时数据入湖的可靠性和数据的完整性,定期创建实时数据处理过程的快照,以在发生错误或失败时恢复到当前次实时数据导入的状态,而不必重新执行整个实时数据导入过程。
5.根据权利要求1所述的分布式机器学习的批流统一构建系统,其特征在于,所述统一分布式机器学习作业构建装置包括:
离线机器学习作业构建模块,用于为来源于数据湖的离线数据提供数据训练和数据预测,产生的数据预测结果输出至所述数据湖中进行数据统一保存;
实时机器学习作业构建模块,用于为来源于数据湖的实时数据提供数据训练和数据预测,产生的数据预测结果输出至所述数据湖中进行数据统一保存。
6.根据权利要求5所述的分布式机器学习的批流统一构建系统,其特征在于,所述离线机器学习作业构建模块包括:
离线批数据输入单元,用于从作为大型数据存储系统的数据湖中提取离线批数据;
离线模型训练单元,用于将输入的离线批数据转换为适合机器学习处理的数据格式,并输入离线机器学习组件中进行模型训练;
离线批数据写出单元,用于在离线模型训练完成后,将离线数据预测结果写入所述数据湖中;
离线任务提交运行单元,用于接收预设的训练作业,且保证离线模型训练和数据预测任务并行执行;
离线机器学习效果展示单元,用于根据使用的算法和任务类型的不同,采用相应的评估标准来评估离线模型效果。
7.根据权利要求6所述的分布式机器学习的批流统一构建系统,其特征在于,所述实时机器学习作业构建模块包括:
实时数据输入单元,用于从作为大型数据存储系统的数据湖中提取实时批数据;
在线预测单元,用于将输入的实时批数据转换为适合机器学习处理的数据格式,并输入实时机器学习组件中进行模型训练;
在线学习单元,用于以所述离线模型训练单元训练得到的离线模型作为初始模型进行在线学习,通过实时数据实时更新在线学习模型,并对实时数据进行预测;
实时数据预测结果写出单元,用于将实时机器学习产生的预测结果以流式方式写入Kafka中;
实时任务提交运行单元,用于接收预设的训练作业,且保证实时机器学习作业和数据预测任务并行执行;
实时机器学习效果展示单元,用于根据使用的算法和任务类型的不同,采用相应的评估标准来评估在线学习模型效果。
8.根据权利要求5所述的分布式机器学习的批流统一构建系统,其特征在于,还包括针对分布式实时机器学习的容错机制;其中,
所述针对分布式实时机器学习的容错机制用于完善所述实时数据存储模块对实时数据的数据存储,确保实时数据流的可靠性,使实时机器学习过程中数据落到数据湖中统一存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311844094.6A CN117891866A (zh) | 2023-12-28 | 2023-12-28 | 一种分布式机器学习的批流统一构建系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311844094.6A CN117891866A (zh) | 2023-12-28 | 2023-12-28 | 一种分布式机器学习的批流统一构建系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117891866A true CN117891866A (zh) | 2024-04-16 |
Family
ID=90639046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311844094.6A Pending CN117891866A (zh) | 2023-12-28 | 2023-12-28 | 一种分布式机器学习的批流统一构建系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891866A (zh) |
-
2023
- 2023-12-28 CN CN202311844094.6A patent/CN117891866A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209650B (zh) | 数据规整迁移方法、装置、计算机设备和存储介质 | |
CN110222036B (zh) | 用于自动数据库迁移的方法和系统 | |
US9842126B2 (en) | Automatic repair of corrupt HBases | |
US9569480B2 (en) | Method and system for stateful recovery and self-healing | |
US8151248B1 (en) | Method and system for software defect management | |
US11669507B2 (en) | Indexing and relaying data to hot storage | |
US10552296B2 (en) | Human-readable, language-independent stack trace summary generation | |
US20220011955A1 (en) | Optimizing resiliency group formation stability | |
US20110082832A1 (en) | Parallelized backup and restore process and system | |
US8078914B2 (en) | Open error-handling system | |
US11782625B2 (en) | Heterogeneity supportive resiliency groups | |
CN106575244A (zh) | 确保云应用的高可用性的修补过程 | |
CN110781231A (zh) | 基于数据库的批量导入方法、装置、设备及存储介质 | |
CN107545015A (zh) | 一种查询故障的处理方法及处理装置 | |
CN115145697A (zh) | 数据库事务的处理方法、装置及电子设备 | |
CN112597218A (zh) | 一种数据处理方法、装置以及数据湖架构 | |
CN107729541A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
US10740202B2 (en) | System and method for efficient comparison of mirrored storage devices | |
CN117891866A (zh) | 一种分布式机器学习的批流统一构建系统 | |
CN114896164A (zh) | 接口优化方法、装置、电子设备及存储介质 | |
CN116010452A (zh) | 基于流式计算引擎的工业数据处理系统和方法、介质 | |
CN112559641A (zh) | 拉链表的处理方法及装置、可读存储介质及电子设备 | |
US20140358953A1 (en) | Problem management record profiling | |
JP2008293229A (ja) | 履歴データ処理装置および方法 | |
CN110262927A (zh) | 应用于数据备份的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |