政法网站建设有哪些不足,中石化工建设宁波分公司网站,有哪些小公司网站,宣传片制作公司保定一个加速语言模型生成的方法 现在语言模型的一个弊端speculative decoding预言家预测的问题 speculative decoding 模块的实现方法NAT Non-autoregressive模型压缩使用搜索引擎 一些更复杂些的speculative decoding 实现方式 speculative decoding 是一个适用于目前生成模型的加… 一个加速语言模型生成的方法 现在语言模型的一个弊端speculative decoding预言家预测的问题 speculative decoding 模块的实现方法NAT Non-autoregressive模型压缩使用搜索引擎 一些更复杂些的speculative decoding 实现方式 speculative decoding 是一个适用于目前生成模型的加速方法不需要修改模型就可以大大加速模型的生成速度。
现在语言模型的一个弊端
现在语言模型用autoregressive decoding方法生成输出内容的时候由于其底层实现机制是decoder按照顺序一步步生成的没有办法并行所以生成的速度很慢。
克服它的一个方法就是speculative decoding模型之外外挂一个预言家多预言一个就加速一倍。
speculative decoding
现在就是要多加上一个speculative decoding模块它生成速度很快它的所用就是用来预测语言模型下一个要生成的是什么。这样就可以把语言模型原本串行的操作变成并行的。原本语言模型的输入的和 输入加 speculative decoding 预测的下一个token 一起输入到语言模型里这样语言模型就一次可以并行处理两个输入生成两个输出了如图 还是用机器翻译来举个例子
原本的输入形式 输入机器学习输出 machine 输入 机器学习 ,merchine输出 learning 输入 机器学习 ,merchine输出 end 加上预言模块后 输入一次变成两个 也就是原本输入中的上面的前两条一起输入给语言模型也就是 不仅输入 机器学习 还要用 speculative decoding 预言到的machine 形成 机器学习machine 上面两个一起输入给语言模型让它输出。 如果 speculative decoding一次预测一个那么速度就可以提升为原来的2倍一次预测2个token就可以提升3倍 看到这里你i肯定会想难道预言家不会犯错么上面一次预测的这两个token万一有错误呢
预言家预测的问题
预言家必然不可能都预测准确要不然语言模型还有什么用下面我们看看预测错误会出现什么情况 假如正确的输出是一个红一个黄的token但是预言家预预测出了一个红一个灰的token也就是预测错误了一个那情况就如下 这情况下第三步是错误但是前两步是正确的呢速度还是提升了。极端的预言家全部都没预测对但是不影响原来一个token的输出只是多了一点预言家的预测时间和多了一些运算资源但是几乎可以忽略。 总之好处多余坏处。那么预言家 speculative decoding 如何实现呢
speculative decoding 模块的实现方法
speculative decoding 诉求就是速度快可以犯点错下面有三个方法可以实现这个诉求
NAT Non-autoregressive
我们可以用 Non-autoregressive 来实现这个它的实现方式就是生成速度快但是生成的没那么准确。 把输入放到NAT的模型里面同时预测多个输出
模型压缩
可以压缩模型比如模型量化等很多方法可以压缩模型用小模型去作为预言家
使用搜索引擎
可以直接联网输入把搜索到的拿出来作为预言的token
一些更复杂些的speculative decoding 实现方式
一个预言家预测准确的情况无法确定但是我们可以放多个预言家这样会耗费计算资源但是预言准确的命中率会大大提升。