本博客用于交流最近比较火的清华大学团队开源的kronos,一起学习。

1. 安装环境

1.1 conda 环境

参考github 网址 https://github.com/shiyu-coder/Kronos
	conda create -n kronos_r python=3.10 -y
	conda activate kronos_r
	git clone https://github.com/shiyu-coder/Kronos  
	cd Kronos  # 根据自己的系统命令,进入项目文件夹
	pip install -r requirements.txt
	

1.2 下载权重

根据需要下载对应权重
https://huggingface.co/NeoQuasar/Kronos-Tokenizer-base
https://huggingface.co/NeoQuasar/Kronos-base#

2. 测试运行

进入 项目文件夹下的example文件夹
更改prediction_example.py文件的42和43行,权重路径改称自己下载存放的路径

tokenizer = KronosTokenizer.from_pretrained(“NeoQuasar/Kronos-Tokenizer-base”)
model = Kronos.from_pretrained(“NeoQuasar/Kronos-small”)

也可更改第49行,换成自己关心的股票的数据。
更改52行和53行
lookback = 400 # 观察数据量
pred_len = 120 #预测数据量

更改后运行:

python prediction_example.py

程序输出预测时间和预测值会打印在终端,同时也会生成一幅图,直观的观察预测值和gt是否一致。
在这里插入图片描述这是使用kronos预测的sh.603876,截止日期为9月10,还未微调参数,直接运行结果。

以下内容持续更新中…

微调权重

安装pyqlib,获取数据

pip install pyqlib

下载qlibb源码
下载地址: https://github.com/microsoft/qlib
下载后进入qlib项目文件夹,运行如下命令获取股票数据

python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

数据预处理

进入kronos项目文件夹,进入fineturn 文件夹,运行如下命令对数据预处理

 python qlib_data_preprocess.py

训练

首先训练 tokenizer,

运行如下命令,训练tokenizer,根据自己电脑gpu数量更改NUM_GPUS

# Replace NUM_GPUS with the number of GPUs you want to use (e.g., 2)
torchrun --standalone --nproc_per_node=NUM_GPUS finetune/train_tokenizer.py

训练完tokenizer后训练predictor

# Replace NUM_GPUS with the number of GPUs you want to use (e.g., 2)
torchrun --standalone --nproc_per_node=NUM_GPUS finetune/train_predictor.py

训练中的终端输出图像如下所示:
在这里插入图片描述

以上实现kronos的fineturn,但是qlib数据库没有近期的数据,无法对近期数据训练,目前正在尝试更新qlib数据库的方法

自动预测判断

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐