高端网站设计制作的,网络营销公司模拟创建实训,如何建设网站咨询跳转页面,广西城乡和住房建设厅网站【大模型基础_毛玉仁】1.4 语言模型的采样方法 1.4 语言模型的采样方法1.4.1 概率最大化方法1#xff09;贪心搜索#xff08;GreedySearch#xff09;2#xff09;波束搜索#xff08;BeamSearch#xff09; 1.4.2 随机采样方法1#xff09;Top-K 采样2#xff09;Top… 【大模型基础_毛玉仁】1.4 语言模型的采样方法 1.4 语言模型的采样方法1.4.1 概率最大化方法1贪心搜索GreedySearch2波束搜索BeamSearch 1.4.2 随机采样方法1Top-K 采样2Top-P 采样3Temperature 机制 1.4 语言模型的采样方法
语言模型的输出为一个向量该向量的每一维代表着词典中对应词的概率。自回归范式的文本生成任务中 语言模型解码将向量解码为文本的过程。 两类主流的解码方法(1).概率最大化方法; (2). 随机采样方法。 1.4.1 概率最大化方法
设词典D为 { w 1 , w 2 , w 3 , . . . , w N } \{w_1,w_2,w_3,...,w_N\} {w1,w2,w3,...,wN}第i轮自回归中输出的向量为 o i { o i [ w d ] } d 1 ∣ D ∣ o_i \{o_i[w_d]\}_{d1}^{|D|} oi{oi[wd]}d1∣D∣M轮自回归后生成的文本为 { w N 1 , w N 2 , w N 3 , . . . , w N M } \{w_{N1},w_{N2},w_{N3},...,w_{NM}\} {wN1,wN2,wN3,...,wNM}。生成文档的出现的概率计算如下 P ( w N 1 : N M ) ∏ i N N M − 1 P ( w i 1 ∣ w 1 : i ) ∏ i N N M − 1 o i [ w i 1 ] P(w_{N1:NM}) \prod_{iN}^{NM-1} P(w_{i1}|w_{1:i}) \prod_{iN}^{NM-1} o_i[w_{i1}] P(wN1:NM)iN∏NM−1P(wi1∣w1:i)iN∏NM−1oi[wi1]
基于概率最大化的解码方法旨在最大化 P ( w N 1 : N M ) P(w_{N1:NM}) P(wN1:NM)本节将介绍两种常用的基于概率最大化的解码方法。
1贪心搜索GreedySearch
贪心搜索在在每轮预测中都选择概率最大的词即 w i 1 arg m a x w ∈ D o i [ w ] w_{i1} \arg max_{w \in D} o_i[w] wi1argmaxw∈Doi[w]
argmax 用于找出使得后面的函数达到最大值的变量。在这里它用于选择使得 o i [ w ] o_i[w] oi[w] 最大的w。
贪心搜索只顾“眼前利益”忽略了“远期效益”。当前概率大的词有可能导致后续的词概率都很小。贪心搜索容易陷入局部最优难以达到全局最优解。
以图1.8为例当输入为“生成一个以长颈鹿开头的故事长颈鹿”时预测第一个词为“是” 的概率最高为0.3。但选定“是”之后其他的词的概率都偏低。如果按照贪心 搜索的方式我们最终得到的输出为“是草食”。其概率仅为0.03。而如果我们在 第一个词选择了概率第二的“脖子”然后第二个词选到了“长”最终的概率可 以达到0.1。
通过此例可以看出贪心搜索在求解概率最大的时候容易陷入局部最 优。为缓解此问题可以采用波束搜索BeamSearch方法进行解码。
图1.8: 贪心搜索与波束搜索对比以及概率最大化解码的潜在问题。
2波束搜索BeamSearch
波束搜索在每轮预测中都先保留b个可能性最高的词 B i { w i 1 1 , w i 1 2 , . . . , w i 1 b } B_i \{w_{i1}^1, w_{i1}^2, ..., w_{i1}^b\} Bi{wi11,wi12,...,wi1b}。
在结束搜索时得到M个集合即 { B i } i 1 M \{B_i\}_{i1}^M {Bi}i1M。找出最优组合使得联合概率最大即 { w N 1 , . . . , w N M } arg m a x { w i ∈ B i for 1 ≤ i ≤ M } ∏ i 1 M o N i [ w i ] \{w_{N1}, ..., w_{NM}\} \arg max_{\{w^i \in B_i \text{ for } 1 \leq i \leq M\}} \prod_{i1}^M o_{Ni}[w^i] {wN1,...,wNM}argmax{wi∈Bi for 1≤i≤M}i1∏MoNi[wi]
以图1.8为例如果我们采用b2的波束搜索方法我们可以得到“是草食”“是反刍”“脖子长”“脖子优雅”四个候选组合对应的概率分别为0.030.0270.10.04。我们容易选择到概率最高的“脖子长”
但是概率最大的文本通常是最为常见的文本。文本缺乏多样性。为了提升 生成文本的新颖度我们可以在解码过程中加入一些随机元素。下节将对随机采样方法 进行介绍。 1.4.2 随机采样方法
为了增加生成文本的多样性随机采样的方法在预测时增加了随机性。在每轮预测时其先选出一组可能性高的候选词然后按照其概率分布进行随机采样采样出的词作为本轮的预测结果。
当前主流的Top-K采样和Top-P采样方法分别通过指定候选词数量和划定候选词概率阈值的方法对候选词进行选择。在采样方法中加入Temperature 机制可以对候选词的概率分布进行调整。
1Top-K 采样
Top-K采样每轮预测都选K个概率最高的候选词然后对这些词的概率用softmax函数进行归一化得到分布函数 p ( w i 1 1 , … , w i 1 K ) { exp ( o i [ w i 1 1 ] ) ∑ j 1 K exp ( o i [ w i 1 j ] ) , … , exp ( o i [ w i 1 K ] ) ∑ j 1 K exp ( o i [ w i 1 j ] ) } p(w_{i1}^1, \ldots, w_{i1}^K) \left\{ \frac{\exp(o_i[w_{i1}^1])}{\sum_{j1}^K \exp(o_i[w_{i1}^j])}, \ldots, \frac{\exp(o_i[w_{i1}^K])}{\sum_{j1}^K \exp(o_i[w_{i1}^j])} \right\} p(wi11,…,wi1K){∑j1Kexp(oi[wi1j])exp(oi[wi11]),…,∑j1Kexp(oi[wi1j])exp(oi[wi1K])} e x p ( o i [ w i 1 j ] ) exp(o_i[w_{i1}^j]) exp(oi[wi1j])表示模型对候选词 w i 1 j w_{i1}^j wi1j 的评分通常是通过神经网络计算得到的。
然后根据该分布采样出本轮的预测的结果即 w i 1 ∼ p ( w i 1 1 , … , w i 1 K ) w_{i1} \sim p(w_{i1}^1, \ldots, w_{i1}^K) wi1∼p(wi11,…,wi1K)
Top-K 采样可以有效的增加生成文本的新颖度。
两大致命缺陷 当候选词的分布的方差较大时可能会导致本轮预测选到概率较小、不符合常理的词从而产生“胡言乱语”。 当候选词的分布的方差较小时固定尺寸的候选集中无法容纳更多的具有相近概率的词导致候选集不够丰富从而导致所选词缺乏新颖性。
相较而言Top-P核采样动态调整候选集大小既能过滤低概率词避免荒谬输出又能在分布平缓时纳入更多候选词平衡合理性与多样性。
2Top-P 采样
Top-P 采样的核心思想是在每一步生成下一个词时只从累积概率超过某个阈值 p 的最小单词集合中进行随机采样而不考虑其他低概率的单词。
这种方法也被称为核采样Nucleus Sampling因为它只关注概率分布的核心部分而忽略了尾部部分。
其设定阈值p来对候选集进行选取。其候选集可表示为 S p { w i 1 1 , w i 1 2 , … , w i 1 ∣ S p ∣ } S_p \{w_{i1}^1, w_{i1}^2, \ldots, w_{i1}^{|S_p|}\} Sp{wi11,wi12,…,wi1∣Sp∣}其中对 S p S_p Sp有 ∑ w ∈ S p o i [ w ] ≥ p \sum_{w \in S_p} o_i[w] \geq p ∑w∈Spoi[w]≥p。候选集中元素的分布服从 p ( w i 1 1 , … , w i 1 ∣ S p ∣ ) { exp ( o i [ w i 1 1 ] ) ∑ j 1 ∣ S p ∣ exp ( o i [ w i 1 j ] ) , … , exp ( o i [ w i 1 ∣ S p ∣ ] ) ∑ j 1 ∣ S p ∣ exp ( o i [ w i 1 j ] ) } p(w_{i1}^1, \ldots, w_{i1}^{|S_p|}) \left\{ \frac{\exp(o_i[w_{i1}^1])}{\sum_{j1}^{|S_p|} \exp(o_i[w_{i1}^j])}, \ldots, \frac{\exp(o_i[w_{i1}^{|S_p|}])}{\sum_{j1}^{|S_p|} \exp(o_i[w_{i1}^j])} \right\} p(wi11,…,wi1∣Sp∣){∑j1∣Sp∣exp(oi[wi1j])exp(oi[wi11]),…,∑j1∣Sp∣exp(oi[wi1j])exp(oi[wi1∣Sp∣])}
然后根据该分布采样出本轮的预测的结果即 w i 1 ∼ p ( w i 1 1 , … , w i 1 ∣ S p ∣ ) w_{i1} \sim p(w_{i1}^1, \ldots, w_{i1}^{|S_p|}) wi1∼p(wi11,…,wi1∣Sp∣)
Top-P采样可以避免选到概率较小、不符合常理的词从而减少“胡言乱语”
其还可以容纳更多的具有相近概率的词增加文本的丰富度改善“枯燥无趣”
3Temperature 机制
Top-K 采样和 Top-P 采样的随机性由语言模型输出的概率决定不可自由调整。引入Temperature 机制可以对解码随机性进行调节。
Temperature机制通过对Softmax 函数中的自变量进行尺度变换然后利用Softmax函数的非线性实现对分布的控 制。设Temperature 尺度变换的变量为T。
引入Temperature 后Top-K 采样的候选集的分布如下所示 p ( w i 1 1 , … , w i 1 K ) { exp ( o i [ w i 1 1 ] T ) ∑ j 1 K exp ( o i [ w i 1 j ] T ) , … , exp ( o i [ w i 1 K ] T ) ∑ j 1 K exp ( o i [ w i 1 j ] T ) } p(w_{i1}^1, \ldots, w_{i1}^K) \left\{ \frac{\exp\left(\frac{o_i[w_{i1}^1]}{T}\right)}{\sum_{j1}^K \exp\left(\frac{o_i[w_{i1}^j]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_{i1}^K]}{T}\right)}{\sum_{j1}^K \exp\left(\frac{o_i[w_{i1}^j]}{T}\right)} \right\} p(wi11,…,wi1K)⎩ ⎨ ⎧∑j1Kexp(Toi[wi1j])exp(Toi[wi11]),…,∑j1Kexp(Toi[wi1j])exp(Toi[wi1K])⎭ ⎬ ⎫
引入Temperature 后Top-P 采样的候选集的分布如下所示 p ( w i 1 1 , … , w i 1 ∣ S p ∣ ) { exp ( o i [ w i 1 1 ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w i 1 j ] T ) , … , exp ( o i [ w i 1 ∣ S p ∣ ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w i 1 j ] T ) } p(w_{i1}^1, \ldots, w_{i1}^{|S_p|}) \left\{ \frac{\exp\left(\frac{o_i[w_{i1}^1]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_{i1}^j]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_{i1}^{|S_p|}]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_{i1}^j]}{T}\right)} \right\} p(wi11,…,wi1∣Sp∣)⎩ ⎨ ⎧∑j1∣Sp∣exp(Toi[wi1j])exp(Toi[wi11]),…,∑j1∣Sp∣exp(Toi[wi1j])exp(Toi[wi1∣Sp∣])⎭ ⎬ ⎫
容易看出 当T 1时Temperature机制会使得候选集中的词的概率差距减 小分布变得更平坦从而增加随机性。 当0T1时Temperature机制会使得 候选集中的元素的概率差距加大强者越强弱者越弱概率高的候选词会容易被 选到从而随机性变弱。
Temperature机制可以有效的对随机性进行调节来满足不同的需求。
. 其他参考【大模型基础_毛玉仁】系列文章 声明资源可能存在第三方来源若有侵权请联系删除