数据 x AI +,第一批用户已认可!
在工业智能化转型中,时序数据库与 AI 技术的结合对故障和异常预测场景的准确性和效率至关重要,逐渐成为行业前沿关注热点。在此方面,IoTDB 已迈出支持 AI 深度分析的重要一步,于 2023 年 12 月 3 日 IoTDB 用户大会上推出了内生机器学习节点 AINode。
AINode 的设计允许用户通过简单的 SQL 语句引入和运行外部机器学习模型,将模型的创建、管理及推理成功融合在数据库引擎中,极大地简化了时序分析任务的同时,大幅扩展了对时序数据进行机器学习分析的能力,其易用性与性能表现广受用户好评。
通过深入探讨 AINode 在工业应用中的案例及效果,并详解应用的具体场景与步骤,本文将让你更加全面地了解 IoTDB 的数据分析核心 AINode。
01 应用案例
我们先来看几个 AINode 赋能工业预测场景的案例:
(1)电力负载预测
在部分工业场景下,会存在预测电力负载的需求,预测结果可用于优化电力供应、节约能源和资源、支持规划和扩展以及增强电力系统的可靠性。
我们所使用的 ETTh1 的测试集的数据包含间隔 1h 采集一次的电力数据,每条数据由负载和油温构成,分别为:High UseFul Load, High UseLess Load, Middle UseLess Load, Low UseFul Load, Low UseLess Load, Oil Temperature。
在该数据集上,IoTDB-ML 的模型推理功能可以通过以往高中低三种负载的数值和对应时间戳油温的关系,预测未来一段时间内的油温,赋能电网变压器的自动调控和监视。
步骤一:数据导入
用户可以使用 tools 文件夹中的 import-csv.sh 向 IoTDB 中导入 ETT 数据集:
bash ./import-csv.sh -h 127.0.0.1 -p 6667 -u root -pw root -f ../../ETTh1.csv
步骤二:模型导入
我们可以在 iotdb-cli 中输入以下 SQL 从 huggingface 上拉取一个已经训练好的模型进行注册,用于后续的推理。
create model dlinear using uri 'https://huggingface.co/hvlgo/dlinear/resolve/main'
该模型基于较为轻量化的深度模型 DLinear 训练而得,能够以相对快的推理速度尽可能多地捕捉到序列内部的变化趋势和变量间的数据变化关系,相较于其他更深的模型更适用于快速实时预测。
步骤三:模型推理
IoTDB> select s0,s1,s2,s3,s4,s5,s6 from root.eg.etth LIMIT 96
+-----------------------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+
| Time|root.eg.etth.s0|root.eg.etth.s1|root.eg.etth.s2|root.eg.etth.s3|root.eg.etth.s4|root.eg.etth.s5|root.eg.etth.s6|
+-----------------------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+
|2017-10-20T00:00:00.000+08:00| 10.449| 3.885| 8.706| 2.025| 2.041| 0.944| 8.864|
|2017-10-20T01:00:00.000+08:00| 11.119| 3.952| 8.813| 2.31| 2.071| 1.005| 8.442|
|2017-10-20T02:00:00.000+08:00| 9.511| 2.88| 7.533| 1.564| 1.949| 0.883| 8.16|
|2017-10-20T03:00:00.000+08:00| 9.645| 2.21| 7.249| 1.066| 1.828| 0.914| 7.949|
......
|2017-10-23T20:00:00.000+08:00| 8.105| 0.938| 4.371| -0.569| 3.533| 1.279| 9.708|
|2017-10-23T21:00:00.000+08:00| 7.167| 1.206| 4.087| -0.462| 3.107| 1.432| 8.723|
|2017-10-23T22:00:00.000+08:00| 7.1| 1.34| 4.015| -0.32| 2.772| 1.31| 8.864|
|2017-10-23T23:00:00.000+08:00| 9.176| 2.746| 7.107| 1.635| 2.65| 1.097| 9.004|
+-----------------------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+
Total line number = 96
IoTDB> call inference(dlinear_example, "select s0,s1,s2,s3,s4,s5,s6 from root.eg.etth", window=head(96))
+-----------+----------+----------+------------+---------+----------+----------+
| output0| output1| output2| output3| output4| output5| output6|
+-----------+----------+----------+------------+---------+----------+----------+
| 10.319546| 3.1450553| 7.877341| 1.5723765|2.7303758| 1.1362307| 8.867775|
| 10.443649| 3.3286757| 7.8593454| 1.7675098| 2.560634| 1.1177158| 8.920919|
| 10.883752| 3.2341104| 8.47036| 1.6116762|2.4874182| 1.1760603| 8.798939|
......
| 8.0115595| 1.2995274| 6.9900327|-0.098746896| 3.04923| 1.176214| 9.548782|
| 8.612427| 2.5036244| 5.6790237| 0.66474205|2.8870275| 1.2051733| 9.330128|
| 10.096699| 3.399722| 6.9909| 1.7478468|2.7642853| 1.1119363| 9.541455|
+-----------+----------+----------+------------+---------+----------+----------+
Total line number = 48
我们将对油温的预测的结果和真实结果进行对比,可以得到以下的图像。
图中 10/24 00:00 之前的数据为输入模型的过去数据,10/24 00:00 后的黄色线条为模型给出的油温预测结果,而蓝色为数据集中实际的油温数据(用于进行对比)。
可以看到,我们使用了过去 96 个小时(4 天)的六个负载信息和对应时间油温的关系,基于之前学习到的序列间相互关系对未来 48 个小时(2 天)的油温这一数据的可能变化进行了建模,可以看到可视化后预测曲线与实际结果在趋势上保持了较高程度的一致性。
(2)变电站功率预测
变电站需要对电流、电压、功率等数据进行电力监控,用于检测潜在的电网问题、识别电力系统中的故障、有效管理电网负载以及分析电力系统的性能和趋势等。
我们利用某变电站中的电流、电压和功率等数据构成了真实场景下的数据集。该数据集包括变电站近四个月时间跨度,每 5 - 6s 采集一次的 A 相电压、B 相电压、C 相电压等数据。
在该数据集上,IoTDB-ML 的模型推理功能可以通过以往 A 相电压,B 相电压和 C 相电压的数值和对应时间戳,预测未来一段时间内的 C 相电压,赋能变电站的监视管理。
步骤一:数据导入
用户可以使用 tools 文件夹中的 import-csv.sh 导入数据集:
bash ./import-csv.sh -h 127.0.0.1 -p 6667 -u root -pw root -f ../../data.csv
步骤二:模型导入
我们可以在 iotdb-cli 中输入以下 SQL 从 huggingface 上拉取一个已经训练好的模型进行注册,用于后续的推理。
create model patchtst using uri 'https://huggingface.co/hvlgo/patchtst/resolve/main'
我们采用深度模型 PatchTST 进行预测,PatchTST 是一种基于 transformer 的时序预测模型,在长时间序列预测任务中有出色的表现。
步骤三:模型推理
IoTDB> select * from root.eg.voltage limit 96
+-----------------------------+------------------+------------------+------------------+
| Time|root.eg.voltage.s0|root.eg.voltage.s1|root.eg.voltage.s2|
+-----------------------------+------------------+------------------+------------------+
|2023-02-14T20:38:32.000+08:00| 2038.0| 2028.0| 2041.0|
|2023-02-14T20:38:38.000+08:00| 2014.0|