首页 > 解决方案 > 数据库、RAM 和重组

问题描述

我有 5GB 字典,其中键是单词,值是 300d 数字向量,但我只有 1GB RAM(减去 200MB 服务器)和 50GB ssd。对于输入句子中的每个单词,我的目标是相对快速(1-3 秒)检索向量。

哪种存储系统最适合此类任务?像 Mongo 这样的非 SQL 数据库是一个不错的选择吗?

如果是这样,有没有办法计算 mongo 需要的最小缓存,这个解决方案对于给定的硬件是否可行?

谢谢你。

标签: databasemongodbperformanceram

解决方案


32假设每个位和32word键的单精度浮点数,5GB大致总结为4.1百万个向量。

您可以将包含这百万个条目的<word, word>字典存储在. 字典的值部分指向存储在文件中的文件和偏移量的组合。如果您的假设不同,则计算应保持相似。4.1RAMSSD

将整个向量存储在一个文件中可能是不切实际的。如果表空间位于 SSD 上,将向量存储在数据库中可能就足够了。

示例:您可以拥有每个32带有130.000矢量的文件。然后,5字值的最高位表示文件,最低27位是文件内的偏移量或向量号。


推荐阅读