C2C(Cache-to-Cache)是论文《Cache-to-Cache: Direct Semantic Communication Between Large Language Models》的官方代码实现,已被 ICLR'26 会议接收。其核心目标是让大语言模型之间通过 KV-Cache 直接通信,而不是先把内部表示转成文本再传给另一个模型。
用途与原理
C2C 在模型之间投影并融合 KV-Cache,使原本相互独立的 LLM 能够以更丰富、更直接的方式共享语义表示。按照官方描述,该方式相比单个模型准确率提升 8.5–10.5%,相比基于文本的通信提升 3.0–5.0%,并带来 2.0 倍的延迟加速。
Python 包命名为 rosetta,取自罗塞塔石碑——同一段文字以多种文字呈现,从而解锁了古埃及象形文字的翻译。C2C 也扮演类似角色:在多个独立 LLM 的 KV-cache 表示之间做翻译,让它们说同一种语言。
主要能力
- 直接缓存通信:通过 KV-Cache 投影与融合在不同模型间传递语义,绕过文本生成。
- 通用包装器:提供 RosettaModel 包装器,可用少量代码将 C2C 应用于自有 LLM。
- 多模型融合:支持将多个 sharer 模型的 KV-cache 融合到单个 receiver(2025/12 起提供,官方标注为初步阶段)。
- 预训练 Fuser:在 Hugging Face 上提供已发布的 C2C Fuser 权重及完整可用的 fuser 配对列表。
- 任意模型对:自动处理隐藏维度不同、层数不同、注意力头配置不同、分词器不同等情况。
- 训练与评估流程:仅更新 C2C projector 参数,源模型与目标模型保持冻结;提供配置示例与统一评估脚本。
- 交互体验:提供 live chat 示例与在线 Demo,可进行并排模型对比。
使用方式
环境搭建:创建新环境并安装该包;训练与评估需额外安装依赖。
使用已有 Fuser:从 Hugging Face collection 加载已发布的 C2C Fuser 权重并运行推理脚本。
运行聊天示例:script/playground/live_chat_example.py 提供交互式聊天示例,演示使用预训练 projector 的 cache-to-cache 通信;多 sharer 支持也可参考该文件。
应用到任意 LLM:通过 RosettaModel 通用包装器,几行代码即可接入自有模型。
训练 C2C Fuser:在 recipe/train_recipe/ 准备训练配置,指定基础模型、teacher 模型、projector 类型与参数、训练超参、数据集和输出目录,参考 C2C_0.6+0.5.json。训练期间只更新 C2C projector 参数。
评估:在 recipe/eval_recipe/ 准备评估配置,指定基础模型、teacher 模型、checkpoint 目录、生成配置、评估数据集与输出目录,参考 unified_eval.yaml,然后运行评估。
代码结构
- rosetta/:主包。model/ 为核心模型组件;train/ 为训练工具;baseline/ 为基线实现;utils/ 为评估与模型注册工具函数。
- script/:实验脚本。train/ 含 SFT_train.py;evaluation/ 含 unified_evaluator.py;dataset/ 为数据集准备脚本;examples/ 为使用示例。
- recipe/:配置文件。train_recipe/ 为训练配置;eval_recipe/ 为评估配置。
扩展方式
- 添加 Projector:在 rosetta/model/projector.py 中新增 projector 架构,负责把源模型 KV-Cache 转换到目标模型语义空间;关键组件包括投影网络(MLP/拼接式)、逐层选择的 gating 机制与温度退火训练。配置中通过 {"projector": {"type": "MyProjector", "params": {...}}} 注册。
- 添加数据集:在 rosetta/train/dataset_adapters.py 中新增数据集,配置中使用 {"data": {"type": "MyDataset"}}。
- 添加 Benchmark:参照 unified_evaluator.py 的模式,在 script/evaluation/ 中添加评估逻辑。
适用场景
- 研究 LLM 之间非文本通信与 KV-Cache 语义融合。
- 对多模型协作、模型集成推理的效率与准确率做实验比较。
- 在自有模型对之间训练并评估 C2C projector。
限制与说明
多 sharer 支持仍处于初步阶段,官方表示仍在积极开发。项目最新动态提到,后续将发布 agent-managed KV-Cache 及相应服务系统。其他细节(如具体许可、价格、平台要求等)资料中暂未提供。