大模型的基础知识

📕参考:大模型研讨课第一期:Why LLMs?、模型结构1(共10期)_哔哩哔哩_bilibili

(本系列是课程笔记)


tokenization(词元化/分词)

NLP中如何对文本进行预处理(将文本转换为训练数据)?

词元化:分词,变成token 最后再嵌入转换变成训练数据  

tokenization(词元化/分词):将清洗后的文本字符串划分为有意义的基本单元(词元) 组成的序列。

三个基本概念:token(词元)、tokenization(词元化/分词)、词表。

 Subword Tokenization: Byte Pair Encoding (BPE,字节对编码)

核心思路:不断将最频繁出现的一对词元合并成一个词元。

刚开始每个字符为一个词元,然后找一直成对出现的将他们合并成新的词元,一直循环。

这样也就实现了让出现频率高的有自己的token,出现频率低的划分成sub-words。

上面那个句子“A hippopotamus ate my homework.”  

hippopotamus 在数据库的数据中这个词出现的频率较低,不足以让他单独成为一个词,所以它被划分了子词,hip pop。

homework 明显是由home和work拼接而成的,但是由于数据库中 homework这个词出现的频率很高,所以就让它单独成为一个新的词元了。

 以上这些是分词,将清洗后的文本字符串划分为有意义的基本单元(词元) 组成的序列。

分词之后呢,计算机还是不容易处理,需要进行编码,生成embedding。


embedding

embedding(词表示/词嵌入): 将离散的token转化为连续的向量表示,方便计算机进行运算。

one-hot

one-hot:  one-hot(独热)编码是最简单的词向量表达方式。它以字典建立向量,每个词都单独用一个很长的向量表示,该向量的维度是词典大小。向量中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。

缺陷:无法准确表达不同词之间的相似度(任意两个token的余弦相似度为0),维度较高,稀疏表示,计算不友好。

举例:

word2vec

word2vec:可以较为准确的表达不同词之间的相似性和关系稠密表示,维度降低,计算更加友好。

Continuous Bag-of-Words(CBOW,连续词袋模型):用前后词的概率预测中间的词。

Skip-gram(跳元模型):用中间的预测两边的。

word2vec embedding 方式:

训练数据:利用大量语料,无监督训练。

训练方法:将条件概率转化为若干个二类分类问题。

再加一些加速的方法:层次化softmax、negative sampling

它的一个优势是:可以自发的发现不同词之间的相似性和关系。

下面这个 King – Man = Queen – Woman,然后可以推出 Queen = King – Man + Woman

Transformer中使用的embedding:学习embedding矩阵

方法: 输入为token(如one-hot),输出embedding向量。

输入为token(如one-hot),embedding过程使用线性变换(与embedding矩阵相乘),在训练过程中学习embedding矩阵权重。

解释:

one-hot中的 某个词是 knowledge = [1 0 0 0 0 0],那么 一个句子的编码可能就是一个【矩阵】:

给了一个embedding matrix (embedding 矩阵)对原来的token做线性变换,最后得到该词的embedding。

与embedding矩阵相乘,相当于把与embedding矩阵 中对应的一行抽出来,这就是学习embedding矩阵。


 position encoding(位置编码)

position encoding (位置编码):

 动机:序列中token的顺序信息对于句子语义表达很重要

 作用:表示序列中的位置信息

循环神经网络中包含位置信息,attention会丢失序列的位置信息,所以需要补进去(用位置编码补进去)

 三角函数表示position encoding(Transformer里的)

transformer的输入是position encoding与 token embedding直接相加

这就是用不同的频率来记录相对的位置。 

i越大,频率越小,周期越大。看Col6 和Col9 ,9的周期就比6的大。

position embedding(BERT使用)

BERT里面是对于每个位置,从数据中学习一个embedding。

缺点:单独学习的,所以可能相对位置信息编码能力不足。

rotary position encoding(RoPE,旋转位置编码)

如果 q k 同时转,那它们相对位置不变 

计算化简方法:任意偶数维的RoPE可以表示为二维形式的拼接

对于 token 序列中的每个词嵌入向量,首先计算其对应的 query key 向量(x1x2),

然后对每个 token 位置都计算对应的旋转位置编码(mθ),

接着对每个 token 位置的 query key 向量的元素按照两两一组应用旋转变换,

最后再计算 query key 之间的内积得到 self-attention 的计算结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

‌‌Anastasia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值