这块 vllm-ascend 官方文档里很简单地一笔带过了。。
https://docs.vllm.ai/projects/ascend/en/latest/developer_guide/Design_Documents/quantization.html)

按照官方的说明虽然可以意会,还是具体推理过程中量化操作到底是怎么跑到 ascend 代码上去的,缺乏具体的机制细节还是有点难以理解。于是乎梳理(啃)了整整一下午 vllm 和 vllm-ascend 代码仓,画出了下图。本来还想写篇走读帖的,想想就有点昏过去了,还是一图胜千言吧。。

vllm-to-vllm-ascend.png

发现之前看漏了一块,主要执行者不是 Method 类,而是 Method 类里包着的 Scheme 成员,进而发现还有一套 quant_type、layer_type、Scheme 注册和匹配机制。已在图中补全。好了,现在是整整俩下午了。