Closed ChuanhongLi closed 4 months ago
inf llm attention 本身支持,batch size 会 map 到 num units 但是我们之前测试 batch 推理性能一般,所以没有提供这个接口。
如果需要 batch 推理,我推荐你为不同的数据使用不同的 ContextManager。
这样可以支持 left padding 的主流推理设置。
在 append 到 context manager 的时候,skip 前面的 padding。
需要修改 inf_llm/attention/inf_llm.py
(为每个数据使用单独 ContextManager)
以及 inf_llm/utils/patch_hf.py
(需要给出 left padding 的位置,或许可以使用 attention_mask)
另外 greedy search 没有写 batch 的输入,需要写一下 left padding
inf llm attention 本身支持,batch size 会 map 到 num units 但是我们之前测试 batch 推理性能一般,所以没有提供这个接口。
如果需要 batch 推理,我推荐你为不同的数据使用不同的 ContextManager。 这样可以支持 left padding 的主流推理设置。 在 append 到 context manager 的时候,skip 前面的 padding。 需要修改
inf_llm/attention/inf_llm.py
(为每个数据使用单独 ContextManager) 以及inf_llm/utils/patch_hf.py
(需要给出 left padding 的位置,或许可以使用 attention_mask)另外 greedy search 没有写 batch 的输入,需要写一下 left padding
感谢回复! 试问下,能否共享下你们之前测试batch推理时用的测试代码(如果方便的话),我们也跑下我们模型的性能,或者可以一起基于你们测试代码尝试优化一下?
感谢回复! 试问下,能否共享下你们之前测试batch推理时用的测试代码(如果方便的话),我们也跑下我们模型的性能,或者可以一起基于你们测试代码尝试优化一下?
好的 generator.txt 这份代码使用 right padding 进行推理,为了保证所有 decoding 部分进行 per token 的查询,如果有一组数据开始生成,就会整体使用 1 的 chunk size,如果使用 left padding 应该效率会高一些
感谢回复! 试问下,能否共享下你们之前测试batch推理时用的测试代码(如果方便的话),我们也跑下我们模型的性能,或者可以一起基于你们测试代码尝试优化一下?
好的 generator.txt 这份代码使用 right padding 进行推理,为了保证所有 decoding 部分进行 per token 的查询,如果有一组数据开始生成,就会整体使用 1 的 chunk size,如果使用 left padding 应该效率会高一些
谢谢!我用 prompt = ['你好!', '你好,请问你可以做什么?'] 进行测试,第一个问题输出的全是<|im_start|>,第二个问题输出正常;如果是改为 prompt = ["你好,请问你可以做什么?", "你好,请问你可以做什么?"],则两个输出都正常;貌似是只要输入的prompt长度不一致,就有点问题;请问你们之前有碰到过这个问题吗?
感谢回复! 试问下,能否共享下你们之前测试batch推理时用的测试代码(如果方便的话),我们也跑下我们模型的性能,或者可以一起基于你们测试代码尝试优化一下?
好的 generator.txt 这份代码使用 right padding 进行推理,为了保证所有 decoding 部分进行 per token 的查询,如果有一组数据开始生成,就会整体使用 1 的 chunk size,如果使用 left padding 应该效率会高一些
谢谢!我用 prompt = ['你好!', '你好,请问你可以做什么?'] 进行测试,第一个问题输出的全是<|im_start|>,第二个问题输出正常;如果是改为 prompt = ["你好,请问你可以做什么?", "你好,请问你可以做什么?"],则两个输出都正常;貌似是只要输入的prompt长度不一致,就有点问题;请问你们之前有碰到过这个问题吗?
Qwen batch推理的问题,已经正常,谢谢!
您好,请问下,是否支持多batch推理?