论文

Periscope:将冻结语言模型扩展到上下文窗口之外

Periscope: Extending Frozen Language Models Beyond Their Context Window

上下文与知识上下文工程

摘要

语言模型在一次二次前向传递中读取长文本,在上下文窗口处停止,并在到达上下文窗口之前失去长度的准确性。我们询问在决定有限集时是否可以分解阅读:哪个文档是相关的,哪个选项受到支持,哪个段落是证据。 Periscope 是一种无需训练推理方法,它使用 $K{=}\lceil\sqrt{N}\rceil$ 将文本的 $N$ 块排列在 $K{\times}K$ 网格上,并向冻结模型询问有关连续块的 $K$ 本地跨度和对整个文本进行采样的 $K$ 跨度跨度的相同问题,读取每个答案在一个 token 处的对数几率。每个答案都采用其最佳的本地和跨步分数,并通过每个块的两个跨度对每个块进行评分,无需进一步成本即可给出证据图,其峰值是答案背后的块。对于 $s$ token 的文本和块大小 $c$,每个 探针 大约为 $\sqrt{sc}$ token,因此 $W$ token 的窗口以 $s^{1.5}$ 成本达到 $W^{2}/c$ token。地图取代了冗长的阅读。在 LongBench v2 上,仅读取 $K$ 块,地图排名最高,为 9k token,与同一模型在 32k 到 1M token 的窗口中读取的最佳窗口相匹配,而在 InfiniteBench 上,中值上下文为 150k token,它领先最佳窗口读取 5 个点。同一张图对 BRIGHT 的长文档语料库进行了六种方法中最好的 NDCG@10 的排名。每个调用仅缓存一个 探针,因此 27B 模型在一个 80GB GPU 上读取 4.5M-token 上下文,其中单次传递需要 296GB 缓存。长篇阅读需要一个 GPU 来保存模型,而不是保存文本。

Periscope:将冻结语言模型扩展到上下文窗口之外的原论文方法或结果图
图 2:Periscope 处理 LongBench v2 的一个问题。左:窗口读取只看到前几个块,遗漏第 9 块中的证据。右:块排成 $K{\times}K$ 网格,此处为 $3{\times}3$。每个局部探针 $L_{i}$ 读取 $K$ 个连续块,每个跨步探针 $S_{j}$ 读取每隔 $K$ 个块的位置;每块得分为其两个探针得分之和。得分图在证据块处达到峰值。Select 通过读取得分最高的 $K$ 个块回答,Direct 则仅根据每个选项最佳的局部与跨步得分回答。