我正在使用我们项目中的货架模型的Flan-t5 XXL,为了部署,我们已经使用以下命令将其转换为ctranslate2版本
ct2-transformers-converter --model ~/input_folder/ --output_dir ~/flant5_ct2/
现在我将模型作为gRPC服务器托管,在Tensor并行模式下启动,如下所示
ctranslate2.Translator(checkpoint_path, device="cuda", tensor_parallel=True)
我使用mpirun以2个示例启动服务器,以允许Tensor并行生效。这运行良好,模型均匀地分布在2个GPU上
mpirun -n 2 python model_server.py
现在当我在它上面运行推理时,它对我的提示返回以下结果("谁是美国总统?")
"< pad >< pad >< pad >< pad >< pad >< pad >"
现在这种奇怪的行为只发生在ctranslate2==4.2.1中
对于修复它的一些建议,在这里会非常有帮助。
4条答案
按热度按时间3zwjbxry1#
你在使用ctranslate2 4.1.1时,是否也有相同的行为?
m4pnthwp2#
你在使用ctranslate2 4.1.1时是否也有相同的行为?
不,它在4.1.1上运行正常,但在"使用Tensor并行"和"不使用Tensor并行"之间结果不同。我在4.2.0中看到一些与Tensor并行相关的bug已经修复,所以尝试升级,但遇到了这个问题
顺便说一下,响应是这样的
< pad >< pad >< pad >< pad >< pad >< pad >
我尝试了不同的量化类型,如bfloat16、float16等,但似乎都不起作用
k2arahey3#
我也在使用4.2.1版本的Translator时遇到了一个问题。使用4.2.1版本的Translator产生的推理结果很差,我没有检查输出本身,只是查看了我的指标,它们降到了零。
这种情况在4.1.1或3.24.0版本中并没有发生。
我考虑过使用4.2.1版本的转换器重新转换我的模型(我使用了3.24.0版本的转换器来生成我现在使用的Translator),但还没有时间去做这件事。
q9rjltbz4#
我也在看到所有变体的Flan-T5(基础版,大版,XL版)的回归。模型只是不断输出
<pad>
。我们正确地将其转换为使用bfloat16
,因为使用任何其他精度是T5的一个已知问题。我们恢复到了3.24.1
。在没有Tensor并行的情况下进行推理,只有一个GPU。