C2C
让两个大语言模型直接通过 KV-Cache 对话,无需生成文本,大幅提升多模型协作效率与推理准确率
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让两个大语言模型直接通过 KV-Cache 对话,无需生成文本,大幅提升多模型协作效率与推理准确率
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Cache-to-Cache 项目 Logo
传统方案是让一个模型先把答案「吐出来」——生成一段文本,再把这段文本交给另一个模型处理。这套流程听起来合理,却有着根本性的效率瓶颈:生成文本再解析文本,本身就是一次信息的压缩与解压过程,必然带来语义损耗和延迟叠加。而且对于资源受限的端侧设备来说,生成 Token 这个步骤本身就意味着算力的极大浪费。
清华-国际系统中心(THU-NICS)的研究团队在 ICLR 2026 发表了一篇论文,提出了一个大胆的想法:让两个大模型直接通过 KV-Cache(注意力缓存)对话,跳过文本生成的环节。这就是 Cache-to-Cache(C2C)项目。
C2C 的设计灵感来自「罗塞塔石碑」——一块同时刻有古埃及象形文、埃及草书和古希腊文的石碑,不同语言承载的同一语义可以相互对照翻译。研究团队借用了这个比喻:KV-Cache 是 Transformer 注意力机制的中间产物,包含了模型在处理信息时积累的「思考轨迹」,但不同模型的 KV-Cache 语义空间不同(维度、层数、头数都可能不同),就像不同语言写成的文本,直接混用会「词不达意」。
C2C 的解决方案是训练一个 C2CProjector(投影器),这是一个基于 MLP 的轻量级神经网络,专门负责将 Source 模型的 KV-Cache 投影到 Target 模型的语义空间中。与直接微调整个模型不同,C2C 训练时冻结两个大模型,只更新投影器的参数,这大大降低了训练成本。
投影器的架构包含以下关键组件:
图2:C2C 在多个基准数据集上的准确率与 Token 数量关系曲线
论文在多个主流基准上验证了 C2C 的效果:
| 基准 | 单模型基准 | C2C 提升 | T2T 对比 |
|---|---|---|---|
| GSM8K(数学推理) | ~50% | +8.5~10.5% | +3.0~5.0% |
| MMLU(多任务) | ~60% | +8.5~10.5% | +3.0~5.0% |
| MATH(数学竞赛) | ~40% | +8.5~10.5% | +3.0~5.0% |
| 延迟 | 基准 | 2.0× 加速 | — |
即 C2C 在准确率上比单模型高出 8.510.5 个百分点,同时比基于文本通信(T2T)的方案也高出 3.05.0 个百分点,且推理延迟降低一半。这一收益在哲学推理、复杂多跳问答等需要「综合多视角」的任务上尤为显著。
C2C 项目以 rosetta Python 包为核心,采用清晰的模块化架构:
RosettaModel 封装类,替代标准 transformers 模型接口,支持多个模型的 KV-Cache 注入。提供 kv_cache_index 参数,精确控制每个 token 位置使用原始 Attention 还是投影后的 KV-CacheProjector 基类和 C2CProjector 实现,包含 MLP、LayerNorm、GELU 激活等组件,以及 cache_project 方法实现动态 KV-Cache 投影accelerate 多卡并行关键设计亮点是 kv_cache_index:这是一个形状为 [2, seq_len] 的 tensor,第一行 [1, 0, 0, ...] 表示指令部分从 Sharer 模型获取 KV-Cache,第二行 [-1, 0, 0, ...] 表示响应部分使用 Target 模型的原始计算。这种设计实现了极细粒度的 KV-Cache 控制。
项目在 HuggingFace 上发布了多组预训练好的投影器权重,覆盖以下模型组合:
所有模型对均支持异构架构(不同层数、不同维度),框架自动处理维度对齐。
安装非常简单,通过 pip install 即可:
conda create -n rosetta python=3.10
conda activate rosetta
pip install -e . # 基础安装
pip install -e ".[training,evaluation]" # 含训练和评估依赖
加载预训练投影器并运行推理的最小示例仅需 20 行 Python 代码,详细示例见 script/playground/inference_example.py。此外,项目还提供了 Gradio 对比界面(gradio_demo.py),可在 HuggingFace Spaces 上体验单模型、T2T 和 C2C 三种推理模式的实时对比。
训练自己的投影器也很简单——准备一个 JSON 配置文件(指定基础模型、教师模型、投影器超参数、数据集),然后运行:
torchrun --nproc_per_node=8 script/train/SFT_train.py --config recipe/train_recipe/C2C_0.6+0.5.json
C2C 并非万能药,研究团队坦诚指出了当前版本的局限:
C2C 代表了 LLM 推理优化领域的一个新方向——从优化 Token 生成效率(如 KV-Cache 压缩、投机解码),转向重新定义多模型协作的通信协议。过去业界主要关注单模型推理加速,而 C2C 开辟了一个新问题:如何让不同模型直接「听懂」对方的思维?
这条路线与当下火热的 AI Agent 多智能体协作高度相关。在复杂推理、多工具调用、长期记忆等场景中,多个模型之间的信息传递成本往往是瓶颈。C2C 的 KV-Cache 直连方案提供了一种可能更高效的解决思路。
此外,项目代码还包含大量辅助分析工具:投影器权重可视化(t-SNE)、门控权重分析、响应长度比例统计等,构成了一个完整的研究工具链,对 LLM 可解释性研究也有参考价值。