StarlightSearch/EmbedAnything

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

해결하는 문제

EmbedAnything는 다양한 데이터 소스를 벡터 임베딩으로 변환하는 프로세스를 단순화하기 위해 설계된 고성능 로컬 임베딩 파이프라인입니다. PyTorch에 대한 무거운 의존성을 제거하여 메모리 사용량을 줄이고 클라우드 배포를 용이하게 합니다. 특히 "벡터 스트리밍"을 도입하여 문서 전처리와 모델 추론을 분리함으로써 처리량을 높이고 지연 시간을 줄여 순차 처리의 병목 현상을 해결합니다.

작동 방식

속도와 메모리 안전성을 위해 Rust로 구축되었으며, 사용 편의성을 위해 Python 바인딩(PyO3를 통해)을 제공합니다. Candle, ONNX 및 클라우드 기반 모델을 포함한 다양한 백엔드를 지원합니다. 이 파이프라인은 수집(PDF, 텍스트, 이미지, 오디오)부터 청킹(시맨틱 또는 레이트 청킹), 그리고 모듈형 어댑터를 사용하여 결과 임베딩을 벡터 데이터베이스로 직접 스트리밍하는 전체 흐름을 처리합니다.

대상 사용자

전체 ML 프레임워크의 오버헤드 없이 로컬 또는 클라우드에서 임베딩을 생성할 수 있는 가볍고 빠르며 메모리 효율적인 방법을 필요로 하는 RAG(Retrieval-Augmented Generation) 애플리케이션 구축 개발자.

주요 특징

  • 멀티모달 지원: 텍스트(PDF, TXT, MD), 이미지(JPG) 및 오디오(.WAV) 처리.
  • 벡터 스트리밍: 파일 처리, 인덱싱 및 추론을 서로 다른 스레드에서 분리하는 병렬 워크플로.
  • 모듈형 어댑터: 최소한의 코드로 다양한 벡터 데이터베이스와 쉽게 통합.
  • 다양한 모델 지원: Dense, Sparse (SPLADE), Late-interaction (ColBERT) 및 ReRanker 모델과 호환.
  • 고급 청킹: 컨텍스트를 보존하기 위한 내장된 시맨틱 및 레이트 청킹 전략 포함.
  • 하드웨어 가속: GPU 가속을 지원하며 빌드된 Docker 이미지로 제공됨.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트