系统架构
HuggingFists的前端主体开发语言为Html+Javascript,后端的主体开发语言为Java。在算子部分有一定份额的Python代码,用于整合Python在数据处理方面强大能力。
功能架构
HuggingFists的功能架构如上,由下向上各层为:
-
数据存储层
数据存储层并不属于HuggingFists系统,其主要描述了HuggingFists系统可以对接和管理的各类数据源。HuggingFists系统被定义为面向全结构数据的AI应用开发及运营平台,为此其需要对接各类能够存储数据的数据源。在HuggingFists的技术理念中,任何需要被处理的源数据或结果数据都在该层提供的数据源中完成读写访问。因此,使用HuggingFists的第一步需要先配置好数据源。
HuggingFists支持的数据源类型包括:文件系统、数据库、流服务以及应用系统的四大类。
Ø 文件系统用于对接各类文件系统型数据源,通过该类数据源可以读写以文件形式存储的各类数据。该数据源类型的引入,可极大丰富原始数据以及非结构化数据的访问能力。支持远程文件系统、分布式文件系统及云文件系统等。
Ø 数据库用于对接各类数据库型数据源。支持的数据库种类包括:关系数据库、列式数据库、键值数据库、文档数据库、时序数据库、数据仓库以及图数据库等。
Ø 流服务用于对接时效能力较高的数据源,比如:消息队列等,用于数据处理时效性较高的场景。支持消息队列、分布式消息队列及云消息队列等
Ø 应用系统用于对接各类应用数据源,比如:SAAS类应用、ERP类应用等。该类数据源主要提供数据的读取能力,比如读取某个金融网站的证券数据、交易数据;读取某个ERP应用的客户数据、运营数据等。该类数据源拥有较强的行业属性。
-
数据计算层
数据计算层支持部署多计算节点,用于完成数据科学流程的解释及执行。HuggingFists支持的计算节点为单节点计算引擎,主要用来完成复杂的流程控制及小规模数据的处理及分析工作。所有任务只能在单节点引擎内执行,不支持类似Spark及Flink的分布式海量结构化数据计算能力。该能力在 HuggingFists所依赖的Sengee计算框架中予以了支持,有此需求的用户可以查阅Sengee的相关资料。数据计算层支持多节点主要是用来应对同时可能并发多个任务时,可以通过多计算节点水平扩展HuggingFists系统的计算能力。
HuggingFists的计算节点根据需要支持的业务场景被定义为不同类型。在上图中,计算节点分为两类,一类是通用计算节点,能够支持一般流程的解释执行;一类是增强型节点,即图中带有Dyputer组件的节点,集成了Notebook。允许通过Notebook交互式进行Python编程,从而扩展HuggingFists支持能力不足的部分,比如:各类AI模型的应用,深度学习的集成等。
-
平台核心层
平台核心层用于提供整个平台的核心管理功能。包括数据源管理、流程管理、数据服务管理、作业管理、模型管理、计算节点管理、资源管理及用户管理等模块。
Ø 数据源管理用于对数据科学计算所需的各类数据源进行管理,支持的数据源类型包括:数据库、文件系统、事件流以及应用系统。
Ø 流程管理用于管理HuggingFists系统中的各类流程。包括图流程、程序流程、作业流程以及API流程等。
Ø 数据服务管理用于接入外部的Web API接口,供HuggingFists在流程定义中使用;以及将通过HuggingFists定义的流程供外部系统访问。
Ø 作业管理用于为流程定义各种不同触发类型的作业,并完成作业的调度运行及监控。支持的作业触发方式包括:即时、定时、事件触发以及交互式触发等多种。
Ø 模型管理用于管理系统中所有的训练模型,包括流程训练输出的模型以及通过外部导入的模型。可将这些模型部署为服务、也可在流程中使用这些模型完成数据的处理。
Ø 计算节点管理用于管理各类计算节点。
Ø 资源管理用于管理HuggingFists中的各类资源,包括连接器、算子、提示模板、应用模板等。其中,连接器及算子为HuggingFists的插件资源;提示模板与应用模板为大模型等相关算子应用所需的配置资源。
Ø 用户管理用于创建管理平台中的用户及用户的权限