常见问题
关于 TimeGPT 的常见问题
目录
TimeGPT
什么是 TimeGPT?
TimeGPT
是第一个用于时间序列预测的基础模型。它仅使用历史值作为输入,即可针对各种不同领域的新时间序列生成准确的预测。模型像人类阅读句子一样,按顺序从左到右“读取”时间序列数据。它查看过去数据的时间窗口,我们可以将其视为“令牌”,然后预测接下来会发生什么。这种预测基于模型识别并外推到未来的模式。除了预测之外,TimeGPT
还支持其他时间序列相关任务,例如假设情景、异常检测等。
TimeGPT 是否基于大型语言模型 (LLM)?
不,TimeGPT
不基于任何大型语言模型。虽然它遵循了在海量数据集上训练大型 Transformer 模型的基本原则,但其架构经过专门设计以处理时间序列数据,并已训练用于最小化预测误差。
如何开始使用 TimeGPT?
要开始使用 TimeGPT
,您需要在此处注册一个账户。您将收到一封电子邮件,要求您确认注册。确认后,您将能够访问您的仪表盘,其中包含您的账户详情。
TimeGPT 的可访问性如何?使用成本是多少?
要更深入地了解 TimeGPT
,请参阅研究论文。虽然模型架构的某些方面仍属机密,但 TimeGPT
的注册对所有人开放。新用户可获得 1,000 美元的免费额度,后续使用费用基于令牌消耗。更多详情,请参阅定价和计费部分
如何使用 TimeGPT?
-
通过
TimeGPT
API。有关如何使用不同语言调用 API 的说明,请参阅API 文档
这两种方法都需要您拥有一个API 密钥,该密钥在注册时获得,并可在您仪表盘的 API Keys
部分找到。
TimeGPT API 密钥
什么是 API 密钥?
API 密钥是一个唯一的字符串,在使用 Nixtla SDK 时用作身份验证请求的密钥。它确保发出请求的人员获得授权。
在哪里可以获取 API 密钥?
注册后,您将收到一个 API 密钥,可在您的仪表盘中 API Keys
下找到。请记住,您的 API 密钥是个人密钥,不应与任何人共享。
如何使用我的 API 密钥?
要将您的 API 密钥集成到您的开发工作流程中,请参阅关于设置您的 API 密钥的教程。
如何检查我的 API 密钥状态?
如果您想检查您的 API 密钥状态,您可以使用 validate_api_key
方法的 NixtlaClient
类。
nixtla_client = NixtlaClient( api_key = 'my_api_key_provided_by_nixtla' )
nixtla_client.validate_api_key()
如果您的密钥验证正确,将返回
如果我的 API 密钥无法验证怎么办?
当您验证您的 API 密钥并返回 False
时
- 如果您正在定位 Azure 端点,从
NixtlaClient.validate_api_key
方法获得False
是预期结果。定位 Azure 端点时可以跳过此步骤,直接进行预测。 - 如果您未定位 Azure 端点,则应检查以下事项
- 确保您正在使用最新版本的 SDK (Python 或 R)。
- 访问https://dashboard.nixtla.io/检查您的 API 密钥在您的仪表盘中是否处于活动状态
- 考虑您的组织可能存在的任何防火墙。可能存在受限访问。如果是这样,您可以将我们的端点 https://api.nixtla.io/ 添加到白名单。
- 要使用 Nixtla 的 API,您需要让您的系统知道我们的端点是安全的,以便允许您访问它。将端点添加到白名单不是 Nixtla 在我们这边能做的事情。这是需要在用户系统上完成的事情。这篇文章概述了白名单。
- 如果您在组织中工作,请与 IT 团队合作。他们很可能负责设置安全,您可以与他们沟通解决此问题。如果您运行自己的系统,则应该能够自行更新,具体取决于您使用的系统。
特性和功能
TimeGPT 的输入是什么?
TimeGPT
接受采用长格式的 pandas
数据帧,需要以下列
ds
(timestamp): 时间戳,格式为YYYY-MM-DD
或YYYY-MM-DD HH:MM:SS
。y
(numeric): 要预测的目标变量。
(可选地,只要数据帧具有 DatetimeIndex,您也可以传递一个不包含 ds
列的数据帧)
TimeGPT
也支持 分布式数据帧,如 dask
、spark
和 ray
。
TimeGPT 可以处理多个时间序列吗?
是的。有关同时预测多个时间序列的指导,请参阅多个序列教程。
TimeGPT 是否支持使用外部变量进行预测?
是的。有关如何将外部变量纳入 TimeGPT
的说明,请参阅外部变量教程。对于专门包含日历日期,您可能会发现节假日和特殊日期教程很有用。对于类别变量,请参阅类别变量教程。
TimeGPT 可以用于异常检测吗?
是的。要了解如何使用 TimeGPT
进行异常检测,请参阅异常检测教程。
TimeGPT 是否支持交叉验证?
是的。要了解如何使用 TimeGPT
进行交叉验证,请参阅交叉验证教程。
TimeGPT 可以用于预测历史数据吗?
是的。要了解如何使用 TimeGPT
预测历史数据,请参阅历史预测教程。
TimeGPT 可以用于不确定性量化吗?
TimeGPT 可以处理大型数据集吗?
是的。处理包含数十万或数百万时间序列的大型数据集时,我们建议使用分布式后端。TimeGPT
兼容多种分布式计算框架,包括 Spark、Ray 和 Dask。只要使用分布式后端,TimeGPT
SDK 和 API 对数据集大小均无限制。
TimeGPT 可以处理有限/短期数据吗?
TimeGPT
支持任何数量的数据以生成点预测,并且每条序列仅使用一个观测值即可产生结果。当使用 level
、finetune_steps
、X_df
(外部变量) 或 add_history
等参数时,根据数据频率需要额外的数据点。更多详细信息,请参阅数据要求教程。
TimeGPT 允许的最大预测范围是多少?
虽然 TimeGPT
没有最大预测范围,但随着范围增加,其性能会下降。当预测范围超过数据的季节长度(例如,月度数据超过 12 个月)时,您将收到此消息:WARNING:nixtla.nixtla_client:The specified horizon "h" exceeds the model horizon. This may lead to less accurate forecasts. Please consider using a smaller horizon
。
有关详细信息,请参阅关于时间序列的长范围预测的教程。
TimeGPT 可以处理缺失值吗?
TimeGPT
无法处理缺失值或时间戳不规则的序列。了解更多信息,请参阅预测时间戳不规则的时间序列和处理缺失值教程。
如何绘制 TimeGPT 预测图?
NixtlaClient
类有一个 plot
方法,可用于可视化预测。此方法仅在交互式环境(如 Jupyter notebook)中工作,在 Python 脚本中无效。
TimeGPT 是否支持 polars?
目前,TimeGPT
不支持 polars。
TimeGPT 是否产生稳定的预测?
TimeGPT
的设计注重稳定性,确保对于相同输入数据产生一致的结果。这意味着给定相同的数据集,模型将产生相同的预测。
TimeGPT 可以预测具有简单模式(如直线或正弦波)的数据吗?
虽然这不是 TimeGPT
的主要用例,但它能够对简单数据(如直线)生成可靠结果。尽管零样本预测可能并非总能达到预期,但借助微调的帮助,TimeGPT 可以快速掌握趋势并生成准确的预测。更多详细信息,请参阅使用 TimeGPT 提高预测准确性教程。
微调
什么是微调?
TimeGPT
在最大规模的公开时间序列数据集上进行了训练,涵盖金融、零售、医疗等广泛领域。这种全面的训练使 TimeGPT
能够无需额外训练即可为新的时间序列生成准确的预测,这种能力称为零样本学习。
虽然零样本模型提供了坚实的基础,但 TimeGPT
的性能通常可以通过微调得到提升。在此过程中,TimeGPT
模型将使用您特定的数据集进行额外训练,从预训练参数开始。更新后的模型随后产生预测。您可以使用 NixtlaClient
类中 forecast
方法的 finetune_steps
和 finetune_loss
参数分别控制微调的训练迭代次数和损失函数。
有关如何应用微调的全面指南,请参阅微调和使用特定损失函数进行微调教程。
我必须对每个序列都进行微调吗?
不,您无需单独对每个序列进行微调。当使用 finetune_steps
参数时,模型会同时对数据集中所有序列进行微调。此方法采用交叉学习方式,允许模型同时从多个序列中学习,这可以改善个体预测。
请记住,选择合适的微调步数可能需要一些尝试和错误。随着微调步数的增加,模型会更专注于您的数据集,但训练时间会更长,并且可能更容易过拟合。
我可以保存微调后的参数吗?
是的!您可以微调 TimeGPT 模型,保存它,然后稍后重复使用。有关详细说明,请参阅我们的重复使用微调模型指南。
定价和计费
定价如何运作?
有关定价信息,请参阅我们的定价页面。
免费开始 *无需信用卡。
如需定制计划详情和优惠,请预约演示或通过 support@nixtla.io
联系我们。
是否有免费选项或折扣?
是的!我们为学术研究提供一些折扣选项。如果您想了解更多信息,请发送电子邮件至 support@nixtla.io
。
什么算作一次 API 调用?
API 调用是向 TimeGPT 发出执行预测或异常检测等操作的请求。API 使用量计算如下
预测
- 未请求历史预测时 (
add_history=False
)- 如果您不设置
num_partitions
,所有执行预测、微调或交叉验证的调用都会使使用量增加 1。请注意,添加外部变量、请求不确定性量化或预测多个序列不会进一步增加使用量。 - 如果 API 调用需要发送超过 200MB 的数据,API 将返回错误,并要求您使用
num_partitions
参数对您的请求进行分区。每个分区将计为一次 API 调用,因此使用量将增加您为num_partitions
设置的值(例如,当 num_partitions=2 时,使用量将增加 2)。如果您设置了num_partitions
,所有执行预测、微调或交叉验证的调用都会使使用量增加 num_partitions。
- 如果您不设置
- 当请求样本内预测 (
add_history=True
) 时,上述第 1 条的使用量乘以 2。
示例
- 用户使用 TimeGPT 预测每日数据,使用
timegpt-1
模型。进行了多少次 API 调用?(答案: 1) - 用户在数据集上调用
cross_validation
方法。进行了多少次 API 调用 (答案: 1) - 用户决定进行更长范围的预测,因此使用
timegpt-1-long-horizon
模型。进行了多少次 API 调用 (答案: 1) - 用户在使用
add_history=True
进行预测时需要获取样本内预测结果。进行了多少次 API 调用 (答案: 2) - 用户有一个非常大的数据集,频率为每日,他们在预测时必须设置
num_partitions=4
。进行了多少次 API 调用 (答案: 4) - 用户必须设置
num_partitions=4
,并且在预测时也对获取样本内预测结果感兴趣 (add_history=True
)。进行了多少次 API 调用 (答案: 8)
异常检测
- 如果您不设置
num_partitions
,所有执行异常检测的调用都会使使用量增加 1。请注意,添加外部变量不会进一步增加使用量。 - 如果 API 调用需要发送超过 200MB 的数据,API 将返回错误,并要求您使用
num_partitions
参数对您的请求进行分区。每个分区将计为一次 API 调用,因此使用量将增加您为num_partitions
设置的值(例如,当 num_partitions=2 时,使用量将增加 2)。
计费如何运作?
计费通过 Stripe 进行。我们与 Stripe 合作处理所有支付。您可以在仪表盘的 Billing
部分查看您的发票和支付历史。
隐私和安全
您如何确保我的数据的隐私和安全?
在 Nixtla,我们非常重视您的隐私和安全。为确保您充分了解我们关于您数据的政策,请参阅以下文档
此外,我们目前正在开发 TimeGPT
的自托管版本,该版本专为满足企业数据独特的安全要求而定制。此版本目前处于 Beta 阶段。如果您有兴趣探索此选项,请通过 support@nixtla.io
联系我们。
故障排除
以下部分包含一些常见的错误和警告
解决方案:当您的 TimeGPT
API 密钥无效或未正确设置时,会发生此错误。请使用 validate_api_key
方法验证它,或确保从您的仪表盘中 API Keys
部分正确复制。
解决方案:当您已用完免费额度并需要添加支付方式才能继续使用 TimeGPT
时,会发生此错误。您可以在仪表盘的 Billing
部分添加支付方式。
解决方案:如果您遇到 WriteTimeout
错误,这意味着请求超出了允许的处理时间。这在使用大型数据集时是一个常见问题。要解决此问题,请考虑增加 NixtlaClient
类中 forecast
方法的 num_partitions
参数,如果尚未启用分布式后端,请使用分布式后端。
额外支持
如果您有更多问题或需要支持,请通过以下方式联系我们