SelfCP: Compressing Over-Limit Prompt via the Frozen Large Language Model Itself
作者: Jun Gao, Ziqiang Cao, Wenjie Li
分类: cs.CL
发布日期: 2024-05-27 (更新: 2024-06-18)
DOI: 10.1016/j.ipm.2024.103873
💡 一句话要点
SelfCP:利用冻结的大语言模型自身压缩超长Prompt,提升推理效率。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: Prompt压缩 大语言模型 长文本处理 推理加速 知识蒸馏
📋 核心要点
- Transformer LLM处理长Prompt时硬件成本高昂,而摘要等任务和上下文学习易导致Prompt过长。
- SelfCP利用LLM自身压缩超长Prompt为稠密向量,通过可学习连接器转换为稠密token,降低计算负担。
- 实验表明,SelfCP能有效替代12倍超限Prompt,降低内存成本,提升推理速度和响应质量。
📝 摘要(中文)
本文提出了一种名为Self-Compressor (SelfCP) 的方法,旨在解决基于Transformer的大语言模型(LLM)处理长Prompt时带来的巨大硬件成本问题。SelfCP利用目标LLM自身将超长Prompt压缩成稠密向量,同时保持允许范围内的Prompt不变。然后,通过一个可学习的连接器将稠密向量投影成稠密token,使LLM能够理解。该连接器在公开数据集中的相对较长的文本上,以LLM的语言建模目标进行监督微调,其中包含指令数据集以使SelfCP能够响应各种Prompt,而目标LLM在训练期间保持冻结。SelfCP构建在两个不同的backbone之上,仅包含来自连接器和一个可学习嵌入的17M可学习参数。在英语和中文基准测试上的评估表明,SelfCP有效地用稠密token替代了12倍超限的Prompt,从而降低了内存成本并提高了推理吞吐量,同时还提高了响应质量。这种出色的性能为LLM提供了一种高效的解决方案,无需从头开始训练LLM即可处理长Prompt。
🔬 方法详解
问题定义:现有基于Transformer的大语言模型在处理长Prompt时,由于计算复杂度和内存需求随序列长度增加而显著增长,导致硬件成本高昂。许多任务,如文本摘要,以及上下文学习的应用,不可避免地需要处理超长Prompt,这限制了LLM在资源受限环境中的应用。现有方法通常需要从头训练或微调整个LLM,成本巨大。
核心思路:SelfCP的核心思路是利用目标LLM自身的能力来压缩超长Prompt,将其转化为信息密度更高的稠密向量表示。通过这种方式,可以将原始的长序列Prompt替换为更短的稠密token序列,从而降低计算和内存需求。关键在于设计一个轻量级的可学习连接器,将稠密向量投影回LLM可以理解的token空间。
技术框架:SelfCP包含两个主要模块:Prompt压缩模块和稠密Token投影模块。Prompt压缩模块直接使用冻结的目标LLM,将超长Prompt编码为稠密向量。稠密Token投影模块是一个可学习的连接器,它将稠密向量映射到稠密token。整个框架的训练过程是:首先,将超长Prompt输入到冻结的LLM中,得到稠密向量表示;然后,将稠密向量通过可学习的连接器投影为稠密token;最后,将原始的允许范围内的Prompt和稠密token拼接在一起,输入到冻结的LLM中,使用语言建模目标函数对连接器进行微调。
关键创新:SelfCP的关键创新在于利用冻结的LLM自身作为Prompt压缩器,避免了从头训练或微调整个LLM的巨大成本。此外,通过可学习的连接器将稠密向量投影到稠密token空间,使得LLM能够无缝地处理压缩后的Prompt。这种方法在降低计算成本的同时,还能保持甚至提高响应质量。
关键设计:SelfCP的关键设计包括:1) 连接器的网络结构,通常采用轻量级的MLP或Transformer结构,以减少可学习参数的数量;2) 损失函数,采用标准的语言建模目标函数,即最大化给定上下文的下一个token的概率;3) 训练数据集,选择包含长文本和指令的数据集,以提高SelfCP的泛化能力;4) 冻结LLM的参数,只训练连接器和可学习的嵌入,以保证效率和稳定性。
📊 实验亮点
实验结果表明,SelfCP能够有效地用稠密token替代12倍超限的Prompt,从而显著降低内存成本并提高推理吞吐量。在多个英语和中文基准测试中,SelfCP不仅降低了计算成本,还提高了响应质量。例如,在某些任务上,SelfCP的性能甚至超过了直接使用完整Prompt的LLM。
🎯 应用场景
SelfCP可应用于各种需要处理长文本输入的场景,例如:长文档摘要、问答系统、代码生成等。它能够显著降低LLM处理长Prompt的计算和内存成本,使其能够在资源受限的环境中部署。此外,SelfCP还可以用于扩展LLM的上下文窗口,使其能够处理更长的输入序列,从而提高其在复杂任务中的性能。未来,SelfCP有望成为LLM在移动设备和边缘计算等场景中的关键技术。
📄 摘要(原文)
Long prompt leads to huge hardware costs when using transformer-based Large Language Models (LLMs). Unfortunately, many tasks, such as summarization, inevitably introduce long documents, and the wide application of in-context learning easily makes the prompt length explode. This paper proposes a Self-Compressor (SelfCP), which employs the target LLM itself to compress over-limit prompts into dense vectors while keeping the allowed prompts unmodified. Dense vectors are then projected into dense tokens via a learnable connector to make the same LLM unburden to understand. The connector is supervised-tuned under the language modeling objective of the LLM on relatively long texts selected from publicly accessed datasets, involving an instruction dataset to make SelfCP respond to various prompts, while the target LLM keeps frozen during training. We build the lightweight SelfCP upon 2 different backbones with merely 17M learnable parameters originating from the connector and a learnable embedding. Evaluation on both English and Chinese benchmarks demonstrate that SelfCP effectively substitutes 12$\times$ over-limit prompts with dense tokens to reduce memory costs and booster inference throughputs, yet improving response quality. The outstanding performance brings an efficient solution for LLMs to tackle long prompts without training LLMs from scratch.