【大厂AI实践】美团:小样本学习Prompt Learning+自训练实战
🌟 嗨,你好,我是 青松 !
🌈 自小刺头深草里,而今渐觉出蓬蒿。
NLP Github 项目推荐:
-
【AI 藏经阁】:https://gitee.com/fasterai/ai-e-book
介绍:该仓库主要分享了数百本 AI 领域电子书
-
【AI 算法面经】:fasterai/nlp-interview-handbook#面经
介绍:该仓库一网打尽互联网大厂NLP算法面经,算法求职必备神器
-
【大模型(LLMs)面试笔记】:https://gitee.com/fasterai/nlp-interview-handbook
介绍:该仓库汇总了 NLP 算法工程师高频面题,适合大模型初学者和正在准备面试的小伙伴。
希望能帮助各位同学缩短面试准备时间,不错过金三银四涨薪窗口,迅速收获心仪的Offer 🎉🎉🎉
文章目录
1 概述
CLUE(Chinese Language Understanding Evaluation)[1]是中文语言理解权威测评榜单,包含了文本分类、句间关系、阅读理解等众多语义分析和语义理解类子任务,对学术界和工业界都产生了较大的影响。
图1 FewCLUE榜单(截止到2022-04-18)
FewCLUE[2,3]是CLUE中专门用于中文小样本学习评测的一个子榜,旨在结合预训练语言模型通用和强大的泛化能力,探索小样本学习最佳模型和在中文上的实践。FewCLUE的部分数据集只有一百多条有标签样本,可以衡量模型在极少有标签样本下的泛化性能,发布后吸引了包括网易、微信AI、阿里巴巴、IDEA研究院、浪潮人工智能研究院等多家企业与研究院的参与。不久前,美团平台搜索与NLP部NLP中心语义理解团队的小样本学习模型FSL++以优越的性能在FewCLUE榜单上取得第一名,达到SOTA水平。
2 方法介绍
大规模预训练模型虽然在各大任务里面取得非常好的效果,但是在特定的任务上,还是需要许多标注数据。美团的各个业务中,有着丰富的NLP场景,往往需要较高的人工标注成本。在业务发展早期或者新的业务需求需要快速上线时,往往会出现标注样本不足的现象,使用传统Pretrain(预训练)+ Fine-Tune(微调)的深度学习训练方法往往达不到理想的指标要求,因此研究小样本场景的模型训练问题就变得非常必要。
本文提出了一套大模型 + 小样本的联合训练方案FSL++,综合了模型结构优选、大规模预训练、样本增强、集成学习以及自训练等模型优化策略,最终在中文语言理解权威评测基准下的FewCLUE榜单取得了优异的成绩,并且在部分任务上性能超过了人类水平,而在部分任务上(如CLUEWSC)还有一定的提升空间。
FewCLUE发布后,网易伏羲使用自研的EET模型[4],并通过二次训练增强模型的语义理解能力,再加入模版进行多任务学习;IDEA研究院的二郎神模型[5]在BERT模型的基础上使用更先进的预训练技术训练大模型,在下游任务微调的过程中用加入动态Mask策略的Masked Language Model(MLM)作为辅助任务。这些方法都使用Prompt Learning作为基本的任务架构,跟这些自研的大模型相比,我们的方法主要在Prompt Learning框架的基础上加入了样本增强、集成学习以及自学习等模型优化策略,极大地提高模型的任务表现和鲁棒性,同时这套方法可以适用于各种预训练模型,更加灵活便捷。
FSL++整体模型结构如下图2所示。FewCLUE数据集为每个任务提供160条有标签数据以及接近两万条无标签数据。本次FewCLUE实践中,我们先在Fine-Tune阶段构造多模板Prompt Learning,并对有标签数据采用对抗训练、对比学习、Mixup等增强策略。由于这些数据增强策略采用不同的增强原理,可以认为这些模型之间差异性比较显著,经过集成学习之后会有比较好的效果。所以在采用数据增强策略进行训练以后,我们拥有了多个弱监督模型,并且用这些弱监督模型在无标签数据上进行预测,得到无标签数据的伪标签分布。之后,我们将多个经过不同的数据增强模型预测得到的无标签数据的伪标签分布整合起来,得到一份总的无标签数据的伪标签分布,接着重新构造多模板Prompt Learning,并再次使用数据增强策略,选择最优策略。目前,我们的实验只进行一轮迭代,也可以尝试多轮迭代,不过随着迭代次数增加,提升也不再明显。
图2 FSL++模型框架
2.1 增强预训练
预训练语言模型是在庞大的无标签语料库上进行训练的。 例如,RoBERTa[6]在160GB以上的文本进行训练,包括百科全书、新闻文章、文学作品和Web内容。通过这些模型学习到的表示,在包含多种来源的各种大小的数据集的任务中实现出色的性能。
FSL++模型使用RoBERTa-large模型作为基础模型,并且采用融入领域知识的Domain-Adaptive Pretraining (DAPT)[7]预训练方法和融入任务知识的Task-Adaptive Pretraining (TAPT)[7]。DAPT旨在预训练模型的基础上,增加大量领域内无标签文本继续训练语言模型,之后再在指定任务的数据集上进行微调。
对目标文本领域进行继续预训练,可以提高语言模型的性能,尤其是在与目标文本领域相关的下游任务上的性能。并且,预训练文本与任务领域的相关度越高,带来的提升越大。在本次实践中,我们最终使用了在100G包含娱乐节目、体育、健康、国际事务、电影、名人等各个领域的语料的CLUE Vocab[8]上预训练得到的RoBERTa Large模型。TAPT指在预训练模型的基础上,增加数量较少但与任务直接相关的无标签语料进行预训练。针对TAPT任务,我们选择使用的预训练数据是FewCLUE榜单为每个任务提供的无标签数据。
除此之外,在针对句间关系任务,如中文自然语言推理任务OCNLI、中文对话短文本匹配任务BUSTM的实践中,我们使用在其他句间关系任务如中文自然语言推理数据集CMNLI、中文短文本相似度数据集LCQMC上进行预训练的模型参数作为初始参数,相比直接用原始模型完成任务,也能提升一定的效果。
2.2 模型结构
FewCLUE包含多种任务形式,我们为每种任务选择了合适的模型结构。文本分类任务和机器阅读理解(MRC)任务本身的类别词就携带了信息,因此更适合建模为Masked Language Model(MLM)形式;而句间关系任务判断两个句子的相关性,更类似于Next Sentence Prediction(NSP)[9]任务形式。因此,我们为分类任务和阅读理解任务选择PET[10]模型,为句间关系任务选择EFL[11]模型,EFL方法可以通过全局采样构造负样本,学习到更鲁棒的分类器。
2.2.1 Prompt Learning
Prompt Learning的主要目标是尽可能减小预训练目标与下游微调目标的差距。通常现有的预训练任务均包含MLM损失函数,但是下游的任务则并未采用MLM,而是引入新的分类器,使得预训练任务和下游任务出现了不一致。Prompt Learning不引入额外的分类器或其他参数,而是通过拼接模板(Template,即为输入数据拼接语言片段,从而改造任务为MLM形式)和标签词映射(Verbalizer,即为每个标签在词表中找到对应的词,从而为MLM任务设定预测目标),使得模型可以在少量样本的条件下在下游任务中使用。
图3 Prompt Learning方法完成情感分析任务的流程图
以图3展示的电商评价情感分析任务EPRSTMT为例。给定文本“这个电影真不错,值得第二次观看!”,传统的文本分类则是在CLS部分的Embedding接上分类器,并映射到0-1分类上(0:负向,1:正向)。这种方法在小样本场景下需要训练新的分类器,比较难获得好的效果。而基于Prompt Learning的方法则是创建模板“这是一条 [MASK] 评。”,再将模板与原文进行拼接,训练时通过语言模型预测[MASK]位置的词,再将其映射到对应的类别上(好:正向, 差:负向)。
由于缺乏足够数据,有时很难确定表现最好的模板和标签词映射。因此,也可以采用多模板与多标签词映射的设计。通过设计多个模板,最终的结果采用多个模板的结果的整合,或设计一对多的标签词映射,让一个标签对应多个词。同上述例子,可以设计如下模板组合(左:同一个句子的多模板,右:多标签映射)。
图4 PET多模板与多标签映射图
任务样例
表1 FewCLUE数据集中PET模板构建
2.2.2 EFL
EFL模型将两个句子拼接在一起,用输出层的[CLS]位置处的Embedding后接一个分类器完成预测。EFL的训练过程中,除了训练集的样本,还会进行负样本构造,训练过程中,在每个Batch里随机选择其他数据中的句子作为负样本,通过构造负样本进行数据增强。虽然EFL模型需要训练新的分类器,但目前有很多公开的文本蕴含/句间关系数据集,如CMNLI、LCQMC等,可以通过在这些样本上进行持续学习(continue-train),再将学习到的参数迁移到小样本场景中,用FewCLUE的任务数据集进行进一步微调。
任务样例
表2 FewCLUE数据集中EFL模板构建
2.3 数据增强
数据增强方法主要有样本增强和Embedding增强。NLP领域中,数据增强的目的是在不改变语义的前提下扩充文本数据。主要的方法包括简单文本替换、使用语言模型生成相似句子等,我们尝试过EDA等扩充文本数据的方法,但是一个词的变化就可能导致整个句子的意思发生翻转,经过替换的文本携带大量噪音,所以很难用简单的规则样本变化产生足够的增强数据。而Embedding增强,则不再对输入进行操作,转而在Embedding层面进行操作,可以通过对Embedding增加扰动或者插值等方式提升模型的鲁棒性。
因此,本次实践中我们主要进行Embedding增强。我们用的数据增强策略分别有Mixup[12]、Manifold-Mixup[13]、对抗训练(Adversarial training, AT) [14]和对比学习R-drop[15]。数据增强策略的详细介绍见之前的技术博客小样本学习及其在美团场景中的应用。
表3 数据增强策略简述
Mixup通过对输入数据进行简单的线性变换,构造新的组合样本和组合标签,可以增强模型的泛化能力。在各种有监督任务或者半监督任务上,使用Mixup都能极大提高模型的泛化能力。Mixup方法可以视为正则化操作,它要求模型在特征层面生成的组合特征满足线性约束,并且利用这种约束对模型施加正则化。直观来看,当模型的输入为另外两个输入的线性组合时,其输出也是这两个数据单独输入模型后所得输出的线性组合,其实就是要求模型近似为一个线性系统。
Manifold Mixup将上述的Mixup操作泛化到特征上。因为特征具有更高阶的语义信息,所以在其维度上插值可能会产生更有意义的样本。在类似于BERT[9]、RoBERTa[6]的模型中,随机选择层数k,对该层的特征表示进行Mixup插值。普通的Mixup的插值发生在输出层Embedding部分,而Manifold Mixup相当于把这一系列插值操作加入到语言模型内部的Transformers结构的随机某层中。
对抗训练通过在输入样本上增加微小的扰动来显著提高模型Loss。对抗训练就是训练一个能有效识别原始样本和对抗样本的模型。基本原理就是通过添加扰动构造一些对抗样本,交给模型去训练,提高模型在遇到对抗样本时的鲁棒性,同时也能提高模型的表现和泛化能力。对抗样本需要具有两个特点,分别是:
- 相对于原始输入,所添加的扰动是微小的。
- 能使模型犯错。对抗训练有两个作用,分别是提高模型对恶意攻击的鲁棒性和提高模型的泛化能力。
R-Drop对同一个句子做两次Dropout,并且强制由Dropout生成的不同子模型的输出概率保持一致。Dropout的引入虽然效果很好,但是它会导致训练和推理过程的不一致性问题。为缓解这种训练推理过程的不一致性,R-Drop对Dropout进行正则化处理,在两个子模型产生的输出中增加对输出数据分布的限制,引入数据分布度量的KL散度损失,使得Batch内同一个样本生成的两个数据分布尽量接近,具有分布一致性。具体来说,对于每个训练样本,R-Drop最小化了由不同Dropout生成的子模型的输出概率之间的KL 散度。R-Drop作为一种训练思想,可以用到大部分有监督或半监督的训练中,通用性强。
我们使用的三种数据增强策略,Mixup是在语言模型的输出层Embedding和语言模型的内部随机某层Transformers的输出层中做两个样本的线性变化,对抗训练是在样本上增加微小的扰动,而对比学习是对同一个句子做两次Dropout形成正样本对,再用KL散度限制两个子模型保持一致。三种策略都是通过在Embedding完成一些操作来增强模型的泛化性,经过不同策略得到的模型分别都具有不同的偏好,这就为下一步的集成学习提供了条件。
2.4 集成学习&自训练
集成学习可以组合多个弱监督模型,以期得到一个更好更全面的强监督模型。集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。如果待组合的各个模型之间差异性比较显著,那么集成学习之后通常会有一个较好的结果。
自训练使用少量的标记数据和大量的未标记数据对模型进行联合训练,首先使用经过训练的分类器来预测所有未标记数据的标签,然后选择置信度较高的标签作为伪标签数据,将伪标记数据与人工标记的训练数据联合起来重新训练分类器。
集成学习+自训练是一套可以利用多个模型以及无标签数据的方案。这其中,集成学习的一般步骤为:训练多个不同的弱监督模型,分别用每个模型预测无标签数据的标签概率分布,计算标签概率分布的加权和,得到无标签数据的伪标签概率分布。自训练指训练一个模型用于组合其他各个模型,其一般步骤为:训练多个Teacher模型,Student模型学习伪标签概率分布中高置信度样本的Soft Prediction,Student模型作为最后的强学习器。
图5 集成学习+自训练结构
在本次FewCLUE实践中,我们先在Fine-Tune阶段构造多模板Prompt Learning,并对有标注数据采用对抗训练、对比学习、Mixup等增强策略。由于这些数据增强策略采用不同的增强原理,可以认为这些模型之间差异性比较显著,经过集成学习之后会有比较好的效果。
在采用数据增强策略进行训练以后,我们拥有了多个弱监督模型,并且用这些弱监督模型在无标签数据上进行预测,得到无标签数据的伪标签分布。之后,我们将多个经过不同的数据增强模型预测得到的无标签数据的伪标签分布整合起来,得到一份总的无标签数据的伪标签分布。筛选伪标签数据的过程中,我们不一定会选择置信度最高的样本,因为如果每个数据增强模型给出的置信度都很高,说明这个样本可能是容易学习的样本,不一定有很大价值。
我们综合多个数据增强模型给出的置信度,尽量选择置信度较高,但是又不容易学习的样本(比如多个模型预测不全部一致)。接着用标注数据和伪标注数据的集合重新构造多模板Prompt Learning,再次使用数据增强策略,并选择最好的策略。目前,我们的实验目前只进行一轮迭代,也可以尝试多轮迭代,不过随着迭代次数增加,提升也会减少,不再显著。
3 实验结果
3.1 数据集介绍
FewCLUE榜单提供了9个任务,其中分别为4个文本分类任务,2个句间关系任务和3个阅读理解任务。文本分类任务有电商评价情感分析、科学文献分类、新闻分类和App应用描述主题分类任务。主要归类为短文本二分类、短文本多分类和长文本多分类。其中有的任务类别众多,超过100类,并且出现了类别不均衡问题。句间关系任务有自然语言推理和短文本匹配任务。阅读理解任务则有成语阅读理解选择填空,摘要判断关键词判别和代词消歧任务。每个任务大体提供了160条有标签数据和两万条左右的无标签数据。因为长文本分类任务类别众多,过于困难,也提供了更多的有标签数据。详细的任务数据情况如表4所示:
表4 FewCLUE数据集任务介绍
3.2 实验对比
表5展示了不同模型和参数量的实验结果的对比。在RoBERTa Base实验中,使用PET/EFL模型会超过传统的直接Fine-Tune模型结果2-28PP。以PET/EFL模型为基础,为了探索大模型在小样本场景中的效果,我们在RoBERTa Large上进行了实验,相对于RoBERTa Base,大模型可以提升模型0.5-13PP;为了更好地利用领域知识,我们进一步在经过CLUE数据集上增强预训练的RoBERTa Large Clue模型上进行实验,融入了领域知识的大模型进一步提升结果0.1-9pp。基于此,在之后的实验中,我们都在RoBERTa Large Clue上进行实验。
表5 不同模型和参数量的实验结果对比 (加粗红色字体表示最好的结果)
表6展示了在PET/EFL模型上进行数据增强和集成学习实验结果, 可以发现即使是在大模型上使用数据增强策略,模型也能带来0.8-9PP的提升,而进一步进行集成学习&自训练以后,模型表现会继续提升0.4-4PP。
表6 基础模型+数据增强+集成学习实验效果 (加粗红色字体表示最好的结果)
其中集成学习+自训练步骤中,我们尝试了几种筛选策略:
- 选择置信度最高的样本,这种策略带来的提升在1PP以内,置信度最高的伪标签样本中很多是多个模型预测一致且置信度都比较高的样本,这部分样本比较容易学习,融入这部分样本带来的收益有限。
- 选择置信度高且具有争议性的样本(存在至少一个模型和其他模型预测结果不一致,但多个模型总体置信度超过阈值1),这种策略规避了特别容易学习的样本,又通过设置阈值避免带来过多脏数据,可以带来0-3PP的提升;
- 融合上面的两种策略,若多个模型对于一个样本的预测结果是一致的,我们选择置信度小于阈值2的样本;对于存在至少一个模型和其他模型预测结果不一致的,我们选择置信度大于阈值3的样本。这种方式同时选择了置信度较高的样本保证输出的可信度,又选择了较有争议的样本保证筛选出来的伪标签样本具有较大学习难度,可以带来0.4-4PP的提升。
4 小样本学习策略在美团场景的应用
在美团的各个业务中,有着丰富的NLP场景,部分任务可以归类为文本分类任务和句间关系任务,以上提到的小样本学习策略已经应用于美团点评的各种场景,期望在数据资源稀少的情况下训练出比较好的模型。此外,小样本学习策略已经广泛应用于美团内部自然语言处理(NLP)平台的各个NLP算法能力中,在众多业务场景下落地并取得显著收益,美团内部的工程师可通过该平台来体验NLP中心相关的能力。
文本分类任务
医美题材分类:对美团和点评的笔记内容按题材分为8类:猎奇、探店、测评、真人案例、治疗过程、避坑、效果对比、科普。用户点击某一种题材时,返回对应的笔记内容,上线至美团和点评App医疗美容频道的百科页、方案页经验分享,小样本学习利用2,989条训练数据准确率提升1.8PP,达到了89.24%。
攻略识别:从UGC和笔记中挖掘旅游攻略,提供旅游攻略的内容供给,应用于景点精搜下的攻略模块,召回内容为描述旅游攻略的笔记,小样本学习利用384条训练数据准确率提升2PP,达到了87%。
学城文本分类:学城(美团内部知识库)有大量的用户文本,经归纳将文本分为17种类别,已有模型在700条数据上训练,通过小样本学习,在已有模型上提升模型精度2.5PP,达到84%。
项目筛选:LE生活服务/丽人等业务目前的评价列表页混排评价的方式不便让用户快速找到决策信息,因此需要更有结构化的分类标签来满足用户的需求,小样本学习在这两个业务上利用300-500条数据上准确率均达到95%+(多个数据集分别提升1.5-4PP)。
句间关系任务
医美功效打标:对美团和大众点评的笔记内容按功效进行召回,功效的类型有:补水、美白、瘦脸、除皱等,上线至医美频道页,有110种功效类型需要打标,小样本学习仅用2909条训练数据准确率达到了91.88%(提升2.8PP)。
医美品牌打标:品牌上游企业有针对旗下产品进行品牌宣传和营销的诉求,而内容营销是当前主流、有效的营销方式之一。品牌打标就是为每种品牌如“伊肤泉”、“术唯可”召回详细介绍该品牌的笔记内容,共有103种品牌,已上线至医美品牌馆,小样本学习仅用1676条训练数据准确率达到了88.59%(提升2.9PP)。
5 总结
在本次榜单提交中,我们构建了一种基于RoBERTa的语义理解模型,并通过增强预训练、PET/EFL模型、数据增强和集成学习&自训练来提升模型的效果。该模型能完成文本分类、句间关系推理任务和几种阅读理解任务。
通过参加本次测评任务,我们对小样本场景下的自然语言理解领域的算法和研究有了更深的认识,也借此对前沿算法的中文落地能力进行了摸底测试,为后续进一步算法研究、算法落地打下了基础。此外,本次数据集中的任务场景与美团搜索与NLP部的业务场景存在很大相似性,该模型的很多策略也直接应用在实际业务中,直接为业务赋能。
参考文献
- [1] FewCLUE Github项目地址
- [2] FewCLUE 榜单地址
- [3] CLUE Github项目地址
- [4] https://github.com/NetEase-FuXi/EET
- [5]https://github.com/IDEA-CCNL/Fengshenbang-LM
- [6] Liu, Yinhan, et al. “Roberta: A robustly optimized bert pretraining approach.” arXiv preprint arXiv:1907.11692 (2019).
- [7] Gururangan, Suchin, et al. “Don’t stop pretraining: adapt language models to domains and tasks.” arXiv preprint arXiv:2004.10964 (2020).
- [8] Xu, Liang, Xuanwei Zhang, and Qianqian Dong. “CLUECorpus2020: A large-scale Chinese corpus for pre-training language model.” arXiv preprint arXiv:2003.01355 (2020).
- [9] Devlin, Jacob, et al. “Bert: Pre-training of deep bidirectional transformers for language understanding.” arXiv preprint arXiv:1810.04805 (2018).
- [10] Schick, Timo, and Hinrich Schütze. “It’s not just size that matters: Small language models are also few-shot learners.” arXiv preprint arXiv:2009.07118 (2020).
- [11] Wang, Sinong, et al. “Entailment as few-shot learner.” arXiv preprint arXiv:2104.14690 (2021).
- [12] Zhang, Hongyi, et al. “mixup: Beyond empirical risk minimization.” arXiv preprint arXiv:1710.09412 (2017).
- [13] Verma, Vikas, et al. “Manifold mixup: Better representations by interpolating hidden states.” International Conference on Machine Learning. PMLR, 2019.
- [14] Verma, Vikas, et al. “Manifold mixup: Better representations by interpolating hidden states.” International Conference on Machine Learning. PMLR, 2019.
- [15] Wu, Lijun, et al. “R-drop: regularized dropout for neural networks.” Advances in Neural Information Processing Systems 34 (2021).
- [16] 小样本学习及其在美团场景中的应用
大模型(LLMs)高频面题全面整理(🌟2025 Offer 必备🌟)
全面总结了【大模型面试】的高频面题和答案解析,答案尽量保证通俗易懂且有一定深度。
适合大模型初学者和正在准备面试的小伙伴。
希望也能帮助你快速完成面试准备,先人一步顺利拿到高薪 Offer 🎉🎉🎉
一、大模型进阶面 🎯
💯【大模型进阶面 之 DeepSeek篇】 你必须要会的高频面题
- 一、概念篇
- 二、模型结构篇
- 三、预训练篇
- 四、有监督微调篇
- 五、强化学习篇
💯【大模型进阶面 之 模型编辑篇】 你必须要会的高频面题
- 模型编辑(Model Editing)核心目标是什么?
- 对比重新预训练和微调,模型编辑的优势和适用场景是什么?
- 如何用模型编辑修正大语言模型中的知识错误?
- 如何量化评估模型编辑的五大性质?
- 模型编辑局部性如何避免“牵一发而动全身”的问题?
- 知识缓存法(如SERAC)的工作原理是什么?
- 附加参数法(如T-Patcher)如何在不改变原始模型架构的情况下实现编辑?
- 知识缓存法和附加参数法的优缺点有何优缺点?
- ROME方法如何通过因果跟踪实验定位知识存储位置?
- 元学习法(如MEND)如何实现“学习如何编辑”?
- 元学习法的双层优化框架如何设计?
- More …
💯【大模型进阶面 之 模型压缩篇】 你必须要会的高频面题
- 💯 为什么需要对大模型进行压缩和加速?
- 💯 什么是低秩分解?
- 💯 什么是奇异值分解(SVD)?
- 💯 权值共享为什么有效?
- 💯 什么是模型量化?
- 💯 什么是混合精度分解?
- 💯 什么是基于反馈的知识蒸馏?
- 💯 什么是基于特征的知识蒸馏?
- 💯 模型蒸馏的损失函数是什么?
- 💯 描述一下剪枝的基本步骤?
- More …
💯【大模型进阶面 之 分布式训练篇】 你必须要会的高频面题
- PS架构和Ring-AllReduce架构有何不同?
- 什么是张量并行,如何使用集群计算超大矩阵?
- 讲一讲谷歌的GPipe算法?
- 讲一讲微软的PipeDream算法?
- ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?
- 用DeepSpeed进行训练时主要配置哪些参数?
- More …
二、大模型微调面 🎯
💯【大模型微调面 之 SFT篇】 你必须要会的高频面题
- 💯 从零训练一个大模型有哪几个核心步骤?
- 💯 为什么要对LLM做有监督微调(SFT)?
- 💯 如何将一个基础模型训练成一个行业模型?
- 💯 如何准备SFT阶段的训练数据?
- 💯 如何自动生成指令构建SFT的训练数据?
- 💯 LM做有监督微调(SFT)变傻了怎么办?
- 💯 有监督微调(SFT)和人工偏好对齐(RLHF)有何区别?
- More …
💯【大模型微调面 之 PEFT篇】 你必须要会的高频面题
- 💯 全量微调与参数高效微调的区别是什么?
- 💯 什么是轻度微调?轻度微调有哪些常用方法?
- 💯 什么是BitFit微调?
- 💯 分层微调如何设置学习率?
- 💯 什么是适配器微调?适配器微调有哪些优势?
- 💯 讲一讲IA3微调?
- 💯 提示学习(Prompting) 代表方法有哪些?
- 💯 指令微调(Instruct-tuning) 和 提示学习(Prompting)的区别是什么?
- 💯 详细说明LoRA的工作原理及其优势?
- 💯 LoRA存在低秩瓶颈问题,ReLoRA和AdaLoRA分别通过哪些方法改进?
- 💯 动态秩分配(如AdaLoRA)如何根据层的重要性调整秩?
- More …
💯【大模型微调面 之 提示学习篇】 你必须要会的高频面题 查看答案
- 💯 提示学习(Prompting) 代表方法有哪些?
- 💯 前缀微调(Prefix-tining)的核心思想?
- 💯 提示微调(Prompt-tuning)的核心思想?
- 💯 P-tuning 的动机是什么?
- 💯 P-tuning v2 进行了哪些改进?
- 💯 提示微调(Prompt-tuning)与 Prefix-tuning 区别是什么?
- 💯 提示微调(Prompt-tuning)与 fine-tuning 区别是什么?
- More …
💯【大模型微调面 之 RLHF篇】 你必须要会的高频面题
- 💯 RLHF有哪几个核心流程?
- 💯 RLHF与SFT的本质区别是什么?为什么不能只用SFT?
- 💯 什么是人类偏好对齐中的"对齐税"(Alignment Tax)?如何缓解?
- 💯 在强化学习中,基于值函数的和基于策略的的优化方法有何区别?
- 💯 什么是近端策略优化(PPO)?
- 💯 RLHF中的PPO主要分哪些步骤?
- 💯 PPO中的重要性采样(Importance Sampling)如何修正策略差异?
- 💯 DPO如何通过隐式奖励建模规避强化学习阶段?
- 💯 DPO vs PPO:训练效率与性能上限的对比分析?
- 💯 RLHF训练数据的格式是什么样的?
- 💯 如何选择人类偏好对齐训练算法?
- More …
💯【大模型微调面 之 提示工程篇】 你必须要会的高频面题
- 💯 Prompt工程与传统微调的区别是什么?
- 💯 如何规范编写Prompt?
- 💯 上下文学习三种形式(零样本、单样本、少样本)的区别?
- 💯 如何通过预训练数据分布和模型规模优化上下文学习效果?
- 💯 思维链(CoT)的核心思想是什么?
- 💯 按部就班(如 Zero-Shot CoT、Auto-CoT)、三思后行(如 ToT、GoT)、集思广益(如 Self-Consistency)三种 CoT 模式有何异同?
- More …
三、大模型(LLMs)基础面 🎯
💯【大模型基础面 之 LLM架构篇】 你必须要会的高频面题
- 💯 LLM架构对Transformer都有哪些优化?
- 💯 什么是正弦(Sinusoidal)位置编码?
- 💯 什么是旋转位置编码(RoPE)?
- 💯 RoPE相对正弦位置编码有哪些优势?
- 💯 RoPE如何进行外推?
- 💯 如何进行位置线性内插(Position Interpolation)?
- 💯 NTK-Aware Scaled RoPE 和位置线性内插的区别是什么?
- 💯 PreNorm和PostNorm有何不同?
- 💯 为什么PreNorm通常能提升训练稳定性?
- 💯 为何使用 RMSNorm 代替 LayerNorm?
- 💯 LLM使用SwiGLU相对于ReLU有什么好处?
- 💯 SwiGLU的参数量是否会显著增加?如何优化?
- More …
💯【大模型基础面 之 注意力机制篇】 你必须要会的高频面题
- 💯 为什么要引入 Attention 机制?
- 💯 Soft Attention 是什么?
- 💯 Hard Attention 是什么?
- 💯 Self-Attention 是什么?
- 💯 多查询注意力(Multi-Query Attention)是什么?
- 💯 分组查询注意力(Grouped Query Attention)是什么?
- 💯 分页注意力(Paged Attention)是什么?
- 💯 闪存注意力(Flash Attention)是什么?
- More …
💯【大模型基础面 之 Transformer篇】 你必须要会的高频面题
- 💯 Transformer 整体结构是怎么样的?
- 💯 Transformer的输入中为什么要添加位置编码?
- 💯 Transformer的位置编码是如何计算的?
- 💯 Position encoding为什么选择相加而不是拼接呢?
- 💯 多头注意力相对于单头注意力有什么优势?
- 💯 Transformer中自注意力模块的计算过程?
- 💯 什么是缩放点积注意力,为什么要除以根号d_k?
- 💯 批归一化和层归一化的区别?
- 💯 Layer Normalization 有哪几个可训练参数?
- 💯 Transformer 中有几种 Mask?
- More …
四、NLP 任务实战面 🎯
💯【NLP 任务实战面 之 文本分类篇】 你必须要会的高频面题
- 如何用检索的方式做文本分类?
- 如何用Prompt的方式做文本分类?
- 使用LLM做文本分类任务为何需要做标签词映射(Verbalizer)?
- 文本分类任务中有哪些难点?
- 如何解决样本不均衡的问题?
- 如果类别会变化如何设计文本分类架构?
- More …
💯【NLP 任务实战面 之 实体识别篇】 你必须要会的高频面题
- 实体识别中有哪些难点?
- CRF为什么比Softmax更适合NER?
- 如何使用指针标注方式做NER任务?
- 如何使用多头标注方式做NER任务?
- 如何使用片段排列方式做NER任务?
- 实体识别有哪些常用的解码方式?
- 如何解决实体嵌套问题?
- 实体识别的数据是如何进行标注的?
- 如何解决超长实体识别问题?
- More …
💯【NLP 任务实战面 之 关系抽取篇】 你必须要会的高频面题
- 常见关系抽取流程的步骤是怎样的?
- 如何抽取重叠关系和复杂关系?
- 介绍下基于共享参数的联合抽取方法?
- 介绍下基于联合解码的联合抽取方法?
- 关系抽取的端到端方法和流水线方法各有什么优缺点?
- 在进行跨句子甚至跨段落的关系抽取时,会遇到哪些特有的挑战?
💯【NLP 任务实战面 之 RAG篇】 你必须要会的高频面题
- 用户问题总是召回不准确,在用户理解阶段可以做哪些优化?
- 文档问答中,如何构建索引,提升对用户问题的泛化能力?
- 如何合并多路检索的结果,对它们做排序?
- BM25检索器总是召回无关的知识,最可能的原因是什么?
- 如何构建重排序模型的微调数据?
- More …
五、NLP 基础面 🎯
💯【NLP 基础面 之 分词篇】 你必须要会的高频面题
💯【NLP 基础面 之 词嵌入篇】 你必须要会的高频面题
- 基于计数的表示方法存在哪些问题?
- CBOW 和 Skip-gram 哪个模型的词嵌入更好?
- Word2Vec的词向量存在哪些问题?
- 为什么说Word2vec的词向量是静态的?
- Word2Vec如何优化从中间层到输出层的计算?
- 负采样方法的关键思想的关键思想是什么?
- More …
💯【NLP 基础面 之 CNN篇】 你必须要会的高频面题
💯【NLP 基础面 之 RNN篇】 你必须要会的高频面题
💯【NLP 基础面 之 LSTM篇】 你必须要会的高频面题
- LSTM 如何缓解 RNN 梯度消失的问题?
- LSTM中记忆单元的作用是什么?
- LSTM有几个门,分别起什么作用?
- LSTM的前向计算如何进行加速?
- LSTM中的tanh和sigmoid分别用在什么地方?为什么?
- More …
💯【NLP 基础面 之 BERT模型篇】 你必须要会的高频面题
- 为什么说BERT是双向的编码语言模型?
- BERT 是如何区分一词多义的?
- BERT的输入包含哪几种嵌入?
- BERT的三个Embedding直接相加会对语义有影响吗?
- BERT模型输入长度超过512如何解决?
- 什么是 80-10-10 规则,它解决了什么问题?
- BERT 嵌入与 Word2Vec 嵌入有何不同?
- More …
💯【NLP 基础面 之 BERT变体篇】 你必须要会的高频面题
- ALBERT 使用的参数缩减技术是什么?
- RoBERTa 与 BERT 有什么不同?
- 在 ELECTRA 中,什么是替换标记检测任务?
- 如何在 SpanBERT 中掩盖标记?
- Transformer-XL 是怎么实现对长文本建模的?
- More …
💯【NLP 基础面 之 BERT实战篇】 你必须要会的高频面题
- BERT为什么不适用于自然语言生成任务(NLG)?
- 在问答任务中,如何计算答案的起始索引和结束索引?
- 如何将 BERT 应用于命名实体识别任务?
- 如何进行继续预训练?
- Bert 未登录词如何处理?
- BERT在输入层如何引入额外特征?
- More …
六、深度学习面 🎯
💯【深度学习面 之 激活函数篇】 你必须要会的高频面题
- 💯 为什么激活函数需要非线性函数?
- 💯 sigmoid 函数有什么缺点?
- 💯 tanh 函数作为激活函数有什么缺点?
- 💯 为什么选 relu 函数作为激活函数?
- 💯 为什么tanh收敛速度比sigmoid快?
- 💯 LLM使用SwiGLU相对于ReLU有什么好处?
- 💯 SwiGLU的参数量是否会显著增加?如何优化?
- More …
💯【深度学习面 之 优化器篇】 你必须要会的高频面题
- 💯 SGD是如何实现的?
- 💯 Momentum 是什么?
- 💯 Adagrad 是什么?
- 💯 RMSProp是什么?
- 💯 Adam 是什么?
- 💯 批量梯度下降(BGD)、随机梯度下降(SGD)与小批量随机梯度下降(Mini-Batch GD)的区别?
- More …
💯【深度学习面 之 正则化篇】 你必须要会的高频面题
- 💯 权重衰减的目的?
- 💯 L1 与 L2 的异同?
- 💯 为什么 L1 正则化 可以产生稀疏值,而 L2 不会?
- 💯 为什么Dropout可以解决过拟合问题?
- 💯 Dropout 在训练和测试阶段的区别是什么?
- 💯 如何选择合适的 Dropout 率?
- 💯 Dropout 和其他正则化方法(如 L1、L2 正则化)有何不同?
- More …
💯【深度学习面 之 归一化篇】 你必须要会的高频面题
- 💯 为什么归一化能提高求最优解速度?
- 💯 Batch Normalization 是什么?
- 💯 Layer Normalization 是什么?
- 💯 批归一化和组归一化的比较?
- 💯 批归一化和权重归一化的比较?
- 💯 批归一化和层归一化的比较?
- More …
💯【深度学习面 之 参数初始化篇】 你必须要会的高频面题
💯【深度学习面 之 过拟合篇】 你必须要会的高频面题
💯【深度学习面 之 模型评估篇】 你必须要会的高频面题
- 💯 混淆矩阵有何作用?
- 💯 什么是 F1-Score?
- 💯 什么是 Macro F1?
- 💯 什么是 Micro F1?
- 💯 什么是 Weight F1?
- 💯 Macro 和 Micro 有什么区别?
- 💯 ROC 曲线主要有什么作用?
- 💯 P-R 曲线有何作用?
- More …