Dask
在 Dask 之上分布式运行 TimeGPT
Dask 是一个用于 Python 的开源并行计算库。在本指南中,我们将解释如何在 Dask 之上使用 TimeGPT。
概要
1. 安装
通过 Fugue 安装 Dask。Fugue 提供了一个易于使用的分布式计算接口,允许用户在包括 Dask 在内的多个分布式计算框架之上执行 Python 代码。
注意
您可以通过
pip安装fugue
如果在分布式 Dask 集群上执行,请确保所有 worker 都安装了 nixtla 库。
2. 加载数据
您可以将数据加载为 pandas DataFrame。在本教程中,我们将使用一个包含来自不同市场的每小时电价的数据集。
| unique_id | ds | y | |
|---|---|---|---|
| 0 | BE | 2016-10-22 00:00:00 | 70.00 |
| 1 | BE | 2016-10-22 01:00:00 | 37.10 |
| 2 | BE | 2016-10-22 02:00:00 | 37.10 |
| 3 | BE | 2016-10-22 03:00:00 | 44.75 |
| 4 | BE | 2016-10-22 04:00:00 | 37.10 |
3. 导入 Dask
导入 Dask 并将 pandas DataFrame 转换为 Dask DataFrame。
| unique_id | ds | y | |
|---|---|---|---|
| npartitions=2 | |||
| 0 | string | string | float64 |
| 4200 | … | … | … |
| 8399 | … | … | … |
4. 在 Dask 上使用 TimeGPT
在 Dask 之上使用 TimeGPT 几乎与非分布式情况相同。唯一的区别是您需要使用 Dask DataFrame,这我们在上一步中已经定义了。
首先,实例化 NixtlaClient 类。
👍 使用 Azure AI 端点
要使用 Azure AI 端点,请设置
base_url参数
nixtla_client = NixtlaClient(base_url="you azure ai endpoint", api_key="your api_key")
然后使用 NixtlaClient 类中的任何方法,例如 forecast 或 cross_validation。
| unique_id | ds | TimeGPT | |
|---|---|---|---|
| 0 | BE | 2016-12-31 00:00:00 | 45.190453 |
| 1 | BE | 2016-12-31 01:00:00 | 43.244446 |
| 2 | BE | 2016-12-31 02:00:00 | 41.958389 |
| 3 | BE | 2016-12-31 03:00:00 | 39.796486 |
| 4 | BE | 2016-12-31 04:00:00 | 39.204533 |
📘 Azure AI 中的可用模型
如果您使用 Azure AI 端点,请务必设置
model="azureai"
nixtla_client.forecast(..., model="azureai")对于公共 API,我们支持两种模型:
timegpt-1和timegpt-1-long-horizon。默认情况下,使用
timegpt-1。关于何时以及如何使用timegpt-1-long-horizon,请参阅本教程。
| unique_id | ds | cutoff | TimeGPT | |
|---|---|---|---|---|
| 0 | BE | 2016-12-30 04:00:00 | 2016-12-30 03:00:00 | 39.375439 |
| 1 | BE | 2016-12-30 05:00:00 | 2016-12-30 03:00:00 | 40.039215 |
| 2 | BE | 2016-12-30 06:00:00 | 2016-12-30 03:00:00 | 43.455849 |
| 3 | BE | 2016-12-30 07:00:00 | 2016-12-30 03:00:00 | 47.716408 |
| 4 | BE | 2016-12-30 08:00:00 | 2016-12-30 03:00:00 | 50.31665 |
您还可以在 Dask 之上使用带有 TimeGPT 的外部变量。为此,请参阅外部变量教程。请记住,您需要使用 Dask DataFrame,而不是 pandas DataFrame。

