FreedomIntelligence / HuatuoGPT-II

HuatuoGPT2, One-stage Training for Medical Adaption of LLMs. (An Open Medical GPT)
360 stars 59 forks source link

微调咨询,非常期待大佬能够指导 #25

Open litongyun233 opened 7 months ago

litongyun233 commented 7 months ago

大佬您好,使用和作者相类似的SFT数据集,希望能达到作者的效果,但不论是在Baichuan基座模型上微调还是基于Huatuo2二次微调,结果都不尽人意。有如下几点问题想要咨询:

  1. 利用Huatuo2在特定领域二次微调是否有数据处理上的建议?因为我尝试微调后发现模型回答医疗问题的能力特别弱,回答的既不具体,也不像Huatuo2能够分点回答。请问微调出这样能够分点回答的模型,是在SFT数据的时候就有对其进行处理吗?(一种思路是在prompt设置时,要求模型分点回答;另一种思路是通过GPT处理SFT的数据集,让其answer质量更高(如分点等))想请问作者是哪种思路能够训练处能分点回答的Huatuo2呢?
  2. 作者在微调方面是否有一些技巧能够传授,我使用3万条数据利用LLama_factory训练在Huatuo2上训练3个epoch,训练的loss从2.8降到2,看到作者训练的Huatuo2能降到0.5,请问这是如何做到的呢?是否是我的数据量不够或者epoch不够? 非常期待作者的回复!
jymChen commented 4 months ago

@litongyun233 你好,

  1. 在用Huatuo2在特定领域二次微调时候,可以在新训练的数据里面混入一些Huatuo2原来的训练数据(比如Huatuo2的SFT数据),这样或许有助于让模型保持原本的能力进行分点回答。其次可以把自己的数据让ChatGPT或GPT-4改写成分点回答的形式,训练后不能分点估计还是受到训练数据的影响。
  2. loss 2.8 好像有点高,训练的loss经验上应该能很快下降到1点多,而且训练3个epoch的话应该是能减低到很低的loss。建议检查下训练数据是否有问题,最好确保下数据的质量,可以过滤掉数据里面质量比较差的数据。其次超参也可以调整下,比如把学习率和batch size的设置改一改,可以尝试用batch size 64 和 学习率 2e-5的设置。