我已经问过 stackoverflow (here),但我认为将嵌入存储在普通 postgres 数据库中的方法可能从一开始就存在缺陷。我将很快再次蚀刻出应用程序:
- 文本语料库(几十万个文档,包含几段)
- 使用 BERT 创建的嵌入(对于每个段落)
- 应用:相似度搜索(检索相似的段落和参考文档)
我看过有关使用 BERT 等创建嵌入的教程,并且一切正常。我的关键是如何管理拥有几百万个嵌入并搜索类似的嵌入。将它们存储在哪里,以及附加信息(与嵌入相关的原始文本和包含该文本的文档)。
所以问题是:
如何在不使用云环境(数据隐私原因)的情况下以一种高效且可搜索的方式存储几百万个嵌入(768 维 numpy 数组)?
TensorFlow Records 是正确的答案吗?
到底是不是关系型数据库?
有什么不同吗?这是我的第一个 NLP 任务,我可能根本不知道明显的答案。但是,在 stackexchange 和 google 上搜索并没有提供解决方案。