论文地址:
https://arxiv.org/abs/1911.00172arrow-up-right
代码:
https://github.com/urvashik/knnlmarrow-up-right
参考资料:
https://zhuanlan.zhihu.com/p/90890672arrow-up-right
利用Knn做模型集成,整体思路如下:
记ct=(w1,…wt−1)c_t=\left(w_1, \ldots w_{t-1}\right)ct=(w1,…wt−1);
假设有一个训练好的语言模型fff;
我们构造如下KV数据库:
然后利用下式构造概率分布:
最后模型的输出为:
最后的效果是十分明显的,这里唯一的问题是,KV数据库和训练文本大小成正比,如果训练文本太大,则开销太大;
另一方面Knn的作用似乎是记忆功能,所以基于Transformer的模型似乎记忆能力较弱?是否可以引入类似功能的模块提升性能;
基于检索的LM是否有可行性?
Last updated 2 years ago