服务配置方法、用于服务配置的客户端、设备及电子设备与流程

文档序号:20950274发布日期:2020-06-02 20:05阅读:187来源:国知局
服务配置方法、用于服务配置的客户端、设备及电子设备与流程

本公开涉及人工智能服务领域,更具体地涉及一种服务配置方法、客户端、设备及电子设备。



背景技术:

人工智能模型在完成训练之后将被部署到生产环境中以向企业和个人提供相应的人工智能服务。目前,人工智能服务的部署需要工程人员或运维人员根据经验或者反复试错来寻找部署推理服务需要的服务器配置。这使得部署人工智能服务的运维成本过大,不利于人工智能服务的迅速上线。



技术实现要素:

本公开的实施例提供了服务配置方法、客户端、设备及电子设备。

本公开的实施例提供了一种服务配置方法,包括:解析所述人工智能服务的人工智能模型,以获取所述人工智能模型的模型参数信息;基于所述人工智能模型的模型参数信息,计算所述人工智能服务的推荐计算资源配置;以及基于所述推荐计算资源配置,确定所述人工智能服务的服务配置。

本公开的实施例提供了一种用于服务配置的客户端,包括:处理器,存储器,存储有计算机指令,所述计算机指令被处理器执行时实现如下操作:产生人工智能模型获取框,用于输入所述人工智能服务的人工智能模型的存储地址或用于上传所述人工智能模型;产生推荐资源配置框,用于显示所述人工智能服务的推荐计算资源配置;产生部署按钮,用于基于所述推荐计算资源配置确定所述人工智能服务的服务配置;其中,所述推荐计算资源配置是基于所述人工智能模型的模型参数信息而计算的。

本公开的实施例提供了一种服务配置设备,包括:解析模块,被配置为解析人工智能服务的人工智能模型,以获取所述人工智能模型的模型参数信息;计算模块,被配置为基于所述人工智能模型的模型参数信息,计算所述人工智能服务的推荐计算资源配置;以及部署模块,被配置为基于所述推荐计算资源配置,确定所述人工智能服务的服务配置。

本公开的实施例提供了一种用于服务配置的电子设备,包括:微处理器;存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现上述的方法。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。

图1a是示出根据本公开实施例的用于部署服务的场景的示例示意图。

图1b是示出根据本公开实施例的部署服务的示例的示意图。

图2a是示出根据本公开实施例的服务配置方法的示意图。

图2b是示出根据本公开实施例的服务配置方法的流程图。

图2c是示出根据本公开实施例的示例人工智能模型的示意图。

图2d是示出根据本公开实施例的示例人工智能模型的另一示意图。

图3是示出根据本公开实施例的服务配置方法的另一流程图。

图4a是示出根据本公开实施例的用于服务配置的客户端的结构图。

图4b是示出根据本公开实施例的用于服务配置的客户端的示意图。

图5是示出根据本公开实施例的服务配置设备的示意图。

具体实施方式

为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。

为便于描述本公开,以下介绍与本公开有关的概念。

人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

本公开的实施例提供的方案涉及人工智能服务的部署等技术,具体通过如下实施例进行说明。

图1a是示出根据本公开实施例的用于部署服务的场景的示例示意图。图1b是示出根据本公开实施例的部署服务的示例的示意图。

人工智能服务的部署(deploy)是为将人工智能服务投入使用而进行的所有活动,部署的流程主要包括硬件配置、人工智能服务相关代码的迁移、环境变量设置等。人工智能服务可以部署在实际生产环境中(例如被部署在云服务器中、或被部署在手机应用中)。人工智能服务的提供主要依托于人工智能模型。

参考图1a,在训练阶段,工程师利用数据库101训练出人工智能模型103。数据库101通常是工程师为了训练人工智能模型103而使用的历史数据集。这些数据集通常包括正样本和负样本,其通常是由人工进行标注的。当然,人工智能模型也可以使用实时数据来进行训练。在部署阶段,通过数据库101训练的人工智能模型103可以部署至一个或多个云服务器,作为线上的人工智能模型104来提供相应的人工智能服务。例如,图1b中用户上传一个tensorflow的经典的inception模型,该inception模型即为训练好的人工智能模型。

假设用户b至d的相关数据被存储在数据库102中。数据库102中可能存储的是用户b至d的实时数据,这些数据需要通过人工智能服务来进行处理。人工智能服务可以对外提供接口以与数据库102进行交互,进而利用人工智能模型104推理出用户b至d所需要的反馈数据,然后将这些反馈数据发送给用户b至d。

通常,上述的将人工智能服务部署至实际生产环境中,需要运维人员设置提供该人工智能服务的人工智能模型的环境变量、硬件配置(例如该人工智能模型可以占用多少计算资源)等等。这是一个相对复杂且耗时的过程。例如,运维人员可能对人工智能模型缺乏了解,对人工智能模型所需要的算力无法进行提前测算和规划,从而反复尝试重新部署,进而浪费了大量运维人员的人力和服务器计算资源。又例如,人工智能模型还可能是迭代较快的(例如,一周或者一天多次),这更加剧了运维人员的部署成本。再例如,由于人工智能模型迭代或其的算法框架更新,同一个业务的人工智能服务也可能应用了不同的人工智能模型。从而对于同一业务也可能要求不同的算力和内存。如果对于算力要求差别较大的人工智能模型采用同样的配置,会降低人工智能模型服务的质量和资源使用效率。此外,如果对于内存要求差别较大的人工智能模型采用同样的配置,可能会导致内存大小不能满足需要较大内存的人工智能模型的需求,进一步导致该人工智能模型无法加载成功,进而无法正常提供服务。

本公开提出一种服务配置方法。具体地,服务配置可以是人工智能服务的部署配置。该方法通过推荐计算资源配置来辅助运维人员部署人工智能模型,能够降低运维人员的部署运维成本,提高人工智能模型推理服务的质量以及计算资源的使用效率。例如,在图1b中,根据本公开的实施例的推理平台可以下载用户上传的inception模型,分析其网络结构,计算出macc(乘法累加计算计数),再由macc值转换成具体的推理服务配置。例如,该人工智能模型可以被配置为推荐使用y核cpu和zgi内存来提供人工智能服务。运维人员可以根据该推荐配置方便地完成该人工智能服务的实际部署。

图2a是示出根据本公开实施例的服务配置方法200的示意图。图2b是示出根据本公开实施例的服务配置方法200的流程图。图2c是示出根据本公开实施例的示例人工智能模型的示意图。图2d是示出根据本公开实施例的示例人工智能模型的另一示意图。

根据本公开的实施例的服务配置方法200可以应用于任何的电子设备中。例如,该电子设备可以是图2a中运维人员用于部署人工智能服务的客户端210。在该电子设备中,运维人员可以对该人工智能服务所需的环境参数和硬件资源进行配置,然后将人工智能模型上传至云服务器以使得该人工智能服务处于活动状态。以下,本公开以客户端210为例进行说明,本领域技术人员应当理解本公开并不以此为限。

在步骤201中,解析用于人工智能服务的人工智能模型,以获取所述人工智能模型的模型参数信息。

开发人员在开发人工智能模型时,通常会使用人工智能模型描述文件来存储该人工智能模型的模型参数信息。人工智能模型描述文件可以是具有.xml、.txt、.doc、.h、.c、.m等后缀名的计算机可读文件,其可以被编译或解析。

可选地,模型参数信息包括以下至少一项:模型类型信息、模型结构信息、以及结构参数信息。

模型类型信息用于指示人工智能模型的模型类型。可选地,模型类型信息包括以下各项中的一项或多项:关联模型、集群模型、回归模型、挖掘模型、贝叶斯模型、神经网络模型、规则集模型、序列模型、向量机模型、文本模型和/或树形模型。

模型结构信息用于指示人工智能模型的具体结构。可选地,模型结构信息包括以下各项中的一项或多项:人工智能模型的隐藏层层数、输入层的神经元数量、输出层的神经元数量、一个或多个隐藏层中的神经元数量、卷积层的通道数、多个神经元之间的连接关系。

结构参数信息用于指示人工智能模型的结构中可能存在的各种参数。可选地,结构参数信息包括以下各项中的一项或多项:多个神经元之间的连接权重、神经元的偏置值、激活函数、卷积层的通道数、卷积核大小。

例如,如果人工智能模型的模型类型信息指示:该人工智能模型是神经网络模型,则人工智能模型描述文件可以进一步存储所有的神经层(隐藏层、输入层、输出层)和神经元之间的连接权重。以下给出一个人工智能模型描述文件描述图2c所示的人工智能模型的示例。如图2c所示,该示例人工智能模型的输入层由三个神经元i1、i2和i3构成。人工智能模型的隐藏层由两个神经元a和b构成。该示例人工智能模型的输出层由两个神经元o1和o2构成。人工智能模型描述文件可以以下列伪代码的方式来表示图2c所示的人工智能模型中的隐藏层。

如上所示,人工智能模型描述文件可以通过<隐藏层>标签的个数来描述人工智能模型的隐藏层层数,并且通过该标签中的参数“神经元数量”来描述该隐藏层的神经元数量。人工智能模型描述文件还可以通过<隐藏层>标签的下一级标签<神经元>来描述该神经元的偏置值。同时标签<神经元>的下一级标签<连接关系>还描述了该神经元与其他神经元之间的连接关系与连接权重(例如上述的<连接关系与输出神经元“o1”连接连接权重=“0.7”>)。上述人工智能模型描述文件描述方式仅为示例,本领域技术人员容易理解,人工智能模型描述文件还可以以其他数据结构和描述方式来描述人工智能模型,本公开并不以此为限。如果人工智能模型是树形模型(例如决策树),人工智能模型描述文件可以通过描述树节点以及与树节点相关联的谓语的方式来存储该树形模型的模型类型信息、模型结构信息、以及结构参数信息。

此外,人工智能模型描述文件还可以定义输入/输出数据的格式和类型。例如,假设人工智能服务是对图像进行识别以确定该图像中是否包括小狗。人工智能模型描述文件中可以将输入数据定义为图像类型、并进一步定义输入图像的尺寸范围等等。此时,还可以将人工智能模型的输出定义为图像中包括小狗的概率。可选的,人工智能模型描述文件可以是通过pmml生成的xml文件。

当然通过解析人工智能模型描述文件来获取人工智能模型的结构中可能存在的各种参数也仅仅是示例,还可以通过其他方式来确定人工智能模型的参数信息,例如直接解析人工智能模型的代码等等方式。本公开并不以此为限。

在步骤202中,基于人工智能模型的模型参数信息,计算人工智能服务的推荐计算资源配置。该推荐计算资源配置例如是图2a中的推荐计算资源配置220。

人工智能服务的推荐计算资源配置至少应当满足该人工智能模型运行所需的计算量和内存访问量。越复杂的人工智能模型可能需要更多的计算资源。而输入数据复杂(例如输入数据为图片或视频)的人工智能服务可能比输入数据简单(例如,输入数据为简短的文本)的人工智能服务需要更大的内存访问量来执行输入/输出数据的读取和解析。当然,人工智能服务所需的计算资源配置也和用户数量有关。越多的用户同时使用该人工智能服务可能会导致人工智能服务需要更多的计算资源。

可选地,基于人工智能模型的模型参数信息,计算人工智能服务的推荐计算资源配置包括:基于上述人工智能模型的模型参数信息,计算执行该人工智能模型的所需的计算量和内存访问量,以及基于计算量和内存访问量计算人工智能服务所需的计算处理能力,即处理配置参数(例如,处理器的内核数、显卡规格、内存大小和每秒浮点运算次数中的一项或多项)作为推荐计算资源配置。

以下以神经网络模型为例来进行说明如何计算执行该人工智能模型的所需的计算量。假设该人工智能模型是包含n个全连接层的神经网络模型。在全连接层中,该层的所有输入都连接到所有输出。假设n个全连接层中的某个全连接层n中包括i个输入和j个输出。输入i占输出j的权重为w(其为上述的连接权重)。如图2c所示的神经网络模型中的隐藏层就是一个具有3个输入以及2个输出的全连接层,其中,神经元a的输出为ja=i1*0.1+i2*0.2+i3*0.9+3,神经元b的输出为jb=i1*0.8+i2*0.4+i3*0.5-2。假设w被存储在一个大小为i×j矩阵w中,则该全连接层所执行的计算为y=x*w+b。这里,x是包括i个元素的矢量,例如,图2c中的隐藏层(全连接层)的输入矢量x=[i1,i2,i3]。b是包含j个元素的偏置值矢量,例如,图2c中的隐藏层(全连接层)的偏置值矢量b=[+3,-2])。y是全连接层的输出矢量,例如,图2c中的隐藏层(全连接层)的输出矢量y=[ja,jb]。x*w表示x和w的点乘,也即,yj表示输出矢量y中的第j个输出,bj表示偏置矢量b中的第j个输出,0<i<i,i和j均为整数。

神经网络模型的计算量通常使用macc(乘法累加计算)的数量来表示。例如,ja=i1*0.1+i2*0.2+i3*0.9+3就近似地包括3个macc(忽略最后的那个+3)。因此,该全连接层所需的计算量为输入数量与输出数量的乘积。例如,图2c中的隐藏层所需的计算量近似为3*2=6个macc。

再例如,参考图2d中的人工智能模型,假设该人工智能模型包括一个简单的转移函数。转移函数是对n个输入求加权平均。则该转移函数需要n个macc。

如果神经网络模型包括激活层(例如,图2d中的激活函数),激活层也会导致一些计算量。激活层中通常包括的是非线性函数,例如,激活层的输出y可能是输入x的函数y=max(x,0)等。再例如,参考图2d,激活层的输出oj还可能是网络输入netj中小于阈值θj的输入。在这种情况下,由于激活函数并不涉及乘法累加计算,因此无法用macc来表征激活层的计算量。然而,激活层仅需要很少的计算量(例如,对于激活函数为y=max(x,0)并包括l个输出的激活层而言,其仅需要进行l次浮点运算),因此通常在计算执行人工智能模型所需的计算量时不统计激活层的计算量。

再例如,如果神经网络模型包括卷积层,卷积层也会导致执行人工智能模型所需的计算量的增加。卷积层所需计算量与卷积层的通道数和卷积核大小相关。例如,假设某个卷积层使用卷积核c对输入矩阵x进行卷积操作以得到输出矩阵。其中,卷积核c为k*k阶的矩阵。输入矩阵x为m*m阶的矩阵。则输出矩阵y可以通过以下公式得到:

其中y(u,v)表示输出矩阵y中的第u行第v列的元素,xi,j表示输入矩阵中第i行第j列的元素,cu-i,v-j表示卷积核c中第u-i行第v-j列的元素。当u-i或v-j大于k时,cu-i,v-j为0。因此,对于计算特定的y(u,v)的值而言,其需要k2个macc。输入矩阵和输出矩阵的元素总量在上述情况下式相同的,因此,根据上述公式,卷积层所需的总的计算量为k2*m2个macc。通常,具有卷积层的神经网络模型被用于与图像相关的人工智能服务中。如果卷积层的通道数为n,则在输入图像的大小为m*m并且卷积核为k*k大小的情况下,卷积层所需的计算量为n*k2*m2个macc。卷积层的通道数可以等于输入图像的色彩通道数,例如,对于rgb(红、绿、蓝)表示的输入图像而言,色彩通道数为3,从而卷积层的通道数n也等于3。当然,某些特殊的神经网络模型可能对卷积层进行了一些改进,从而减少了卷积层所需的计算量。本公开仅以上述常见的卷积层为例进行说明,本领域技术人员应当理解根据本公开的服务配置方法200可以通过上述的人工智能模型描述文件进一步获取计算这些改进的卷积层所需计算量的相关模型参数信息,并基于此,计算该人工智能模型所需的计算量。

此外,神经网络模型还可以包括标准化层、池化层、gru层等等,这些层的计算量通常随着神经网络模型的结构不同而对应地变化,在此不再赘述这些层的计算量计算方法。

以下以神经网络模型为例来进行说明如何计算执行人工智能模型的所需的内存访问量。

神经网络模型中的每个层都可能涉及从主存储器中读取输入、读取每个层中的神经元的权重和/或偏置以及将输出写回至主存储器等。这都涉及内存的访问。例如,对于上述的包括i个输入、j个输出和i个偏置的全连接层n,存储其权重和偏置的内存至少需要(i+1)*j个存储单元。通常权重和偏置是浮点数,对于服务器而言,通常使用4个字节作为一个存储单元来存储一个浮点数。因此,对于全连接层n而言,需要4*(i+1)*j个字节来存储。类似地,可以计算卷积层、激活层等所需的内存。同时,在计算神经网络模型的某个层所需的内存访问量时,还需要考虑有可能某个数据被反复读取(例如在计算卷积层时,每个输入都可能被读取次数大于卷积核大小乘以卷积层的通道数)。

根据开发工程师所设计的神经网络模型的并行计算算法不同,上述的内存访问量也可能相应减少。例如,一个gpu可以一次性读取位于同一邻域的内存,从而减少访问内存的次数。

同时,由于使用该人工智能服务的用户数量可能是不确定的,当使用该人工智能服务的用户增多时,待处理的输入数据增加,此时人工智能模型可能需要更多的内存来保证在用户可接受的时间范围以内将输出结果传回到用户。

考虑到以上影响神经网络模型所需的内存访问量的因素,可以进一步地估算出神经网络模型所需的内存访问量。

从而,方法200实现了基于人工智能模型的模型参数信息,计算执行人工智能模型所需的计算量和内存访问量。

此时,方法200可以获取待部署该人工智能服务的服务器或终端的硬件配置情况。例如,假设人工智能服务将被部署在云服务器上。此时云服务器可能具有多个显卡或多个多核处理器。显卡规格和处理器核数都可能影响并行计算的线程数。显卡规格越高、处理器核数越多,可进行并行计算的线程数越多,进而处理相同输入的速度更快。通过上述的计算量和内存访问量可以估算出所需的处理器的内核数、显卡规格、内存大小和每秒浮点运算次数中的一项或多项。其中,两次浮点运算约等于一次macc。例如,在实际生产环境中,人工智能服务可能要求在预设时间阈值内,人工智能模型需要完成一次从输入数据到输出数据的过程。根据该计算量和内存访问量,方法200可以确定满足该预设阈值的最低显卡规格或处理器核数,并将其作为推荐计算资源配置。例如,通常要求人工智能模型能够在1秒内处理500张以上的图像,为此可能需要对用于图像处理的人工智能服务推荐更多的内存和更高规格的显卡。而对于简单推理人工智能模型,则可以推荐相对较少的计算资源配置。当然,对于大量用户可能同时访问的人工智能服务也可能在部署时为其推荐更多的计算资源配置。

在获取了推荐计算资源配置后,在步骤203中,基于推荐计算资源配置,确定人工智能服务的服务配置。该人工智能服务的服务配置例如是图2a中的230。

如图2a所述,此后,运维人员可以根据上述的人工智能服务的服务配置来部署人工智能服务。通常,将人工智能服务部署在云服务器上采用的是单实例(singleton)的模式。在单实例模式下,人工智能服务的服务配置信息可以由一个人工智能服务单实例统一读取。然后,在执行人工智能服务进程中,其它的可执行对象将通过人工智能服务单实例获取/修改该服务配置信息。通过单实例模式,实现了提供了对唯一实例的受控访问,保证了服务配置的可伸缩性,节省了内存,并加快了人工智能服务的服务配置信息的访问速度。

可选地,待部署的人工智能服务和其所需计算资源被打包成可执行程序。然后,通过一个可启动的人工智能服务单实例来启动该可执行程序。该可执行程序启动人工智能服务的服务配置,进而完成人工智能服务的部署。此后该人工智能服务也被启动,云端的人工智能服务将开始运行。

本公开的一个或多个实施例还同样适用于其它可能的计算模型,只要这些计算模型可以通过其的模型参数信息计算出待部署服务的推荐计算资源配置即可。根据本公开的实施例的方法200通过推荐计算资源配置来辅助运维人员部署人工智能模型,能够降低运维人员的部署运维成本、提高系统的可维护性、提高人工智能模型推理服务的质量以及计算资源的使用效率。

图3是示出根据本公开实施例的服务配置方法200的另一流程图,其示出了根据调整人工智能服务的服务配置的过程。

服务配置方法200还可以包括步骤301和步骤302。

在步骤301中,获取计算资源配置调整信息。在步骤302中,基于所述计算资源配置调整信息,调整推荐计算资源配置。

在获取了推荐计算资源配置后,运维人员可能会尝试以推荐计算资源配置直接作为该人工智能服务的服务配置。然而,也存在运维人员考虑到可能使用该人工智能服务的用户数量,期望适当的调整该人工智能服务的服务配置的情况。为此,运维人员可以将计算资源配置调整信息输入至运行方法200的电子设备中。基于运维人员输入的计算资源配置调整信息,方法200可以进一步调整推荐计算资源配置。

可选地,计算资源配置调整信息可以包括预估用户数量、预估的服务响应时间等等。当然,运维人员也可以通过输入计算资源配置调整信息的方式直接修改推荐计算资源配置中的处理器的内核数、显卡规格、内存大小和每秒浮点运算次数中的一项或多项。本公开并不以此为限。

在步骤303中,基于调整后的推荐计算资源配置,确定人工智能服务的服务配置。

此外,在人工智能服务的运行过程中,也可能出现需要调整该人工智能服务的部署的情况。例如,当该人工智能服务上线后,运维人员可能会发现使用该人工智能服务的用户数量远远超出预估用户数量。此时,运维人员可能为了保证人工智能服务的高效运行,希望为该人工智能服务分配更多的资源。此时,计算资源配置调整信息还可以包括人工智能服务的运行情况。运维人员也可以通过输入包括人工智能服务的运行情况的计算资源配置调整信息的方式来调整人工智能服务所占用的计算资源。可选地,方法200可以通过上述的人工智能服务单实例来调整人工智能服务的服务配置,进而增加人工智能服务的计算资源。当然,运行该人工智能服务的服务器也可以自动检测该人工智能服务的运行情况,自动地调节该人工智能服务的服务配置。

根据本公开的实施例的方法200通过辅助运维人员调整人工智能服务的服务配置,能够降低运维人员的部署运维成本、提高系统的可维护性、提高人工智能模型推理服务的质量以及计算资源的使用效率。

图4a是示出根据本公开实施例的用于服务配置的客户端210的结构图。图4b是示出根据本公开实施例的用于服务配置的客户端210的示意图,其示出了客户端210上展示的界面。

参见图4a,用于服务配置的客户端210可以包括处理器401和存储器402。处理器401和存储器402可以通过总线403相连。

处理器401可以根据存储在存储器402中的程序执行各种动作和处理。具体地,处理器401可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是x87架构或arm架构的。

存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率同步动态随机存取存储器ddrsdram)、增强型同步动态随机存取存储器(esdram)、同步连接动态随机存取存储器(sldram)和直接内存总线随机存取存储器(drram)。应注意,本公开描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

此外,客户端210包括显示屏幕。该显示屏幕可以显示图形用户界面(gui),其用于人机交互。图形用户界面可包括窗口、图标、滚动条和用户用来将命令输入给装置的任何其它图形用户界面对象。应该理解,本发明示例性实施例可包括各种形状、设计和结构的各种的gui。示例性人机交互包括调整一个或多个用户界面对象的位置和/或尺寸、或输入数据、或激活按钮、或打开由图形用户界面对象代表的文件/应用程序、或上传文件、以及将元数据与一个或多个用户界面对象相关联,或以其他方式操纵图形用户界面。示例性图形用户界面包括数字图像、视频、文本、图标、控制元件(诸如按钮)和、或其他图形。在一些情况下,用户将需要在相关应用程序中对图形用户界面对象执行上述操纵。

存储器402,存储有计算机指令,该计算机指令被处理器401执行时实现上述的图形用户界面对象的操作。

参见图4b,该计算机指令在客户端210的图形用户界面上产生人工智能模型获取框。人工智能模型获取框410用于输入人工智能服务的人工智能模型的存储地址或用于上传人工智能模型。在运维人员输入人工智能模型的存储地址或上传该人工智能模型后,客户端210可以解析该人工智能模型进而获取人工智能模型的模型参数信息,该过程与上述的步骤201类似,因此不再赘述。

客户端210可以基于人工智能模型的模型参数信息,计算人工智能服务的推荐计算资源配置。在获取了该推荐计算资源配置之后,客户端210还可以产生推荐资源配置框420。推荐资源配置框420可以用于显示人工智能服务的推荐计算资源配置。例如图4b中所示的显示出该人工智能服务推荐使用2核cpu、2048m内存、以及每秒两万亿浮点运算次数的计算机资源。

该计算机指令还可以产生部署按钮430。部署按钮430该部署按钮在被激活后触发用于基于推荐计算资源配置确定人工智能服务的服务配置的操作。例如,当该人工智能服务上线后,运维人员可能会发现使用该人工智能服务的用户数量远远超出预估用户数量。此时,运维人员可能为了保证人工智能服务的高效运行,希望为该人工智能服务分配更多的资源。其中,推荐计算资源配置是基于人工智能模型的模型参数信息而计算的。在运维人员点击了部署按钮430后,客户端210可以以推荐计算资源配置来部署该人工智能服务。

该计算机指令还可以产生自定义配置框440。自定义配置框440用于获取计算资源配置调整信息。计算资源配置调整信息用于调整推荐计算资源配置。例如,运维人员可以通过点击该自定义配置框440来对上述的“2核cpu、2048m内存、以及每秒两万亿浮点运算次数”进行修改。当然,点击该自定义配置框440还可以显示/修改更多配置信息,例如,显卡规格、预估用户数量、预估的服务响应时间等等。

该计算机指令还可以产生运行调整按钮450。运行调整按钮450在被激活后触发用于基于推荐计算资源配置确定人工智能服务的服务配置的操作。人工智能服务的服务配置可以是根据人工智能服务的运行情况的调整的。当点击运行调整按钮450时,客户端210可以展示一个新的页面,上面显示出当前人工智能服务的运行情况。然后,运维人员可以根据当前人工智能服务的运行情况来调整人工智能服务的服务配置。当然运维人员也可以设置根据人工智能服务的运行情况来自动调整人工智能服务的服务配置。例如,当客户端210检测到人工智能服务的运行速度变慢,低于应满足的最低要求时,客户端210可以自动增加该人工智能服务所需的计算资源。

该计算机指令还可以产生其他的输入组件,例如图4b中示出的用于输入人工智能服务的名称的组件和用于输入或选择人工智能服务的运行环境的组件等等。

图5是示出根据本公开实施例的服务配置设备500的示意图。

服务配置设备500可以包括解析模块510、计算模块520和部署模块530。

解析模块510可以被配置为解析用于人工智能服务的人工智能模型,以获取人工智能模型的模型参数信息。

计算模块520可以被配置为基于人工智能模型的模型参数信息,计算人工智能服务的推荐计算资源配置。

部署模块530可以被配置为基于所述推荐计算资源配置,确定人工智能服务的服务配置。

模型参数信息包括以下至少一项:模型类型信息、模型结构信息、以及结构参数信息。模型类型信息包括以下各项中的一项或多项:关联模型、集群模型、回归模型、挖掘模型、贝叶斯模型、神经网络模型、规则集模型、序列模型、向量机模型、文本模型和/或树形模型。模型结构信息包括以下各项中的一项或多项:所述人工智能模型的隐藏层层数、输入层的神经元数量、输出层的神经元数量、一个或多个隐藏层中的神经元数量、多个神经元之间的连接关系、卷积层的通道数。结构参数信息包括以下各项中的一项或多项:多个神经元之间的连接关系与权重、神经元的偏置值、激活函数、卷积层的通道数、卷积核大小。

在一个或多个实施例中,计算模块520还可以被配置为基于人工智能模型的模型参数信息,计算执行人工智能模型所需的计算量和内存访问量,以及基于计算量和内存访问量计算人工智能服务所需的处理器的内核数、显卡规格、内存大小和每秒浮点运算次数中的一项或多项作为所述推荐计算资源配置。

为服务配置设备500可以包括其他模块,例如,用于获取计算资源配置调整信息的模块、用于调整推荐计算资源配置的模块等等。上述的模块可以组合以执行上述的服务配置方法200。

本公开的实施例提供了一种用于服务配置的电子设备,包括:微处理器;存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现上述的服务配置方法200。

本公开的实施例通过推荐计算资源配置来辅助运维人员部署人工智能模型,能够降低运维人员的部署运维成本、提高系统的可维护性、提高人工智能模型推理服务的质量以及计算资源的使用效率。

需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。

在上面详细描述的本发明的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本发明的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1