大规模语言模型从理论到实践目录和个人总体观后感第四章第五章
[复制链接]
## 第四章分布式训练
分布式训练是指是指将机器人学习或者深度学习模型训练任务分解成多个子任务,并在多个计算机上并行的进行训练。分布四训练的并行策略有数据并行、模型并行和混合并行。这些策略同时要注意计算设备内存优化。分布式训练的集群架构属于高性能计算集群。参数服务器架构有两种服务角色:训练服务器和参数服务器。去中心化构架采用集合通信实现分布式训练系统。再去中心化架构中没有中央服务器或者控制节点,而是节点之间进行直接通信和协调。
本章大头和重点DeepSpeed实践,由于本人资源有限,没办法复刻,很多流程和说明也看不懂,所以在日后专题部分在做说明。
## 第五章有监督微调
有监督微调又称指令微调,是指在已经训练好的语言模型的基础上,通过使用有标注的特定 任务数据进行进一步的微调,使模型具备遵循指令的能力。经过海量数据预训练后的语言模型虽然具备了大量的“知识”,但是由于其训练时的目标仅是进行下一个词的预测,因此不能够理解并 遵循人类自然语言形式的指令。为了使模型具有理解并响应人类指令的能力,还需要使用指令数据对其进行微调。如何构造指令数据,如何高效低成本地进行指令微调训练,以及如何在语言模型基础上进一步扩大上下文等问题,是大语言模型在有监督微调阶段的核心。
本章介绍了大语言模型的提示学习和语境学习,在此基础上介绍高效模型微调及模型上下文 窗口扩展方法,最后介绍指令数据的构建方式,以及有监督微调的代码实践。
提示学习(Prompt-BasedLearning)不同于传统的监督学习,它直接利用了在大量原始文本
上进行预训练的语言模型,并通过定义一个新的提示函数,使该模型能够执行小样本甚至零样本
语境学习,也称上下文学习,其概念随着GPT-3的诞生而被提出。语境学习是指模型可以从
上下文中的几个例子中学习:向模型输入特定任务的一些具体例子〔也称示例(Demonstration)〕
及要测试的样例,模型可以根据给定的示例续写测试样例的答案。。语境学习的关键思想是从类比中学习,整个过程并不需要对模型进行参数更新,
仅执行前向的推理。大语言模型可以通过语境学习执行许多复杂的推理任务。
由于大语言模型的参数量十分庞大,当将其应用到下游任务时,微调全部参数需要相当高的
算力(全量微调的具体流程将在5.5节详细介绍)。为了节省成本,研究人员提出了多种参数高
效(ParameterEfficient)的微调方法,旨在仅训练少量参数就使模型适应下游任务。
随着更多长文本建模需求的出现,多轮对话、长文档摘要等任务在实际应用中越来越多,这些 任务需要模型能够更好地处理超出常规上下文窗口大小的文本内容。尽管当前的大语言模型在处理 短文本方面表现出色,但在支持长文本建模方面仍存在一些挑战,这些挑战包括预定义的上下文窗口大小限制等。这会限制模型对长文本的理解和表达能力。当涉及长时间对话或长文档摘 要时,传统的上下文窗口大小可能无法捕捉到全局语境,从而导致信息丢失或模糊的建模结果。
为了更好地满足长文本需求,有必要探索如何扩展现有的大语言模型,使其能够有效地处理
更大范围的上下文信息。具体来说,主要有以下方法来扩展语言模型的长文本建模能力。
- 增加上下文窗口的微调:采用直接的方式,即通过使用一个更大的上下文窗口来微调现有的预训练Transformer,以适应长文本建模需求。
- 位置编码:改进的位置编码,如ALiBi[68]、LeX[156]等能够实现一定程度上的长度外推。这意味着它们可以在小的上下文窗口上进行训练,在大的上下文窗口上进行推理。
- 插值法:将超出上下文窗口的位置编码通过插值法压缩到预训练的上下文窗口中。
因为指令数据的质量会直接影响有监督微调的最终效果,所以指令数据的构建应是一个非常
精细的过程。从获得来源上看,构建指令数据的方法可以分为手动构建指令和利用大语言模型的
生成能力自动构建指令两种。
手动构建指令和自动构建指令
DeepSpeed-ChatSFT实践在专题部份再说明
|