为什么需要对算力进行智能选择
随着科技的飞速发展,算力已经成为制约人工智能应用性能的关键因素。为了满足各种应用场景下的计算需求,算力网络应运而生,它通过对分散的计算资源进行整合,并灵活地分配和调度,逐步推动算力成为与水电一样,可“一点接入、即取即用”的社会级服务,达成“网络无所不达、算力无所不在、智能无所不及”的愿景。
但算力网络与电力网络有很大的区别,电力网络中流动的电力是标准化的是可以直接使用的,而算力本身是无法流动的,必须借助网络,将算力的需求方与算力的供给方连接起来,将需求方的计算任务发送到供给方的算力资源中进行计算。因此,要实现对算力的“一点接入、即取即用”,一方面在于如何通过确定性网络将广泛分布的云边端算力资源接入进来;另一方面就是如何将算力需求方的需求调度到最为合适的算力供给方,本篇文章将针对这一方面进行探讨,并介绍一些目前在实现算力智能选择中用到的技术方法和实践。
以淘宝平台为例,在这里算力需求方变成了消费者,算力供给方则变成了商家,消费者在淘宝上购物时,会面临各种选择困难,比如哪家商家的商品质量更好?哪家商家的服务更好?哪家商家的价格更实惠?这个时候就需要有一个聪明的购物助手,来帮助消费者解决这些问题,它通过分析用户的需求与商家的历史数据、服务质量、市场竞争情况等信息,在算力商家中做出明智的选择,为消费者提供最合适的商家推荐。
这个聪明的购物助手不仅需要能够准确的解构、度量不同用户的差异化、个性化需求,将其转换为系统所能理解的语言与量化数据;同时也需要能够将来源众多、分布广泛、形态各异的商家关键信息进行标准画像,在将解构量化后的用户需求与商家的标准画像信息进行匹配运算,从而得到最优的选择。其中,关于解构量化用户需求的详细方案,可查看鲸品堂的另一篇文章《“东数西算”一年:业务算力度量体系及其应用》。而这里将商家关键信息进行标准画像以及匹配运算的过程,就是我们今天文章的主角“智能选择”所需要做的事情。
根据什么对算力进行智能选择
还是以淘宝为例,用户在淘宝上搜索商品时,淘宝的搜索引擎会根据商品的相关性,商品质量、价格,商家的服务质量和信誉,时间季节等因素对商品根据一定的算法进行筛选、排序。同样,在对算力进行智能选择前,也需要能够制定出对算力资源池与算力产品的各种量化因素,对其进行标准画像,作为选择依据,才能通过各种策略、算法对其进行智能选择。
对于这些量化因素,我们可以从以下几个方面进行制定:
资源池能力因素:这部分因素是从整体对资源池的服务体量进行量化描述,包括对资源池所能提供不同类型算力的可用规模,例如半精度型通用算力规模,单精度型智能算力规模等等;以及资源池的地理位置、安全防护等级,能耗PUE,出口带宽可用规模等指标。
资源池质量因素:这部分因素是从整体对资源池的服务水平进行量化描述,类比于商家的信誉,它包括计算力、稳定性等指标。以下是我们在对智能推荐实践中一些总结出的指标:
- 算力性能负载率:它是对资源池内提供算力产品服务的底层基础设施运行负载情况的量化描述,通常会按照通用算力、智能算力、超算算力不同类型的算力进行计算。比如通用算力性能负载率,会选取提供通用算力服务宿主机的CPU利用率、内存利用率进行计算,取其中位数作为负载率指标。
- 算力性能负载方差:它是对资源池内提供算力产品服务的底层基础设施运行负载离散分布情况进行的量化描述,它反映了对资源池内基础设施的使用是否均衡,也会按照通用算力、智能算力、超算算力不同类型的算力进行计算。比如通用算力性能负载方差,会根据每台宿主机的算力性能负载率与整体平均算力性能负载率进行计算。
- 健康评分:它是对资源池的整体运行稳定情况的量化描述。这个因素会对不同级别的告警设定权重,根据资源池在运行时产生不同级别告警数量,通过计算加权后的归一化告警总数来得到资源池的健康评分。
除此之外,还有对资源池网络的量化因素,如出口时延、出口带宽利用率、网络接入距离等指标。
算力产品能力因素:这部分因素是对资源池上具体某类算力产品的服务体量进行量化描述,主要包括该算力产品的分配率、可用配额、产品成本、可用性等级等指标。
算力产品质量因素:这部分因素类比于具体商品的质量,它的计算方法与资源池质量类似,通常只是将计算范围从资源池维度变为产品集群维度。
在量化因素制定完成后,我们就对所接入纳管的算力资源有了清晰的概念,能够以不同维度对其过滤、比较。接下来,我们还需要对这些因素的运用来制定规则,在具体实践中,我们把这部分规则称之为“调度策略”,它在一定程度上也是对用户使用体验需求的抽象描述。例如,有的用户希望优先保证计算性能,有的用户希望能尽可能的压缩成本,有的用户希望在性能和成本之间取个平衡点。
在制定调度策略时,设计人员可以根据用户不同的使用体验需求标准进行策略配置,比如可以配置性能最优、成本最优、距离最优、综合最优等策略,对应着用户不同的使用体验需求。在具体的策略中,可以配置在智能推荐计算过程中所需要用到策略因子,它是根据当前策略的实际需要选择不同的量化因素,并配置各因素在当前策略计算过程中所占权重以及因素取值的限制范围,通过这些信息的差异可以体现不同策略对使用需求的侧重点。例如,在成本最优策略中,可以通过“产品成本”因子的取值范围限定其上限,或是限制其只能使用成本按从低到高排序后,排名在后30%的资源池,来控制该策略中备选资源池的范围;并可将其因子的权重调高,使得成本越低的资源池在计算时会占有越大的优势。
如何对算力进行智能选择
在相关的量化因素、调度策略都具备后,我们就可以具体的根据用户需求,对资源池进行智能选择的计算了。在实际计算过程中,会选取一个或多个调度策略,在根据相应的算法对待选资源池进行计算,获得各个资源池选择方案的匹配指数,得到最优资源池解,将算力需求调度分配到最优匹配的某个资源池或多个资源池上。在这里,我们可以分为两种情况对算法进行设计:
用户的算力需求必须调度分配到同一个资源池的情况:这种情况相对计算过程会比较简单,我们可以通过以下方式进行计算:
- 根据用户算力需求中解构出的算力产品,依次轮询资源池集合,计算集合中资源池在当前策略下每个策略因子的得分,筛选掉不符合条件的资源池。对于符合条件的资源池,通过具体算法计算得到每个产品能力对应的最优匹配资源池。
- 在通过算法计算最优匹配资源池时,主要是根据不同资源池的因子得分与因子权重,通过计算后对资源池进行最优匹配。这里介绍一种目前在使用中的算法,多属性群决策算法。多属性群决策(Multi-Attribute Group Decision Making, MAGDM ) ,是现代决策科学的一个重要研究领域,其理论和方法已广泛应用于城市规划、经济管理、投资风险等领域。其计算步骤如下:
-
定义决策矩阵。当前资源池选择问题中,将符合条件的备选资源池集合定义为P={P1,P2,……,Pn},每个资源池的策略因子集合定义为C={C1,C2,……,Cm}。资源池Pn对策略因子m的取值为Vnm,通过上述集合形成决策矩阵V。
-
计算策略因子权重得分。由于各策略因子之间的单位和量级存在差异,无法直接进行评估计算,需要先消除指标差异性,形成标准化得分。这里我们可以采用区间值映射法,将属性取值区间上每个数映射到1~100中的某个区间上。在根据因子权重,通过D=策略因子标准化得分策略因子权重,计算得到策略因子权重得分D。
-
计算最优资源池。在得到每个备选资源池不同策略因子权重得分后,将其替换至对应决策矩阵V中。采用TOPSIS法来对资源池优劣进行排序。其基本原理,是首先计算各资源池与当前决策矩阵中正理想解集合、负理想解集合的欧式距离,在通过欧式距离计算得到各资源池与正理想解集合的相对接近度。这里的接近度越大,表示资源池匹配度越高,在通过排序,就可以得到最优匹配资源池。
- 如果需要计算的算力产品能力大于一个,则根据算力产品能力权重计算总得分=Σ(产品能力c对应资源池匹配度×产品能力权重),作为这个算力产品能力对应资源池的得分。
- 在计算完第一个算力产品能力后,将得到的资源池范围作为第二个算力产品能力用于过滤资源池的初始值,重复以上过程,并根据每个算力产品能力中计算出的资源池范围取交集,将交集范围的资源池得分计算平均分后排序得到最终的可调度分配资源池排序。
用户的算力需求可以调度分配到多个资源池的情况:这种情况下对算力智能选择可以看作是一个优化问题,以下这些智能优化算法,如遗传算法、粒子群优化算法和模拟退火算法等,可以用于寻找这个最优策略。
- 遗传算法:遗传算法是一种全局优化算法,适用于解决复杂的非线性问题,可以在较大的搜索空间中进行操作。在资源池智能选择中,遗传算法可以用于确定最优的资源组合和分配方案,以实现整体性能的最大化。
- 粒子群优化算法:粒子群优化算法是一种简单、易于实现的算法,适用于解决单峰、连续、非线性问题。在资源池智能选择中,粒子群优化算法可以用于确定最优的资源分配方案,以实现资源利用的最大化。
- 模拟退火算法:模拟退火算法适用于求解组合优化问题,能够在一定时间内找到最优解。在资源池智能选择中,模拟退火算法可以用于确定最优的资源组合方案,以实现负载平衡和性能的最大化。
- 在对于资源池的智能选择中,可以根据具体问题的特点来选择合适的智能优化算法。如果需要考虑整体性能的最大化和复杂问题的非线性特性,遗传算法可能是一个更好的选择;如果需要快速找到最优解并解决单峰、连续、非线性问题,粒子群优化算法可能更适合;如果需要在一定时间内找到最优解并解决组合优化问题,模拟退火算法可能更为合适。当然,在实际应用中,可以根据具体的需求和限制,结合多种算法进行综合优化,以实现更好的效果。
后记
通过以上的实践,我们就可以根据用户的算力需求,为其推荐出单个资源池最优方案或是多个资源池组合的最优方案中,实现对多资源池下算力资源智能选择分配的自动化、精细化、准确化,来为用户提供智能、极简、无感的算网服务。
在实际使用中,我们也可以对一段时间的智能选择结果进行分析,与我们预期中对资源分配的目标进行比对,例如资源池维度的算力的均衡负载率、服务器性能负载率等指标,对实际分配使用情况进行评估。从而对用到的策略因子、算法等内容进行优化调整,进行持续迭代更新,使得智能选择更加准确,可以满足更多的生产场景需要。