minimind
minimind copied to clipboard
关于多阶段 SFT
作者大大,感谢开源。对于以下第一行所示的流程:
这里有个疑问。首先定位到 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及以上将会很方便。
请在哪里有涉及到?
期待回复 💇