- 长臂猿-企业应用及系统软件平台
大语言模型的生产部署存在两个主要的挑战,一个是需要大量的参数,一个是需要处理非常长的用于表示上下文信息的输入序列。Hugging Face 基于他们提供大模型服务的经验分享了一些克服这些障碍的技术。 Patrick von Platen 在文中介绍的 Hugging Face 研究的三种技术是降低数值精度、使用一种叫作 Flash Attention 的注意力算法,以及使用专门的推理架构。 大语言模型需要大量的 VRAM 来加载,从几十 (bigcode/starcoder) 到数百 GB (Llama、Bloom、GPT3)。第一个优化手段是从 float32 切换到 bfloat16 精度: 这将进一步减少所需的内存,使得在只有 16GB VRAM 的 GPU 上运行较小的模型成为可能,尽管代价是推理时间稍长。 von Platen 写道,使用 Flash Attention 是另一相关键的优化,它是大语言模型用来理解输入标记上下文关系的自注意力层的一种算法,有可能打破输入标记数量的二次增长。 因为该算法太过复杂,无法在这里描述,但可以这么说,它利用了 softmax 规范化统计数据和一些数学手段,在只需要随输入标记线性增长的内存的情况下提供相同的输出。推理性能也得益于算法使用了更快的 SRAM 而不是更慢的 GPU VRAM。 Here recent research can help to make the right choice with two components that quickly become bottlenecks, says von Platen, positional embeddings and the key-value cache. 在生产环境中部署大语言模型的第三项优化措施是选择正确的架构,让它们能够有效地处理长文本输入。von Platen 写道,最近的研究有助于我们如何对两个很快成为瓶颈的组件做出选择——一个是 _ 位置嵌入 (positional embeddings)_,一个是 _ 键值缓存 _。 位置嵌入通过将每个标记的位置编码为数字表示来帮助语言大模型理解序列顺序。对于需要处理大型文本输入任务的大语言模型,应该使用 RoPE 和 ALiBi 等相对位置嵌入技术进行训练。 目前的许多大语言模型中已经在使用这两种算法。 键值缓存可以作为对对话上下文进行编码的一种方法。键值缓存在发生每个新交互时增加一个元素,这比为每个请求编码 / 解码上下文的方法要有效得多。von Platen 详细介绍了两类键值缓存,即 Multi-Query-Attention (MQA) 和 Grouped-Query-Attention(GQA) 。 von Platen 的文章所涵盖的内容不只有本文所概述的这些,他的文章中还提供了实际的例子来证明他的观点,所以请不要错过他的文章。 原文链接: https://www.infoq.com/news/2023/09/hugging-face-optimizing-llms/ 大模型的出现从根本上改变了数字化转型的赛道,在 InfoQ《超级连麦. 数智大脑》直播中,富滇银行数字金融中心副主任李涛深入探讨了自身对于 AIGC 在金融领域创新方面的思考,分享了银行数字化发展的历程及背后的架构演进。识别下方二维码或关注「InfoQ 数字化经纬」公众号,即可阅读全文。