独步潮流!如何在私有数据集上塑造GPT式大型语言模型的独特风格!

导读
Fine-tune 是一种能够以成本效益的方式调整预训练 LLM 的技巧 。本文主要比较了用于最新的开源 LLM的不同参数高效微调方法,并为大家介绍如何使用单个 GPU 并在一天内对开源的大语言模型进行微调 。
为什么要进行微调?
众所周知,,很强!或者很多人都有个疑问,为什么我们还要大费周章去微调?
闭源,或者网上流行的一句话: 并不 open 。诸如的和的 Bard,是不能被轻松定制的,这使它们在许多用例中变得不那么吸引人 。然而,幸运的是,我们在最近几个月看到了大量的开源 LLM 涌现出来(当然这还得感谢 Meta 一不小心就把 LLaMA 泄露出来,这才有了后续一系列的羊驼家族!) 。另外,尽管和 Bard 具备很强大的上下文学习能力,但微调模型在特定任务上的表现一般会优于通用模型,这可能就是私有数据集的魔力吧!
预训练并微调 LLMs
在我们深入了解 LLM 微调的细节之前,让我们简要回顾一下一般情况下如何训练 LLM 。LLM 的训练分为两个阶段:
第一阶段是昂贵的预训练步骤,通过在一个包含数万亿个词的大规模无标签数据集上对模型进行训练 。由此产生的模型通常被称为基础模型( ),因为它们具有通用能力,并可以用于各种下游任务的适应 。一个经典的预训练模型的例子是GPT-3 。
第二阶段是对这样一个基础模型进行微调 。这通常包括将预训练模型训练成遵循指令或执行其他特定目标任务(例如情感分类) 。(最初是 GPT-3 基础模型的微调版本)就是一个被微调为遵循指令的典型例子 。使用本文中介绍的参数高效微调方法,可以在单个 GPU 上用 1 小时而不是 6 个 GPU 上的一天内对 LLM 进行微调 。
此外,微调还允许模型更好地适应原始训练数据中未充分代表的特定领域或文本类型 。例如,如果我们希望模型理解和生成医学文本,可以对模型进行医学文献方面的微调 。想必大家伙最近也见到过许多的中医问诊 LLM 。
开源 LLMs 和架构
对开源 LLM 进行微调具有多个优势,例如更好的定制能力和任务性能 。此外,开源 LLM 对于研究人员来说是一个优秀的测试平台,可以用来开发新技术 。但是如果我们今天采用一个开源模型,应该选择哪个呢?
截至目前,由科技创新研究院开发的模型是当前表现最好的开源 LLM 。在本文中,我们将学习如何高效地对其进行微调,例如在私有数据集上进行微调 。
LLM 有不同规模的模型:截至目前,有一个70亿参数的变体( 7B)和一个400亿参数的变体( 40B) 。此外,每个规模都有基础模型( 7B 和40B)和对应的指令微调模型( 7B-和40B-) 。指令微调模型已经针对通用任务进行了微调(类似于),但如果需要的话,它们可以进一步在特定领域的数据上进行微调 。(注:还有一个180B版本正在开发中)
值得高兴的是,模型是完全开源的,并采用宽松的许可证第 2.0 版发布,即允许无限制的商业使用,例如与 、和使用相同的许可证 。
与 GPT 或者 LLaMA 等 LLMs 的区别?
除了在排行榜上的更好性能之外,如上所述,、LLaMA 和 GPT 之间也存在一些细小的架构差异 。LLaMA(等人,2023年)引入了以下架构改进,这很可能是 LLaMA 相对于 GPT-3(Brown等人,2020年)表现更好的原因:
类似于 GPT-3,LLaMA 将层归一化放置在自注意力块之前;然而,研究人员选择了最近的 (Zhang和,2019年)变体,而不是像 GPT-3 中那样使用原始的 (Ba等人,2016年) 。
LLaMA借鉴了PaLM(等人,2022年)中使用 (,2020年)激活的思想,而非 GPT-3 中直接采用 ReLU 。
最后,LLaMA 将 GPT-3 中使用的绝对位置嵌入替换为旋转位置嵌入(RoPE)(Su等人,2022年),类似于 (Black等人,2022年) 。