From 1db4556d6a5216bc7439e6400d166748f7762243 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 28 Nov 2024 17:31:11 +0800 Subject: [PATCH 1/6] doc: fix typo in gpt doc --- docs/zh/06-advanced/06-TDgpt/06-dev/03-ad.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/06-TDgpt/06-dev/03-ad.md b/docs/zh/06-advanced/06-TDgpt/06-dev/03-ad.md index dc0a534706..5b49db330e 100644 --- a/docs/zh/06-advanced/06-TDgpt/06-dev/03-ad.md +++ b/docs/zh/06-advanced/06-TDgpt/06-dev/03-ad.md @@ -52,7 +52,7 @@ class _MyAnomalyDetectionService(AbstractAnomalyDetectionService): ```SQL --- 对 col 列进行异常检测,通过指定 algo 参数为 myad 来调用新添加的异常检测类 -SELECT COUNT(*) FROM foo ANOMALY_DETECTION(col, 'algo=myad') +SELECT COUNT(*) FROM foo ANOMALY_WINDOW(col, 'algo=myad') ``` 如果是第一次启动该 Anode, 请按照 [TDgpt 安装部署](../../management/) 里的步骤先将该 Anode 添加到 TDengine 系统中。 From 8b56c4e27f428c4053a706f8faf9f1dfde493bdd Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 28 Nov 2024 17:31:52 +0800 Subject: [PATCH 2/6] doc: fix typo in gpt doc --- docs/zh/06-advanced/06-TDgpt/06-dev/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md index b7f048cefc..8834dba7c6 100644 --- a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md +++ b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md @@ -21,7 +21,7 @@ Anode的主要目录结构如下图所示 . ├── cfg ├── model -│   └── ac_detection +│   └── ad_detection ├── release ├── script └── taosanalytics From 4679f46e054155423d7bc9dd366b2d049c789d46 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 28 Nov 2024 18:32:51 +0800 Subject: [PATCH 3/6] doc: fix some typo. --- .../06-TDgpt/05-anomaly-detection/04-machine-learning.md | 2 +- docs/zh/06-advanced/06-TDgpt/06-dev/index.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md index d72b8e70a9..ec76d6a0a3 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/04-machine-learning.md @@ -9,7 +9,7 @@ Autoencoder[1]: TDgpt 内置使用自编码器(Autoencoder)的异 --- 在 options 中增加 model 的名称,ad_autoencoder_foo, 针对 foo 数据集(表)训练的采用自编码器的异常检测模型进行异常检测 SELECT COUNT(*), _WSTART FROM foo -ANOMALY_DETECTION(col1, 'algo=encoder, model=ad_autoencoder_foo'); +ANOMALY_WINDOW(col1, 'algo=encoder, model=ad_autoencoder_foo'); ``` ### 参考文献 diff --git a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md index 8834dba7c6..6db7d13079 100644 --- a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md +++ b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md @@ -63,7 +63,7 @@ Anode采用算法自动加载模式,因此只识别符合命名约定的 Pytho ```SQL --- algo 后面的参数 name 即为类属性 `name` -SELECT COUNT(*) FROM foo ANOMALY_DETECTION(col_name, 'algo=name') +SELECT COUNT(*) FROM foo ANOMALY_WINDOW(col_name, 'algo=name') ``` ## 添加具有模型的分析算法 @@ -78,5 +78,5 @@ SELECT COUNT(*) FROM foo ANOMALY_DETECTION(col_name, 'algo=name') ```SQL --- 在 options 中增加 model 的名称,ad_autoencoder_foo, 针对 foo 数据集(表)训练的采用自编码器的异常检测模型进行异常检测 -SELECT COUNT(*), _WSTART FROM foo ANOMALY_DETECTION(col1, 'algo=encoder, model=ad_autoencoder_foo'); +SELECT COUNT(*), _WSTART FROM foo ANOMALY_WINDOW(col1, 'algo=encoder, model=ad_autoencoder_foo'); ``` From 65ecd64c6eb531bbe53673429653c23211bd4d1a Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 28 Nov 2024 18:47:30 +0800 Subject: [PATCH 4/6] doc: add some exec examples. --- docs/zh/06-advanced/06-TDgpt/02-management.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/zh/06-advanced/06-TDgpt/02-management.md b/docs/zh/06-advanced/06-TDgpt/02-management.md index 9aaa123299..82af1ab350 100644 --- a/docs/zh/06-advanced/06-TDgpt/02-management.md +++ b/docs/zh/06-advanced/06-TDgpt/02-management.md @@ -107,12 +107,33 @@ node_url 是提供服务的 Anode 的 IP 和 PORT组成的字符串, 例如:`c 列出集群中所有的数据分析节点,包括其 `FQDN`, `PORT`, `STATUS`等属性。 ```sql SHOW ANODES; + +taos> show anodes; + id | url | status | create_time | update_time | +================================================================================================================== + 1 | 192.168.0.1:6090 | ready | 2024-11-28 18:44:27.089 | 2024-11-28 18:44:27.089 | +Query OK, 1 row(s) in set (0.037205s) + ``` #### 查看提供的时序数据分析服务 ```SQL SHOW ANODES FULL; + +taos> show anodes full; + id | type | algo | +============================================================================ + 1 | anomaly-detection | shesd | + 1 | anomaly-detection | iqr | + 1 | anomaly-detection | ksigma | + 1 | anomaly-detection | lof | + 1 | anomaly-detection | grubbs | + 1 | anomaly-detection | encoder | + 1 | forecast | holtwinters | + 1 | forecast | arima | +Query OK, 8 row(s) in set (0.008796s) + ``` #### 刷新集群中的分析算法缓存 From 83b6cf15e3f25488e65d10212e58c3a085666a73 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 28 Nov 2024 19:15:57 +0800 Subject: [PATCH 5/6] doc: add more details about add algorithms with training models. --- docs/zh/06-advanced/06-TDgpt/06-dev/index.md | 29 +++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md index 6db7d13079..072a66c7d3 100644 --- a/docs/zh/06-advanced/06-TDgpt/06-dev/index.md +++ b/docs/zh/06-advanced/06-TDgpt/06-dev/index.md @@ -21,7 +21,7 @@ Anode的主要目录结构如下图所示 . ├── cfg ├── model -│   └── ad_detection +│   └── ad_autoencoder ├── release ├── script └── taosanalytics @@ -72,11 +72,32 @@ SELECT COUNT(*) FROM foo ANOMALY_WINDOW(col_name, 'algo=name') 将具有模型的分析算法添加到 Anode 中,首先需要在 `model` 目录中建立该算法对应的目录(目录名称可自拟),将采用该算法针对不同的输入时间序列数据生成的训练模型均需要保存在该目录下,同时目录名称要在分析算法中确定,以便能够固定加载该目录下的分析模型。为了确保模型能够正常读取加载,存储的模型使用`joblib`库进行序列化保存。 下面以自编码器(Autoencoder)为例,说明如何添加要预先训练的模型进行异常检测。 -首先我们在`model`目录中创建一个目录 -- `ad_detection`,该目录将用来保存所有使用自编码器训练的模型。然后,我们使用自编码器对 foo 表的时间序列数据进行训练,得到模型 ad_autoencoder_foo,使用 `joblib`序列化以后保存在`ad_detection` 目录中。 +首先我们在 `model `目录中创建一个目录 -- `ad_autoencoder` (见上图目录结构),该目录将用来保存所有使用自编码器训练的模型。然后,我们使用自编码器对 foo 表的时间序列数据进行训练,得到模型 针对 foo 表的模型,我们将其命名为 `ad_autoencoder_foo`,使用 `joblib`序列化该模型以后保存在 `ad_autoencoder` 目录中。如下图所示,ad_autoencoder_foo 由两个文件构成,分别是模型文件 (ad_autoencoder_foo.dat) 和模型文件描述文件 (ad_autoencoder_foo.info)。 -使用 SQL 调用已经保存的模型,需要在调用参数中指定模型名称``model=ad_autoencoder_foo`,而 `algo=encoder` 是确定调用的自编码器生成的模型(这里的`encoder`说明调用的是自编码器算法模型,该名称是添加算法的时候在代码中定义)以便能够调用该模型。 +```bash +. +├── cfg +├── model +│   └── ad_autoencoder +│   ├── ad_autoencoder_foo.dat +│   └── ad_autoencoder_foo.info +├── release +├── script +└── taosanalytics + ├── algo + │   ├── ad + │   └── fc + ├── misc + └── test + +``` + +接下来说明如何使用 SQL 调用该模型。 +通过设置参数 `algo=ad_encoder` 告诉分析平台要调用自编码器算法训练的模型(自编码器算法在可用算法列表中),因此直接指定即可。此外还需要指定自编码器针对某数据集训练的确定的模型,此时我们需要使用已经保存的模型 `ad_autoencoder_foo` ,因此需要添加参数 `model=ad_autoencoder_foo` 以便能够调用该模型。 ```SQL --- 在 options 中增加 model 的名称,ad_autoencoder_foo, 针对 foo 数据集(表)训练的采用自编码器的异常检测模型进行异常检测 -SELECT COUNT(*), _WSTART FROM foo ANOMALY_WINDOW(col1, 'algo=encoder, model=ad_autoencoder_foo'); +SELECT COUNT(*), _WSTART +FROM foo +ANOMALY_WINDOW(col1, 'algo=ad_encoder, model=ad_autoencoder_foo'); ``` From 1037b398e0127b5544cc4e75a8b0bf80dfb21828 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 28 Nov 2024 19:16:45 +0800 Subject: [PATCH 6/6] doc: fix some typos. --- docs/zh/06-advanced/06-TDgpt/02-management.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/06-advanced/06-TDgpt/02-management.md b/docs/zh/06-advanced/06-TDgpt/02-management.md index 82af1ab350..ef1206fc04 100644 --- a/docs/zh/06-advanced/06-TDgpt/02-management.md +++ b/docs/zh/06-advanced/06-TDgpt/02-management.md @@ -129,7 +129,7 @@ taos> show anodes full; 1 | anomaly-detection | ksigma | 1 | anomaly-detection | lof | 1 | anomaly-detection | grubbs | - 1 | anomaly-detection | encoder | + 1 | anomaly-detection | ad_encoder | 1 | forecast | holtwinters | 1 | forecast | arima | Query OK, 8 row(s) in set (0.008796s)