StarlightSearch/EmbedAnything

Highly Performant, Modular, Memory Safe and Production-ready Inference, Ingestion and Indexing built in Rust 🦀

解决的问题

EmbedAnything 是一个高性能的本地嵌入流水线,旨在简化将各种数据源转换为向量嵌入的过程。它消除了对 PyTorch 的沉重依赖,降低了内存占用,并使云端部署更加容易。它通过引入“向量流式传输”专门解决了顺序处理的瓶颈,将文档预处理与模型推理分离,从而提高吞吐量并降低延迟。

工作原理

该项目使用 Rust 构建,具有高速和内存安全性,并通过 PyO3 提供 Python 绑定以方便使用。它支持包括 Candle、ONNX 和云端模型在内的多种后端。该流水线处理从摄取(PDF、文本、图像、音频)到分块(语义分块或延迟分块),最后通过模块化适配器将生成的嵌入直接流式传输到向量数据库的整个流程。

适用对象

构建 RAG(检索增强生成)应用的开发人员,他们需要一种轻量、快速且内存高效的方式,在没有完整机器学习框架开销的情况下,在本地或云端生成嵌入。

亮点

  • 多模态支持:处理文本 (PDF, TXT, MD)、图像 (JPG) 和音频 (.WAV)。
  • 向量流式传输:在不同线程上分离文件处理、索引和推理的并发工作流。
  • 模块化适配器:通过极少的代码即可轻松集成各种向量数据库。
  • 多样化的模型支持:兼容稠密 (dense)、稀疏 (SPLADE)、延迟交互 (ColBERT) 和重排序 (ReRanker) 模型。
  • 高级分块:内置语义分块和延迟分块策略以保留上下文。
  • 硬件加速:支持 GPU 加速,并提供预构建的 Docker 镜像。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目