【LLM】预训练||两句话明白儿的底层原理

预训练鼻祖阶段:目前认为是Bert时期

从字面上看,预训练模型(pre-training model)是先通过一批语料进行训练模型,然后在这个初步训练好的模型基础上,再继续训练或者另作他用。这样的理解基本上是对的,预训练模型的训练和使用分别对应两个阶段:预训练阶段(pre-training)和 微调(fune-tuning)阶段。

预训练阶段一般会在超大规模的语料上,采用无监督(unsupervised)或者弱监督(weak-supervised)的方式训练模型,期望模型能够获得语言相关的知识,比如句法,语法知识等等。经过超大规模语料的”洗礼”,预训练模型往往会是一个Super模型,一方面体现在它具备足够多的语言知识,一方面是因为它的参数规模很大。

微调阶段是利用预训练好的模型,去定制化地训练某些任务,使得预训练模型”更懂”这个任务。例如,利用预训练好的模型继续训练文本分类任务,将会获得比较好的一个分类结果,直观地想,预训练模型已经懂得了语言的知识,在这些知识基础上去学习文本分类任务将会事半功倍。利用预训练模型去微调的一些任务(例如前述文本分类)被称为下游任务(down-stream)。

以BERT为例,BERT是在海量数据中进行训练的,预训练阶段包含两个任务:MLM(Masked Language Model)和NSP (Next Sentence Prediction)。前者类似”完形填空”(Cloze),在一句中扣出一个单词,然后利用这句话的其他单词去预测被扣出的这个单词;后者是给定两句话,判断这两句话在原文中是否是相邻的关系。

BERT预训练完成之后,后边可以接入多种类型的下游任务,例如文本分类,序列标注,阅读理解等等,通过在这些任务上进行微调,可以获得比较好的实验结果。

MLM和NSP看了下面两篇博客基本是能够理解大概原理了

Bert预训练-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/KK_1657654189/article/details/122204640

这篇博客图文并茂~⭐⭐⭐⭐⭐

BERT预训练的任务MLM和NSP - 知乎 (zhihu.com)icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/562352255

这篇博客讲得简洁~ ⭐⭐⭐


总结:

预测遮挡单词(MLM)是一个多分类问题
预测下一个句子(NSP)是一个二分类问题
合并任务的目标函数就是两个任务目标函数之和
采用梯度下降方法更新合并任务模型参数


一张图整明白 MLM与NSP //我自己整理的版本,知识的搬运工,hh

① 一张图明白MLM(本质多分类问题

具体过程:

假如现在我们遮挡住了cat这个单词

那么我们会用mask标记这个被遮挡的单词,紧接着它就会被embedding层标记为Xm向量,输出记为Um向量,我们知道,Transformer的映射是多对一,所以Um向量会依赖所有的X向量,也就是说它会知道整句话的内容,那么就可以用它来预测被遮挡的单词是什么,将这个Um作为特征向量送入softmax分类器输出一个概率分布p,根据这个p值来判断被遮挡的词是什么。

 

这里,我们的希望的p值是越接近mask的one-hot编码越好

我们将被遮挡单词的ont-hot向量记为e,将CrossEntropy(e,p)作为损失函数,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数,bert预训练不需要人工标注数据,它用被遮挡的单词作为标签,可以自动生成标签,这样训练数据就可以想要多少就有多少,从而训练出一个很大的模型。

② 一张图明白NSP(本质二分类问题

一个样本的两个句子用[SEP]隔开,第一个句子的句首加上[CLS],第二个句子的句尾加上[SEP]。

样本一:[CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP],

标签:IsNext。

样本二:[CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP],

标签:NotNext。

向量C虽然在CLS的位置上,但它包含的是输入的两句话的全部信息,把C作为特征向量输入分类器Binary,得到一个介于0-1之间的值f,其中,1是代表两句话true,0代表两句话毫无关联,依旧用将CrossEntropy(e,f)作为损失函数,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数。

这样作预训练是因为:

相邻的两句话通常有关联,这样作二分类可以强化这种关联,让embedding层包含这种关联,而且encoder层中的self-attention层的作用恰好就是找相关性

bert将上述所讲的这两种任务结合起来训练Transformer,假如有两个单词被遮挡,就需要三个任务,也就是说三个损失函数,第一个损失函数是二分类(判断标签是true还是false),第二三个损失函数就是预测这两个单词,目标函数就是三个损失函数的加和,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数


Reference //这些链接最多花1h...,值得值得

语言模型BERT理解_bert语义理解_AI 菌的博客-CSDN博客

NLP预训练系列之一:预训练发展概述(上) - 知乎 (zhihu.com)

理解NLP中的屏蔽语言模型(MLM)和因果语言模型(CLM)_mlm模型-CSDN客

LLM(Large Language Models)通常是指大型语言模型,如通义千问、InferSent等,它们基于深度学习特别是Transformer架构。这些模型的核心原理包括: 1. **神经网络基础**:利用大量的神经元(节点)构成多层结构,每一层处理输入信息并传递给下一层。 2. **自注意力机制(Self-Attention)**:这是Transformer的关键组件,允许模型关注输入序列的不同部分,而不是逐词地处理,增强了模型对上下文的理解。 3. **Transformer编码器-解码器结构**:通常由编码器负责处理输入序列生成中间表示,而解码器用于根据这些表示生成新的文本。 4. **预训练微调**:模型通过大量无监督数据进行预训练,然后根据特定任务的数据进行有监督的微调,以优化其性能。 SD(Smart Devices 或 System-on-a-Chip)底层技术原理主要包括硬件层面的设计,比如: 1. **SoC集成**:System-on-Chip(片上系统)集成了CPU、GPU、内存控制器、I/O控制单元等多种功能在一个芯片上,减少信号传输距离,提高效率。 2. **硬件加速器**:为特定任务设计专用的硬件模块,如图形处理器加速图像处理,AI加速器加速机器学习计算。 3. **低功耗设计**:为了延长设备电池寿命,SD采用能效高的制程工艺和节能算法。 4. **嵌入式操作系统**:针对资源受限的设备定制轻量级的操作系统,支持设备的高效管理和通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值