Windows 部署 Kronos 金融 K 线基础模型环境配置指南
在 Windows 系统下部署清华大学开源的 Kronos 金融 K 线基础模型的完整流程。内容包括使用多版本 Python 管理方案准备环境、克隆项目仓库、配置虚拟环境及依赖、验证 PyTorch CUDA 加速、准备测试数据集,以及启动 Kronos WebUI 进行模型加载与预测推理。通过该指南,用户可完成从环境搭建到量化策略测试的基础工作。

在 Windows 系统下部署清华大学开源的 Kronos 金融 K 线基础模型的完整流程。内容包括使用多版本 Python 管理方案准备环境、克隆项目仓库、配置虚拟环境及依赖、验证 PyTorch CUDA 加速、准备测试数据集,以及启动 Kronos WebUI 进行模型加载与预测推理。通过该指南,用户可完成从环境搭建到量化策略测试的基础工作。

Kronos 是一个针对金融 K 线序列的开源基础模型项目,专为金融市场'语言'设计。以下是该仓库的主要信息:
Kronos 是首个针对金融烛台图(K 线)的开源基础模型,训练数据来自超过 45 个全球交易所。它采用两阶段框架:
项目提供了一系列不同规模的预训练模型,均可从 Hugging Face Hub 获取:
| 模型 | 分词器 | 上下文长度 | 参数 | 开源状态 |
|---|---|---|---|---|
| Kronos-mini | Kronos-Tokenizer-2k | 2048 | 4.1M | ✅ |
| Kronos-small | Kronos-Tokenizer-base | 512 | 24.7M | ✅ |
| Kronos-base | Kronos-Tokenizer-base | 512 | 102.3M | ✅ |
| Kronos-large | Kronos-Tokenizer-base | 512 | 499.2M | ❌ |
推荐使用多版本 Python 管理方案,确保环境路径可控、可迁移、可复现。示例路径结构如下:
D:\ └── A\ # Anaconda 安装根目录
└── envs\py310\ # Conda 虚拟环境:Python 3.10
└── python.exe # 解释器路径
此路径将作为 PyCharm 和命令行的基础解释器。
shiyu-coder/Kronos:Kronos:金融市场语言的基础模型
https://github.com/shiyu-coder/Kronos.gitF:\PythonProjects\Kronos在 GitHub Desktop 右侧点击 Open in external editor,项目将自动在 PyCharm 打开。
PyCharm 会检测到 requirements.txt,提示创建虚拟环境。确认以下配置:
F:\PythonProjects\Kronos\.venvD:\A\envs\py310\python.exerequirements.txt点击 OK,PyCharm 会自动:
.venv 虚拟环境创建完成后,PyCharm 底部状态栏应显示:
Python 3.10 (.venv)
requirements.txtalembic==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== debugpy== decorator== defusedxml== dill== dnspython== docker== docstring_parser== docutils== einops== email-validator== exceptiongroup== executing== fastapi== fastjsonschema== fastmcp== filelock== fire== Flask== flask-cors== fonttools== fqdn== fsspec== gitdb== GitPython== google-auth== graphene== graphql-core== graphql-relay== greenlet== gym== gym-notices== h11== hf-xet== httpcore== httpx== httpx-sse== huggingface-hub== idna== importlib_metadata== ipykernel== ipython== ipywidgets== isodate== isoduration== itsdangerous== jedi== Jinja2== joblib== json5== jsonpointer== jsonschema== jsonschema-path== jsonschema-specifications== jupyter== jupyter-console== jupyter-events== jupyter-lsp== jupyter_client== jupyter_core== jupyter_server== jupyter_server_terminals== jupyterlab== jupyterlab_pygments== jupyterlab_server== jupyterlab_widgets== kiwisolver== lark== lazy-object-proxy== lightgbm== loguru== Mako== markdown-it-py== MarkupSafe== matplotlib== matplotlib-== mcp== mdurl== mistune== mlflow== mlflow-skinny== mlflow-tracing== more-itertools== mpmath== narwhals== nbclient== nbconvert== nbformat== nest-asyncio== networkx== notebook== notebook_shim== numpy== openapi-core== openapi-pydantic== openapi-schema-validator== openapi-spec-validator== opentelemetry-api== opentelemetry-proto== opentelemetry-sdk== opentelemetry-semantic-conventions==b0 osqp== overrides== packaging== pandas== pandocfilters== parse== parso== pathable== pillow== platformdirs== plotly== prometheus_client== prompt_toolkit== protobuf== psutil== pure_eval== pyarrow== pyasn1== pyasn1_modules== pycparser== pydantic== pydantic-settings== pydantic_core== Pygments== pymongo== pyparsing== pyperclip== pyqlib== python-dateutil==.post0 python-dotenv== python-json-logger== python-multipart== python-redis-lock== pytz== pywin32== pywinpty== PyYAML== pyzmq== redis== referencing== requests== rfc3339-validator== rfc3986-validator== rfc3987-syntax== rich== rich-rst== rpds-py== rsa== ruamel.yaml== ruamel.yaml.clib== safetensors== scikit-learn== scipy== scs== Send2Trash== six== smmap== sniffio== soupsieve== SQLAlchemy== sqlparse== sse-starlette== stack-data== starlette== sympy== termcolor== terminado== threadpoolctl== tinycss2== tomli== torch==+cu129 torchvision==+cu129 tornado== tqdm== traitlets== types-python-dateutil== typing-inspection== typing_extensions== tzdata== uri-== urllib3== uvicorn== waitress== wcwidth== webcolors== webencodings== websocket-client== Werkzeug== widgetsnbextension== win32_setctime== zipp==
pip install -r requirements.txt
在 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:0CUDA 可用:True如果 CUDA 验证失败,执行以下操作重新安装:
pip uninstall torch torchvision torchaudio -y
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu129
再重新运行上述验证脚本。
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 格式模板 准备数据)
在项目根目录执行:
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
浏览器会自动打开控制面板,或手动访问:
警告信息为:
'WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.'
其含义是:当前启动的是开发环境服务器,不建议在正式的生产环境中使用。提示用户应改用专门的生产级 WSGI 服务器(如 Gunicorn、uWSGI 等)来部署应用。
这是因为 Flask 自带的开发服务器主要用于开发和调试阶段,存在性能较低、安全性不足、不支持高并发等问题,无法满足生产环境中对稳定性、安全性和性能的要求。
在浏览器界面依次操作:
Kronos-base (102.3M)CUDA (NVIDIA GPU)data/ 目录选择 K-line 数据文件如果模型和设备加载成功,终端应持续打印请求日志,说明 WebUI 工作正常。
通过以上步骤,你已完成:
.venv 环境创建现在你的 Kronos 环境已支持 GPU 加速推理,可以开始量化研究与策略测试。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online