[ rerakner] 关于reranker全精度和半精度运行的一些问题
大神们好。
我在对rerakner进行一些实验的时候,发现一些问题。(bge-reranker-v2-m3模型)
问题:
1:全精度(fp32)比 半精度(fp16),整体推理耗时慢太多了(差不多5倍的差距)。请问这是正常的吗
2:我对token耗时和模型推理耗时进行了统计。发现全精度的token耗时占比太大了,比半精度大多了。正常直觉来看,不应该是全精度的模型推理耗时上升吗,为啥是token耗时(文本-->token)剧烈增加?如下图
另外,如何才能降低 token转换 的耗时 ?
请问token耗时指的是哪块时间?
请问token耗时指的是哪块时间?
inputs = self.tokenizer(
sentences_batch,
padding=True,
truncation=True,
return_tensors='pt',
max_length=max_length,
).to(self.device)
这部分耗时
哥们你不会用的是a800以上级别的显卡进行推理吧
哥们你不会用的是a800以上级别的显卡进行推理吧
嗯。A800。现在来看,token效率低了,这部分主要是CPU的原因。不知道能不能优化。
哥们你不会用的是a800以上级别的显卡进行推理吧
嗯。A800。现在来看,token效率低了,这部分主要是CPU的原因。不知道能不能优化。
你看看a800 fp16的算力和fp32的算力差多少。
@Tian14267 , 这块涉及到tokenizer和数据从cpu转到gpu,可能是数据转移花费了较多时间。 但理论上使用fp16和fp32这块时间应该是一致的,可以多测几次取平均值。
tokenizer这块有很大的提速空间,可以使用dataloader进行多线程处理,参考https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/flag_reranker.py#L16 也可以使用一些加速推理库,如https://github.com/huggingface/text-embeddings-inference
@Tian14267 , 这块涉及到tokenizer和数据从cpu转到gpu,可能是数据转移花费了较多时间。 但理论上使用fp16和fp32这块时间应该是一致的,可以多测几次取平均值。
tokenizer这块有很大的提速空间,可以使用dataloader进行多线程处理,参考https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/flag_reranker.py#L16 也可以使用一些加速推理库,如https://github.com/huggingface/text-embeddings-inference
好嘞,非常感谢建议。我测试了很多次,全精度和半精度,在token这边的耗时差距非常大。建议你们那边也可以测试一下。其他的加速库我回头看一下。主要想在xinference上进行使用。