Closed wenlincheng closed 1 year ago
总结: 如果在训练时需要加入其他信息,最好保证列数和默认列数一样,并且利用自己的数据重新训练一个模型。否则需要改动代码。 如果新加入的信息不影响训练效果,可以单独用一个文件保存这个信息(保证和数据按行一一对应),在召回结果中/排序结果中保存行号,这样可以将这个信息补充回最终结果。
单独用一个文件保存这个信息还是挺复杂的。在创建向量索引的阶段可以将id一起存在索引库里吗,这样在查找索引的阶段就可以把对应的id一起查出来
RocketQA的代码提供了计算query和para向量和计算点积的部分,提供建库所需要的数据。example提供了使用Faiss、JINA、es进行建立索引的方法。当然,数据量小也可以自己做索引。
如果是自己搞索引可以自由实现这个功能,如果是使用Faiss之类的工具可能要看一下文档是不是支持。这个主要还是看建立索引的工具是不是支持这样的操作,RocketQA代码只提供到计算向量和点积为止,建库和查找是靠工具完成的。
但一般Faiss查找索引时支持返回行号作为标识,用行号对应保存其他信息的单独文件也不是很复杂。
RocketQA的代码提供了计算query和para向量和计算点积的部分,提供建库所需要的数据。example提供了使用Faiss、JINA、es进行建立索引的方法。当然,数据量小也可以自己做索引。
如果是自己搞索引可以自由实现这个功能,如果是使用Faiss之类的工具可能要看一下文档是不是支持。这个主要还是看建立索引的工具是不是支持这样的操作,RocketQA代码只提供到计算向量和点积为止,建库和查找是靠工具完成的。
但一般Faiss查找索引时支持返回行号作为标识,用行号对应保存其他信息的单独文件也不是很复杂。
非常感谢详细的解答。我使用的是es,在建索引的阶段添加了id字段实现了这个需求。
业务场景中一般都需要知道搜索出来的问题的id,以进行后续的处理,在导入数据集的时候是否可以增加一列用于存储问题的id