FlagOpen / FlagEmbedding

Retrieval and Retrieval-augmented LLMs
MIT License
6.72k stars 480 forks source link

关于LM_Cocktail的几个问题 #354

Open mechigonft opened 8 months ago

mechigonft commented 8 months ago

很惊艳的工作! 针对模型合并LM_Cocktail想请教几个问题: 1、针对embedding模型,如果我有2个垂域场景,那单独针对2个场景分别微调2个模型,再使用LM_Cocktail合并,还是,将2个垂域场景的训练数据先合并在一起,微调一个模型,这两种做法有什么差异?各自有什么优缺点呢?LM_Cocktail核心解决了什么问题,模型合并比数据合并再微调的方式有什么优势? 2、关于你们在介绍中说的,LM_Cocktail合并后的模型可以保持在垂域上的训练效果,而不丢失其他领域的通用效果,那我理解应该会降低垂域的效果吧,比如model1(基于垂域数据微调,垂域准确率60%),model2(裸模型,未微调,垂域准确率20%)那合并后,合并的模型的垂域效果将会<60%,甚至有可能跌到40%,那这个合并的意义在哪呢?牺牲垂域效果,换取通用效果?

staoxiao commented 8 months ago
  1. 效果上视具体情况而定,有时先微调再合并有时候可能会比合并数据微调效果好,有时也不如。LM_Cocktail的优势在于方便,对于一个新任务(任务3),不需要再去把任务1和任务2的数据再混合起来训练,可以直接在任务3上训练后合并新模型。同时,合并时的比例可控,可以通过调节比例平衡三种任务的效果。如果上合并数据训练的话,在不同比例上每次都要训一个模型也比较麻烦。
  2. 如上所说,意义在于保持模型原有的在其他领域的能力,如果想同时保持多个领域的能力,可以进行合并。如果合并后垂域效果下降很多,可以把垂域模型的融合比例提高。可以找到一个平衡点,在垂域效果不下降的时候,提升其他领域能力。 如果只是单纯想针对一个领域训练一个专门模型,不需要模型合并。