Closed shiztong closed 4 months ago
您好,训练模型主要还是看数据和场景。BGE是很好的训练框架,我们目前这一版本主要做了一些场景适配的工作。目前RAG-Retrieval这一版本,主要还是兼容多种不同的开源模型。
1.比如embedding,可以无缝衔接各大开源的。而不用关注pooling方法。 2.比如cross encoder的reranker,bge的reranker用交叉熵loss,预测的时候才用sigmoid归一化到0-1,其实分布不是特别均匀,无法很好的完成筛选不相关doc的功能。BCE的reranker支持这种功能,但其没有开源训练代码,它也不能用BGE来训练,否则会失去这个功能。而RAG-Retrieval在训练的过程中,采用BCE loss 或者支持MSE loss,其可以将query和doc的score可以归一化到0-1中间,可以完成筛选掉不相关的负例doc的功能。 3.另外,colbert,bge的训练代码(将稀疏,向量和colbert和在一起),这里单独实现了colbert。
此外,我们也招募一些社区的朋友,在贡献更多的功能,具体可以参考我们的RoadMap,后续将支持LLM-base的训练以及预测,或者用LLM来人造数据等等。 https://saber-roof-e9f.notion.site/RAG-Retrieval-Roadmap-c817257e3e8a484b8850cac40a3fcf88?pvs=4
请教一下作者, 你的这个实现,比BGE自有的训练效果会更好么?