Ray
在 Ray 上分布式运行 TimeGPT
Ray 是一个开源的统一计算框架,用于扩展 Python 工作负载。在本指南中,我们将解释如何在 Ray 上使用 TimeGPT。
目录
1. 安装
通过 Fugue 安装 Ray。Fugue 提供了一个易于使用的分布式计算接口,允许用户在包括 Ray 在内的多个分布式计算框架之上执行 Python 代码。
注意
您可以使用
pip安装fugue
如果在分布式 Ray 集群上执行,请确保在所有 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. 初始化 Ray
初始化 Ray 并将 pandas DataFrame 转换为 Ray DataFrame。
4. 在 Ray 上使用 TimeGPT
在 Ray 上使用 TimeGPT 与非分布式情况几乎完全相同。唯一的区别是您需要使用 Ray 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。
📘 Azure AI 中可用的模型
如果您正在使用 Azure AI 端点,请务必设置
model="azureai"
nixtla_client.forecast(..., model="azureai")对于公共 API,我们支持两种模型:
timegpt-1和timegpt-1-long-horizon。默认情况下使用
timegpt-1。请参阅此教程,了解何时以及如何使用timegpt-1-long-horizon。
要可视化结果,请使用 to_pandas 方法将 Ray 的输出转换为 pandas DataFrame。
| unique_id | ds | TimeGPT | |
|---|---|---|---|
| 55 | NP | 2018-12-24 07:00:00 | 55.387066 |
| 56 | NP | 2018-12-24 08:00:00 | 56.115517 |
| 57 | NP | 2018-12-24 09:00:00 | 56.090714 |
| 58 | NP | 2018-12-24 10:00:00 | 55.813717 |
| 59 | NP | 2018-12-24 11:00:00 | 55.528519 |
| unique_id | ds | cutoff | TimeGPT | |
|---|---|---|---|---|
| 295 | NP | 2018-12-23 19:00:00 | 2018-12-23 11:00:00 | 53.632019 |
| 296 | NP | 2018-12-23 20:00:00 | 2018-12-23 11:00:00 | 52.512775 |
| 297 | NP | 2018-12-23 21:00:00 | 2018-12-23 11:00:00 | 51.894035 |
| 298 | NP | 2018-12-23 22:00:00 | 2018-12-23 11:00:00 | 51.06572 |
| 299 | NP | 2018-12-23 23:00:00 | 2018-12-23 11:00:00 | 50.32592 |
您还可以在 Ray 上使用 TimeGPT 处理外部变量。为此,请参阅外部变量教程。请记住,您需要使用 Ray DataFrame 而不是 pandas DataFrame。
5. 关闭 Ray
完成后,关闭 Ray 会话。

