- 人工智能
- 基础模型
- 金融科技
【免费下载链接】kronos-tokenizer-base-npu
用户可在昇腾 NPU 上直接运行 Kronos-Tokenizer-base 金融 K 线时间序列模型,将 OHLCV 等连续数据转换为离散 Token ID,支持离线推理、CPU/NPU 一致性验证与性能基准测试,便于快速集成到量化或时序分析流程。项目基于 MIT 协议迁移并本地化模型代码,提供完整测试用例和实测性能数据。
Kronos-Tokenizer-base 是金融 K 线时间序列基础模型 Kronos 家族中的 Tokenizer 组件。本指南演示如何在昇腾 NPU 上以完全离线的方式运行它,把 OHLCV(开盘/最高/最低/收盘/成交量/成交额)连续数据转换为逐位置的离散 Token ID,并快速集成到量化回测与因子工程中。本项目已将模型代码与权重完整本地化(MIT 协议),支持 CPU/NPU 一致性验证与性能基准测试,实测单次前向中位耗时约 15.3 ms。
为什么量化策略需要离散 Token ID?
K 线数据天然是连续的浮点序列,直接用于策略存在几个痛点:
- 难以检索与对比:无法方便地问"历史上有哪些 K 线片段和现在最像?"
- 难以压缩存储:连续数值占用空间大,离散化后每个时间步只存一个整数。
- 难以聚类与分桶:离散 ID 可直接作为分类、聚类、LSH 相似检索的键。
Kronos-Tokenizer-base 采用编码器-解码器(Encoder-Decoder)+ 二值球面量化(BSQ)结构:
- 输入:连续多元 K 线张量
[batch, seq_len, 6],6 个维度对应 Open / High / Low / Close / Volume / Amount; - 输出:
z_indices(class_ids):逐位置离散 Token ID,形状[batch, seq_len],int64;quantized(position_logits):逐位置连续量化表示,形状[batch, seq_len, 20](s1_bits + s2_bits = 10 + 10,最多约 100 万个取值);z_pre / z:两组重建序列,形状[batch, seq_len, 6],可用于重建质量校验。
模型超参定义在 model/config.json 中:d_in=6、d_model=256、4 层编码器 + 4 层解码器,核心类为 kronos/model/kronos.py 中的KronosTokenizer。
环境准备:一键跑通昇腾 NPU 离线推理
| 项目 | 要求 |
|---|---|
| 硬件 | Ascend 910 系列(至少 1 卡) |
| 系统 | openEuler / Ubuntu / KylinOS |
| CANN | ≥ 8.0(推荐 8.2+) |
| Python | 3.8–3.11(推荐 3.10/3.11) |
| PyTorch / torch_npu | 由昇腾镜像提供(参考版本 2.9.0),与 CANN 匹配 |
安装步骤如下:
- 配置华为镜像源并安装依赖(requirements.txt 已精确固定版本):
export PIP_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple/ pip install -r requirements.txt- 加载昇腾环境与 CANN:
source /usr/local/Ascend/ascend-toolkit/set_env.sh export ASCEND_RT_VISIBLE_DEVICES=0- 运行推理入口(全程离线加载本地权重,不访问网络):
python3 inference.py入口脚本 inference.py 完成:加载本地 Tokenizer 权重(local_files_only=True)→ 移动到npu:0→ 前向计算 → 断言输入/输出驻留 NPU → 打印设备标记与真实语义输出。
读懂推理输出:验收你的 NPU 运行
一次成功运行的关键标记如下(取自真实执行记录,见 README.md):
| 标记 | 含义 | 期望值 |
|---|---|---|
INPUT_DEVICE / MODEL_DEVICE / OUTPUT_DEVICE | 输入、模型、输出所在设备 | 均为npu:0 |
CPU_FALLBACK | 是否发生 CPU 回退 | false |
INPUT_SEQUENCE= | 输入首时间步 6 个特征值 | 真实数值 |
PREDICTED_TOKEN_ID= | 逐位置离散 Token ID(共 32 个) | 模型真实输出 |
class_ids_shape | Token ID 形状 | (1, 32) |
两点提醒:进程退出时可能出现path string is NULL的昇腾运行时 teardown 诊断,属正常现象;昇腾 NPU 不支持 fp64,本模型全部以 fp32 运行。
集成代码:把 Token ID 变成策略因子
在量化流程中,Token ID 有三种常见用法:作为离散化特征喂入机器学习模型、作为相似 K 线片段的检索键(历史形态匹配)、或按 ID 分桶构建形态因子。核心集成代码如下(摘自 inference.py 的简化版):
tokenizer = KronosTokenizer.from_pretrained("model", local_files_only=True) tokenizer.to("npu:0").eval() with torch.no_grad(): (z_pre, z), bsq_loss, quantized, z_indices = tokenizer(x) reconstruction = z.detach() # [1, 32, 6] 重建 K 线序列 token_ids = z_indices[0] # [32] 逐位置离散 Token IDbsq_loss是 BSQ 量化损失,可用于监控离散化质量;quantized(20 维二值表示)适合做近似最近邻检索,token_ids则直接落库为整型序列因子。
性能与一致性:实测数据一览
| 指标 | 实测 | 阈值/说明 |
|---|---|---|
max_abs_error(CPU vs NPU) | 0.0 | ≤ 0.001 |
discrete_agreement | 1.0(10/10 样本一致) | ≥ 0.99 |
| 单次前向中位耗时 | 15.27 ms | warmup=3,repeat=5,同步计时 |
| p90 / 标准差 | 15.47 ms / 0.10 ms | 波动极小,适合流式批处理 |
10 个样本共 6400 个position_logits元素经独立复算与 CPU 基线完全一致,说明 NPU 推理结果可直接替代 CPU 链路用于回测。
常见问题速查
- 能否在 CPU 上先验证?可以。CPU 与 NPU 结果零误差对齐,建议先在 CPU 调试逻辑,再切 NPU 压测。
- 输出为什么没有文本/预测?这是 Tokenizer 组件,语义输出就是逐位置离散 Token ID,不含文本生成或价格预测任务。
- 权重多大?权重文件 model/model.safetensors 约 15.8 MB(96 个张量),加载与部署成本很低。
- 离线环境能跑吗?可以。推理全程
local_files_only=True,不访问网络、不下载权重。
结语
Kronos-Tokenizer-base 为量化团队提供了一条低成本的"K 线离散化"通道:一条python3 inference.py命令即可验证 NPU 链路,一次前向仅约 15 ms,且 CPU/NPU 数值完全一致。把离散 Token ID 接入现有特征工程与回测框架,就能以极小的改动享受 NPU 算力红利。
- 人工智能
- 基础模型
- 金融科技
【免费下载链接】kronos-tokenizer-base-npu
用户可在昇腾 NPU 上直接运行 Kronos-Tokenizer-base 金融 K 线时间序列模型,将 OHLCV 等连续数据转换为离散 Token ID,支持离线推理、CPU/NPU 一致性验证与性能基准测试,便于快速集成到量化或时序分析流程。项目基于 MIT 协议迁移并本地化模型代码,提供完整测试用例和实测性能数据。
相关推荐
Kronos-Tokenizer-base 原理解析:BSQ 二值球面量化如何把 OHLCV 压缩成离散 Token
Kronos Tokenizer base 原理解析:BSQ 二值球面量化如何把 OHLCV 压缩成离散 Token Kronos Tokenizer base
人工智能基础模型金融科技Kronos-Tokenizer-base快速入门:一文看懂金融K线Token化的昇腾NPU推理方案
Kronos Tokenizer base快速入门:一文看懂金融K线Token化的昇腾NPU推理方案 如果你想在 昇腾 NPU 上运行金融 K 线时间序列模型,
人工智能基础模型金融科技Kronos-Tokenizer-base输入输出详解:从[batch,32,6]张量到逐位置Token ID的完整映射指南
Kronos Tokenizer base输入输出详解:从 batch,32,6 张量到逐位置Token ID的完整映射指南 本文带你快速搞懂 Kronos T
人工智能基础模型金融科技
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考