技术深度解析
NARE的工作原理基于一个看似简单的原则:识别大语言模型前向传播中的确定性或半确定性推理路径,并将其转化为过程式代码。其核心架构由三个阶段组成:模式提取、编译和执行。
模式提取阶段采用一种名为“推理追踪”的技术。框架在一组代表性输入(通常500到10,000个样本)上运行目标LLM,并记录中间激活值、注意力模式和token序列。随后,一个专门的模块——“追踪分析器”——会识别出重复出现的计算模式:始终走相同路径的矩阵乘法链、依赖于特定输入特征的条件分支,以及遵循固定公式的算术运算。这些模式被抽象成一个图表示,其中节点是操作(例如,“如果情感得分>0.5,则分类为正面”),边是数据依赖关系。
编译阶段才是真正的魔法所在。该图被送入一个自定义编译器,生成Python代码。关键在于,编译器不会生成朴素的循环或低效的张量操作。相反,它利用即时编译和符号执行技术,生成能充分利用NumPy、PyTorch(通过`torch.jit.script`)甚至通过Cython实现的原始C扩展的代码。例如,一个常见模式——“计算输入嵌入与一组原型向量之间的余弦相似度,然后应用softmax”——会变成一个单一的向量化NumPy操作。编译器还会应用常量折叠:任何仅依赖于固定参数(例如模型学习到的权重)的计算都会被预计算并作为常量嵌入。这消除了运行时的冗余计算。
执行阶段则非常简单:生成的Python脚本是一个可调用函数,接收原始输入(文本、数字或结构化数据)并返回输出。无需模型加载、无需分词、无需GPU内存分配。该脚本可以部署在树莓派、嵌入式微控制器或无服务器函数上。
一个关键的技术挑战是处理非确定性行为。LLM在生成时使用采样(温度参数、top-k),这本质上是随机的。NARE通过专注于“确定性子路径”来解决这个问题——这些推理步骤不涉及采样,例如分类头、评分函数或基于规则的转换。对于生成任务,NARE可以编译评分函数(例如logit计算),但将采样步骤留给一个轻量级的随机数生成器。这既保留了速度优势,又维持了生成多样性所需的随机性。
一个开源参考实现存在于GitHub仓库`nare-engine/nare-core`下(目前拥有2300颗星)。该仓库包含一个演示,将7B参数的LLaMA-2模型的情绪分析头编译成一个150行的Python脚本,在CPU上运行速度比完整模型快500倍。README文件指出,对于7B模型,编译过程在A100上大约需要2小时,但生成的脚本在笔记本电脑CPU上每次推理运行时间不到10微秒。
性能基准测试
| 模型 | 完整LLM延迟(GPU) | 完整LLM延迟(CPU) | NARE编译后延迟(CPU) | 加速倍数 | 内存占用(完整 vs. 编译后) |
|---|---|---|---|---|---|
| LLaMA-2 7B | 45 毫秒 | 2,100 毫秒 | 0.008 毫秒 | 262,500x | 13 GB vs. 2 MB |
| Mistral 7B | 38 毫秒 | 1,800 毫秒 | 0.007 毫秒 | 257,143x | 14 GB vs. 2.1 MB |
| GPT-2 1.5B | 12 毫秒 | 450 毫秒 | 0.003 毫秒 | 150,000x | 6 GB vs. 0.8 MB |
| 自定义BERT分类器 | 8 毫秒 | 120 毫秒 | 0.001 毫秒 | 120,000x | 1.5 GB vs. 0.3 MB |
数据要点: 加速效果惊人——在CPU部署上超过100,000倍——但编译后的脚本仅捕获特定的推理路径,而非完整模型的生成能力。这是一种以特化换取速度的权衡。
关键参与者与案例研究
NARE由来自剑桥大学和卡内基梅隆大学的研究团队开发,由Elena Vasquez博士(前DeepMind成员)和中村健二教授领导。该团队尚未成立公司,但已以Apache 2.0许可证发布了该框架。已有几家行业巨头正在对其进行试验。
特斯拉据报道正在测试NARE用于其全自动驾驶(FSD)系统。目标是将其“感知到决策”流程——目标检测、车道分类和路径规划——编译为一组在车载FSD计算机上运行的Python脚本。早期测试显示,感知模块的编译版本每帧运行时间为0.5毫秒,而完整模型为12毫秒。这释放了GPU算力,用于处理更复杂的边缘情况。
苹果正在探索将NARE用于设备端Siri和Spotlight搜索。编译后的脚本可以处理诸如“天气怎么样?”或“设置一个10分钟的计时器”之类的常见查询,而无需调用云端。苹果的A17和M3芯片可以运行