从Flan-T5 XXL转换为ctranslate2,使用版本4.2.1和4.1.1(使用Tensor并行)得到意外的推理结果,

yqyhoc1h  于 6个月前  发布在  其他
关注(0)|答案(4)|浏览(63)

我正在使用我们项目中的货架模型的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中
对于修复它的一些建议,在这里会非常有帮助。

3zwjbxry

3zwjbxry1#

你在使用ctranslate2 4.1.1时,是否也有相同的行为?

m4pnthwp

m4pnthwp2#

你在使用ctranslate2 4.1.1时是否也有相同的行为?

不,它在4.1.1上运行正常,但在"使用Tensor并行"和"不使用Tensor并行"之间结果不同。我在4.2.0中看到一些与Tensor并行相关的bug已经修复,所以尝试升级,但遇到了这个问题

顺便说一下,响应是这样的
< pad >< pad >< pad >< pad >< pad >< pad >
我尝试了不同的量化类型,如bfloat16、float16等,但似乎都不起作用

k2arahey

k2arahey3#

我也在使用4.2.1版本的Translator时遇到了一个问题。使用4.2.1版本的Translator产生的推理结果很差,我没有检查输出本身,只是查看了我的指标,它们降到了零。

这种情况在4.1.1或3.24.0版本中并没有发生。
我考虑过使用4.2.1版本的转换器重新转换我的模型(我使用了3.24.0版本的转换器来生成我现在使用的Translator),但还没有时间去做这件事。

q9rjltbz

q9rjltbz4#

我也在看到所有变体的Flan-T5(基础版,大版,XL版)的回归。模型只是不断输出 <pad> 。我们正确地将其转换为使用 bfloat16 ,因为使用任何其他精度是T5的一个已知问题。我们恢复到了 3.24.1 。在没有Tensor并行的情况下进行推理,只有一个GPU。

相关问题