[Bug]:当批量大小大于1时,即使温度为0,VLLM的响应也不一致,

ssm49v7z  于 6个月前  发布在  其他
关注(0)|答案(5)|浏览(54)

🐛 描述bug

测试环境:

  • 硬件:A100 80GB GPU
  • 型号:Llama3-8b
    参数:温度=0,最大令牌数=1024,最大序列数=256,种子=1
  • 我使用python -m vllm.entrypoints.openai.api_server创建了OpenAI-Compatilbe服务器。

测试方法:

  • 首先,一次发送一个请求,以验证相同的提示是否始终产生相同的响应。
  • 其次,一次发送多个具有相同提示的请求,以验证相同的提示是否始终产生相同的响应。

发现的问题:

单个请求的一致性:当批处理大小为1时,相同的提示始终产生相同的响应。
多个请求的不一致性:当批处理大小增加到大于1时,相同提示的响应变得不一致。

  • 当我将vllm服务器的参数max_num_seqs设置为1时,结果都是一样的

我认为这个问题源于批处理调度程序一起处理多个请求的方式。
我的问题与其他人的类似
#3544
#4606
#608

xbp102n0

xbp102n01#

同样相关的: #5404
(注意:我不参与vLLM的这一部分,所以除了对问题进行分类外,我无法提供太多帮助)

b5buobof

b5buobof2#

@gjgjos 如果您使用float32出于兴趣,您是否看到了相同的行为?

x6492ojm

x6492ojm3#

另外:你看到的响应有什么不同?它们是完全垃圾吗?还是它们一开始符合预期,然后偏离到合理但与单个请求情况不同的程度?

v7pvogib

v7pvogib4#

这个现象是由float16和float32对应的不同操作引起的。

dxxyhpgq

dxxyhpgq5#

你看到的响应有什么不同吗?它们是完全垃圾吗?还是一开始符合预期,然后偏离到合理但与单个请求情况不同的程度?
响应非常相似。只有一个或两个单词不同。这个问题仅限于float 16。不仅vllm,还有huggingface或fasttransformer也存在这个问题。
精确的原因是什么,对于FP16有没有解决方案?

相关问题