过去一年,以ChatGPT为代表的人工智能大模型席卷全球。目前大模型的主要应用包括:文本生成、图片生成、代码生成、视频生成等。但是对于一名宏观经济分析者而言,最常用的是时间序列模型。那么有没有合适的时间序列大模型呢?
近期美国的一家公司Nixtla提出了业界首个时序基础模型TimeGPT,并开放了相关模型的API(https://docs.nixtla.io/)供大家体验。TimeGPT号称使用了来自金融、气象、能源、网络数据等多个领域超过1000亿个数据点进行训练,同时允许使用者利用自己的数据对其进行微调,最终支撑各类预测及异常检测任务,并号称是第一个始终能够以最小的复杂性超越其他选择的基础模型。
我们来体验一下。TimeGPT提供Python的API接口,因此我们首先需要做两项准备工作:一是安装Python程序包,程序如下:
pip install nixtlats -i https://pypi.tuna.tsinghua.edu.cn/simple
第二步是获得自己的Token,我们进入TimeGPT首页,点击左上方的Get Token,然后在API Keys页面,Create New API Key即可。
我们先来尝试一下,最基础的程序是:
//调用TimeGPT包
from nixtlats import TimeGPT
//初始化一个TimeGPT类
timegpt = TimeGPT(
# defaults to os.environ.get("TIMEGPT_TOKEN")
token = 'my_token_provided_by_nixtla'
)
//测试Token的有效性
timegpt.validate_token()
如果出现如下这个结果,那就证明测试成功了。
INFO:nixtlats.timegpt:Happy Forecasting! :), If you have questions or need support, please email ops@nixtla.io
但是不幸的是,当你进行第二次测试的时候,就会出现如下报错:
nixtlats.core.api_error.ApiError: status_code: 429,
body: {'data': None, 'message': 'Too many requests', 'details': 'You have reached your request limit, email ops@nixtla.io to continue using the API',
'code': 'A20', 'requestID': 'FFPAHBLWH6', 'support': 'If you have questions or need support, please email ops@nixtla.io'}
究其原因,在于TimeGPT目前只是内测版本,每个Token只有一次测试机会。如果我们进入TimeGPT的Github的Issues页面,也会发现大量的用户都是类似的问题。
那我们只能基于报错的内容,向TimeGPT发邮件,如果反馈迅速的话,一般来说,第二天就会收到TimeGPT的回信。回信中,TimeGPT会发来一个申请内测的表单。填好后,就等着。我大概等了11天后,收到TimeGPT团队的内测通知,然后就可以正常使用了。
笔者在实际使用中,感觉有三个地方需要注意:
一是,我们常用的时间序列数据,比如从Wind接口中取的数据,Index一般是日期,但是在输入TimeGPT模型之前,需要重新把日期恢复成变量,即:
df.reset_index(inplace=True)
二是,使用TimeGPT作图的时候,需要先把图片保存下来,无法直接显示,即:
fig = timegpt.plot(df, time_col='index', target_col='values')
fig.savefig('plot.png')
做的图大概是这个样子
三是,在使用TimeGPT做预测的时候,预测变量的变量名均统一改为,后续需重命名使用,模型预测代码为
timegpt_fcst_df = timegpt.forecast(df=df, h=12, freq='MS', time_col='index', target_col='values')
print(timegpt_fcst_df)
根据笔者的试用情况,笔者没有详细比较预测的详细准确度。总的来说,优点是方便,不需要事先进行平稳性检验、寻找合适的ARIMA阶数之类的,直接就是一句代码,比较方便,缺点是速度略慢一点点,大概跑一个基本的模型,要10秒钟左右。
另外就是内测版本给了10万次测试额度,比较适合个人使用,商业化使用,额度估计不够用。
0
推荐