FreedomIntelligence / HuatuoGPT-II

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

论文中的一阶段训练疑问 #13

Open J-G-Y opened 11 months ago

J-G-Y commented 11 months ago

作者您好,刚入行的小白。跟您请教一些论文的思路问题。 文章中提到了“we only optimize the output loss and do not learn from the input loss.” 而本文的中心思想也是降低持续预训练和有监督微调的差异。 因此跟您请教以下问题: 1.构造完的问题答案对是只进行有监督微调的嘛(持续预训练数据和有监督数据混合后的QA数据) 2.如果第一个问题是直接进行有监督微调,那么对比直接构造大量的领域数据去进行有监督微调的做法,差异性在哪

期待您的回复。Thanks

jymChen commented 10 months ago

Hi @J-G-Y ,

  1. 对的,基于预训练的数据构建完问答对后只进行有监督的微调训练,和SFT的指令数据混合在一起进行数据采样然后训练,所以我们一阶段训练的数据都是问答指令。
  2. 差别在于领域数据来源,这些大规模领域数据是基于预训练的数据进行改写而来的,将无监督无结构化的预训练语料改写成有监督的问答对数据进行有监督训练,这个过程我们将预训练和微调数据格式统一、风格统一,且尽量使得构造的问答数据能包含原文本的主要内容(能像预训练一样注入领域知识)。在使用相同的预训练语料的情况下,我们发现这样做比传统的继续预训练效果好很多。
zhou-wjjw commented 10 months ago

Hi @J-G-Y ,

  1. 对的,基于预训练的数据构建完问答对后只进行有监督的微调训练,和SFT的指令数据混合在一起进行数据采样然后训练,所以我们一阶段训练的数据都是问答指令。
  2. 差别在于领域数据来源,这些大规模领域数据是基于预训练的数据进行改写而来的,将无监督无结构化的预训练语料改写成有监督的问答对数据进行有监督训练,这个过程我们将预训练和微调数据格式统一、风格统一,且尽量使得构造的问答数据能包含原文本的主要内容(能像预训练一样注入领域知识)。在使用相同的预训练语料的情况下,我们发现这样做比传统的继续预训练效果好很多。

您好,请问下:我看了代码是做微调,没有经过预训练,为什么能够把领域知识注入到模型,我的理解和增大微调数据量没有本质的区别,还是在做微调只是数据变化了。一直在这个地方没有理解清楚,期待您的回答。

jymChen commented 10 months ago

@zhou-wjjw 你好, 我们方法里有一个Data Unification的过程,这个过程是把所有预训练文本都变成和SFT数据一样的指令形式(QA数据),然后再一阶段训练。所以我们可以一阶段训练过程中把预训练语料都注进去,可以参考我们预训练语料的改写代码adaption/data_unification/rewrite.py

zhou-wjjw commented 10 months ago

@zhou-wjjw 你好, 我们方法里有一个Data Unification的过程,这个过程是把所有预训练文本都变成和SFT数据一样的指令形式(QA数据),然后再一阶段训练。所以我们可以一阶段训练过程中把预训练语料都注进去,可以参考我们预训练语料的改写代码adaption/data_unification/rewrite.py。 感谢回答,那我理解成如下:我们基于基础模型,整理医学领域的预训练语料,采用论文的方法,用全参微调可以学习到领域知识,进行复现咱们的论文的效果