【免费下载链接】ml-quant-trading-synthetic-mlp
想快速看懂一个 PyTorch 量化模型的完整结构吗?ml-quant-trading-synthetic-mlp是一个极佳的入门样本:一个3层 MLP + GELU 激活 + Dropout 正则化的MLPRegressor模型 checkpoint,仅用 213 个因子值预测下一期收益率,全部文件公开可查。本文将逐项拆解 config.json 的每个字段,带你理解这个量化交易模型从架构、特征到训练配置的完整脉络。
这个仓库里有什么?
这是一个确定性的合成数据烟测(smoke-test)模型产物,目的是让安装与推理路径完全可复现,而非真实市场模型。仓库只有 7 个文件,各司其职:
| 文件 | 作用 |
|---|---|
| config.json | 模型架构超参数(输入维度、隐层宽度、dropout) |
| pytorch_model.bin | 训练好的 PyTorch 权重 |
| feature_names.json | 213 个输入因子的精确顺序 |
| source_config.yaml | 数据生成器与训练超参数 |
| metrics.json | 合成回测的绩效指标 |
| artifact_manifest.json | 模型产物清单与 SHA-256 校验值 |
| README.md | 安装、加载与使用说明 |
📌 关键提醒:README 明确说明,该 checkpoint 只在确定性合成数据上训练,不是投资信号。
模型架构:3层 MLP + GELU + Dropout 是怎么搭的?
整个网络结构非常紧凑,由 config.json 一行行定义:
- 输入层:
in_dim: 213,即 213 个因子值 - 隐层:
hidden: 64,3 层全连接,每层 64 个神经元 - 激活函数:GELU(比 ReLU 更平滑,梯度更稳定)
- 正则化:
dropout: 0.1,训练时随机丢弃 10% 神经元防过拟合 - 输出层:
output_dim: 1,输出每个股票-日期一个合成下期收益得分
参数量只有约2 万出头(213×64 + 64×64 + 64×1 ≈ 1.5万带偏置),在笔记本 CPU 上端到端跑完不足 1 分钟,这就是"small 配置"的设计初衷。
config.json 逐项拆解
打开 config.json,只有 7 个字段,逐一解释:
| 字段 | 值 | 含义 |
|---|---|---|
architecture | MLPRegressor | 网络类型,来自mlquant.models.nets模块 |
dataset | dddyym/ml-quant-trading-synthetic | 训练所用合成数据集 ID |
in_dim | 213 | 输入特征维度,必须与 feature_names.json 长度一致 |
hidden | 64 | 隐层宽度(每层神经元数) |
dropout | 0.1 | Dropout 概率,即丢弃 10% 神经元 |
output_dim | 1 | 单值回归输出(收益得分) |
source_commit | faababb... | 训练该模型时的源码 commit,保证可追溯 |
💡 注意source_commit字段:这是可复现研究的关键实践——把权重、配置、源码版本三者绑定,任何人拿到同一 commit 都能复现同一模型。
213个输入特征从哪里来?
feature_names.json 是一个 213 项的字符串数组,定义了因子喂给模型的精确顺序——顺序错一个,模型输出就全错了。按前缀拆分,特征可归为 10 组:
| 特征前缀 | 数量 | 说明 |
|---|---|---|
old | 50 | 存量因子(编号 027–076) |
add | 30 | 增量因子 |
original | 28 | 原始基础因子 |
better | 28 | 改进版因子 |
stock | 22 | 个股类因子 |
best | 21 | 优选因子 |
extra | 14 | 扩展因子 |
alpha | 9 | 类 Alpha 系列因子(含alpha_001、alpha_101等) |
cs_rank | 6 | 横截面排名因子(收盘价/开盘价/最高价/最低价/均价/成交额) |
change | 5 | 变动类因子 |
其中cs_rank_close、cs_rank_amount这类命名很贴近真实量化场景:先对全市场股票做横截面排序(cross-section rank),再作为因子输入,可以避免量纲差异带来的偏差。
训练配置:source_config.yaml 关键参数
source_config.yaml 定义了合成数据生成与训练的全部设置,几个核心参数:
seed: 42:固定随机种子,保证结果可复现synthetic.n_stocks: 200、n_dates: 500:200 只股票 × 500 个交易日annual_vol: 0.30、market_beta: 0.6:合成价格的波动率与 Betatrain.epochs: 8、batch_size: 1024、lr: 1.0e-3:小模型短训练portfolio.solver: SCS、weight_cap: 0.05:回测阶段用 SCS 求解器组合优化,单票仓位上限 5%
如何加载这个模型?
安装官方包后(PyPI 上名为mlquantx),加载逻辑非常简单:
python -m pip install --upgrade mlquantx huggingface_hubmodel = MLPRegressor(in_dim=213, hidden=64, dropout=0.1) model.load_state_dict(torch.load("pytorch_model.bin", map_location="cpu", weights_only=True)) model.eval()更完整的加载代码见 README.md,它会通过hf_hub_download拉取 config.json 与 pytorch_model.bin 后再构建模型。
metrics.json 的回测指标在说什么?
metrics.json 记录了合成回测(costs_bps: 5.0,即 5 个基点交易成本)的结果:
| 指标 | 值 | 通俗解读 |
|---|---|---|
ann_return | -8.89% | 合成场景下年化收益为负 |
ann_vol | 17.17% | 年化波动率 |
sharpe | -0.457 | 夏普比率为负(合成数据本无"alpha") |
max_dd | 28.28% | 最大回撤 |
turnover | 63.2% | 换手率,成本拖累显著 |
⚠️ 这些数字是烟测指标,用来验证"因子 → 模型 → 回测"流程能跑通,绝非真实市场表现的证据。metrics.json 中的disclaimer字段也写明了这一点。
总结:新手能学到什么?
ml-quant-trading-synthetic-mlp虽然是个小模型,却是一份难得的"麻雀虽小五脏俱全"的完整模型交付样本:
- 架构可读:3 层 MLP + GELU + Dropout,7 个字段讲清全部超参数
- 顺序即契约:
in_dim: 213与 feature_names.json 严格对应 - 可复现三件套:固定
seed: 42+source_commit+ SHA-256 校验(见 artifact_manifest.json) - 诚实的边界声明:README 与 metrics 都明确这是合成研究产物,不是实盘信号
如果你是第一次接触 PyTorch 量化模型,把它当作"解剖标本"逐项读一遍,就能建立对模型 checkpoint 交付结构的基本认知。
【免费下载链接】ml-quant-trading-synthetic-mlp
相关推荐
ML量化研究新宠ml-quant-trading-synthetic-mlp:可复现合成因子MLP模型完全指南
ML量化研究新宠ml quant trading synthetic mlp:可复现合成因子MLP模型完全指南 📌 ml quant trading synt
如何加载并推理ml-quant-trading-synthetic-mlp?Hugging Face量化模型Checkpoint完整实战教程
如何加载并推理ml quant trading synthetic mlp?Hugging Face量化模型Checkpoint完整实战教程 想在自己的电脑上跑
Seed 42与SHA-256校验:ml-quant-trading-synthetic-mlp端到端可复现性机制深度剖析
Seed 42与SHA 256校验:ml quant trading synthetic mlp端到端可复现性机制深度剖析 ml quant trading s
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考