九 采样策略分析
在前面几篇文章中,详细讲述了vllm的调度系统和模型推理流程,现在还剩下最后一个问题,即如何对齐输出结果。
本来觉得这部分内容很快就能写完,不过在实测过程中有很多疑点,最近忙于其他事情,没空研究这部分内容。这里先放个屁股,有机会再补上。
先列举下遇到的问题:
在模型输出特征一致的情况下, 影响输出token最大因素即是不同的采样策略,如transformers和vllm的推理结果会有偏差。
目前可以确定,是采样方法差异导致的推理结果不一致,在 https://zhuanlan.zhihu.com/p/658780653 文章中给出了改写方法,不过新版vllm中,情况比该文章描述的更复杂:
比如llama3和llama3.1,在prompt一样时,transformers和vllm的推理结果是对齐的,但qwen系列结果对不齐,这就很奇怪,因为vllm解码与采样策略是所有模型公用的。
另外大模型MLP过程中,down_proj计算,单batch与合并后的多batch计算结果会有少量差异,原因还没找到。