minimind流程
为保证命令和参数都和仓库一致,我最后抓取几个关键参数的精确行号(数据路径、from_weight、reward_model、rollout 引擎),然后直接给你按新手可跑的执行顺序。然后我给你一版可直接执行的命令清单。例如 train_pretrain.py、train_full_sft.py、train_dpo.py、train_grpo.py、train_ppo.py、train_lora.p
你这个需求我理解为两部分:先把这个仓库里 pretrain/SFT/LoRA/PPO/DPO/GRPO 的正确实验路径梳理清楚,再给你一套从 0 到 1 的 WandB 上手方案。先快速读取仓库里的训练脚本和 README,把可直接运行的命令整理成一条可复现实验流水线。我先做一轮只读检索,目标是定位“官方推荐训练顺序、各脚本入口参数、是否已有 WandB 集成”这三类信息。
Searched for regex wandb|WandB|train_pretrain|train_full_sft|train_lora|train_ppo|train_dpo|train_grpo (**/README*.md), 20 results
Searched for regex argparse|-- (**/trainer/*.py), 20 results
Searched for regex wandb|WandB (**/*.py), 20 results
我已经确认仓库里确实支持你说的这些阶段,并且每个训练脚本基本都带了 use_wandb 参数。下一步我会读 README 的关键章节和各训练脚本的参数默认值,给你整理成“该不该全跑、每步输入输出、最小可复现实验命令”。
Read [](file:///d%3A/minimind-master/README.md#620-620), lines 620 to 840
Read [](file:///d%3A/minimind-master/README.md#260-260), lines 260 to 390
Read [](file:///d%3A/minimind-master/README.md#90-90), lines 90 to 180
README 里已经给出一个关键信号:必须链路是 pretrain + full_sft,其它阶段是可选增强,并且 toolcall 现在默认并入 SFT。我继续读取 RL 相关章节和训练脚本参数,给你做一份按“新手最稳复现”排序的执行清单。
Searched for regex PPO|DPO|GRPO|RLAIF|train_ppo|train_dpo|train_grpo|train_agent (**/README.md), 20 results
Read [](file:///d%3A/minimind-master/trainer/train_pretrain.py)
Read [](file:///d%3A/minimind-master/trainer/train_full_sft.py)
我现在已经拿到 pretrain 和 full_sft 的默认超参与数据路径,接下来补齐 LoRA、DPO、PPO、GRPO 的入口参数,这样就能判断你是否需要全流程都跑。
Read [](file:///d%3A/minimind-master/trainer/train_lora.py)
Read [](file:///d%3A/minimind-master/trainer/train_dpo.py)
Read [](file:///d%3A/minimind-master/trainer/train_ppo.py#1-1), lines 1 to 420
我已拿到 DPO/PPO 的默认配置,发现 PPO 还依赖外部 reward 模型和 rollout 引擎(复杂度更高)。我再补充 GRPO 与 README 中对应命令,再给你做“必须跑 vs 可选跑”的最终决策表。
Read [](file:///d%3A/minimind-master/README.md#840-840), lines 840 to 1140
Read [](file:///d%3A/minimind-master/trainer/train_grpo.py)
Read [](file:///d%3A/minimind-master/trainer/train_agent.py#360-360), lines 360 to 488
关键信息已齐:PPO/GRPO 都是在线 RL,门槛比前两阶段高很多。我再确认一下数据文件与依赖清单,避免你按步骤跑时卡在缺文件或缺包。
Read [](file:///d%3A/minimind-master/dataset)
Searched for regex swanlab|wandb|sglang|internlm2|streamlit|deepspeed (**/requirements.txt), 3 results
Read [](file:///d%3A/minimind-master/requirements.txt)
我确认到当前仓库里没自带训练数据文件,只有说明文档,所以你后续需要先下载 jsonl 数据再开跑。我再读一下数据说明文件,给你每个阶段对应的数据名。
Read [](file:///d%3A/minimind-master/dataset/dataset.md)
我会再把 README 里的全部数据文件名抓出来,整理成“阶段→文件名”的一对一清单,确保你不会漏下载。
Searched for regex [A-Za-z0-9_\-]+\.jsonl (**/README.md), 39 results
Read [](file:///d%3A/minimind-master/README.md#450-450), lines 450 to 560
Read [](file:///d%3A/minimind-master/README.md#1140-1140), lines 1140 to 1280
我会最后确认一下权重加载规则(from_weight 到底从哪里找),这样你按阶段串联时不会出现“找不到上一步权重”的问题。
Read [](file:///d%3A/minimind-master/trainer/trainer_utils.py)
我再做最后一个定位:把“use_wandb 实际用了 swanlab 的位置”标出来,避免你以为已经在 wandb.ai 记录但实际上跑到了 swanlab。然后我给你一版可直接执行的命令清单。
Searched for text import swanlab as wandb (**/trainer/*.py), 8 results
我已经能给你完整方案了。为保证命令和参数都和仓库一致,我最后抓取几个关键参数的精确行号(数据路径、from_weight、reward_model、rollout 引擎),然后直接给你按新手可跑的执行顺序。
Searched for regex data_path|from_weight|use_wandb|wandb_project (**/trainer/train_pretrain.py), 8 results
Searched for regex data_path|from_weight|use_wandb|wandb_project (**/trainer/train_full_sft.py), 8 results
Searched for regex data_path|from_weight|lora_name|use_wandb (**/trainer/train_lora.py), 11 results
Searched for regex data_path|from_weight|beta|use_wandb (**/trainer/train_dpo.py), 16 results
Searched for regex data_path|from_weight|reward_model_path|rollout_engine|use_wandb (**/trainer/train_grpo.py), 20 results
Searched for regex data_path|from_weight|reward_model_path|rollout_engine|use_wandb (**/trainer/train_ppo.py), 20 results
Searched for regex 预训练(必须)|指令微调(必须)|其它训练(可选)|强化学习(可选)|通常不需要再额外做一轮独立的 Tool Calling|主线推荐采用|最快速度从0实现Zero模型 (**/README.md), 7 results
Searched for regex 训练数据集下载地址|将下载的数据集文件放到|agent_rl.jsonl|pretrain_t2t_mini.jsonl|sft_t2t_mini.jsonl (**/README.md), 17 results
先给结论:不用把 pretrain、sft、lora、ppo、dpo、grpo 全都跑一遍才叫“复现成功”。
按这个仓库的说明,最小复现主线是 pretrain + full_sft(见 README.md 和 README.md)。LoRA、DPO、PPO、GRPO 都是可选增强(见 README.md 和 README.md)。另外 tool call 已经混在 SFT 数据里,通常不需要单独再训一轮(见 README.md)。
你现在仓库里还没有训练数据 jsonl,dataset 目录目前只有说明和代码文件,所以要先下载数据再跑(见 README.md 和 README.md)。
建议你第一次这样跑(最稳)
- 必跑:pretrain
- 必跑:full_sft
- 可选三选一做实验:lora 或 dpo 或 grpo
- PPO 建议最后再试(工程复杂度最高)
为什么不建议你一上来全跑
- DPO、PPO、GRPO 都是“后训练对齐”路线,不是基础能力必需步骤。
- PPO/GRPO 都依赖 reward 模型和 rollout,准备成本高。
- LoRA 是“垂直领域适配”,不是通用主线必需。
你可以直接照抄的命令(Windows + cmd)
先装依赖:
cd /d d:\minimind-master
pip install -r requirements.txt
下载并放入 dataset 目录(至少这两个):
- pretrain_t2t_mini.jsonl
- sft_t2t_mini.jsonl
参考 README.md。
开始训练:
- Pretrain(从零开始)
cd /d d:\minimind-master\trainer
python train_pretrain.py --data_path ../dataset/pretrain_t2t_mini.jsonl --use_wandb --wandb_project MiniMind-Pretrain-Run1
默认参数位置见 train_pretrain.py。
- SFT(接 pretrain)
python train_full_sft.py --from_weight pretrain --data_path ../dataset/sft_t2t_mini.jsonl --use_wandb --wandb_project MiniMind-SFT-Run1
默认 from_weight=pretrain,见 train_full_sft.py。
- 评估
cd /d d:\minimind-master
python eval_llm.py --weight full_sft
- DPO(可选)
cd /d d:\minimind-master\trainer
python train_dpo.py --from_weight full_sft --data_path ../dataset/dpo.jsonl --use_wandb --wandb_project MiniMind-DPO-Run1
参数见 train_dpo.py。
- GRPO(可选,建议先用 torch rollout)
python train_grpo.py --from_weight full_sft --data_path ../dataset/rlaif.jsonl --reward_model_path D:\internlm2-1_8b-reward --rollout_engine torch --use_wandb --wandb_project MiniMind-GRPO-Run1
关键参数见 train_grpo.py、train_grpo.py、train_grpo.py。
- LoRA(可选,做垂域适配)
python train_lora.py --from_weight full_sft --data_path ../dataset/lora_medical.jsonl --lora_name lora_medical --use_wandb --wandb_project MiniMind-LoRA-Run1
参数见 train_lora.py。
WandB 新手上手(你最关心的)
先说重点:这个仓库里 use_wandb 开关目前实际导入的是 swanlab 别名,不是官方 wandb SDK。
例如 train_pretrain.py、train_full_sft.py、train_dpo.py、train_grpo.py、train_ppo.py、train_lora.py。
所以你有两条路:
- 不改代码,直接用 swanlab(国内更稳)
- 继续用 --use_wandb 即可,它会走 swanlab 兼容接口。
- 真正上报到 wandb.ai
- 注册 wandb 账号,拿 API Key
- 执行:
pip install wandb
wandb login
- 然后把上述训练脚本中的 import swanlab as wandb 改成 import wandb
- 再用 --use_wandb 跑训练
你现在还要注意一个 Windows 坑
多卡 torchrun 在这个仓库里默认用 NCCL(见 trainer_utils.py),Windows 原生通常不支持 NCCL。
你先用单卡 python 方式最稳;多卡建议 WSL2/Linux 环境。
如果你愿意,我下一步可以直接帮你做两件事(你回复数字就行):
- 帮你把训练脚本改成可切换 tracker(wandb/swanlab)而不是写死 swanlab。
- 给你生成一份一键运行的 Windows 批处理脚本,按顺序自动跑 pretrain -> sft -> eval。
下载数据集:
wget -P /root/data/minimind-master/dataset https://hf-mirror.com/datasets/jingyaogong/minimind_dataset/resolve/main/pretrain_t2t.jsonl
wget -P /root/data/minimind-master/dataset https://hf-mirror.com/datasets/jingyaogong/minimind_dataset/resolve/main/sft_t2t.jsonl
wget -P /root/data/minimind-master/dataset https://hf-mirror.com/datasets/jingyaogong/minimind_dataset/resolve/main/rlaif.jsonl
更多推荐

所有评论(0)