#vector-database #nlp #deep-learning #machine-learning #transformer

valentinus

使用 LMDB 绑定构建的下一代向量数据库

11 个不稳定版本 (3 个破坏性更新)

0.4.1 2024 年 8 月 6 日
0.4.0 2024 年 8 月 3 日
0.3.2 2024 年 8 月 2 日
0.3.1 2024 年 7 月 30 日
0.1.2 2024 年 7 月 13 日

#132机器学习

Download history 115/week @ 2024-07-06 237/week @ 2024-07-13 335/week @ 2024-07-20 462/week @ 2024-07-27 258/week @ 2024-08-03 10/week @ 2024-08-10

每月 1,126 次下载

Apache-2.0

140KB
997 代码行

.github/workflows/rust.yml test Crates.io Version Crates.io Downloads (latest version) docs.rs GitHub commit activity Matrix

alt text

valentinus

使用 lmdb 绑定构建的下一代向量数据库

依赖项

  • bincode/serde - 序列化和反序列化
  • lmdb-rs - 数据库绑定
  • ndarray - NumPy 的等效
  • ort/onnx - 嵌入

入门

git clone https://github.com/kn0sys/valentinus && cd valentinus

可选环境变量

变量 使用 默认
LMDB_USER 数据库的用户工作目录 $USER
LMDB_MAP_SIZE 设置最大环境大小,即所有数据在内存/磁盘中的大小 可用内存的 20%
ONNX_PARALLEL_THREADS 此会话的并行执行模式 1
VALENTINUS_CUSTOM_DIM 自定义模型的嵌入维度 all-mini-lm-6 -> 384

测试

  • 注意:所有测试目前都需要 all-Mini-LM-L6-v2_onnx 目录
  • 从 huggingface 或 构建 模型.onnx 和 tokenizer.json
mkdir all-Mini-LM-L6-v2_onnx
cd all-Mini-LM-L6-v2_onnx && wget https://hugging-face.cn/sentence-transformers/all-MiniLM-L6-v2/resolve/main/config.json
wget https://hugging-face.cn/sentence-transformers/all-MiniLM-L6-v2/resolve/main/onnx/model.onnx
wget https://hugging-face.cn/sentence-transformers/all-MiniLM-L6-v2/resolve/main/special_tokens_map.json
wget https://hugging-face.cn/sentence-transformers/all-MiniLM-L6-v2/resolve/main/tokenizer_config.json
wget https://hugging-face.cn/sentence-transformers/all-MiniLM-L6-v2/resolve/main/tokenizer.json
wget https://hugging-face.cn/sentence-transformers/all-MiniLM-L6-v2/resolve/main/vocab.txt

示例

示例

参考

受此 chromadb Python 教程启发

依赖项

~20–47MB
~789K SLoC