跳转至

LLM推理

一文搞懂DeepSeek-V3_MLA注意力机制

DeepSeek-V3:多头潜在注意力(MLA)

MLA是DeepSeek-V2 和 DeepSeek-V3 背后的关键架构创新,可实现更快的推理。

DeepSeek-V3 的主要架构创新,包括 MLA(多头潜在注意力)、DeepSeekMoE、辅助无损负载均衡(auxiliary-loss-free load balancing)和多标记预测训练(multi-token prediction training)。

本文讲解的MLA技术,在 DeepSeek-V2 的开发中被提出,后来也被用于 DeepSeek-V3 中。

搞懂flash_attention

本文记录了学习flash_attention遇到的一些好的文章,帮助你搞懂flash_attention。

我们知道现在的LLM大模型主流是基于attention搭建的,attention的计算效率也决定了生产场景中大模型的可用性。flash_attention目前有三个版本,分别是flash_attention和flash_attention2和flash_attention3,它们的目的都是采取一系列的优化手段,提高attention的计算效率。

lmdeploy推理do_sample崩溃问题

采用server方式推理一个模型,会崩溃。

采用pipeline方式推理一个模型,不会崩溃。

不管是server还是pipeline,都调用了同样的generate()方法,但是为什么会产生不同的结果?传递的参数不同。

GPU的pin_memory是什么?

gpu的pin_memory

pin_memory就是在RAM上固定了一块内存,这个内存范围是被锁住的。pin这个单词很形象,很像rust中pin含义,用钉子把钉住,这个内存就不会释放,是安全的意思。GPU在传递数据的时候,就可以用DMA的方式,高效传输数据。否则,普通的cpu_memory,就会swap掉,然后访问的时候缺页中断,这样速度肯定就慢了很多。

text-generation-inference推理框架剖析

今天要介绍的主题是TGI(text-generation-inference), 是huggingface开源可用于生产环境的LLM大模型的推理部署服务。

由Router和Engine构成,Engine包括了InferServer。Router由Rust实现,InferServer由python端实现。Router相当于一个代理,面向业务会启动一个WebServer,包括对业务请求采用合适的策略进行动态Batch调整,实现大的吞吐和低的延迟。 Engine对各种LLM大语言模型进行支持,启动模型推理服务。 Router和Engine之间通过Protobuf定义消息和格式,通过GRPC方式就可以对推理服务进行访问。