kNN-LMs:一种RAG和LLM前的记忆挂靠方法

(ICLR 2020)

《Generalization through Memorization: Nearest Neighbor Language Models》

这是一种免训练的方法。

算法

Training Contexts处或者更扩展的来说,可以是额外的数据集。

对于额外数据集

上下文词元序列$c_t=(w_1,…,w _ {t-1})$

记f(c)为模型某一层输出,定义键值对为:
$$
(K,V)=((f(c_i),w_i)\mid (c_i,w_i)\in D)
$$
再根据负距离的softmax计算邻居上的分布:
$$
p _ {\text{kNN}}(y|x) \propto \sum _ {\langle k_i, v_i \rangle \in \mathcal{N}} \mathbb{1} _ {y=v_i} \exp(-d(k_i, f(x)))
$$
对于原始输入

我们把以上融合进来:
$$
p(y\mid x)=\lambda p _ {knn}(y\mid x)+(1-\lambda)p _ {LM}(y\mid x)
$$
使用faiss进行检索。

实验


kNN-LMs:一种RAG和LLM前的记忆挂靠方法
https://lijianxiong.space/2025/20250902/
作者
LJX
发布于
2025年9月2日
许可协议