Windows 系统部署 清华团队开源的 Kronos 金融 K 线基础模型——基于 EPGF 架构

Windows 系统部署 清华团队开源的 Kronos 金融 K 线基础模型——基于 EPGF 架构
【EPGF 白皮书】路径治理驱动的多版本 Python 架构—— Windows 环境治理与 AI 教学开发体系
【00】EPGF 架构搭建教程之 总揽篇
【收藏级】Windows AI 本地开发「完全体」环境搭建清单

Windows 系统部署 Kronos 金融 K 线基础模型 ——基于 EPGF 架构


Kronos 仓库介绍

Kronos 是一个针对金融 K 线序列的开源基础模型项目,专为金融市场 "语言" 设计。以下是该仓库的主要信息:

项目概述

Kronos 是首个针对金融烛台图(K 线)的开源基础模型,训练数据来自超过 45 个全球交易所。它采用两阶段框架:

  1. 专用分词器将连续的多维 K 线数据(OHLCV)量化为分层离散令牌
  2. 大型自回归 Transformer 在这些令牌上进行预训练,可作为多种量化任务的统一模型

模型家族

项目提供了一系列不同规模的预训练模型,均可从 Hugging Face Hub 获取:

模型分词器上下文长度参数开源状态
Kronos-miniKronos-Tokenizer-2k20484.1M
Kronos-smallKronos-Tokenizer-base51224.7M
Kronos-baseKronos-Tokenizer-base512102.3M
Kronos-largeKronos-Tokenizer-base512499.2M

主要功能

  • 金融市场 K 线序列预测
  • 提供 Web UI 界面可视化预测结果
  • 支持在自定义数据上进行微调
  • 包含完整的模型训练、预测和回测流程

 


一、EPGF 架构与 Python 环境准备

推荐使用 EPGF 架构下的多版本 Python 管理方案,确保环境路径可控、可迁移、可复现。示例路径结构如下:

D:\ └── A\ # Anaconda 安装根目录 └── envs\py310\ # Conda 虚拟环境:Python 3.10 └── python.exe # 解释器路径 

此路径将作为 PyCharm 和命令行的基础解释器。



 

 

 


二、克隆 Kronos 仓库

shiyu-coder/Kronos:Kronos:金融市场语言的基础模型

步骤 1:使用 GitHub Desktop 克隆项目

  1. 启动 GitHub Desktop
  2. 点击 Clone a repository → 选择 URL
  3. 输入:
    • Repository URLhttps://github.com/shiyu-coder/Kronos.git
    • Local PathF:\PythonProjects\Kronos
  4. 点击 Clone 开始克隆,等待完成。

步骤 2:在 PyCharm 打开项目

在 GitHub Desktop 右侧点击 Open in external editor,项目将自动在 PyCharm 打开。

 


 

 

 


三、创建本地虚拟环境

PyCharm 会检测到 requirements.txt,提示创建虚拟环境。
确认以下配置:

  • 位置F:\PythonProjects\Kronos\.venv
  • 基础解释器:选择 D:\A\envs\py310\python.exe
  • 依赖文件requirements.txt

点击 OK,PyCharm 会自动:

  • 创建 .venv 虚拟环境
  • 安装初始依赖

创建完成后,PyCharm 底部状态栏应显示:
Python 3.10 (.venv)


 

 

 


四、替换 requirements.txt 并重新安装依赖

  • 1. 打开项目根目录的 requirements.txt
  • 2. 替换内容为以下版本(包含 CUDA 支持及 QLib 量化、 WebUI 等所需库):
alembic==1.16.5 annotated-types==0.7.0 anyio==4.10.0 argon2-cffi==25.1.0 argon2-cffi-bindings==25.1.0 arrow==1.3.0 asttokens==3.0.0 async-lru==2.0.5 async-timeout==5.0.1 attrs==25.3.0 Authlib==1.6.4 babel==2.17.0 beautifulsoup4==4.13.5 bleach==6.2.0 blinker==1.9.0 cachetools==5.5.2 certifi==2025.8.3 cffi==2.0.0 charset-normalizer==3.4.3 clarabel==0.11.1 click==8.3.0 cloudpickle==3.1.1 colorama==0.4.6 comm==0.2.3 contourpy==1.3.2 cryptography==45.0.7 cvxpy==1.7.2 cycler==0.12.1 cyclopts==3.24.0 databricks-sdk==0.65.0 debugpy==1.8.17 decorator==5.2.1 defusedxml==0.7.1 dill==0.4.0 dnspython==2.8.0 docker==7.1.0 docstring_parser==0.17.0 docutils==0.22.2 einops==0.8.1 email-validator==2.3.0 exceptiongroup==1.3.0 executing==2.2.1 fastapi==0.117.1 fastjsonschema==2.21.2 fastmcp==2.12.3 filelock==3.19.1 fire==0.7.1 Flask==3.1.2 flask-cors==6.0.1 fonttools==4.60.0 fqdn==1.5.1 fsspec==2025.9.0 gitdb==4.0.12 GitPython==3.1.45 google-auth==2.40.3 graphene==3.4.3 graphql-core==3.2.6 graphql-relay==3.2.0 greenlet==3.2.4 gym==0.26.2 gym-notices==0.1.0 h11==0.16.0 hf-xet==1.1.10 httpcore==1.0.9 httpx==0.28.1 httpx-sse==0.4.1 huggingface-hub==0.33.1 idna==3.10 importlib_metadata==8.7.0 ipykernel==6.30.1 ipython==8.37.0 ipywidgets==8.1.7 isodate==0.7.2 isoduration==20.11.0 itsdangerous==2.2.0 jedi==0.19.2 Jinja2==3.1.6 joblib==1.5.2 json5==0.12.1 jsonpointer==3.0.0 jsonschema==4.25.1 jsonschema-path==0.3.4 jsonschema-specifications==2025.9.1 jupyter==1.1.1 jupyter-console==6.6.3 jupyter-events==0.12.0 jupyter-lsp==2.3.0 jupyter_client==8.6.3 jupyter_core==5.8.1 jupyter_server==2.17.0 jupyter_server_terminals==0.5.3 jupyterlab==4.4.7 jupyterlab_pygments==0.3.0 jupyterlab_server==2.27.3 jupyterlab_widgets==3.0.15 kiwisolver==1.4.9 lark==1.2.2 lazy-object-proxy==1.12.0 lightgbm==4.6.0 loguru==0.7.3 Mako==1.3.10 markdown-it-py==4.0.0 MarkupSafe==3.0.2 matplotlib==3.9.3 matplotlib-inline==0.1.7 mcp==1.14.1 mdurl==0.1.2 mistune==3.1.4 mlflow==3.4.0 mlflow-skinny==3.4.0 mlflow-tracing==3.4.0 more-itertools==10.8.0 mpmath==1.3.0 narwhals==2.5.0 nbclient==0.10.2 nbconvert==7.16.6 nbformat==5.10.4 nest-asyncio==1.6.0 networkx==3.4.2 notebook==7.4.5 notebook_shim==0.2.4 numpy==2.2.6 openapi-core==0.19.5 openapi-pydantic==0.5.1 openapi-schema-validator==0.6.3 openapi-spec-validator==0.7.2 opentelemetry-api==1.37.0 opentelemetry-proto==1.37.0 opentelemetry-sdk==1.37.0 opentelemetry-semantic-conventions==0.58b0 osqp==1.0.4 overrides==7.7.0 packaging==25.0 pandas==2.2.2 pandocfilters==1.5.1 parse==1.20.2 parso==0.8.5 pathable==0.4.4 pillow==11.3.0 platformdirs==4.4.0 plotly==6.3.0 prometheus_client==0.23.1 prompt_toolkit==3.0.52 protobuf==6.32.1 psutil==7.1.0 pure_eval==0.2.3 pyarrow==21.0.0 pyasn1==0.6.1 pyasn1_modules==0.4.2 pycparser==2.23 pydantic==2.11.9 pydantic-settings==2.10.1 pydantic_core==2.33.2 Pygments==2.19.2 pymongo==4.15.1 pyparsing==3.2.4 pyperclip==1.10.0 pyqlib==0.9.7 python-dateutil==2.9.0.post0 python-dotenv==1.1.1 python-json-logger==3.3.0 python-multipart==0.0.20 python-redis-lock==4.0.0 pytz==2025.2 pywin32==311 pywinpty==3.0.0 PyYAML==6.0.2 pyzmq==27.1.0 redis==6.4.0 referencing==0.36.2 requests==2.32.5 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rfc3987-syntax==1.1.0 rich==14.1.0 rich-rst==1.3.1 rpds-py==0.27.1 rsa==4.9.1 ruamel.yaml==0.18.15 ruamel.yaml.clib==0.2.12 safetensors==0.6.2 scikit-learn==1.7.2 scipy==1.15.3 scs==3.2.8 Send2Trash==1.8.3 six==1.17.0 smmap==5.0.2 sniffio==1.3.1 soupsieve==2.8 SQLAlchemy==2.0.43 sqlparse==0.5.3 sse-starlette==3.0.2 stack-data==0.6.3 starlette==0.48.0 sympy==1.14.0 termcolor==3.1.0 terminado==0.18.1 threadpoolctl==3.6.0 tinycss2==1.4.0 tomli==2.2.1 torch==2.8.0+cu129 torchvision==0.23.0+cu129 tornado==6.5.2 tqdm==4.67.1 traitlets==5.14.3 types-python-dateutil==2.9.0.20250822 typing-inspection==0.4.1 typing_extensions==4.15.0 tzdata==2025.2 uri-template==1.3.0 urllib3==2.5.0 uvicorn==0.36.0 waitress==3.0.2 wcwidth==0.2.13 webcolors==24.11.1 webencodings==0.5.1 websocket-client==1.8.0 Werkzeug==3.1.1 widgetsnbextension==4.0.14 win32_setctime==1.2.0 zipp==3.23.0 
  • 3. 保存文件,重新安装依赖:
pip install -r requirements.txt 

 

 

 


五、验证 PyTorch CUDA 加速

在 PyCharm 终端执行以下脚本,验证 CUDA 环境是否生效:

import torch print("PyTorch 版本:", torch.__version__) device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") print("设备:", device) print("CUDA 可用:", torch.cuda.is_available()) print("cuDNN 已启用:", torch.backends.cudnn.enabled) print("支持的 CUDA 版本:", torch.version.cuda) print("cuDNN 版本:", torch.backends.cudnn.version()) x = torch.rand(5, 3).to(device) y = torch.rand(5, 3).to(device) z = x + y print("张量 z 的值:") print(z) 

✅ 期望输出:

  • 设备:cuda:0
  • CUDA 可用:True
  • 张量计算无报错

如果 CUDA 验证失败,执行以下操作重新安装:

PyTorch 开始使用
pip uninstall torch torchvision torchaudio -y pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu129 

再重新运行上述验证脚本。


 

 

 


六、准备测试的数据集

(一)按 README.md 准备数据集

python finetune/qlib_data_preprocess.py

输出示例:

Microsoft Windows [Version 10.0.27950.1]
(c) Microsoft Corporation. All rights reserved.

(.venv) F:\PythonProjects\Kronos>python finetune/qlib_data_preprocess.py
Initializing Qlib...
[54444:MainThread](2025-09-22 12:46:41,383) INFO - qlib.Initialization - [config.py:452] - default_conf: client.
[54444:MainThread](2025-09-22 12:46:42,728) INFO - qlib.Initialization - [__init__.py:75] - qlib successfully initialized based on client settings.
[54444:MainThread](2025-09-22 12:46:42,728) INFO - qlib.Initialization - [__init__.py:77] - data_path={'__DEFAULT_FREQ': WindowsPath('C:/Users/love/.qlib/qlib_data/cn_data')}
Loading and processing data from Qlib...
Processing Symbols: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 642/642 [00:02<00:00, 316.39it/s]
Splitting data into train, validation, and test sets...
Preparing Datasets: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 605/605 [00:00<00:00, 2184.41it/s]
Datasets prepared and saved successfully.

(.venv) F:\PythonProjects\Kronos>

 

(二)准备测试数据

将 examples/data/XSHG_5min_600977.csv 示例文件 复制到 data 文件夹下(或自行按 .csv 格式模板 准备数据)


 

 

 


七、启动 Kronos WebUI

在项目根目录执行:

python webui/app.py 

启动成功后输出示例:

Starting Kronos Web UI... Model availability: True Tip: You can load Kronos model through /api/load-model endpoint * Serving Flask app 'app' * Debug mode: on WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:7070 * Running on http://192.168.1.5:7070 Press CTRL+C to quit * Restarting with stat Starting Kronos Web UI... Model availability: True Tip: You can load Kronos model through /api/load-model endpoint * Debugger is active! * Debugger PIN: 267-370-062 

浏览器会自动打开控制面板,或手动访问:


http://localhost:7070
警告信息为:

“WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.”

其含义是:当前启动的是开发环境服务器,不建议在正式的生产环境中使用。提示用户应改用专门的生产级 WSGI 服务器(如 Gunicorn、uWSGI 等)来部署应用。

这是因为 Flask 自带的开发服务器主要用于开发和调试阶段,存在性能较低、安全性不足、不支持高并发等问题,无法满足生产环境中对稳定性、安全性和性能的要求。

 

 

 


八、WebUI 测试与模型加载

在浏览器界面依次操作:

  1. Select Model → 比如选择 Kronos-base (102.3M)
  2. Select Device → 选择 CUDA (NVIDIA GPU)
  3. 点击 Load Model,确认 CUDA 设备能成功加载模型
  4. Select Data File → 从 data/ 目录选择 K-line 数据文件
  5. 点击 Load Data 加载数据
  6. 下拉页面 点击 Start Prediction 进入推理测试

如果模型和设备加载成功,终端应持续打印请求日志,说明 WebUI 工作正常。


 

 

 


九、总结

通过以上步骤,你已完成:

  • ✅ 基于 EPGF 架构的 Conda + .venv 环境创建
  • ✅ requirements.txt 替换及依赖安装
  • ✅ PyTorch CUDA 环境验证
  • ✅ Kronos WebUI 启动与浏览器测试

现在你的 Kronos 环境已支持 GPU 加速推理,可以开始量化研究与策略测试。


 

Read more

Flutter 组件 php_serializer 适配鸿蒙 HarmonyOS 实战:异构数据兼容,构建跨语言协议解析与历史债务治理架构

Flutter 组件 php_serializer 适配鸿蒙 HarmonyOS 实战:异构数据兼容,构建跨语言协议解析与历史债务治理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 php_serializer 适配鸿蒙 HarmonyOS 实战:异构数据兼容,构建跨语言协议解析与历史债务治理架构 前言 在鸿蒙(OpenHarmony)生态迈向全场景数字化转型的背景下,许多企业级应用在接入鸿蒙终端时,往往需要面对存量的、基于 PHP 构建的重型后端遗产系统。这些系统常通过 PHP 特有的 serialize() 协议输出配置数据或持久化对象。在鸿蒙设备这类强调 AOT 静态强类型与高性能 JSON 解析的环境下,如果应用无法直接解析这种带有历史烙印的非标准序列化格式,由于由于前后端数据协议的断层,极易由于由于“协议无法互通”导致鸿蒙应用无法读取核心业务配置或陷入繁杂的中间件转发泥潭。 我们需要一种能够深度解析 PHP 序列化语法、支持嵌套对象恢复且具备纯 Dart 离线运作能力的协议转换方案。 php_serializer 为 Flutter 开发者引入了“跨时空协议桥接”

By Ne0inhk
Flutter 组件 substrate_bip39 的适配 鸿蒙Harmony 实战 - 驾驭区块链级助记词原语、实现鸿蒙端金融级 BIP39 安全私钥推导方案

Flutter 组件 substrate_bip39 的适配 鸿蒙Harmony 实战 - 驾驭区块链级助记词原语、实现鸿蒙端金融级 BIP39 安全私钥推导方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 substrate_bip39 的适配 鸿蒙Harmony 实战 - 驾驭区块链级助记词原语、实现鸿蒙端金融级 BIP39 安全私钥推导方案 前言 在数字化生存的今天,加密资产与个人隐私主权的保护已成为移动互联网的基石。当你尝试在鸿蒙(OpenHarmony)系统中构建一个极高安全等级的数字钱包,或是需要为一个去中心化的身份系统(DID)生成根密钥时,最核心的环节莫过于 BIP39 助记词(Mnemonic Phrases)的生成与校验。 substrate_bip39 是一套专为 Substrate 框架优化的 BIP39 实现。它不仅支持标准字典的多语言扩展,更针对 Ed25519 等现代加密曲线提供了极其稳健的后处理逻辑。 在鸿蒙系统这一扎根国产安全底座、强调算力自研的生态中,通过 substrate_bip39 构建出的密钥推导逻辑,不仅能完全对接国际主流区块链标准,

By Ne0inhk
Flutter for OpenHarmony:Flutter 三方库 forge2d 赋予鸿蒙应用真实的物理动态(基于 Box2D 的高性能物理引擎)

Flutter for OpenHarmony:Flutter 三方库 forge2d 赋予鸿蒙应用真实的物理动态(基于 Box2D 的高性能物理引擎)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 游戏开发或构建具有极致动画交互的应用时,传统的补间动画(Tween Animation)往往显得生硬平直。如果你想实现物体的碰撞、反弹、重力坠落或者是复杂的绳索摆动,你需要一套成熟的物理模型。 forge2d 是著名物理引擎 Box2D 的纯 Dart 移植版。它不仅高度优化了性能,且深度集成了 Flutter 的渲染循环,是鸿蒙平台上构建 2D 物理世界的基石。 一、核心物理概念解析 forge2d 模拟了一个虚拟的物理世界,包含刚体(Body)、形状(Shape)和夹具(Fixture)。 Collision World (物理世界: 重力, 时间步) Body A (刚体: 位置, 线速度)

By Ne0inhk
Flutter 第三方库 country_list 的鸿蒙适配之路 - 全球国家数据、旗帜 Emoji 与区号国际化展示实战

Flutter 第三方库 country_list 的鸿蒙适配之路 - 全球国家数据、旗帜 Emoji 与区号国际化展示实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 第三方库 country_list 的鸿蒙适配之路 - 全球国家数据、旗帜 Emoji 与区号国际化展示实战 前言 在全球化的今天,无论你的 App 是社交、电商还是金融,都绕不开“国家/地区选择”这一基础功能。无论是获取用户的国际区号,还是根据地理位置展示国家旗帜,都需要一套完整、准确且实时更新的数据集。 country_list 库是一个极简、高效的 Flutter 工具,它内置了 ISO 国家代码、电话前缀、甚至是符合 Unicode 标准的旗帜表情。 在 OpenHarmony 系统的生态建设中,国际化(i18n)是不可忽视的一环。本文将深入探讨如何将 country_

By Ne0inhk