minimind icon indicating copy to clipboard operation
minimind copied to clipboard

关于多阶段 SFT

Open David-19940718 opened this issue 2 weeks ago • 7 comments

作者大大,感谢开源。对于以下第一行所示的流程:

Image

这里有个疑问。首先定位到 train_full_sft.py 脚本:

...
def init_model(lm_config):
    tokenizer = AutoTokenizer.from_pretrained('./model/minimind_tokenizer')
    model = MiniMindLM(lm_config)
    moe_path = '_moe' if lm_config.use_moe else ''
    ckp = f'./out/pretrain_{lm_config.dim}{moe_path}.pth'
    state_dict = torch.load(ckp, map_location=args.device)
    model.load_state_dict(state_dict, strict=False)
    Logger(f'LLM总参数量:{sum(p.numel() for p in model.parameters() if p.requires_grad) / 1e6:.3f} 百万')
    model = model.to(args.device)
    return model, tokenizer
...

假设我这里通过 pretrain 模型训练 sft_521.jsonl 数据后;想继续微调 sft_2048.jsonl,是不是需要将 ckp 改为上一步 SFT 后得到权重?

另外,对于在推理时通过调整RoPE线性差值,实现免训练长度外推到2048及以上将会很方便。 请在哪里有涉及到?

期待回复 💇

David-19940718 avatar Feb 11 '25 09:02 David-19940718