数据工坊 DWR-EMS以存代算:以存代算产生的背景
以存代算产生的背景
在AI推理过程中,Transformer模型接收用户的问题输入,并通过迭代方式生成相应的回答。每个Transformer层由自注意力模块和前馈网络模块组成。
在自注意力模块中,上下文词元(token)与模型参数结合,生成中间数据K(键)和V(值),并进行注意力计算。为避免在迭代生成过程中重复计算KV,生成的KV中间数据被存储在AI服务器的显存中,形成KV缓存。每个词元的KV缓存大小取决于模型的维度、层数以及数据精度,计算公式为:单个词元的KV缓存大小 = 模型维度 * 模型层数 * 数据精度 * 2。例如:GPT3模型的数据维度和层数分别为12288和96,在双字节精度下,单个词元的KV缓存大小为12288 * 96 * 2 * 2字节 = 4.5MB。
在推理过程中,每个推理请求所需的KV缓存大小与上下文长度成线性关系。例如:在GPT3模型的推理中,长度为2048的上下文将占用约4.5MB * 2048 = 10GB的AI服务器显存空间。
然而,AI服务器通常只能提供几十GB的显存容量,其中一部分还要用于存储模型参数,仅剩余部分空间用于KVCache缓存。例如:使用8张64GB的AI服务器部署GPT3模型,系统显存总容量为512GB(8 * 64GB),其中350GB用于模型参数,剩余162GB仅能支持16个(162GB / 10GB)2048上下文长度的推理请求缓存KV值。
因此,AI服务器能够同时处理的请求数量受限于显存容量。
综上所述,Transformer模型推理中存在严重的AI内存墙问题。为解决这一问题,EMS通过以存代算技术加速AI推理。