本项目用于构建一个面向量化因子研究的大模型 Agent,整体分为三个阶段:
extracter:从研报中抽取高质量单因子样本SFT:用结构化样本进行监督微调,注入因子研究范式DPO:后续进行偏好对齐,使输出更贴近真实研究偏好
extracter/:研报解析、候选发现、样本生成与校验SFT/:SFT 数据准备、训练配置与训练脚本研报/:原始研报 PDF 数据SPEC.md:项目总设计requirements.txt:Ubuntu + NVIDIA GPU 环境依赖
- 安装依赖
pip install -r requirements.txt- 运行 Extracter
python3 -m extracter.cli --stage discovery
python3 -m extracter.cli --stage generate- 运行 SFT 数据准备
python3 -m SFT.cli --stage m1
python3 -m SFT.cli --stage m2- 下载基础模型到本地
python3 -m SFT.cli --stage download --train-config SFT/configs/train_config.yaml说明:
- 下载目标模型由
SFT/configs/train_config.yaml中的model.model_id指定 - 本地保存路径由同一配置中的
model.local_model_dir指定 - 如果跳过这一步,训练阶段会在发现本地模型不存在时自动先下载
- 启动 SFT 训练
python3 -m SFT.cli --stage m3 --train-config SFT/configs/train_config.yaml- 运行推理或评估
python3 -m SFT.cli --stage infer --inference-config SFT/configs/inference_config.yaml --inspiration "这里填写研究现象描述"
python3 -m SFT.cli --stage eval --inference-config SFT/configs/inference_config.yamlpython3 -m SFT.cli --stage download --train-config SFT/configs/train_config.yaml- 按训练配置下载基础模型到本地目录
python3 -m SFT.cli --stage m3 --train-config SFT/configs/train_config.yaml- 启动训练;优先从本地基础模型目录加载,缺失时自动下载
python3 -m SFT.download_model --config SFT/configs/train_config.yaml- 独立下载脚本,功能与
--stage download等价
- 独立下载脚本,功能与
python3 -m SFT.cli --stage infer --inference-config SFT/configs/inference_config.yaml --inspiration "..."- 按推理配置生成单条因子结果
python3 -m SFT.cli --stage eval --inference-config SFT/configs/inference_config.yaml- 用推理配置批量评估
SFT/data/test.jsonl或配置中指定的数据集
- 用推理配置批量评估
model/base/:基础预训练模型本地目录trained/:训练输出目录,保存 LoRA adapter、tokenizer 和运行 manifestSFT/data/:SFT 训练、验证、测试数据SFT/output/:数据准备、评估、人工复核等输出
默认约定:
- 基础模型默认下载到
model/base/Qwen3-0.6B - 训练产物默认保存到
trained/qwen3_0_6b_lora
SFT/configs/inference_config.yaml 支持两种后端:
openai_compat:走远程 APIlocal_hf:走本地 Hugging Face 模型目录,可配合base_model_path + adapter_path加载本地底座模型和训练产物
- 项目总设计:
SPEC.md - Extracter 设计文档:
extracter/README.md - SFT 设计文档:
SFT/README.md
- Extracter 已完成基础数据抽取链路
- SFT 已完成 M1、M2,并已切到
TRL训练框架 - DPO 仍待实现