EmbedAnything  by StarlightSearch

Rust pipeline for local embedding generation from multimodal sources

Created 1 year ago
716 stars

Top 48.0% on SourcePulse

GitHubView on GitHub
Project Summary

EmbedAnything is a Rust-based, multimodal embedding pipeline designed for efficient inference, ingestion, and indexing of text, images, and audio. It targets AI engineers and developers seeking a performant, memory-efficient solution for generating embeddings from diverse data sources and streaming them to vector databases, with a key advantage being its minimal dependencies and local model execution.

How It Works

The pipeline leverages Rust for core processing, ensuring speed and memory safety. It supports multiple embedding backends: Candle for Hugging Face models and ONNX Runtime for optimized inference. This dual-backend approach offers flexibility in model choice and deployment. A core innovation is "Vector Streaming," which processes and streams embeddings chunk-by-chunk, eliminating the need for large in-memory storage and enabling efficient handling of substantial files.

Quick Start & Requirements

  • Installation: pip install embed-anything (for CPU) or pip install embed-anything-gpu (for GPU).
  • Prerequisites: Python 3.x. GPU support requires compatible hardware and drivers (e.g., CUDA). Specific models may have additional requirements.
  • Resources: Low memory footprint, especially without PyTorch. GPU acceleration is available.
  • Links: Colab Notebook, Blog

Highlighted Details

  • Supports a wide range of embedding models via Hugging Face (Candle) and ONNX, including dense, sparse, and late-interaction types.
  • Handles multimodal data: text (PDF, TXT, MD), images (JPG), and audio (.WAV).
  • Features semantic chunking and late-chunking for improved RAG workflows.
  • Offers vector streaming for memory-efficient indexing and supports integrations with databases like Elastic, Weaviate, Pinecone, and Qdrant.

Maintenance & Community

  • Active development with a roadmap including GGUF support and fine-tuning capabilities.
  • Community engagement via Discord: https://discord.gg/juETVTMdZu
  • Past collaborations with Elastic, Weaviate, and SingleStore.

Licensing & Compatibility

  • The README does not explicitly state a license. Compatibility for commercial use or closed-source linking is not specified.

Limitations & Caveats

The project is actively developing, with video and graph embeddings listed as future work. While Candle offers flexibility with Hugging Face models, it may involve a speed compromise compared to strictly ONNX-optimized models. The license status requires clarification for commercial adoption.

Health Check
Last Commit

2 days ago

Responsiveness

1 day

Pull Requests (30d)
2
Issues (30d)
1
Star History
29 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.