大数据理论基础-模型架构学习笔记

大模型的模型概括

当前大规模语言模型的能力在于给定一个基于自身需求的prompt就可以生成符合需求的结果。形式可以表达为:

prompt⇝completion

从数学角都即学习一个分布:
t r a i n i n g D a t a = > p ( x t , . . . , x L ) trainingData => p(x_t,...,x_L) trainingData=>p(xt,...,xL)

分词

分词是一个非常古老的课题,其目的是将任意字符串转换为标记序列

基于空格的分词

对中文德语等很难生效,因此这里讨论了一些对于好的分词的标准:

  • 首先我们不希望有太多的标记(极端情况:字符或字节),否则序列会变得难以建模。
  • 其次我们也不希望标记过少,否则单词之间就无法共享参数(例如,mother-in-law和father-in-law应该完全不同吗?),这对于形态丰富的语言尤其是个问题(例如,阿拉伯语、土耳其语等)。
  • 每个标记应该是一个在语言或统计上有意义的单位。

Byte pair encoding

著名的BPE编码算法,其需要通过模型训练数据进行学习以获得一些频率特征。

训练原理

Unicode的问题

由于Unicode编码字符非常多,这会使得训练数据稀疏性过大。
因此可以对字节而不是Unicode字符进行BPE算法,以中文为例:

今天⇒[x62, x11, 4e, ca]
BPE算法在这里的作用是为了进一步减少数据的稀疏性。通过对字节级别进行分词,可以在多语言环境中更好地处理Unicode字符的多样性,并减少数据中出现的低频词汇,提高模型的泛化能力。通过使用字节编码,可以将不同语言中的词汇统一表示为字节序列,从而更好地处理多语言数据。

Unigram model

unigram模型的目标是定义一个目标函数来捕捉一个好的分词的特征,其具有更好的适应性。

给定一个序列 x i : L x_{i:L} xi:L , 一个分词器 T T T p ( x 1 : L ) = ∏ ( i , j ) ∈ T ( p ( x i : j ) ) p(x_{1:L})=\prod_{(i,j)\in{T}}(p(x_{i:j})) p(x1:L)=(i,j)T(p(xi:j))的一个集合。

算法实例
通过将各个分词的概率相乘,可以得到整个训练数据的似然值,该似然值越高,则分词结果更为合理。该算法具体由以下流程表示:
算法流程
这一过程目的在于剔除对似然值贡献较小的词汇,减少词汇的稀疏性,通过迭代优化和剪枝,这词汇表会得到提升,模型性能也会得到提升。
(不过不是很懂模型是怎么通过这一优化过程训练的…,有待重新学习)

模型架构

上下文向量表征(Contextual Embedding)要比整体的概率分布表示更高效,其主要标记序列由其相应的上下文向量进行表征:
在这里插入图片描述
即对某个token的表征要通过其一定范围内的上下文token进行确定,通过定义嵌入函数,其能对标记序列生成上下文向量表征。

(未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值