目录
3.强化学习(RL,Reinforcement Learning)
Sota
Sota实际上就是State of the arts 的缩写,指的是在某一个领域做的Performance最好的model,一般就是指在一些benchmark的数据集上跑分非常高的那些模型。
SOTA model:并不是特指某个具体的模型,而是指在该项研究任务中,目前最好/最先进的模型。
SOTA result:指的是在该项研究任务中,目前最好的模型的结果/性能/表现。
非端到端模型
传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。
端到端模型
从输入端到输出端会得到一个预测结果,将预测结果和真实结果进行比较得到误差,将误差反向传播到网络的各个层之中,调整网络的权重和参数直到模型收敛或者达到预期的效果为止,中间所有的操作都包含在神经网络内部,不再分成多个模块处理。
由原始数据输入,到结果输出,从输入端到输出端,中间的神经网络自成一体(也可以当做黑盒子看待),这是端到端的。
Benchmark、Baseline
benchmark通常指的是一个(标准的)衡量规定或是评估标准。具体的可以理解成,在某个标准的数据集上用某种规定的方式(进行实验)并且用某几个指标来衡量算法的性能,这样规定被称为benchmark。由于benchmark的标准化还是一个正在进行的过程,所以benchmark通常也可以粗略的理解成某个标准的数据集。例如,ML10M benchmark 指 在ML10M这个数据集上进行实验。
baseline指的是一个基准,也叫基线,简单来说就是用来对比的一个参照对象,往往通过用和baseline比较性能的方式来凸出自己新提出的算法的优势。在机器学习领域,baseline通常是一个广为人知的算法,可以是最基础同时性能又不错的算法,也可以是最先进、性能最好的算法(SOTA)。
并发、并行、串行
- 我中午12:00开始吃饭,吃到一半,女朋友打来一个电话,我需要等到我吃完饭才可以接电话,这说明我不支持并行与并发,我的运作方式属于串行,串行有一个执行单元(只有一个执行任务单元的cpu核)。
- 我中午12:00开始吃饭,吃到一半,女朋友打来一个电话,我可以接起电话,跟女朋友打完电话继续吃饭,这说明我支持并发与串行,
- 我中午12:00开始吃饭,吃到一半,女朋友打来一个电话,我可以一边接电话一边吃饭,这说明我支持并行与并发。(并行有多个任务执行单元,多个任务可以同时执行)
所谓并发,是指我有没有同时处理多个任务的能力,不一定要同时。
迁移学习
迁移学习通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。由于直接对目标域从头开始学习成本太高,故而转向运用已有的相关知识来辅助尽快地学习新知识。比如,已经会下中国象棋,就可以类比着来学习国际象棋;等等。
世间万事万物皆有共性,如何合理地找寻它们之间的相似性,进而利用这个桥梁来帮助学习新知识,是迁移学习的核心问题。
微调
微调其实讲的是利用原有模型参数(“知识”)初始化现有模型,在此基础上继续train自己的model(“再加工”)。说人话就是把现成的模型略加修改然后再作少量training,主要用于样本数量不足的情形。
进程、线程
- 一个进程包括多个线程。
- 不同进程之间数据很难共享。
- 同一个进程下的不同线程数据很容易共享。
- 进程比线程消耗更多计算机资源。
- 进程之间互不影响,但是一个进程挂掉,他所在的整个进程都会挂掉。
- 进程可以拓展到多机,适合多核与分布式。
- 进程使用的内存地址可以限定使用量。
监督学习
使用足够多的带有label的数据集来训练模型,数据集中的每个样本都带有人工标注的label。通俗理解就是,模型在学习的过程中,“老师”指导模型应该向哪个方向学习或调整。
非监督学习
指训练模型用的数据没有人工标注的标签信息,通俗理解就是在“没有老师指导”的情况下,靠“学生”自己通过不断地探索,对知识进行归纳和总结,尝试发现数据中的内在规律或特征,来对训练数据打标签。
半监督学习
在只能获取少量的带label的数据,但是可以获取大量的的数据的情况下训练模型,让学习器不依赖于外界交互,自动地利用未标记样本来提升学习性能,半监督学习是监督学习和非监督学习的相结合的一种学习方法。
泛化(Generalization)
模型的泛化能力通俗易懂的说就是模型在测试集(其中的数据模型以前没有见过)中的表现,也就是模型举一反三的能力,但是这些数据必须满足与iid(独立同分布)并在同一个分布中。
举个例子:一张图片模型之前没有见过,但是这张图片与TrainDataSet在同一分布,并满足iid,模型可以很好的预测这张图,这就是模型的泛化,在测试集中,模型预测新数据的准确率越高,就可以说是模型的泛化能力越好。
正则化(Regularization)
正则化即为对学习算法的修改,旨在减少泛化误差而不是训练误差。正则化的策略包括:
- 约束和惩罚被设计为编码特定类型的先验知识。
- 偏好简单模型。
- 其他形式的正则化,如:集成的方法,即结合多个假说解释训练数据。
吞吐量
假设你从学校骑电动车回家,这条公路限速80km/h,这就可以理解成“带宽”,也就是“最高传输速率”。所骑电动车厂家宣称最高时速30km/h,这可以理解成“速率”,也就是“额定速率或标称速率”。但是你不可能全程以30km/h速度行驶,可能会碰到红灯或者堵车,这时你的速度就会放慢了,这条路的长度除以你行驶时间所得平均行驶速度,就可以理解成“吞吐量”。
大模型
一般指1亿以上参数的模型,但是这个标准一直在升级,目前万亿参数以上的模型也有了。大语言模型(Large Language Model,LLM)是针对语言的大模型。
指令微调
(Instruction FineTuning),针对已经存在的预训练模型,给出额外的指令或者标注数据集来提升模型的性能,如P-tuning, prompt-tuning,prefix-tuning。
增量微调
是指在神经网络中增加额外的层,如lora,adapter。
175B、60B、540B
这些一般指参数的个数,B是Billion/十亿的意思,175B是1750亿参数,这是GPT3的参数规模。
强化学习
(Reinforcement Learning)一种机器学习的方法,通过从外部获得激励来校正学习方向从而获得一种自适应的学习能力。
基于人工反馈的强化学习(RLHF)
(Reinforcement Learning from Human Feedback)构建人类反馈数据集,训练一个激励模型,模仿人类偏好对结果打分,这是GPT-3后时代大语言模型越来越像人类对话核心技术。
Prompt Engineering(提示工程)
Prompt是一种基于人工智能(AI)指令的技术,通过明确而具体的指导语言模型的输出。在提示词工程中,Prompt的定义涵盖了任务、指令和角色三个主要元素,以确保模型生成符合用户需求的文本。
任务: Prompt明确而简洁地陈述了用户要求模型生成的内容。这包括在特定应用场景中,用户希望模型完成的任务或生成的文本类型。
指令: 模型在生成文本时应遵循的指令是Prompt中的关键要素之一。这些指令具体规定了模型生成文本的方式,通过清晰的语言来引导模型以获得所需的输出。
角色: Prompt中还包括模型在生成文本时应扮演的角色。这有助于更好地定义模型的行为,确保生成的文本符合用户预期。
Prompt工程:在与大模型进行交流的过程中,由于用户经验不足、模型差异性会出现Prompt指令不当的问题,因此需要通过Prompt工程,使用户能够控制模型的输出,使其生成相关、准确且高质量的文本。这与机器学习的过程类似,需要进行迭代。
SFT 监督微调
SFT是指在经过预训练之后,通过特定的监督数据对模型进行微调的过程。不同于预训练阶段,SFT注重任务的具体执行能力,主要通过引入标注好的数据来优化模型的指令跟随能力和应对具体任务的表现。预训练阶段的模型会学习广泛的知识,而SFT则使其在特定任务上表现优异。
LLM对齐
LLM对齐的关键要素,包括奖励模型(Reward model)、反馈(Feedbacks)、强化学习(RL)政策和优化(Optimization)这四个主要方向。
1.奖励模型(Reward model)
奖励模型是经过微调的 LLM,根据提示和生成的回复分配分数。
(1)显式与隐式奖励模型(Explicit Reward Model vs. Implicit Reward Model)
RLHF 中通过收集偏好数据集来训练显式奖励模型,而隐式奖励模型则绕过此过程,如 DPO 通过建立最优奖励模型和最优策略之间的映射来对齐 LLM。
(2)点式与偏好模型(Pointwise Reward Model vs. Preferencewise Model)
原始 RLHF 使用点式奖励模型返回奖励分数,但无法直接获取成对偏好且难以处理人类标签不一致性,Nash 学习则被提出用于直接建模成对偏好。
(3)响应级与token级奖励(Response-Level Reward vs. Token-Level Reward)
在 RLHF 和 DPO 中,奖励通常在响应级别给出,但为了在每个动作后实现对齐,引入了token级奖励模型。
(4)负偏好优化(Negative Preference Optimization)
随着 LLM 能力提升,一些研究认为可仅使用提示和不期望的响应,通过 LLM 生成期望响应来进行负偏好优化。
2. 反馈(Feedbacks)
反馈包括来自人类或 AI 的偏好和二元响应,且可以是成对或列表形式。
(1)偏好与二元反馈(Preference Feedback vs. Binary Feedback)
RLHF 收集偏好反馈,但后续研究发现二元反馈(如 “点赞” 或 “差评”)更易获取,收集偏好反馈则更具挑战性。
(2)成对与列表反馈(Pairwise Feedback vs. Listwise Feedback)
RLHF 收集列表式反馈并将其视为成对反馈处理,而后续研究如 LiPO 则认为将列表式偏好视为排序问题更具优势。
(3)人类与 AI 反馈(Human Feedback vs. AI Feedback)
RLHF 中反馈由人类提供,但过程繁琐且昂贵,随着 LLM 发展,使用 AI 反馈来对齐 LLM 成为可能。
3.强化学习(RL,Reinforcement Learning)
RL 的目标是最大化奖励并最小化与初始参考模型的偏差,公式为
(1)基于参考与无参考 RL( Reference-Based RL vs. Reference-Free RL)
多数 RLHF 方法基于参考策略,但会引入内存负担,因此有研究提出避免使用参考策略的方法,如 SimPO 提出新目标函数以完全避免参考策略。
(2)长度控制 RL( Length-Control RL)
LLM 作为评估者时倾向于生成冗长回复,影响对齐效果,因此 R - DPO 和 SimPO 等方法在 RL 目标中考虑了长度控制因素。
(3)不同分歧度量 RL( Different Divergences in RL)
RLHF 通常使用反向 KL 散度来衡量策略间距离,但会降低响应多样性,因此有研究探索不同的分歧度量,如 α - 散度、正向 KL 散度和 Jensen - Shannon 散度等。
(4)在线与离线策略学习(On-policy or Off-policy Learning)
在线策略学习在训练时从最新策略中采样响应,能确保响应与当前策略一致,但计算成本高;离线策略学习虽节省时间但可能使用与当前策略不一致的旧响应。
4.优化( Optimization)
LLM 的对齐过程涉及优化,包括偏好优化和模型训练方式的优化。
(1)迭代 / 在线与非迭代 / 离线偏好优化(Iterative/Online Preference Optimization vs. Non-Iterative/Offline Preference Optimization)
仅使用收集数据集进行对齐是非迭代 / 离线偏好优化,而当人类token新数据或 LLM 同时承担生成和评估响应的双重角色时,则可进行迭代 / 在线偏好优化。
(2)分离与合并 SFT 和对齐( Separating SFT and Alignment vs. Merging SFT and Alignment)
传统 RLHF 中 SFT 和对齐是顺序分离应用的,存在繁琐和易遗忘问题,ORPO将两者集成在单一步骤中,PAFT 则提出同时微调 SFT 和对齐并合并结果。