Character.AI 的 AI 推理优化实践
Character.AI 正在致力于构建通用人工智能(AGI),旨在将大型语言模型(LLM)融入日常生活,以提升工作效率和娱乐体验,并在教育、辅导、支持、头脑风暴、创意写作等方面为人们提供帮助。为了实现这一目标,高效地进行“推断”(即LLM生成回复的过程)在全球范围内至关重要。作为一家全栈AI公司,Character.AI 从零开始设计模型架构、推断栈和产品,以优化推断的效率、成本效益和可扩展性。原文戳这里。 高效的架构设计:Character.AI 通过以下技术,将注意力键值(KV)缓存大小减少了20倍以上,同时没有降低质量: 使用多查询注意力(Multi-Query Attention)。 采用混合注意力范围,将局部注意力(Local attention)与全局注意力层交织。 在相邻的注意力层之间共享KV缓存。 状态缓存:Character.AI 开发了一种在对话回合之间在主机内存上缓存注意力KV的高效系统。通过这种系统,可以实现95%的缓存率,进一步降低推断成本。 量化训练和推断:公司使用int8量化技术对模型权重、激活和注意力KV缓存进行量化,并实现了定制的int8内核以支持矩阵乘法和注意力计算。与常见的“后训练量化”技术不同,Character.AI 直接以int8精度训练模型,消除了训练/推断不匹配的风险,同时显著提高了训练效率。 成本效益:自2022年底以来,Character.AI 将推断成本降低了33倍。与使用领先的商业API相比,使用Character.AI的系统至少可以节省13.5倍的支出。 未来展望:Character.AI 感到兴奋的是,继续构建一个将LLM作为全球创新驱动力和增强体验的未来。公司承诺将继续推动AI的可能极限,致力于创建一个高效、可扩展的AI系统成为每一次互动核心的未来。 Character.AI 的 AI 推理优化 在 Character.AI,我们正在朝着实现通用人工智能 (AGI) 的目标迈进。在这个未来中,大语言模型 (LLMs) 将会提升我们的日常生活,从提高业务生产力到提供娱乐服务,并在教育、指导、支持、头脑风暴、创意写作等各方面帮助人们。 为了在全球范围内实现这一目标,必须实现高度高效的“推理”——即 LLMs 生成回复的过程。作为一家全栈 AI 公司,Character.AI 从零开始设计了模型架构、推理栈和产品,这为优化推理效率、降低成本并扩大规模提供了独特的机会,以满足快速增长的全球用户需求。 目前,我们每秒处理超过 20,000 次推理查询。为了让大家了解这一规模,可以参考一下,据第三方估计,Google 搜索每秒处理大约 105,000 次查询 (Statista, 2024),我们处理的查询量大约是它的 20%。 我们能够在如此大规模下稳定提供 LLM 服务,是因为我们在服务栈中开发了许多关键创新。在这篇博客文章中,我们将分享过去两年中开发并最近采用的一些技术和优化方法。 内存高效的架构设计LLM 推理的关键瓶颈在于注意力键值 (KV) 缓存的大小。KV 缓存的大小不仅决定了 GPU 上可以容纳的最大批次大小,还影响了注意力层的 I/O 成本。我们采用了以下技术,在不影响质量的前提下,将 KV 缓存大小减少了 20 倍以上。通过这些技术,GPU 内存不再是服务大批量请求的瓶颈。 1. 多查询注意力。我们在所有注意力层中采用了多查询注意力 (Shazeer, 2019)。相比大多数开源模型采用的分组查询注意力,这项技术将 KV 缓存大小减少了 8 倍。 2. 混合注意力范围。我们交替使用局部注意力 (Beltagy et al....