文本生成中的解码策略

一.Language model decoding

given a sequence of m tokens as context, the task is to generate the next n continuation tokens to obtain the completed sequence . We assume that models compute using the common left-to-right decomposition of the text probability,

which is used to generate the generation token-by-token using a particular decoding strategy

二.Decoding Strategies

1.Maximization-based decoding

解码器的输出层后面通常会跟一个softmax函数来将输出概率归一化。如果词表比较大的话,softmax的计算复杂度会比较高(分母需要计算整个词表大小的维度)

  • Greedy decoding

每次选最高概率的一项作为输出,直到遇到结束符号,将这些输出的概率相乘,得到该sequence的概率。

缺点:每次选择都是最大的,但是整体的概率不一定是最大的,有可能错过最优的结果

  • Beam-search decoding

考虑到Beam Size=2,第一步选择概率最大的两个A和B,第二步选择AB和BB(橙色大箭头)。然后以选择的AB和BB继续向上传播,又出现了四种情况ABA/ABB/BBA/BBB,依然是选择综合概率最大的两个ABB/BBB。以此类推,直至句子结束。

缺点:

    • 由于beam search的概率是一個连续相乘的結果,越早遇到结束符号,所得到的概率会越大,所以更倾向于生成短文本。解决办法是对输出概率取log,然后相加求最大概率。
    • beam size过大会导致计算复杂度过高,时间复杂度为O(N*b*V),N为序列长度,b为beam size,v为词表大小
    • 语言模型通常为格式良好的文本分配高分,但较长文本的最高分往往是通用的、重复的和尴尬的。beam search的输出,与人讲话的概率分布,很不一样。

2.Stochastic Decoding

  • Sampling with temperature

解码器的输出层计算softmax时,通过改变T可以控制概率的形貌。当t大的时候,概率分布趋向平均,随机性增大(uniform sampling/pure sampling);当t小的时候,概率密度趋向于集中,即强者愈强,随机性降低(poisson distribution/greedy decoding)。
实验证明,降低t会改善生成的质量,但是会降低生成的多样性。
  • Top-k Sampling

从词表选择topk个词,使得概率之和最大,即

缺点:k的取值难以界定。k太小,会生成比较bland和generic的结果,即缺乏diversity;k太大,会退化成随机sampling(pure sampling),会陷入语义表达错误,即sample from tail distribution

  • Top-p Sampling(nucleus sampling)

丛词表选择p个概率之和大于给定阈值的词,即

采样集的大小将根据每个时间步长的概率分布动态调整。对于高的阈值来说,这一个小部分的词汇,就占据了绝大多数的概率—-核。

三.Implementation

四.Reference

[Hard]鸡蛋掉落

887. 鸡蛋掉落

 

mac读取ntfs

1.查看ntfs u盘名

2. sudo vim /etc/fstab

增加一行:LABEL=u盘名 none ntfs rw,auto,nobrowse

3. 接下来可以在 /Volumns下看到你的u盘

4.(可选)sudo ln -s  /Volumns ~/Desktop/Volumns

注意事项:

1.用了几次之后发现不能识别了?

原因是u盘拔出时没有正确弹出,请再次插入windows电脑然后正确弹出即可

2.需要重启吗?

不需要

 

batch size过大导致泛化能力下降

今天跑实验发现batch size=4和batch size=2048的结果相差太大,下面依次是bs=4和bs=2048的生成结果

另外需要看一下paper《On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima

learning rate和batch size