ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Kronos-mini NPU 原理深挖:decoder-only Transformer 如何读懂金融K线语言

Kronos-mini NPU 原理深挖:decoder-only Transformer 如何读懂金融K线语言 Kronos-mini NPU 原理深挖decoder-only Transformer 如何读懂金融K线语言【免费下载链接】kronos-mini-npu可直接在华为昇腾 NPU 上运行用于金融 K 线序列的预测与分类。该项目基于 Kronos-mini 模型提供完整的 NPU 推理流程支持确定性输入与结果校验并附带性能测试与精度对比。项目地址: https://ai.gitcode.com/atlasleong/kronos-mini-npuKronos-mini是一款可直接运行在华为昇腾NPU上的金融K线蜡烛图序列预测与分类模型。它基于decoder-only Transformer架构先用专用 KronosTokenizer 把连续 K 线窗口编码成分层离散 token再自回归地预测下一根 K 线的 token 类别最终解码回连续 OHLCV 预测值。本文用这个开源项目带你通俗地拆懂它的两阶段框架、模型结构与 NPU 推理流程。先问一个问题为什么把K线当成“语言”金融市场说的是一种自己的语言而 K 线就是它的“文字”。但 K 线数据天生高噪声同样的蜡烛形状在牛市和熊市含义不同价格、成交量、时间都要一起看直接把连续数值喂给传统时序模型很容易过拟合。大语言模型LLM给出了另一条路文本是离散 token 的序列模型只需不断学习“预测下一个 token”。Kronos把这套范式搬进了金融市场——它是首个开源的金融 K 线基础模型基于全球 45 个交易所、超 120 亿条 K 线记录预训练可零样本完成价格预测、波动率预测等任务。Kronos 是一个家族不同成员规模如下成员参数量上下文长度Kronos-mini4.1M2048Kronos-small24.7M512Kronos-base102.3M512本文聚焦最小的Kronos-mini它只有 base 约 1/25 的参数架构却完全一致是理解整套原理的最佳“教材”。本开源项目还完成了它在华为昇腾 NPU上的完整适配附带确定性输入、精度对比与性能测试。第一阶段KronosTokenizer 给K线造一本“字典”要让 Transformer“读”K 线得先把蜡烛变成“词汇”。KronosTokenizer 分两步完成VQ-VAE 编码器把每根 K 线的 6 维特征开/高/低/收/量/额压缩并量化到码本二进制球面量化BSQ在超球面上做精细量化每根 K 线被编码成两层 token——s1 与 s2各自对应一个1024 类2¹⁰的码本。可以把它理解成“两级地址”s1 定“大势”这根是强阳还是强阴s2 定“细节”具体形态与量价特征。于是 6 个连续值变成了 2 个离散索引一整段 K 线窗口变成一句 Transformer 能处理的“token 句子”。这正是它与常规时序模型的差别预测目标从“连续值”变成“token 类别”因此模型主输出天然是分类结果每个位置的 s1 类别 ID连续 OHLCV预测值则由下游 tokenizer 解码得到。第二阶段decoder-only Transformer 自回归“读句子”为什么选 decoder-only因为 LLM 已证明一个自回归目标就能统一“理解 生成”。Kronos 沿用了经典 decoder 结构因果自注意力每个位置只能看左边保证逐根 K 线“续写”时的因果性RoPE 旋转位置编码 RMSNorm SwiGLU 前馈主流 Transformer 的标准配置两级解码头先decode_s1预测粗粒度 token再由decode_s2预测细粒度 token——与分层编码一一对应先定大势、再定细节日历特征融合分钟/小时/星期/日/月 5 个特征并入序列让模型拥有“时间感”知道开盘 K 线和盘中 K 线不同。关键的一点主前向全部由纯 PyTorch 算子实现nn.Linear、nn.Embedding、RMSNorm、RoPE、F.scaled_dot_product_attention、SwiGLU没有任何 CUDA 自定义内核无 flash_attn / apex / triton。这正是它能通过 torch_npu 在昇腾 NPU 上不改一行算子直接运行的前提。小而精410 万参数的 Kronos-mini 解剖组件数值隐藏维度 d_model256注意力头数4Transformer 层数4前馈维度 ff_dim512码本大小s1 / s21024 / 1024最大上下文2048Transformer 参数量4,108,032Tokenizer 参数量3,958,042完整结构配置见文件model/config.json。400 多万参数意味着权重文件只有约 16MB单张昇腾卡上跑一次推理仅需几十毫秒——轻量到“随手可试”。跑在昇腾 NPU 上从输入到预测的完整流程运行环境昇腾 910B逻辑设备npu:0CANN 8.5.1 torch 2.9.0 torch_npu 2.9.0 Python 3.11。入口是inference.py权重全部从本地快照加载local_files_onlyTrue不访问网络。推理分四步用固定种子12345构建确定性输入32 根归一化 K 线lookback32 日历戳本地加载 tokenizer 与模型整体搬到npu:0执行8 步贪心自回归解码每步取最近上下文做decode_s1前向 → 末位 logits 取 argmax 得下一根 s1 →decode_s2取 argmax 得 s2 → 新 token 追加进序列循环 8 次核心循环在kronos_common.py的greedy_decode_tensors把「输入 token 生成 token」完整序列交回 KronosTokenizer 解码回连续空间输出8×6预测值FORECAST以及逐位置的 s1 分类ARGMAX_CLASS_IDS、PREDICTED_CLASS等真实语义标记。图中是一次真实的npu-smi设备快照。推理脚本还会在输出搬回 CPU 之前硬断言输入、模型、logits、预测值全部驻留npu:0并显式打印CPU_FALLBACKfalse——禁止任何隐式 CPU 回退。确定性验收CPU 与 NPU 结果逐位一致贪心 argmax 不带采样意味着同样的输入两次运行结果完全相同这是本项目验收的基石。实测数据很有说服力离散输出完全一致CPU 与 NPU 的class_ids逐项相等discrete_outputs_equaltrue连续 logits 误差极小position_logits最大绝对误差 1.43×10⁻⁵阈值 10⁻³平均误差 3.1×10⁻⁶性能稳定3 次预热 10 次同步计时中位数 73.9ms标准差不足 0.8ms。真实运行输出节选ARGMAX_CLASS_IDS762,762,762,762,762,762,762,762 PREDICTED_CLASS762 INPUT_DEVICEnpu:0 CPU_FALLBACKfalse EXIT_CODE08 步的 s1 分类全部落在码本索引 762——对确定性合成输入而言这种稳定输出正是可复现性的体现而FORECAST的 8×6 连续数值由 NPU 前向现场产生并逐字记录在日志中。关键文件导读去哪里找什么文件作用README.md交付说明模型简介、固定版本、分步推理、测试结果全记录inference.pyNPU 推理入口设备断言 真实语义输出标记kronos_common.py确定性输入构建、本地权重加载、贪心解码核心model/config.json模型结构配置层数、维度、码本位数model/model.safetensorsKronos-mini 权重快照SHA-256 校验通过model/offline_dependencies.json模型/Tokenizer/源码三个仓库的固定版本快照requirements.txt21 个精确 pin 的运行时依赖闭包整个模型适配过程依赖解析、架构分析、精度对比、性能测试都有完整的工作流记录可查总结3 句话读懂 Kronos-mini K 线即语言专用 tokenizer 把连续 K 线离散成分层 tokens1 大势 s2 细节连续预测变成离散生成decoder-only Transformer 自回归读句子4 层 410 万参数的小模型两级解码头逐根预测下一根 K 线的 token 类别纯 PyTorch 算子 贪心解码在昇腾 NPU 上零改动运行且结果与 CPU 逐位可复现——既轻量又可信。想亲手验证在昇腾环境按README.md的“分步推理”一节操作运行python3 inference.py几十毫秒内就能看到属于你的FORECAST输出。【免费下载链接】kronos-mini-npu可直接在华为昇腾 NPU 上运行用于金融 K 线序列的预测与分类。该项目基于 Kronos-mini 模型提供完整的 NPU 推理流程支持确定性输入与结果校验并附带性能测试与精度对比。项目地址: https://ai.gitcode.com/atlasleong/kronos-mini-npu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表