天娇易业网站建设公司,cms客户管理系统程序源码,私人可注册网站吗,工作室英文语言模型的采样方法 语言模型的输出为一个向量#xff0c;该向量的每一维代表着词典中对应词的概率。 在采用自回归范式的文本生成任务中#xff0c;语言模型将依次生成一组向量并将其解码为文本。将这组向量解码为文本的过程被成为语言模型解码。 解码过程显著影响着生成文本…语言模型的采样方法 语言模型的输出为一个向量该向量的每一维代表着词典中对应词的概率。 在采用自回归范式的文本生成任务中语言模型将依次生成一组向量并将其解码为文本。将这组向量解码为文本的过程被成为语言模型解码。 解码过程显著影响着生成文本的质量。当前两类主流的解码方法可以总结为 (1). 概率最大化方法; (2).随机采样方法。 自回归
自回归Autoregression简称AR是一种统计模型用于描述时间序列数据中各个时间点的值与其之前时间点值之间的关系。在自回归模型中一个变量的当前值被认为是其过去值的函数加上一个随机误差项。这种模型用于预测和分析时间序列数据。
基本概念
时间序列数据指按时间顺序排列的数据点。自回归模型假设当前值 Y t Y_t Yt 是过去 p p p 个时间点值的线性组合加上一个随机误差项 ϵ t \epsilon_t ϵt。数学表达式为 Y t c ϕ 1 Y t − 1 ϕ 2 Y t − 2 … ϕ p Y t − p ϵ t Y_t c \phi_1 Y_{t-1} \phi_2 Y_{t-2} \ldots \phi_p Y_{t-p} \epsilon_t Ytcϕ1Yt−1ϕ2Yt−2…ϕpYt−pϵt 其中 c c c 是常数项 ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \ldots, \phi_p ϕ1,ϕ2,…,ϕp 是模型参数 ϵ t \epsilon_t ϵt 是随机误差项。
模型类型
AR(1)一阶自回归模型只包含一个滞后项。 Y t c ϕ 1 Y t − 1 ϵ t Y_t c \phi_1 Y_{t-1} \epsilon_t Ytcϕ1Yt−1ϵtAR§p阶自回归模型包含 p p p 个滞后项。 Y t c ϕ 1 Y t − 1 ϕ 2 Y t − 2 … ϕ p Y t − p ϵ t Y_t c \phi_1 Y_{t-1} \phi_2 Y_{t-2} \ldots \phi_p Y_{t-p} \epsilon_t Ytcϕ1Yt−1ϕ2Yt−2…ϕpYt−pϵt
参数估计
自回归模型的参数通常通过最小化误差项的平方和来估计这可以通过最大似然估计MLE或最小二乘法OLS来实现。
注意事项
自回归模型假设误差项是白噪声即具有零均值和恒定方差。模型的阶数 p p p 需要根据数据和问题背景来确定过高或过低的阶数都可能导致模型拟合不佳。
自回归模型是时间序列分析中的基础工具通过捕捉数据的自相关性帮助我们理解和预测时间序列数据的行为。
概率最大化方法
目标 目标是最大化生成文本 P ( w N 1 : N M ) P(w_{N1}:NM) P(wN1:NM) 的概率即在给定前文的情况下找到最有可能的后续词序列。 公式 生成文本的概率可以表示为 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)∏iNNM−1P(wi1∣w1:i)∏iNNM−1oi[wi1]
贪心搜索Greedy Search
初始化 从一个初始状态或初始词开始通常是特殊的起始符号如 s。 迭代选择 在每一步模型根据当前的上下文可能是空的或之前选择的词序列计算所有可能的下一个词的概率。 选择概率最大的词 选择概率最高的词作为当前步骤的输出 w i 1 arg max w ∈ D o i [ w ] w_{i1} \arg\max_{w \in D} o_i[w] wi1argmaxw∈Doi[w] 其中 w i 1 w_{i1} wi1 是下一步的词 D D D 是词汇表 o i o_i oi 是在给定上下文下计算的输出概率分布。 更新上下文 将选择的词添加到当前上下文中并更新模型的状态。 重复 重复步骤2-4直到达到终止条件如特定的结束符号 /s 或达到最大序列长度。 问题 贪心搜索只考虑当前步骤中概率最大的词可能导致后续词的概率都很小陷入局部最优。
贪心搜索的问题
局部最优 贪心搜索在每一步都选择局部最优的词这可能导致整个序列的全局最优解被忽略。换句话说它可能会陷入局部最优而不是找到全局最优解。 缺乏回溯 贪心搜索不进行回溯一旦选择了一个词就会一直沿着这个选择前进不会考虑其他可能的路径。 忽略长距离依赖 在某些情况下早期的贪心选择可能会影响序列的长距离依赖关系使得最终的输出序列质量下降。### 波束搜索Beam Search
波束搜索Beam Search
波束搜索Beam Search是一种在序列生成问题中常用的启发式搜索算法特别是在自然语言处理领域如机器翻译、文本摘要等任务中。它旨在找到使得整个序列的概率最大化的词序列。
初始化 从一个初始状态开始通常是特殊的起始符号如 s。初始化一个波束其中包含这个起始状态。 扩展波束 在每一步 i i i从 N N N 到 N M − 1 NM-1 NM−1对于波束中的每个状态生成所有可能的下一个词。计算每个扩展状态的概率并选择概率最高的 b b b个状态作为新的波束。这里 b b b 是波束的大小表示在每一步保留的可能性最高的词的数量。在每轮预测中保留 b b b 个可能性最高的词构成波束 min o i [ w ] for w ∈ B i max o i [ w ] for w ∈ D − B i \min_{o_i[w] \text{ for } w \in B_i} \max_{o_i[w] \text{ for } w \in D - B_i} minoi[w] for w∈Bimaxoi[w] for w∈D−Bi 终止条件 继续扩展波束直到达到预定的序列长度 M M M 或遇到终止符号 /s。 选择最优序列 在所有 M M M 个波束中选择联合概率最大的词序列作为最终输出 { w N 1 , w N 2 , … , w N M } arg max { w i ∈ B i for 1 ≤ i ≤ M } ∏ i 1 M o N i [ w i ] \{w_{N1}, w_{N2}, \ldots, w_{NM}\} \arg\max_{\{w_i \in B_i \text{ for } 1 \leq i \leq M\}} \prod_{i1}^{M} o_{Ni}[w_i] {wN1,wN2,…,wNM}argmax{wi∈Bi for 1≤i≤M}∏i1MoNi[wi]
波束搜索的关键点
波束修剪Beam Pruning 在每一步只保留概率最高的 b b b 个状态这有助于减少计算量并避免无效搜索。 长度归一化 有时波束搜索会考虑长度归一化即通过惩罚过长的序列来平衡长度对概率的影响。 多样性 为了增加结果的多样性可以采用一些技术如束熵搜索Beam Entropy Search或束多样性搜索Beam Diversity Search。
波束搜索的优势
全局最优 与贪心搜索相比波束搜索考虑了多个候选词更有可能找到全局最优解。 避免局部最优 波束搜索避免了贪心搜索中的局部最优问题因为它在每一步都考虑了多个可能的下一步。 灵活性 波束搜索的参数如波束大小 b b b可以根据具体任务进行调整以平衡计算成本和结果质量。
概率最大化方法的问题
平庸文本 概率最大化方法倾向于生成最常见的平庸文本缺乏多样性和新颖性。 改进 为了提升生成文本的新颖度和多样性可以在解码过程中加入随机元素如随机采样方法。
随机采样方法
为了增加生成文本的多样性随机采样的方法在预测时增加了随机性。在每轮预测时其先选出一组可能性高的候选词然后按照其概率分布进行随机采样采样出的词作为本轮的预测结果。
当前主流的 Top-K 采样和 Top-P 采样方法分别通过指定候选词数量和划定候选词概率阈值的方法对候选词进行选择。
在采样方法中加入 Temperature 机制可以对候选词的概率分布进行调整。
Top-K 采样
Top-K 采样是一种结合了贪心搜索和随机采样的序列生成方法它旨在平衡探索exploration和利用exploitation。这种方法在每轮预测中不是选择概率最高的单个词而是选择概率最高的 K K K 个词作为候选词集合然后从这个集合中随机采样一个词作为下一步的输出。
选择候选词 在每一步 i i i从所有可能的词中选择概率最高的 K K K 个词作为候选词集合。 概率归一化 对这 K K K 个候选词的概率进行归一化使得它们的和为1。这通常通过softmax函数实现但在这里只对 K K K 个候选词应用而不是整个词汇表。 随机采样 根据归一化后的概率分布从 K K K 个候选词中随机采样一个词作为输出。
Top-K 采样的公式
对于每个候选词 w j w_j wj其中 j 1 , 2 , … , K j 1, 2, \ldots, K j1,2,…,K归一化的概率 p ( w i 1 ) p(w_{i1}) p(wi1) 计算如下 p ( w i 1 ) ( exp ( o i [ w 1 ] T ) ∑ j 1 K exp ( o i [ w j ] T ) , … , exp ( o i [ w K ] T ) ∑ j 1 K exp ( o i [ w j ] T ) ) p(w_{i1}) \left( \frac{\exp\left(\frac{o_i[w_1]}{T}\right)}{\sum_{j1}^{K} \exp\left(\frac{o_i[w_j]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_K]}{T}\right)}{\sum_{j1}^{K} \exp\left(\frac{o_i[w_j]}{T}\right)} \right) p(wi1) ∑j1Kexp(Toi[wj])exp(Toi[w1]),…,∑j1Kexp(Toi[wj])exp(Toi[wK]) 然后根据这个分布随机采样 w i 1 w_{i1} wi1 w i 1 ∼ p ( w i 1 ) w_{i1} \sim p(w_{i1}) wi1∼p(wi1) 其中 - o i [ w j ] o_i[w_j] oi[wj] 是第 i i i 轮预测中词 w j w_j wj 的原始概率。 - T T T 是温度参数temperature用于控制概率分布的平滑程度。 T T T 的值越大分布越平滑值越小分布越尖锐。
Top-K 采样的优势
平衡探索和利用 Top-K 采样通过选择 K K K 个最高概率的词增加了生成多样性避免了贪心搜索中的局部最优问题。 控制随机性 通过调整 K K K 的值可以控制生成过程中的随机性。较小的 K K K 值会增加随机性而较大的 K K K 值会接近贪心搜索。 灵活性 温度参数 T T T 提供了额外的控制允许调整概率分布的形状以适应不同的生成需求。
Top-P 采样
Top-P 采样也称为 Nucleus 采样是一种序列生成技术它不是简单地选择概率最高的 K K K 个词而是选择累积概率达到某个阈值 p p p 的所有词作为候选词集合。
这种方法旨在生成更多样化和连贯的文本同时避免贪心搜索的局部最优问题。
选择候选词 在每一步 i i i从所有可能的词中选择累积概率达到阈值 (p) 的词作为候选词集合 S p S_p Sp。 概率归一化 对候选词集合 S p S_p Sp 中的词的概率进行归一化使得它们的和为1。这通常通过softmax函数实现但在这里只对候选词集合中的词应用。 随机采样 根据归一化后的概率分布从候选词集合 S p S_p Sp 中随机采样一个词作为输出。
Top-P 采样的公式
对于每个候选词 w j w_j wj其中 j 1 , 2 , … , ∣ S p ∣ j 1, 2, \ldots, |S_p| j1,2,…,∣Sp∣归一化的概率 p ( w i 1 ) p(w_{i1}) p(wi1) 计算如下 p ( w i 1 ) ( exp ( o i [ w 1 ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w j ] T ) , … , exp ( o i [ w ∣ S p ∣ ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w j ] T ) ) p(w_{i1}) \left( \frac{\exp\left(\frac{o_i[w_1]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_j]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_{|S_p|}]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_j]}{T}\right)} \right) p(wi1) ∑j1∣Sp∣exp(Toi[wj])exp(Toi[w1]),…,∑j1∣Sp∣exp(Toi[wj])exp(Toi[w∣Sp∣]) 然后根据这个分布随机采样 w i 1 w_{i1} wi1 w i 1 ∼ p ( w i 1 ) w_{i1} \sim p(w_{i1}) wi1∼p(wi1) 其中 o i [ w j ] o_i[w_j] oi[wj] 是第 i i i 轮预测中词 w j w_j wj 的原始概率。 T T T 是温度参数temperature用于控制概率分布的平滑程度。 T T T 的值越大分布越平滑值越小分布越尖锐。 ∣ S p ∣ |S_p| ∣Sp∣ 是候选词集合 S p S_p Sp 的大小。
Top-P 采样的优势
提高多样性 通过选择累积概率达到阈值 (p) 的词Top-P 采样可以生成更多样化的文本。 控制风险 通过设置阈值 (p)可以控制生成文本的冒险程度避免生成概率极低的词。 灵活性 温度参数 T T T 提供了额外的控制允许调整概率分布的形状以适应不同的生成需求。
Temperature 机制的作用
Temperature 机制是一种调整 Softmax 函数输出概率分布的方法它通过改变 Softmax 函数中输入的尺度来控制输出概率分布的形状。
这种机制在机器学习和深度学习中被用来控制模型的不确定性和随机性特别是在生成模型和强化学习中。 增加随机性当 Temperature T 1 T 1 T1 时Softmax 函数的输出分布变得更加平坦这意味着各个类别的概率更加接近从而增加了模型输出的随机性。 减少随机性当 0 T 1 0 T 1 0T1 时Softmax 函数的输出分布变得更加集中这意味着模型更倾向于输出概率最高的类别从而减少了模型输出的随机性。
Temperature 机制的公式
对于一个给定的输入 o i o_i oi 和类别集合 S p S_p SpSoftmax 函数的输出 p ( w i 1 ) p(w_{i1}) p(wi1) 可以表示为 p ( w i 1 ) exp ( o i [ w 1 ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w j ] T ) , … , exp ( o i [ w ∣ S p ∣ ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w j ] T ) p(w_{i1}) \frac{\exp\left(\frac{o_i[w_1]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_j]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_{|S_p|}]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_j]}{T}\right)} p(wi1)∑j1∣Sp∣exp(Toi[wj])exp(Toi[w1]),…,∑j1∣Sp∣exp(Toi[wj])exp(Toi[w∣Sp∣])
其中 - o i [ w j ] o_i[w_j] oi[wj] 是模型对于第 i i i 个输入和第 j j j 个类别的原始输出通常是神经网络的最后一层的输出。 - T T T 是 Temperature 参数控制概率分布的形状。 - ∣ S p ∣ |S_p| ∣Sp∣ 是类别集合 S p S_p Sp 中的类别数量。 - exp \exp exp 是指数函数。
引入 Temperature
在引入 Temperature 机制后Top-K 采样和 Top-P 采样的候选集分布都受到了 Temperature 参数 T T T 的影响。这两种采样方法都是在生成模型中常用的技术用于从模型输出的概率分布中选择最可能的候选集。
Top-K 采样
Top-K 采样是一种选择概率分布中前 K K K 个最高概率值的方法。在引入 Temperature 机制后Top-K 采样的候选集分布可以表示为 p ( w i 1 1 , … , w i K 1 ) ( exp ( o i [ w 1 i 1 ] T ) ∑ j 1 K exp ( o i [ w j i 1 ] T ) , … , exp ( o i [ w K i 1 ] T ) ∑ j 1 K exp ( o i [ w j i 1 ] T ) ) p(w_{i11}, \ldots, w_{iK1}) \left( \frac{\exp\left(\frac{o_i[w_{1i1}]}{T}\right)}{\sum_{j1}^{K} \exp\left(\frac{o_i[w_{ji1}]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_{Ki1}]}{T}\right)}{\sum_{j1}^{K} \exp\left(\frac{o_i[w_{ji1}]}{T}\right)} \right) p(wi11,…,wiK1) ∑j1Kexp(Toi[wji1])exp(Toi[w1i1]),…,∑j1Kexp(Toi[wji1])exp(Toi[wKi1])
这里 w i 1 1 , … , w i K 1 w_{i11}, \ldots, w_{iK1} wi11,…,wiK1 表示选择的前 K K K 个候选。 o i [ w j i 1 ] o_i[w_{ji1}] oi[wji1] 是模型对于第 i i i 个输入和第 j j j 个候选的输出。 T T T 是 Temperature 参数。
Top-P 采样
Top-P 采样是一种选择累积概率达到 P P P 百分比的候选集的方法。在引入 Temperature 机制后Top-P 采样的候选集分布可以表示为 p ( w i 1 1 , … , w i ∣ S p ∣ 1 ) ( exp ( o i [ w 1 i 1 ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w j i 1 ] T ) , … , exp ( o i [ w ∣ S p ∣ i 1 ] T ) ∑ j 1 ∣ S p ∣ exp ( o i [ w j i 1 ] T ) ) p(w_{i11}, \ldots, w_{i|S_p|1}) \left( \frac{\exp\left(\frac{o_i[w_{1i1}]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_{ji1}]}{T}\right)}, \ldots, \frac{\exp\left(\frac{o_i[w_{|S_p|i1}]}{T}\right)}{\sum_{j1}^{|S_p|} \exp\left(\frac{o_i[w_{ji1}]}{T}\right)} \right) p(wi11,…,wi∣Sp∣1) ∑j1∣Sp∣exp(Toi[wji1])exp(Toi[w1i1]),…,∑j1∣Sp∣exp(Toi[wji1])exp(Toi[w∣Sp∣i1])
这里 w i 1 1 , … , w i ∣ S p ∣ 1 w_{i11}, \ldots, w_{i|S_p|1} wi11,…,wi∣Sp∣1 表示选择的累积概率达到 P P P 百分比的候选集。 ∣ S p ∣ |S_p| ∣Sp∣ 是候选集的大小即累积概率达到 P P P 百分比所需的候选数量。 o i [ w j i 1 ] o_i[w_{ji1}] oi[wji1] 是模型对于第 i i i 个输入和第 j j j 个候选的输出。 T T T 是 Temperature 参数。
影响
引入 Temperature 机制后这两种采样方法都会受到 T T T 的影响从而改变候选集的分布形状
当 T 1 T 1 T1 时分布变得更加平坦增加了随机性使得更多的候选被选中的可能性增加。当 0 T 1 0 T 1 0T1 时分布变得更加集中减少了随机性使得更高概率的候选被选中的可能性增加。
这种调整可以帮助模型在生成过程中平衡探索和利用或者根据特定的任务需求调整生成的多样性和一致性。