@ Add L1/listwise/dstnbr expert trainers and drop standalone multiseed. Wire dig extras into stage2 –all and sync; keep stage1 via train_baseline only. @
# MambaGate HistX · Board49
时序图 100-candidate 重排(MRR)· Jittor 实现沃信2.0 · Educoder Jittor-7 赛道一 · 封榜第 49 · dig+RRF ≈ 1.3708
相对 board46:阶段一 avg20 不变;阶段二主交改为 dig+RRF(fuse_final)。
fuse_final
详细复现:docs/REPRO.md · 封榜锁定:docs/FINAL_RANK49.md · 超参:configs/
pip install -r requirements.txt
核心依赖:jittor>=1.3.8、numpy、pandas、tqdm、numba。
jittor>=1.3.8
官方比赛数据需自行从赛事平台获取(本仓库不提交原始数据集)。放到:
data/ ├── dataset1/train.csv ├── dataset1/test.csv ├── dataset2/train.csv └── dataset2/test.csv
数据根目录配置(任选其一):
--data_dir data
--data_dir <官方数据根>
BOARD46_DATA_DIR=<路径>
可选入库(跳过重训时用):data/ensemble_avg20/、data/experts/、data/valhot_scores/ —— 见 data/README.md。封榜 AEF 素材:WOXIN_AEF 或 docs/GITLINK_RELEASE.md。
data/ensemble_avg20/
data/experts/
data/valhot_scores/
WOXIN_AEF
若 *.npy / 专家 CSV 只有约 133 字节,仍是 Git LFS 指针(sync 会标 LFS)。本目录无 .git 时:python -u tools/hydrate_from_board46.py,dig 增量与 AEF 需从 GitLink 拉取实体。
*.npy
sync
LFS
.git
python -u tools/hydrate_from_board46.py
默认超参见 configs/(如 stage1_pairfeat20.yaml、stage2_*.yaml)。种子列表:artifacts_pairfeat20.txt。
configs/
stage1_pairfeat20.yaml
stage2_*.yaml
artifacts_pairfeat20.txt
# 阶段一:pairfeat × 20-seed → avg20(与 board46 相同) python -u scripts/stage1_train_baseline.py --data_dir data # 阶段二:专家(specialist / markov / hardneg / d2) python -u scripts/stage2_train_experts.py --all --data_dir data
已有合法 data/ensemble_avg20 时可跳过阶段一,直接训专家或融合。
data/ensemble_avg20
融合与打包(默认读入库 avg20 / experts / valhot / AEF,无需再传 ckpt):
# 封榜主交 dig+RRF → result_final_dig_rrf.zip python -u scripts/run_repro.py --skip-20seed --pack final # 或显式融合入口 python -u scripts/stage2_fuse.py # 默认 dig+RRF python -u scripts/stage2_fuse.py --stable # margin 辅包
权重默认落在本仓 outputs_* / 入库指针;路径解析见 src/rule_expert/paths.py。Windows 可用:run_repro.bat --skip-20seed --pack final。
outputs_*
src/rule_expert/paths.py
run_repro.bat --skip-20seed --pack final
dataset1.csv
dataset2.csv
本地 val-hot 与线上板分不可直接比绝对值(分布不同);以相对 avg20 的 Δ 与锁定配方对照为准。详见 docs/FINAL_RANK49.md。
勿交 result_router_*(本地虚高、榜跌)。见 docs/LESSON_ROUTER_OVERFIT.md。
result_router_*
configs/ # 训练/融合超参记录 src/ # 模型 / 数据 / 训练 / 融合 / rule_expert / valhot scripts/ # 推荐入口(stage1_* · stage2_* · run_repro) tools/ # 数据处理与旧实验脚本 data/ # 仅说明 + 可选入库指针(不放大文件) docs/ # 复现与封榜文档 outputs/ # 日志 / 权重 / 结果(gitignore,默认不提交)
scripts/stage1_train_baseline.py
run_20seed_pairfeat.py
scripts/stage2_train_experts.py
scripts/run_repro.py
stage2_fuse.py
run_repro.py
阶段一 pairfeat × 20-seed → avg20 │ 阶段二 专家 + dig+RRF(主)/ margin(辅)→ 提交 zip
训练与推理:import jittor(权重 *.pkl)。融合:numpy。详见 docs/JITTOR_ONLY.md。
import jittor
*.pkl
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
# MambaGate HistX · Board49
时序图 100-candidate 重排(MRR)· Jittor 实现
沃信2.0 · Educoder Jittor-7 赛道一 · 封榜第 49 · dig+RRF ≈ 1.3708
相对 board46:阶段一 avg20 不变;阶段二主交改为 dig+RRF(
fuse_final)。详细复现:docs/REPRO.md · 封榜锁定:docs/FINAL_RANK49.md · 超参:configs/
1. 环境安装
核心依赖:
jittor>=1.3.8、numpy、pandas、tqdm、numba。2. 数据准备
官方比赛数据需自行从赛事平台获取(本仓库不提交原始数据集)。放到:
数据根目录配置(任选其一):
--data_dir data或--data_dir <官方数据根>BOARD46_DATA_DIR=<路径>可选入库(跳过重训时用):
data/ensemble_avg20/、data/experts/、data/valhot_scores/—— 见 data/README.md。封榜 AEF 素材:
WOXIN_AEF或 docs/GITLINK_RELEASE.md。3. 训练
默认超参见
configs/(如stage1_pairfeat20.yaml、stage2_*.yaml)。种子列表:artifacts_pairfeat20.txt。已有合法
data/ensemble_avg20时可跳过阶段一,直接训专家或融合。4. 评测 / 推理
融合与打包(默认读入库 avg20 / experts / valhot / AEF,无需再传 ckpt):
权重默认落在本仓
outputs_*/ 入库指针;路径解析见src/rule_expert/paths.py。Windows 可用:
run_repro.bat --skip-20seed --pack final。5. 结果说明
dataset1.csv、dataset2.csv,每行 100 维概率本地 val-hot 与线上板分不可直接比绝对值(分布不同);以相对 avg20 的 Δ 与锁定配方对照为准。详见 docs/FINAL_RANK49.md。
目录结构
scripts/stage1_train_baseline.pyrun_20seed_pairfeat.pyscripts/stage2_train_experts.pyscripts/run_repro.py/stage2_fuse.pyrun_repro.pyJittor 纯度
训练与推理:
import jittor(权重*.pkl)。融合:numpy。详见 docs/JITTOR_ONLY.md。
更多文档