在AI开发及服务不断追求效率的背景下,阿里云机器学习平台 PAI 宣布支持抢占型实例(Spot Instance)。在模型推理环节,用户可以通过 PAI-EAS 模型在线服务平台灵活选择抢占型实例来运行推理时延相对不敏感的任务,进而节省服务成本,同等机型的抢占型实例与按量付费实例相比,最高可实现90%的成本优化。
1. 什么是抢占型实例
抢占型实例(Spot Instance)是计算资源的一种购买方式。与传统的包年包月实例、按量付费实例不同,抢占型实例的售价跟随市场需求与库存的供需关系实时浮动。PAI-EAS 抢占型实例基于公共资源组内空闲的计算资源提供服务,可以为用户提供低价资源,价格最低可至按量付费实例的10%。各类实例购买方式的单价比较为:
- 无保护抢占型实例 < 有保护抢占型实例 < 预付费实例 < 按量付费实例
用户在使用 PAI-EAS 抢占型实例前,首先需要设置出价上限,并选定是否设置1小时保护期。当成功部署服务时,PAI-EAS 会自动竞价抢占相应资源。
- 购买抢占型实例:
- 当实例库存充足且用户配置的出价上限不低于当前抢占型实例市场价,则成功抢占资源。
- 使用抢占型实例:
- 若用户设置1小时保护期,购买抢占型实例成功后,默认至少保障使用1小时该实例资源。在1小时保护期内,若实例市场价超出用户设定的出价上限,仍将按照出价上限计费。超过1小时后,当出现实例库存不足或出价上限低于市场价的情况,实例会立刻释放。
- 若用户未设置1小时保护期,购买抢占型实例成功后,当出现实例库存不足或出价上限低于市场价的情况,实例会立刻释放。
- 多实例部署
- 在使用抢占型实例部署服务时,若只指定单一规格的计算资源,会出现由于出价不高或库存不足导致服务长时间无法拉起的情况;或者因spot价格上浮导致资源释放,从而造成服务处于pending。针对该问题,PAI-EAS 部署环节支持多规格实例选择,通过遍历服务资源配置中的规格列表来拉起资源,从而极大降低因抢占型实例释放带来的部署风险,保证服务的稳定运行。
通过这张图对 PAI-EAS 抢占型实例(Spot Instance)的计价规则进行简要示意。如图所示,该实例按量付费实例价格为13.98元/小时,用户的出价上限为5元/小时并设置了1小时保护期。通过抢占型实例,用户得以以较低的价格使用计算资源。
(注:以 2023年4月23日 PAI-EAS 公共资源组抢占型实例价格进行示例,机型为8vCPU+30GB+1*A10)
2. PAI-EAS 抢占型实例适用场景
PAI-EAS 抢占型实例(Spot Instance)适用于对价格非常敏感、但对推理服务实时性及稳定性相对不敏感的场景,如:
- AIGC内容生成的异步推理场景
- 图像识别、OCR等批量后处理的图像分析
- 视频分割、视频分类等批量后处理的视频分析
- 语音分割、语音转文字等异步推理或批量推理的的语音分析
- Stable Diffusion等AI绘画的异步批量处理场景
当用户不需要实时拿到推理返回的结果,而是可以接受一段时间(例如1小时内)的延迟,这些情况就适合采用抢占型实例优化服务成本。
在实际业务场景中,您可以先购买一定量的预付费资源作为保底资源,保障服务可以顺利运行;而对于弹性部分,可以根据业务场景搭配使用不同机型的抢占型实例,并通过 PAI-EAS 提供的自动弹性伸缩功能来自动扩缩抢占型实例,当因价格原因无法通过抢占型实例扩容时,PAI-EAS 也提供多规格实例选择让用户使用普通按量付费实例进行扩容,从而以较低的组合成本保障服务稳定运行。
3. 如何配置使用 PAI-EAS 抢占型实例
(1) 进入 PAI-EAS 控制台,点击“部署服务”,进入详细配置界面;
(2) 在 “资源部署信息”区块,“资源组种类”勾选“公共资源组”,“资源配置方法”切换至“高级资源配置”,即可配置模型服务部署的抢占型实例资源(spot instance);
(3) 选择抢占型实例的保留时长:
- 设置1小时保护期:部署成功后,默认至少可以使用1小时,即抢占成功后有1小时的保护期,保护期内可以保障您可以使用资源。超过1小时的保护期后,如抢占式资源实例库存充足,且您之前设置出价上限不低于当前抢占式实例市场价,您也可以继续使用抢占式实例。
- 无确定保护期:不保证有固定时长的保护期来保障资源使用。如抢占式资源实例库存充足,且您设置出价上限不低于当前抢占式实例市场价,您也可以继续使用抢占式实例。价格上也会比有1小时保护器的更便宜。
(4)选择机器型号。可以看到当前该机型抢占型的价格和原价的对比,从而进行出价。当抢占型资源的价格低于出价且库存充足时,您可以一直保有该机型的使用。
- 点击“+”新增实例规格,服务上线后 PAI-EAS 会通过遍历服务资源配置中的规格列表来拉起资源,降低因抢占型实例释放带来的风险。
(5) 完成其他配置后,点击“部署”按钮即可上线服务。