ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

3层MLP+GELU+Dropout:ml-quant-trading-synthetic-mlp模型架构与config.json逐项拆解

3层MLP+GELU+Dropout:ml-quant-trading-synthetic-mlp模型架构与config.json逐项拆解

【免费下载链接】ml-quant-trading-synthetic-mlp

项目地址:https://ai.gitcode.com/hf_mirrors/dddyym/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.json213 个输入因子的精确顺序
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 个字段,逐一解释:

字段值含义
architectureMLPRegressor网络类型,来自mlquant.models.nets模块
datasetdddyym/ml-quant-trading-synthetic训练所用合成数据集 ID
in_dim213输入特征维度,必须与 feature_names.json 长度一致
hidden64隐层宽度(每层神经元数)
dropout0.1Dropout 概率,即丢弃 10% 神经元
output_dim1单值回归输出(收益得分)
source_commitfaababb...训练该模型时的源码 commit,保证可追溯

💡 注意source_commit字段:这是可复现研究的关键实践——把权重、配置、源码版本三者绑定,任何人拿到同一 commit 都能复现同一模型。

213个输入特征从哪里来?

feature_names.json 是一个 213 项的字符串数组,定义了因子喂给模型的精确顺序——顺序错一个,模型输出就全错了。按前缀拆分,特征可归为 10 组:

特征前缀数量说明
old50存量因子(编号 027–076)
add30增量因子
original28原始基础因子
better28改进版因子
stock22个股类因子
best21优选因子
extra14扩展因子
alpha9类 Alpha 系列因子(含alpha_001、alpha_101等)
cs_rank6横截面排名因子(收盘价/开盘价/最高价/最低价/均价/成交额)
change5变动类因子

其中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:合成价格的波动率与 Beta
  • train.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_hub
model = 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_vol17.17%年化波动率
sharpe-0.457夏普比率为负(合成数据本无"alpha")
max_dd28.28%最大回撤
turnover63.2%换手率,成本拖累显著

⚠️ 这些数字是烟测指标,用来验证"因子 → 模型 → 回测"流程能跑通,绝非真实市场表现的证据。metrics.json 中的disclaimer字段也写明了这一点。

总结:新手能学到什么?

ml-quant-trading-synthetic-mlp虽然是个小模型,却是一份难得的"麻雀虽小五脏俱全"的完整模型交付样本:

  1. 架构可读:3 层 MLP + GELU + Dropout,7 个字段讲清全部超参数
  2. 顺序即契约:in_dim: 213与 feature_names.json 严格对应
  3. 可复现三件套:固定seed: 42+source_commit+ SHA-256 校验(见 artifact_manifest.json)
  4. 诚实的边界声明:README 与 metrics 都明确这是合成研究产物,不是实盘信号

如果你是第一次接触 PyTorch 量化模型,把它当作"解剖标本"逐项读一遍,就能建立对模型 checkpoint 交付结构的基本认知。

【免费下载链接】ml-quant-trading-synthetic-mlp

项目地址:https://ai.gitcode.com/hf_mirrors/dddyym/ml-quant-trading-synthetic-mlp
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进