你这个需求我理解为两部分:先把这个仓库里 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)。

建议你第一次这样跑(最稳)

  1. 必跑:pretrain
  2. 必跑:full_sft
  3. 可选三选一做实验:lora 或 dpo 或 grpo
  4. PPO 建议最后再试(工程复杂度最高)

为什么不建议你一上来全跑

  1. DPO、PPO、GRPO 都是“后训练对齐”路线,不是基础能力必需步骤。
  2. PPO/GRPO 都依赖 reward 模型和 rollout,准备成本高。
  3. LoRA 是“垂直领域适配”,不是通用主线必需。

你可以直接照抄的命令(Windows + cmd)

先装依赖:

cd /d d:\minimind-master
pip install -r requirements.txt

下载并放入 dataset 目录(至少这两个):

  • pretrain_t2t_mini.jsonl
  • sft_t2t_mini.jsonl
    参考 README.md。

开始训练:

  1. 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。

  1. 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。

  1. 评估
cd /d d:\minimind-master
python eval_llm.py --weight full_sft
  1. 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。

  1. 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。

  1. 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。

所以你有两条路:

  1. 不改代码,直接用 swanlab(国内更稳)
  • 继续用 --use_wandb 即可,它会走 swanlab 兼容接口。
  1. 真正上报到 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 环境。


如果你愿意,我下一步可以直接帮你做两件事(你回复数字就行):

  1. 帮你把训练脚本改成可切换 tracker(wandb/swanlab)而不是写死 swanlab。
  2. 给你生成一份一键运行的 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
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐