阿里云机器学习目前只支持按量后付费的计价方式,实际的计价是按照每个任务所消耗的计算资源乘以单价的方式计费。本文档详细介绍机器学习服务运行过程中所产生费用的计算方式。
定位算法组件类别和单价
机器学习平台计费模块的逻辑关系
通常机器学习实验是由多个算法组件组合而成,每个算法组件是由多个子计算任务(Instance)组合而成,如下图所示。
以模板中的新闻分类实验为例。如下图所示,整个画布是一个实验,其中每个模块是一个算法组件,每个组件都可以在左边的组件列表中找到它的具体类别并定位到计价模块。
机器学习算法的计价列表
可以通过计价页查看。
账单种类 | 包含算法模块 | 价格 |
---|---|---|
数据预处理 | 数据预处理、特征工程 | 1元/计算时 |
数据分析 | 统计分析、机器学习、时间序列、网络分析、金融板块 | 1.3元/计算时 |
文本分析 | 文本分析 | 1.7元/计算时 |
default | Notebook、TensorBoard费用及其它未成功配置价格的算法费用(配置失败按照最低价格1元/计算时收费) | 1元/计算时 |
例如文本分析属于“文本分析”这个账单类型,所以价格是1.7元/计算时。于是PLDA组件及其所包含的子任务的计费单价都是1.7元/计算时。新闻分类实验产生的总费用就是所有的算法模块的子任务产生的费用的总和。
计算instance费用并求和
以PLDA组件为例,介绍单个算法组件的计费方式。
根据机器学习算法的计价列表,PLDA组件的单价是1.7元/计算时。每次PLDA产生的总费用是由下图中所有Instance产生的费用之和组成(日志中每一个蓝色的logview,对应的是一个sub instance),且每个Instance的单价都是1.7元/计算时。
计算时的概念:
- 计算消耗的CPU core数量及内存量。
- 1个计算时的单位为1 CPU Core+4GB内存。
计算时的计算方法为 Max(CPU×时长,内存×时长/4)。
例如一个用户使用了2 Core,5GB运行1 小时,计算时为Max(2×1,5×1/4)=2。如果一个用户使用了1 Core,5GB运行1小时,计算时为Max(1×1,5×1/4)=1.25。
步骤
查看PLDA组件的子任务,即sub instance组成。
右键单击PLDA组件,选择查看日志。日志中每一个蓝色的logview,对应一个sub instance。随机点击PLDA日志中的一个logview蓝色链接,本文以最后一个logview为例,单击AlgoTask,如下图所示。
- 在“TaskPlane”下找到“cpu”和“Memory”两个字段,如下图所示。
CPU数量除以100是每个计算instance分配的cpu core,Memory以MB为单位。
- 双击下图中ODPS Task中的对象。
5. 双击MWorker对象,单击Terminated打开如下图所示界面,“Latency”表示每个worker的运行时间。
结论
- 根据步骤4计算得到每个worker占用cpu为1core,占用内存memory约为1G。
- 根据步骤6得到该instance一共有49个worker,每个worker时间约等于22s。
根据计算时概念计算出这个instance的计算时约为:
Max(CPU×时长,内存×时长/4)= Max(49×1×22,49×1×22/4)=1078计算秒=1078/3600计算时
当前instance总费用为:
(1078/3600)计算时×1.7计算时/元=0.51元
累计所有PLDA组件下面instance的费用就是此算法组件的总消费。累计当前实验下的所有组件费用,就是当前实验的总消费。