Closed Ulov888 closed 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水平
原始论文中训练方法是这么实现的,感觉初始就同时训练两个任务,不容易收敛吧
谢谢答疑
虽然问题生产和答案生成共用了同一个模型,但是我看训练时还是pipeline式的,主要是通过不同阶段的loss关注区别的 ` print("step1: Fine-tune question generation .... ") Lambda = 1 train(model, Lambda, 5)
这样做,比直接进行step3会有优越性吗,还是说仅仅为了loss的快速下降?因为我感觉把epochs提高一些,直接进行step3应该也能达到差不多的loss水平