-
Notifications
You must be signed in to change notification settings - Fork 3k
[Bug]: 手把手搭建一个语义检索系统BUG,run.system.py在rank时出错,个人进行了修复,不过返回结果超级小和官方提供的有点出路。 #6573
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
更新一步,通过修改召回数量,从100---》10,发现在运行结果上与官方成功案例一致,但上述疑问仍存在。
|
您是多卡训练的吗?训练配置是啥?我记得我训练的时候是多卡 |
训练配置单卡V100 ,不用全量训练只是验证一下流程,反馈的内容主要是推理阶段遇到的问题 |
您说的是召回的数量对结果的影响是吗?这个可能是重排序模型引起的 |
首先是提供码源有bug,run.system.py文件中一个bug
修改后可运行排序
首先我先描述一下官方给出案例结果
可以看到召回阶段计算的是向量见距离、排序输出结果是概率 在看到我的
可以看到召回阶段计算的是向量见距离、排序输出结果是也是
这里返回的是排序后预测概率。 总结一下第二个问题:看到run.system.py中输出排序结果是概率还是向量间距离有点疑惑,希望您可以确认一下。我看代码感觉输出的是向量距离;但是调用的serving里的config参数明确写明了是概率;同时用排序模块单独验证确实是个概率。发现和官网案例有点不一样,这里有点迷了,还请解答 |
排序模型是一个cross encoder输出的是概率。召回是向量间的相似距离,计算的是L2.
排序模型的端口是: PaddleNLP/applications/neural_search/ranking/ernie_matching/deploy/python/config_nlp.yml Line 16 in ae0bea9
这里的距离被排序模型重写了。
欢迎开发者提PR贡献哈 |
软件环境
重复问题
错误描述
问题一:手把手搭建一个语义检索系统,项目链接
run.system.py文件中一个bug,在排序模块中
稳定复现步骤 & 代码
手把手搭建一个语义检索系统,项目链接
run.system.py文件中一个bug,修复代码
以及会输出2个文件 recall_result.csv 是召回检索的结果,rank_result.csv 是排序的结果
这里有一点疑问,以上召回和排序模型都经过Paddle Serving服务化以后,执行
python run_system.py
发现给出结果rank的值和官方的很不一致
但看了召回和排序模型都加载在内存,也被服务调用了
这里排序模型我用了CrossEncoder:rocketqa-base-cross-encoder。自己训练出来模型效果
AUC:0.804
不知道为什么会有这么大出路,
literature_search_rank
serving部署方式返回概率:
也都感觉正常, 但执行run_system.py发现给出结果rank的值和官方的很不一致,概率来看这个值都太小了吧,
感谢您解答!
The text was updated successfully, but these errors were encountered: