ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Kronos 上手指南:如何用 24.7M 参数的 K 线基础模型跑通金融时序预测

Kronos 上手指南:如何用 24.7M 参数的 K 线基础模型跑通金融时序预测 Kronos 上手指南如何用 24.7M 参数的 K 线基础模型跑通金融时序预测【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/KronosKronos 是首个面向金融 K 线K-line即 OHLCV 蜡烛图序列的开源基础模型训练数据覆盖 45 个以上全球交易所。它先用分词器把连续 K 线量化为层次化离散 token再用自回归 Transformer 生成未来 K 线适合做金融时序预测、策略信号研究和自有市场数据微调。为什么传统时序模型不够用假设你要为持仓组合里的 500 只 A 股批量生成未来 4 小时的 5 分钟 K 线路径。直接拿 LSTM 或通用时序 Transformer 建模会撞上两个问题连续型 OHLCV 序列信噪比极低逐值回归的输出往往被噪声主导而自注意力在数百到数千个时间步上的显存开销又让批量推理难以在消费级 GPU 上铺开。Kronos 的金融时序预测路线是换一种表示方式不在连续空间里回归而是先把每个 K 线翻译成一小段离散 token让模型像语言模型一样按 token 自回归生成。这么做有三个直接好处采样天然给出多条候选路径而非单点估计生成过程可以被温度temperature、核采样nucleus sampling等成熟机制控制训练目标从回归换成分类损失曲面更平滑。 从 0 到第一次出结果安装与最小运行环境要求很轻Python 3.10依赖就是 PyTorch、pandas、einops 等几样见 requirements.txt。git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos pip install -r requirements.txt预训练权重托管在 Hugging Face Hub首次运行from_pretrained时自动下载需要外网可达。模型分四个尺寸入门用 24.7M 参数的 Kronos-small 即可from model import Kronos, KronosTokenizer, KronosPredictor import pandas as pd tokenizer KronosTokenizer.from_pretrained(NeoQuasar/Kronos-Tokenizer-base) model Kronos.from_pretrained(NeoQuasar/Kronos-small) predictor KronosPredictor(model, tokenizer, max_context512) df pd.read_csv(./data/XSHG_5min_600977.csv) df[timestamps] pd.to_datetime(df[timestamps]) lookback, pred_len 400, 120 x_df df.loc[:lookback-1, [open,high,low,close,volume,amount]] x_ts df.loc[:lookback-1, timestamps] y_ts df.loc[lookback:lookbackpred_len-1, timestamps] pred_df predictor.predict(dfx_df, x_timestampx_ts, y_timestampy_ts, pred_lenpred_len, T1.0, top_p0.9, sample_count1)跑通仓库自带的 examples/prediction_example.py 就能得到一张收盘价与成交量的对比图蓝线为真实值、红线为预测值可以直接判断预测形态是否合理注意max_context上限Kronos-small 和 Kronos-base 是 512Kronos-mini 是 2048。历史窗口超过上限时KronosPredictor会自动截断不会报错但等于丢弃更早的历史。 原理拆解从 K 线到 token再到自回归生成整体是Tokenizer Transformer的两阶段结构核心实现都在 model/ 目录里。分词器用二进制球面量化把 OHLCV 压成层次 tokenKronosTokenizermodel/kronos.py采用编码器-解码器 Transformer 夹一个 BSQuantizer 的结构。量化函数本身极简单——把连续向量逐元素做符号化到 ±1再用直通估计straight-through estimator回传梯度def quantize(self, z): zhat torch.where(z 0, 1, -1) return z (zhat - z).detach() # STE前向量化反向走原向量关键在量化后的码字被拆成两截前s1_bits位构成粗粒度子 tokencoarse subtoken记作 s1其余低位构成细粒度子 tokenfine subtoken记作 s2。解码器分别用 s1 和完整码字解码两次得到由粗到细的两次重构。训练时 BSQuantizer 的熵惩罚项逐样本熵 码本熵推动 token 分布尽量均匀避免码本坍缩。这套机制的效果是每个时间步被压缩成两个小词表上的索引后续 Transformer 只需做两级分类而非连续回归。主干模型层次嵌入与依赖感知层Kronos 主干是 decoder-only 的自回归 Transformer每个 TransformerBlock 用 RMSNorm RoPE 自注意力 FFN。两个设计针对 token 的层次结构层次嵌入HierarchicalEmbeddingmodel/module.py把复合 token 按位拆成 s1、s2 两路嵌入拼接后投影回模型维度让模型显式区分趋势层和细节层s2_ids token_ids ((1 s2_bits) - 1) # 低位 → 细粒度 s1_ids token_ids s2_bits # 高位 → 粗粒度 emb fusion_proj(cat([emb_s1(s1_ids), emb_s2(s2_ids)], -1))依赖感知层DependencyAwareLayer则显式建模 s2 对 s1 的条件依赖Transformer 输出 s1 的 logits 后先采样出一个 s1 token 取其嵌入再用一层带 RoPE 的交叉注意力让主干隐状态去看这个 s1 嵌入最后才解码 s2 的 logits。这对应 K 线的真实生成顺序——先定大方向开高低收的骨架再补细节。KronosPredictor把推理链路打包KronosPredictor封装了归一化、截断、多路径采样与反归一化。predict只要求 DataFrame 含open/high/low/close四列volume和amount可选缺失填 0返回的 DataFrame 直接以你传入的y_timestamp为索引。批量场景用predict_batch注意约束所有序列的 lookback 长度和 pred_len 必须一致方法内部按序列各自独立做归一化/反归一化。 调参与排坑T、top_p 和上下文长度怎么配采样相关参数是调优的主要抓手。KronosPredictor每次生成走温度缩放 → 核采样 → 多路径取平均建议值综合 README 与 WebUI 文档的官方推荐参数建议值作用max_context512small/base2048mini最大上下文长度超长输入自动截断lookback≤max_context示例用 400喂给模型的历史窗口长度T温度1.2–1.5WebUI 推荐采样温度越低路径越确定越高越分散top_p0.95–1.0WebUI 推荐核采样概率保留候选 token 的范围sample_count1–5生成多条路径取平均越大越稳、越慢同一个历史窗口下低温度路径贴合近期形态高温度路径覆盖更多可能性两者对照着看比单看一条更有信息量pred_low predictor.predict(dfx_df, x_timestampx_ts, y_timestampy_ts, pred_len120, T0.5, top_p0.9, sample_count5) pred_high predictor.predict(dfx_df, x_timestampx_ts, y_timestampy_ts, pred_len120, T1.5, top_p0.95, sample_count3)常见坑集中在数据侧列名必须小写open/high/low/close时间戳单独用timestamps列解析缺volume/amount可跑 examples/prediction_wo_vol_example.py 的无成交量版本。predict_batch对不齐会静默出错lookback 或 pred_len 不一致时先统一再传。CPU 上能跑但慢512 上下文的自回归生成在 CPU 上延迟可观建议至少配一张消费级 GPU。微调目录的注释慎全信README 明确提示 finetune/ 下部分注释由 AI 生成逻辑以代码为准。 工程落地选型、微调与回测接入四个预训练模型的规格来自 README 的 Model Zoo权重均在 Hugging Face Hub以 NeoQuasar 账号发布模型参数量上下文长度配套分词器是否开源Kronos-mini4.1M2048Kronos-Tokenizer-2k是Kronos-small24.7M512Kronos-Tokenizer-base是Kronos-base102.3M512Kronos-Tokenizer-base是Kronos-large499.2M512Kronos-Tokenizer-base否选型逻辑很直接显存紧张或多序列批量推理选 mini/small追求预测质量且单卡吃得消再上 base。微调有两条路线。第一条面向 A 股日线走 finetune/ 的 Qlib 流水线改 finetune/config.py 里的路径与时间范围 →qlib_data_preprocess.py切分数据 →torchrun多卡依次训 tokenizer 和 predictor →qlib_test.py --device cuda:0跑回测。官方配置里回测区间为 2024-07-01 至 2025-06-05基准是 csi300策略是最朴素的 top-K 选股具体收益数字以你跑出的官方脚本输出为准README 自己声明这只是演示流程不是生产级量化系统。第二条面向任意自定义 CSV在 finetune_csv/数据只需timestamps/open/high/low/close/volume/amount七列写一个 YAML 指定data_path、lookback_window、predict_window然后python train_sequential.py --config xxx.yaml一条命令顺序训完两个组件多卡加torchrun开 DDP 即可仓库里带了港股 09988 五日线的样例与可视化输出。交互调试可以用 WebUIcd webui python run.py后访问 localhost:7070固定 400120 的窗口滑块温度、top_p、采样次数都可在页面上实时调支持 CPU/CUDA/MPS。研究引用方面论文为 arXiv:2508.02739项目已被 AAAI 2026 接收README News 栏。⚠️ 边界与展望它现在做不到什么先把期望校准到位Kronos-large 未开源102.3M 的 base 是公开可用的上限。回测是玩具级的top-K 策略不含组合优化、风险因子中性化、交易成本与滑点建模回测曲线不能直接当策略收益。仓库没有给出系统性的定量基准延迟、显存、精度对比性能相关结论建议以论文和官方测试为准。没有官方实时行情接入数据要自己准备成 OHLCV 格式流式推理需要自行封装。微调流水线面向演示 起点生产化数据适配、增量训练、信号后处理要自己补。路线图方面README 的更新节奏2025 年 8 月放出微调脚本、11 月接收 AAAI比较稳定后续可关注分词器在其他周期小时线、日线上的适配示例以及 WebUI 与 demo 页面的功能扩展。谁最适合用 Kronos如果你要的是能跑的 K 线生成器而不是开箱即用的盈利策略Kronos 是目前开源里最完整的选择24.7M 参数跑在消费级 GPU 上推理、微调、回测三段都有可运行脚本。适合量化研究员做信号源实验、适合需要在私有市场数据上微调序列模型的团队也适合想研究金融分词与自回归生成这一技术路线本身的人。【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表