大模型黑话指南(二)
大模型开发/技术交流
- 大模型训练
- SFT
- P-tuning
2023.08.215949看过
接上文,大模型黑化指南(一),接着梳理一些大模型相关的概念。最近看相关的论文、研究报告能看的顺畅些了。
神经网络
神经网络是一种数学模型,模拟人脑的工作原理,通过训练学习如何处理输入数据,并在各种任务中提供准确的预测和判断。
可以将其想象为一个模仿人脑工作方式的数学模型。就像人脑中有大量的神经元相互连接一样,神经网络也由很多个小单元组成,这些单元之间通过连接传递信息。
我们可以把神经网络比作一个信息处理的流水线。首先,我们将输入数据(比如图像、文本等)传递给神经网络的输入层。然后,数据在网络中经过一系列的处理和转换,类似于人脑中的信息处理过程。最后,我们从输出层得到网络对输入数据的处理结果。
神经网络通过训练来学习如何处理输入数据。在训练过程中,我们提供已知的输入和对应的正确输出给网络。网络根据这些例子逐渐调整内部的连接权重,以使得网络能够更准确地预测输出。通过不断地反复训练,网络逐渐改善自己的表现,可以在新的未见过的数据上做出准确的预测。
输入数据通过输入层传递到隐藏层,隐藏层对数据进行处理和转换,最后输出到输出层。每个连接都有一个权重,控制着信息在神经网络中的流动。
这只是一个简单的示例,现实中的神经网络通常更复杂,具有更多的层和更多的神经元。但是这个示例可以帮助你理解神经网络中信息流动的基本原理。
自注意力机制
自注意力机制(Self-Attention Mechanism)是神经网络模型中的一种算法策略,用于捕捉输入序列中的长距离依赖关系。在大多数深度学习模型中,尤其是自然语言处理任务中,此机制被广泛应用。
自注意力机制的基本思想是对输入序列中的每个元素计算其与其他元素之间的相似度或相关性,并使用这些相似度将其他元素的信息聚合到当前元素上。这样,每个元素都能获得整个输入序列中与之相关的信息,从而使模型更好地理解和捕捉序列内部的依赖关系。
演绎与归纳
演绎推理(Deductive Reasoning)是从一般原理或前提出发,通过逻辑推演得出具体结论的过程。它是从已知的事实或假设出发,应用逻辑规则进行推理,从而得出严格且确定的结论。演绎推理是从普遍性到特殊性的推理方式。例如,我们知道所有人都会死亡,而张三是一个人,那么我们可以演绎出最终张三也会死亡。
归纳推理(Inductive Reasoning)是通过观察和经验,从具体事实或例子中推导出一般性原则或概念的过程。它是从特殊性到普遍性的推理方式。通过观察到的一系列特定事件或例子,归纳推理试图找到其中的共同模式或规律,并基于这些模式或规律来推断普遍性的结论。例如,我们观察到一只小猫A、另一只猫B、再一只猫C都有毛,并且我们还观察到其他的猫也有毛,因此我们可以归纳出“所有猫都有毛”的一般性结论。
机器学习与深度学习
机器学习是一种让计算机系统从数据中学习的方法。我们给计算机一些输入数据和对应的输出结果,让它通过分析这些数据的模式和规律,自动学习并做出预测或决策。机器学习的目标是让计算机能够从经验中学习,从而改善性能并适应新的情境。
深度学习是机器学习的一种特殊类型,它专注于使用深层神经网络进行学习和推理。深度学习模型由多个神经网络层组成,每一层都对输入数据进行处理和抽象,从而逐渐学习更高级的特征和表示。通过学习多层次的抽象,深度学习模型能够在各种任务中获得出色的表现,如图像识别、语音识别、自然语言处理等。
预训练
预训练(Pre-training)是指在训练深度学习模型之前,对模型进行的一种预处理过程。预训练的目的是为了让模型能够在进行正式训练时具有更好的性能或更快的收敛速度。
通俗来说,预训练就像是给模型一种预先学习的机会,让模型先了解一些基础知识,然后再去学习更具体、更复杂的任务。这有点像人类学习的过程:先学习基本的语言和数学知识,然后再去学习更专业的知识,这样学习会更高效。
预训练主要是无监督预训练:在这种方法中,模型被训练为从大量无标签的数据中学习数据的结构和特征。这可以帮助模型捕捉到一些基本的模式和规律,从而为后续的有监督训练打好基础。常见的无监督预训练方法有自编码器、无监督聚类等。
微调
是在Pre-training的基础上进行的进一步学习。在这个阶段,我们将在特定任务上进行有监督的训练,以使模型能够更好地适应新任务的要求。可以把这个过程比作一个人在具体的实践中,根据具体情况进行进一步的调整和学习。就像一个人通过实际练习和应用,将自己的知识和经验应用到解决实际问题上。
微调步骤中有一个关键的环节:超参数,超参数包括:轮次、学习率、以及批次大小等。以下是一些常见做法的通俗解释:
决定一个机器学习模型训练轮次的方法可以比喻为烹饪过程。我们要做的是确定需要给菜肴煮多长时间,这取决于食物的种类和厚度等因素。考虑以下几点:
-
验证集性能:就像检查菜肴煮熟程度,观察模型在未见过的数据集(验证集)上的表现。如果验证集上的性能不再提升或开始变差,说明菜已经煮好。
-
经验法则和文献:查阅菜谱找到类似菜肴的烹饪时间,或者询问有经验的大厨。同样,参考其他人的经验或学术研究中建议的训练轮次。
-
早停策略和学习率调整:如果菜看起来差不多熟了,可以减小火候进行慢炖。对应到模型训练就是,当验证集性能不再明显提高时,使用早停策略停止训练或减小学习率,以避免过拟合。
-
网格搜索:尝试用不同火力炖煮不同时间,观察哪个组合效果最好。这类似于尝试不同的训练轮次组合,找到最佳表现的模型。
-
数据集泛化能力:确保所用食材是否既能满足口感,又能保证营养均衡。通过交叉验证技术评估模型在各种情况下的表现,以便优化并确保模型具有较好的普适性。
评论