Taalas 如何在芯片上“打印” LLM?
Source: Hacker News
一家名为 Taalas 的初创公司,最近发布了一款 ASIC 芯片,运行 Llama 3.1 8B(3/6‑bit 量化),推理速度达 17 000 token/秒。 他们在 声明 中称,其拥有成本比基于 GPU 的推理系统低 10 倍,功耗低 10 倍,速度比最先进的推理系统快约 10 倍。
我深入阅读了他们的博客、LocalLLaMA 讨论以及硬件概念,以了解模型如何“印在”芯片上。下面是我的学习总结。
基础
Taalas 是一家成立 2.5 年的公司,这也是它的第一块芯片。该芯片是 固定功能 ASIC(Application‑Specific Integrated Circuit)——可以把它想象成 CD‑ROM 或印刷书籍:只能容纳一个模型,无法重新写入。
NVIDIA GPU 如何处理 LLM(内存瓶颈)
LLM 由顺序层组成。例如,Llama 3.1 8B 有 32 层,每层包含大型权重矩阵(模型的知识)。
- 提示被分词并转换为嵌入向量。
- 在 GPU 上,向量进入计算核心。
- GPU 从 VRAM/HBM 中取出 第 1 层 权重,执行矩阵乘法,并将中间激活写回 VRAM。
- 然后取出 第 2 层 权重,重复乘法,将结果存回,如此循环遍历全部 32 层以生成单个 token。
- 为生成下一个 token,需要再次完整执行这 32 层的计算。
这种在计算单元和外部存储之间不断来回搬运数据的方式导致 内存带宽瓶颈(常称为 “冯·诺依曼瓶颈” 或 “内存墙”),增加了延迟并消耗大量能量。
打破墙壁
Taalas 通过 将 32 层直接刻录在硅片上 来消除该瓶颈。模型的权重变成了刻在芯片上的物理晶体管。
图片:Taalas 方式(illustration of weights hard‑wired on chip)
他们还声称发明了一种硬件方案,能够存储 4‑bit 数据并用 单个晶体管 完成相应的乘法——这里称为他们的 “魔法乘法器”(参见 EE Times article)。
当输入向量到达时:
- 向量流入实现 第 1 层 的晶体管。
- 通过魔法乘法器完成乘法。
- 结果不写回外部存储,而是直接通过流水线寄存器流向 第 2 层 的晶体管。
- 该流水线持续穿过所有层,直至生成最终的输出 token。
芯片内存使用
该芯片 不 使用外部 DRAM/HBM。它内部配备少量 片上 SRAM 用于:
- KV 缓存 —— 用于存放正在进行对话的上下文窗口的临时数据。
- LoRA 适配器 —— 轻量化微调参数。
选择 SRAM 是因为将 DRAM 与逻辑门混合成本高且复杂,而 SRAM 不受当前 DRAM 供应链限制的影响。
定制芯片的成本
为每个模型制造专用芯片成本高昂,但 Taalas 通过以下方式降低费用:
- 设计一块 基础芯片,内部拥有通用的逻辑门和晶体管网格。
- 仅在 顶部两层掩模 上进行定制,以编码特定模型的权重。
这种方式比从头设计芯片慢,但比完整的定制 tape‑out 快得多。Llama 3.1 8B 的实现仅用了约 两个月——在定制芯片领域算是相当快速的交付。
前景
对于在没有强大 GPU 的笔记本电脑上本地运行模型的开发者而言,Taalas 的方案提供了一条通往经济实惠、高性能推理硬件的道路。如果实现大规模生产,这类 ASIC 将显著降低运行大型语言模型的成本和能耗。