netease-youdao / BCEmbedding

Netease Youdao's open-source embedding and reranker models for RAG products.
Apache License 2.0
1.35k stars 90 forks source link

reranker速度问题 #16

Open shilei4260 opened 7 months ago

shilei4260 commented 7 months ago

reranker速度问题,设置一个问题1000条数据查找40条数据需要20s,有没有加速的方案,比如TensorRT?

shenlei1020 commented 7 months ago

感谢您的反馈,如果我没理解错,您是用一个query对1000个passages进行rerank,然后取top 40是吗?以下是几点建议: 1、我们的bce-reranker-base_v1是base规模的bert模型,是市面上开源的最小reranker模型了; 2、根据我们的经验,利用onnxruntime部署reranker模型,就可以高并发低延迟; 3、关于使用的经验:reranker尽量不要去rerank 1000这么大量级的passages。一般我们实践经验,embedding最多召回top 100,reranker最多对这100个passage进行rerank就可以实现很好的性能,对1000做rerank,很多低质量passages浪费算力; 4、综合步骤2(onnxruntime+组batch+多进程多线程)+步骤3(最多rerank 100个embedding召回片段),可以在3090上单卡实现,对100 个passages做rerank不超过200 ms。

shilei4260 commented 7 months ago

好的,感谢明白了。

shilei4260 commented 7 months ago

有具体的实现教程吗,网上没看到转reranker转onnx的教程

deku0818 commented 5 months ago

感谢您的反馈,如果我没理解错,您是用一个query对1000个passages进行rerank,然后取top 40是吗?以下是几点建议: 1、我们的bce-reranker-base_v1是base规模的bert模型,是市面上开源的最小reranker模型了; 2、根据我们的经验,利用onnxruntime部署reranker模型,就可以高并发低延迟; 3、关于使用的经验:reranker尽量不要去rerank 1000这么大量级的passages。一般我们实践经验,embedding最多召回top 100,reranker最多对这100个passage进行rerank就可以实现很好的性能,对1000做rerank,很多低质量passages浪费算力; 4、综合步骤2(onnxruntime+组batch+多进程多线程)+步骤3(最多rerank 100个embedding召回片段),可以在3090上单卡实现,对100 个passages做rerank不超过200 ms。

请问有示例吗?

shguan2018 commented 4 months ago

有没有测试例子?另外, passage 一般是多长的字符?

goodstudy12 commented 2 months ago

感谢您的反馈,如果我没理解错,您是用一个query对1000个passages进行rerank,然后取top 40是吗?以下是几点建议: 1、我们的bce-reranker-base_v1是base规模的bert模型,是市面上开源的最小reranker模型了; 2、根据我们的经验,利用onnxruntime部署reranker模型,就可以高并发低延迟; 3、关于使用的经验:reranker尽量不要去rerank 1000这么大量级的passages。一般我们实践经验,embedding最多召回top 100,reranker最多对这100个passage进行rerank就可以实现很好的性能,对1000做rerank,很多低质量passages浪费算力; 4、综合步骤2(onnxruntime+组batch+多进程多线程)+步骤3(最多rerank 100个embedding召回片段),可以在3090上单卡实现,对100 个passages做rerank不超过200 ms。

是否可以在cpu下运行达到这个速度呐

deku0818 commented 2 months ago

有具体的实现教程吗,网上没看到转reranker转onnx的教程

同求

ifromeast commented 2 weeks ago

@shenlei1020 请问大佬,我看在qanything 中,使用 triton server 部署服务的

/opt/tritonserver/bin/tritonserver --model-store=/model_repos/QAEnsemble --http-port=10000 --grpc-port=10001 --metrics-port=10002

请问 /model_repos/QAEnsemble 是从哪里来的呢,是从哪里下载或者应该如何生成呢?感谢