EmbedAnything  by StarlightSearch

Rust pipeline for local embedding generation from multimodal sources

created 1 year ago
666 stars

Top 51.5% 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

6 days ago

Responsiveness

1 day

Pull Requests (30d)
1
Issues (30d)
6
Star History
125 stars in the last 90 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems) and Jeff Hammerbacher Jeff Hammerbacher(Cofounder of Cloudera).

towhee by towhee-io

0.2%
3k
Framework for neural data processing pipelines
created 4 years ago
updated 9 months ago
Feedback? Help us improve.