使用HuggingFace将预训练模型调整到新领域
![大型语言模型的领域适应 四海 第1张-四海吧 来自unsplash的图片](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*Me6zhsYiozyhy9uxU_vJeA.png)
大型语言模型(LLMs)如BERT通常在维基百科和BookCorpus等通用领域语料库上进行预训练。如果我们将它们应用于医学等更专业的领域,与针对这些领域进行调整的模型相比,性能通常会下降。
在本文中,我们将探讨如何使用HuggingFace Transformers库将预训练的LLM(如Deberta base)调整到医学领域。具体来说,我们将涵盖一种有效的技术,即中间预训练,其中我们对目标领域的数据进行进一步的预训练。这将使模型适应新领域并改善其性能。
这是一种简单而有效的技术,可以调整LLMs以适应您的领域,并在下游任务性能方面取得显着改进。
让我们开始吧。
步骤1:数据
任何项目的第一步是准备数据。由于我们的数据集属于医学领域,它包含以下字段和更多字段:
![大型语言模型的领域适应 四海 第2张-四海吧 作者提供的图片](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*j1Rh0uUmfvNBZQroJb6k3Q.png)
这里无法列出完整的字段列表,因为有很多字段。但即使这一眼对已有字段的了解也有助于我们形成LLM的输入序列。
首要注意的一点是,输入必须是一个序列,因为LLMs将输入视为文本序列。
为了形成这个序列,我们可以插入特殊的标签,告诉LLM接下来的信息是什么。考虑以下示例:<patient>name:John, surname: Doer, patientID:1234, age:34</patient>
,其中<patient>
是一个特殊的标签,告诉LLM接下来的内容是有关患者的信息。
因此,我们将输入序列形成如下:
![大型语言模型的领域适应 四海 第3张-四海吧 作者提供的图片](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*gGNRwNDSqz9MFRG1_uoZ_A.png)
正如您所见,我们插入了四个标签:
<patient> </patient>
: 包含…