murray-z / OneStop_QAMaker

采用一个模型同时实现问题生成和答案生成
26 stars 3 forks source link

关于训练方式的一点疑问 #4

Closed Ulov888 closed 1 year ago

Ulov888 commented 1 year ago

虽然问题生产和答案生成共用了同一个模型,但是我看训练时还是pipeline式的,主要是通过不同阶段的loss关注区别的 ` print("step1: Fine-tune question generation .... ") Lambda = 1 train(model, Lambda, 5)

print("step2:  Fine-tune answer prediction ..... ")
Lambda = 0
model.load_state_dict(torch.load(save_model_path))
train(model, Lambda, 5)

print("step3: Fine-tune the OneStop model .... ")
Lambda = 0.5
model.load_state_dict(torch.load(save_model_path))
train(model, Lambda, 30)`

这样做,比直接进行step3会有优越性吗,还是说仅仅为了loss的快速下降?因为我感觉把epochs提高一些,直接进行step3应该也能达到差不多的loss水平

murray-z commented 1 year ago

原始论文中训练方法是这么实现的,感觉初始就同时训练两个任务,不容易收敛吧 image

Ulov888 commented 1 year ago

谢谢答疑