人工智能编程系统和方法与流程

文档序号:29065694发布日期:2022-03-01 18:56阅读:369来源:国知局
人工智能编程系统和方法与流程

1.本技术涉及人工智能技术领域,尤其涉及一种人工智能编程系统和方法。


背景技术:

2.随着人工智能(artificial intelligence,ai)技术的发展和普及,ai技术被应用于数据处理,如基于ai系统进行数据处理模型的搭建、部署、训练及应用等。
3.在现有技术中,人工智能编程系统包括上层客户端接口、底层编程接口及执行系统,上层客户端接口用于,供用户client调用,实现编程,且上层客户端接口包括实时数据的不同数组类型的接口,即不同的数组类型对应的接口不同。
4.然而,发明人在实现本技术的过程中,发现通过上述现有技术中的方式至少存在以下问题:用户在调用上层客户端接口时,需要针对实时数据的数组类型调用不同的接口,系统无法实现自动适配。


技术实现要素:

5.为解决上述技术问题中的至少一个,本技术实施例提供了一种人工智能编程系统和方法。
6.根据本技术实施例的一个方面,本技术实施例提供了一种人工智能编程系统所述系统包括:上层客户端接口、底层编程接口及执行系统,其中,
7.所述上层客户端接口用于,接收用户输入的模型结构和控制逻辑,所述上层客户端接口包括用于对不同的数组类型分别进行处理的统一接口;
8.所述底层编程接口用于,将所述模型结构和所述控制逻辑转换为底层编程语言;
9.所述执行系统用于,基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图。
10.值得说明的是,在本实施例中,在上层客户端接口引入了对不同的数组类型分别进行处理的统一接口,当用户在调用上层客户端接口时,无需由用户针对数组类型调用不同的接口,实现了由系统自动适配于数组类型的接口,即实现了系统调用不同的数组类型各自对应的接口的智能化和自动化的技术效果。
11.在一些实施例中,所述执行系统用于,基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行不同的数组类型分别对应的计算图路径。
12.值得说明的是,在本实施例中,通过由执行系统构建并执行不同的数组类型分别对应的计算图路径,可以实现构建计算图路径的灵活性,且提高执行计算图路径的准确性和可靠性的技术效果。
13.在一些实施例中,所述上层客户端接口用于,确定更新计算图的频率,并经过所述底层编程接口传输至所述执行系统;
14.所述执行系统用于,根据所述更新计算图的频率对实时数据的数组类型的计算图路径进行更新。
15.值得说明的是,在本实施例中,用户可以通过上层客户端接口对更新计算图的频率进行设置,且上层客户端接口可以将用户设置的更新计算图的频率通过底层编程接口传输至执行系统,以便由执行系统对实时数据的数组类型的计算图路径进行更新,从而实现计算图的准确性和时效性的技术效果。
16.在一些实施例中,所述执行系统用于,计算实时数据的稀疏度,确定所述稀疏度对应的数组类型,构建并执行根据确定出的数组类型对应的计算图路径。
17.值得说明的是,在本实施例中,执行系统可以计算由底层编程语言转换后的模型结构和控制逻辑的实时数据的稀疏度,并确定稀疏度对应的数组类型,从而构建并执行确定出的数组类型的计算图路径,进而可以实现确定数组类型的智能化。
18.在一些实施例中,所述数组类型包括稀疏数组和常规数组。
19.在一些实施例中,所述执行系统用于,确定导入的计算模型的数据的数组类型,并确定作为所述计算模型的输入数据的数组类型,且构建并执行与所述计算模型的数据的数组类型、所述计算模型的输入数据的数组类型对应的计算图路径。
20.在一些实施例中,所述执行系统用于,若实时数据稀疏度大于预先设置的稀疏度阈值,则将稀疏度大于稀疏度阈值的实时数据确定为稀疏数组;若实时数据的稀疏度小于稀疏度阈值,则将稀疏度小于稀疏度阈值的实时数据确定为常规数组。
21.根据本技术实施例的另一个方面,本技术实施例还提供了一种人工智能编程方法,所述方法应用于人工智能编程系统,所述系统包括上层客户端接口、底层编程接口以及执行系统,所述方法包括:
22.所述上层客户端接口接收用户输入的模型结构和控制逻辑,所述上层客户端接口包括用于对不同的数组类型分别进行处理的统一接口;
23.所述底层编程接口将所述模型结构和所述控制逻辑转换为底层编程语言;
24.所述执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图。
25.在一些实施例中,所述执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图,包括:
26.所述执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行不同的数组类型分别对应的计算图路径。
27.在一些实施例中,所述方法还包括:
28.所述上层客户端接口确定更新计算图的频率,并经过所述底层编程接口传输至所述执行系统;
29.所述执行系统根据所述更新计算图的频率对实时数据的数组类型的计算图路径进行更新。
30.在一些实施例中,所述执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图,包括:
31.所述执行系统计算实时数据的稀疏度,确定所述稀疏度对应的数组类型,构建并执行根据确定出的数组类型对应的计算图路径。
32.在一些实施例中,所述执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图,包括:
33.确定导入的计算模型的数据的数组类型;
34.确定作为所述计算模型的输入数据的数组类型;
35.构建并执行与所述计算模型的数据的数组类型、所述计算模型的输入数据的数组类型对应的计算图路径。
36.在一些实施例中,所述数组类型包括稀疏数组和常规数组。
附图说明
37.附图用于更好地理解本技术实施例,不构成对本技术的限定。其中,
38.图1为相关技术中一个实施例的张量流系统框架的示意图;
39.图2为相关技术中另一实施例的张量流系统框架的示意图;
40.图3为相关技术中另一实施例的张量流系统框架的示意图;
41.图4为本技术一个实施例的张量流系统框架的示意图;
42.图5为本技术另一实施例的张量流系统框架的示意图;
43.图6为本技术实施例的人工智能编程系统的示意图;
44.图7为本技术一个实施例的人工智能编程方法的流程示意图
45.图8为本技术另一个实施例的人工智能编程方法的流程示意图。
具体实施方式
46.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
47.随着人工智能技术的发展和普及,不同的人工智能系统框架应运而生,如张量流系统框架tensorflow、开源深度学习框架pytorch、深度学习库框架mxnet以及深度学习框架caffe等,这些人工智能系统框架实现并封装了人工智能计算执行器、内核应用、设备及网络接口等,对用户提供应用程序接口(application programming interface,api)以支持快速的模型搭建、部署、推理、训练。
48.请参阅图1,图1为相关技术中张量流系统框架的示意图。
49.如图1所示,张量流系统框架包括:上层客户端端接口(front end)、底层编程接口(c api)及执行系统(exec system)。
50.其中,上层客户端接口用于,供用户(client)调用,实现编程,即用户可以通过调用上层客户端接口实现编程。
51.底层编程接口用于,将用户基于上层客户端接口输入的模型结构和控制逻辑,转换为底层编程接口的语言,并传输至执行系统。
52.执行系统用于,提供运行时环境,构建计算图并执行计算图,如构建经底层编程接口转换后的模型结构和控制逻辑对应的计算图,并执行计算图。
53.其中,张量流系统框架支持c++、python及java的编程接口,也可以支持其他(others)的编程接口。
54.分布式运行模块(distributed master)在分布式运行(distributed runtime)
api和sparse op api。
69.然而,通过上述由用户基于上层客户端接口调用不同数组的类型的接口的方式,容易造成相关技术中的框架系统对数据处理不够灵活,从而导致内存系统、通信互连、并行计算性能欠佳的问题。
70.为了解决上述问题中的一个或多个,本技术的发明人在经过创造性地劳动之后,得到了本技术的发明构思:用户在调用上层客户端接口时,无需针对数组的类型调用不同的接口,而可以由系统自行适配。
71.请参阅图4,图4为本技术一个实施例的张量流系统框架的示意图。
72.需要说明的是,在本实施例中,主要针对本技术与相关技术的区别进行描述,对于与相关技术中相同的内容,可以参见上述示例,此处不再赘述。
73.如图4所示,上层客户端接口提供了常规数组和稀疏数组的统一的接口(即图4中所示的unified api for sparse/regular,下文简称为统一接口)。也就是说,在用户可以无需明确实时数据的数组类型,系统可以自动实现适配,使用该统一接口来创建和处理实时数据的数组。
74.例如,用户不需要明确每个数组的类型,不需要调用不同的接口(即上述实施例中的tensor api、op api、sparse tensor api及sparse op api)以显式化编码,而是由系统调用统一接口创建和处理数组。
75.在一种可能实现的方式中,数组创建的接口为:x=tf.unifiedtensor(sparse_flag=,dtype=,indices=,values=,dense_shape=,check_freq=)。其中sparse_flag用于指定数组的类型,即数组是否稀疏,可以缺省。dtype对应于相关技术中常规数组接口中的dtype。indices和values对应于相关技术中稀疏数组接口中的indices和values。dense_shape对应于相关技术中常规数组接口中的shape和稀疏数组接口中的dense_shape。
76.对于确定的稀疏数组,用户可以设置sparse_flag=true,同时按照相关技术稀疏数组接口的方式设置indices、values、dense_shape,其他参数缺省处理。
77.对于确定的常规数组,用户可以设置sparse_flag=false,同时按照现有技术常规数组接口的方式设置dtype、dense_shape,其他参数缺省处理。
78.对于不确定数组类型的情况,用户可以不设置sparse_flag,仅设置dense_shape参数,并选择性设置check_freq,其他参数系统根据在线数据特性自适应适配。需说明的是,dense_shape即数组的维度,与数据的类型无关,因此用户可以指定,也是创建数组必须的参数。check_freq可以依据用户意愿选择性设置,表示数组类型检查更新的频率,若无设置则按照默认值处理。
79.在对统一接口的调用的基础上,系统可以触发向底层编程接口的转换,具体可以参阅图5。
80.如图5所示,统一接口中的unified tensor api转换为底层编程接口中的tensor api和sparse tensor api,统一接口中的unified op api转换为底层编程接口中的op api和sparse op api。且在本实施例中,对分支控制接口calculate ctl api进行了适应性的调整,增加了确定路径选择及更新频率设置。
81.例如,若用户在上层客户端接口设置了类型检查更新的频率check_freq,则可以
将用户设置的类型检查更新的频率转换至calculate ctl api的参数上。
82.且在本实施例中,dataflow executor在执行计算任务的过程中,构建包括不同类型的数组对应路径的计算图,且可以进行更新(可以基于类型检查更新的频率实现)。
83.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
84.根据本技术实施例的一个方面,本技术实施例提供了一种人工智能编程系统,且在一种可能实现的技术方案中,本技术实施例提供的人工智能编程系统的具体结构可以参阅如图4或者图5所示的张量流系统框架,当然,也可以为开源深度学习框架pytorch、深度学习库框架mxnet以及深度学习框架caffe等,本技术实施例不做限定。
85.请参阅图6,图6为本技术实施例的人工智能编程系统的示意图。
86.如图6所示,人工智能编程系统包括:上层客户端接口11、底层编程接口12及执行系统13,其中,
87.上层客户端接口11用于,接收用户输入的模型结构和控制逻辑,上层客户端接口11包括用于对不同的数组类型分别进行处理的统一接口。
88.例如,以图4所示的张量流系统框架为例,上层客户端接口11可以提供常规数组和稀疏数组的统一的接口(即统一接口),具体可以参阅图4所述的unified api for sparse/regular。
89.值得说明的是,在本实施例中,上层客户端接口11包括用于对不同的数组类型分别进行处理的统一接口,相较于相关技术需要由系统调用不同的接口(如上述实施例中的tensor api、op api、sparse tensor api及sparse op api)以显式化编码的方案,用户无需明确各数组的类型,且可以由系统调用统一接口创建和处理数组,从而实现智能化和自动化的技术效果。
90.底层编程接口12用于,将模型结构和控制逻辑转换为底层编程语言。
91.其中,底层编程语言12可以为c++编程语言等,本实施例不做限定。
92.执行系统13用于,基于底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图。
93.在一些实施例中,执行系统13用于,基于底层编程语言转换后的模型结构和控制逻辑,构建并执行不同的数组类型分别对应的计算图路径。
94.例如,基于上述分析可知,在相关技术中,需要用户先确定数组类型,并根据数组类型调用与数组类型的接口,而后由系统生成与数组类型对应的计算图路径,如图2和图3中的右边的图所示,即系统运行时只能存在单一的通路,如图2或图3中的上层客户端接口的tensor api转换为c api中的tensor api、op api转换为c api中的op api。而在本实施例中,用户无需明确数组类型,系统可以通过调用统一接口,并向底层编程语言接口转换,执行系统13在运行时可以包括多条通路,如图5中的右边图所示,因此,执行系统13可以通过选择的方式选择两种数组类型的计算图路径,即由于存在包括两种数组类型的多条通路,因此,执行系统13可以基于数组类型确定某一通路,从而确定相应的计算图路径。
95.也就是说,在本实施例中,执行系统13可以构建并执行不同数组类型分别对应的计算图路径,从而实现计算图路径选择构建的灵活性和可靠性,进而实现编程的准确性和
智能化的技术效果。
96.在一些实施例中,上层客户端接口11用于,确定更新计算图的频率,并经过底层编程接口12传输至执行系统13;
97.执行系统13用于,根据更新计算图的频率对实时数据的数组类型的计算图路径进行更新。
98.结合上述实施例中,对图4的描述可知,用户可以通过上层客户端接口11设置类型检查更新的频率,且上层客户端接口11可以将类型检查的更新频率转换至calculate ctl api的参数上。应该理解的是,类型检查更新的频率是对实时数据的数组类型的检查更新的频率,而执行系统是基于数组类型构建并执行计算图路径,因此,当实时数据的数组类型发生变化时,执行系统可以基于更新后的数组类型对计算图路径进行更新,更新计算图的频率可以理解为类型检查的更新频率。
99.基于上述分析可知,计算图路径包括多个计算节点,计算图中包括不同的通路,在本实施例中,对计算图的更新可以理解为对通路的更新,如通过选择不同的计算节点而形成的不同的通路。
100.值得说明的是,在本实施例中,用户可以通过上层客户端接口对更新计算图的频率进行设置,且上层客户端接口可以将用户设置的更新计算图的频率通过底层编程接口传输至执行系统,以便由执行系统对实时数据的数组类型的计算图路径进行更新,从而实现计算图的准确性和时效性的技术效果。
101.在一些实施例中,执行系统13用于,计算实时数据的稀疏度,确定稀疏度对应的数组类型,构建并执行根据确定出的数组类型对应的计算图路径。
102.值得说明的是,在本实施例中,执行系统13可以计算由底层编程语言转换后的模型结构和控制逻辑的实时数据的稀疏度,并确定稀疏度对应的数组类型,从而构建并执行确定出的数组类型的计算图路径,进而可以实现确定数组类型的智能化。
103.在一些实施例中,数组类型包括稀疏数组和常规数组。
104.例如,执行系统13可以计算实时数据的稀疏度,并判断稀疏度与稀疏度阈值的大小,如果稀疏度大于稀疏度阈值,则执行系统13可以将该实时数据(即稀疏度大于稀疏度阈值的实时数据)的数组类型确定为稀疏数组;如果稀疏度小于稀疏度阈值,则执行系统13可以将该实时数据(即稀疏度小于稀疏度阈值的实时数据)的数组类型确定为常规数组。
105.其中,稀疏度阈值可以由执行系统13根据应用场景、历史记录及试验等进行设置,本实施例不做限定。
106.在一些实施例中,执行系统13用于确定导入的计算模型的数据的数组类型,并确定作为计算模型的输入数据的数组类型,并构建并执行与计算模型的数据的数组类型、计算模型的输入数据的数组类型对应的计算图路径。
107.其中,计算模型的数据可以理解为计算模型本身的数据,如计算模型的参数和权重等。也就是说,在本技术实施例中,执行系统13从两个维度构建并执行计算图路径,一个维度为计算模型本身的数据,另一个维度为输入至计算模型的输入数据,且在一种可能实现的方案中,执行系统13可以先对计算模型本身的数据进行稀疏度的计算,并基于计算结果确定计算模型本身的数据的数组类型(即为稀疏数组还是为常规数组),且基于确定出的数组类型设置初始的计算图路径,而后对输入数据的稀疏度进行计算,并基于计算结果确
定输入数据的数组类型(即为稀疏数组还是为常规数组),且基于确定出的数组类型对初始的计算图路径进行更新,得到最终的计算图路径。
108.值得说明的是,本技术实施例提供的人工智能编程系统可以被应用于模型的搭建、部署、训练及应用等。
109.例如,本技术实施例提供的人工智能编程系统可以被用于模型的构建,如用于为用户提供新闻、音乐、视频、天气及商品等的推荐服务的推荐模型;也可以用于为用户提供识别人脸和识别红绿灯等的识别服务的对象识别模型,等等。
110.相应的,本技术实施例提供的人工智能编程系统可以被用于各模型的应用,如推荐模型的应用,用于为用户提供新闻、音乐、视频、天气及商品等的推荐服务;又如对象识别模型的应用,用于为用户提供识别人脸和识别红绿灯等的识别服务,等等。
111.根据本技术实施例的另一个方面,本技术实施例还提供了一种人工智能编程方法,所述方法基于上述任一实施例所述的人工智能编程系统,如基于如图6或者图4所示的系统。
112.请参阅图7,图7为本技术一个实施例的人工智能编程方法的流程示意图。
113.如图7所示,该方法包括:
114.s101:上层客户端接口接收用户输入的模型结构和控制逻辑,上层客户端接口包括用于对不同的数组类型分别进行处理的统一接口。
115.s102:底层编程接口将模型结构和控制逻辑转换为底层编程语言。
116.s103:执行系统基于底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图。
117.在一些实施例中,执行系统基于底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图(即s103),包括:
118.执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行不同的数组类型分别对应的计算图路径。
119.请参阅图8,图8为本技术另一实施例的人工智能编程方法的流程示意图。
120.如图8所示,该方法包括:
121.s201:上层客户端接口接收用户输入的模型结构和控制逻辑,上层客户端接口包括用于对不同的数组类型分别进行处理的统一接口。
122.s202:上层客户端接口确定更新计算图的频率,并经过底层编程接口传输至执行系统。
123.值得说明的是,s201和s202之间并没有必然的先后顺序的关联关系,如可以优先执行s201,也可以优先执行s202,也可以同时执行s201和s202,本技术实施例不做限定。
124.s203:底层编程接口将模型结构和控制逻辑转换为底层编程语言,并将底层编程语言转换后的模型结构和控制逻辑传输至执行系统,且将更新计算图的频率传输至执行系统。
125.s204:执行系统根据导入的计算模型,对计算模型的数据的稀疏度进行计算。
126.s205:执行系统根据稀疏度阈值和s204计算得到的稀疏度确定计算模型的数据的数组类型,其中,数组类型包括稀疏数组和常规数组。
127.例如,若经s204计算得到的稀疏度大于稀疏度阈值,则确定计算模型的数据的数
组类型为稀疏数组;若经s204计算得到的稀疏度小于稀疏度阈值,则确定计算模型的数据的数组类型为常规数组。
128.s206:执行系统根据计算模型的数据的数组类型设置初始的计算图路径。
129.s207:执行系统根据输入至计算模型的输入数据,对输入数据的稀疏度进行计算。
130.s208:执行系统根据稀疏度阈值和s207计算得到的稀疏度确定输入数据的数组类型,其中,数组类型包括稀疏数组和常规数组。
131.例如,若经s207计算得到的稀疏度大于稀疏度阈值,则确定输入数据的数组类型为稀疏数组;若经s207计算得到的稀疏度小于稀疏度阈值,则确定输入数据的数组类型为常规数组。
132.s209:执行系统根据输入数据的数组类型对s206中设置的初始的计算图路径进行更新,得到并执行最终的计算图路径。
133.s210:若当前时间满足更新计算图的频率,则执行系统对实时数据(如输入数据、训练过程中更新了的模型数据)的数组类型的计算图路径进行更新。
134.在一些实施例中,执行系统基于所述底层编程语言转换后的模型结构和控制逻辑,构建并执行计算图(即s103),包括:
135.执行系统计算实时数据的稀疏度,确定对应的数组类型,构建并执行根据确定出的数组类型对应的计算图路径。
136.应理解,在本技术中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
137.在本技术的上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤等)或无线(例如红外、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,例如,软盘、硬盘和磁带;可以是光介质,例如dvd;也可以是半导体介质,例如固态硬盘(solid state disk,ssd)等。
138.本技术实施例中,存储器,是指具有数据或信息存储能力的器件或电路,并可向处理器提供指令和数据。存储器包括只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、非易失性随机存取存储器(nvram),可编程只读存储器或者电可擦写可编程存储器、寄存器等。
139.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1