diff --git a/docs/zh/06-advanced/06-TDgpt/02-tutorial.md b/docs/zh/06-advanced/06-TDgpt/02-tutorial.md index f8a6fe535a..12799a701c 100644 --- a/docs/zh/06-advanced/06-TDgpt/02-tutorial.md +++ b/docs/zh/06-advanced/06-TDgpt/02-tutorial.md @@ -6,9 +6,7 @@ sidebar_label: "安装部署" import PkgListV3 from "/components/PkgListV3"; -## 使用 TDgpt Docker 镜像 - -本节介绍如何通过 Docker 快速使用 TDgpt,包含标准版和完整版镜像的使用说明。 +本节首先介绍如何通过 Docker 快速使用 TDgpt。 ### 镜像版本说明 @@ -133,6 +131,8 @@ sudo apt install build-essential + TDgpt 的安装包中包含两个时序模型,分别是涛思时序基础模型(TDtsfm v1.0)和 Time-MoE 时序基础模型。两个基础时序模型启动时候需要一定规模的内存空间,请确保运行系统中有至少有 16GiB 可用内存空间。 + 2. 进入到安装包所在目录,使用 tar 解压安装包; > 请将 `` 替换为下载的安装包版本 @@ -158,6 +158,7 @@ cd TDengine-TDgpt- 该虚拟环境不会被卸载脚本 `rmtaosanode` 删除,当您确认不再需要该虚拟环境的时候,需要手动删除该虚拟环境。 后续如果您需要开发自己的算法模型,并能够 TDgpt 正确调用,需要将新的依赖库通过虚拟环境的 Pip 正确地安装。 + ### 卸载 卸载 TDgpt,执行 `rmtaosanode` 即可。 > 安装过程中自动安装的虚拟环境不会被自动删除,用户确认不再需要的时候,需要手动删除该虚拟环境。 diff --git a/docs/zh/06-advanced/06-TDgpt/03-management.md b/docs/zh/06-advanced/06-TDgpt/03-management.md index f9998cfe26..8cc801f6d3 100644 --- a/docs/zh/06-advanced/06-TDgpt/03-management.md +++ b/docs/zh/06-advanced/06-TDgpt/03-management.md @@ -1,6 +1,6 @@ --- -title: "运维管理指南" -sidebar_label: "运维管理指南" +title: "Anode 管理" +sidebar_label: "Anode 管理" --- import PkgListV3 from "/components/PkgListV3"; diff --git a/docs/zh/06-advanced/06-TDgpt/05-forecast/04-lstm.md b/docs/zh/06-advanced/06-TDgpt/05-forecast/04-lstm.md index 28ae919de0..bd2780b7c5 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-forecast/04-lstm.md +++ b/docs/zh/06-advanced/06-TDgpt/05-forecast/04-lstm.md @@ -1,31 +1,23 @@ --- -title: "LSTM" -sidebar_label: "LSTM" +title: "时序基础模型" +sidebar_label: "时序基础模型" --- -本节说明 LSTM 模型的使用方法。 +TDgpt 内置了涛思数据时序基础模型和 Time-MoE 两个时序基础模型。 ## 功能概述 -LSTM 模型即长短期记忆网络(Long Short Term Memory),是一种特殊的循环神经网络,适用于处理时间序列数据、自然语言处理等任务,通过其独特的门控机制,能够有效捕捉长期依赖关系, -解决传统 RNN 的梯度消失问题,从而对序列数据进行准确预测,不过它不直接提供计算的置信区间范围结果。 +时序数据基础模型是专门训练,用以处理时间序列数据预测和异常检测、数据补齐等功能的基础模型,时序基础模型继承了大模型的优良泛化能力,无需要设置复杂的输入参数,即可根据输入数据进行预测分析。 +|序号|参数|说明 +|---|---|---| +|1| tdtsfm_1 | 涛思时序数据基础模型 v1.0| +|2| time-moe | 亿级别参数 MoE时序基础模型| + +调用时序基础模型,无需设置模型相关参数,使用如下的 SQL 语句即可调用涛思时序基础模型(tdtsfm)的预测能力: -完整的调用 SQL 语句如下: ```SQL -SELECT _frowts, FORECAST(i32, "algo=lstm,alpha=95,period=10,start_p=1,max_p=5,start_q=1,max_q=5") from foo +SELECT _frowts, FORECAST(i32, "algo=tdtsfm_1,rows=10") from foo ``` -```json5 -{ -"rows": fc_rows, // 返回结果的行数 -"period": period, // 返回结果的周期性,同输入 -"alpha": alpha, // 返回结果的置信区间,同输入 -"algo": "lstm", // 返回结果使用的算法 -"mse": mse, // 拟合输入时间序列时候生成模型的最小均方误差(MSE) -"res": res // 列模式的结果 -} -``` - -### 参考文献 -- [1] Hochreiter S. Long Short-term Memory[J]. Neural Computation MIT-Press, 1997. \ No newline at end of file +如果希望调用Time-MoE的预测分析能力,将参数 `algo=tdtsfm_1` 修改为 `algo=timemoe-fc` 即可。 diff --git a/source/common/src/systable.c b/source/common/src/systable.c index 12d5c0cf36..d4570ba1be 100644 --- a/source/common/src/systable.c +++ b/source/common/src/systable.c @@ -430,16 +430,16 @@ static const SSysDbTableSchema userTransactionDetailSchema[] = { static const SSysDbTableSchema anodesSchema[] = { {.name = "id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = false}, - {.name = "url", .bytes = TSDB_ANALYTIC_ANODE_URL_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, - {.name = "status", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, - {.name = "create_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = false}, - {.name = "update_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = false}, + {.name = "url", .bytes = TSDB_ANALYTIC_ANODE_URL_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, + {.name = "status", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, + {.name = "create_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true}, + {.name = "update_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true}, }; static const SSysDbTableSchema anodesFullSchema[] = { {.name = "id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = false}, - {.name = "type", .bytes = TSDB_ANALYTIC_ALGO_TYPE_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, - {.name = "algo", .bytes = TSDB_ANALYTIC_ALGO_NAME_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, + {.name = "type", .bytes = TSDB_ANALYTIC_ALGO_TYPE_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, + {.name = "algo", .bytes = TSDB_ANALYTIC_ALGO_NAME_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, }; static const SSysDbTableSchema filesetsFullSchema[] = { diff --git a/tools/tdgpt/taosanalytics/algo/ad/autoencoder.py b/tools/tdgpt/taosanalytics/algo/ad/autoencoder.py index 89813656fc..8220a4c9ad 100644 --- a/tools/tdgpt/taosanalytics/algo/ad/autoencoder.py +++ b/tools/tdgpt/taosanalytics/algo/ad/autoencoder.py @@ -52,6 +52,9 @@ class _AutoEncoderDetectionService(AbstractAnomalyDetectionService): # normalize input data using z-score normalized_list = (df - self.mean.value) / self.std.value + if len(normalized_list) < self.time_interval: + raise ValueError("input data is too short") + seq = create_sequences(normalized_list.values, self.time_interval) # Get test MAE loss.