FastBERT icon indicating copy to clipboard operation
FastBERT copied to clipboard

关于inference的效率问题

Open Youarerare opened this issue 3 years ago • 1 comments

https://github.com/autoliuweijie/FastBERT/blob/5f9e98bc87b577487771f9dffceb386b5c0107d3/run_fastbert.py#L132 我觉得推理性能慢不是因为nozero。 看代码实现,实际上相当于每过一层transformer encoder,就在当前这个batch剔除掉过于简单的样本 ,也就是batchsize变得更小,然而只要有一个样本到达最后一层,耗时都会比原来bert要多。

有没有办法能够更灵活的调度需要计算的样本,比如建立一个pool,进入到第10层之后的都放到一个池子里,一起调度,让每一层计算的batchsize固定,这样充分利用显卡资源的话推理起来应该会快很多。

Youarerare avatar Mar 23 '21 05:03 Youarerare

是否还可以考虑模型分层,bert12层直接分成12个模型,前面层数的模型的判断不了,就放进pool里面,集体调用后面的。而不是一个batch里面出现一个就一直往下走

Youarerare avatar Mar 23 '21 05:03 Youarerare