兄弟们,最近DeepSeek-V2开源后,社区讨论最热的就是它的Multi-head Latent Attention(MLA)机制。简单说,它把KV Cache压缩了大约4倍,推理时显存占用直接砍半。实测7B模型在4090上,batch size从原来8能拉到16,生成长度翻倍也不爆显存。
具体技术细节:MLA把Key和Value的维度从d_model压缩到latent维度(比如d_c),再通过低秩投影恢复。这样每个token的KV Cache大小从2*d_model*layers降到2*d_c*layers。以DeepSeek-V2的L2版本为例,d_model=4096,d_c=512,理论压缩比8倍,实际考虑多头投影后约4倍。
但注意,MLA需要修改推理框架的attention实现,目前vLLM、TGI还没官方支持。社区有人用FlashAttention 3魔改,速度提升约30%,但精度有轻微下降。建议先在小模型上验证,再上生产。另外,MLA对长上下文特别香,比如32K以上序列,显存节省效果更明显。有条件的兄弟可以跑一下benchmark,欢迎贴结果讨论。 |