Inferenz, Einnahme und Indexierung - durch Rost aufgeladen?
Erforschen Sie die Dokumente »
Ansicht Demo · Bänke · Vektor -Streaming -Adapter. Suche im Audioraum
Einbettything ist ein minimalistischer, hochdarstellender, blitzschneller, leichtgewichtiger, Multisource, multimodaler und lokaler Einbettungspipeline, der in Rost eingebaut ist. Unabhängig davon, ob Sie mit Text, Bildern, Audio, PDFs, Websites oder anderen Medien arbeiten, Embodenything strengt den Prozess der Generierung von Einbettungen aus verschiedenen Quellen und nahtlos Streaming (Speicher-effizientes Indexieren) in eine Vektordatenbank. Es unterstützt dichte, spärliche, Onnx- und Spätinteraktions-Einbettungen und bietet Flexibilität für eine Vielzahl von Anwendungsfällen.
Mit Vector -Streaming können Sie Einbetten für Dateien verarbeiten und generieren. Wenn Sie also 10 GB Datei haben, können Sie kontinuierlich ein Einbettungs -Chunk per Chunk generieren, das Sie semantisch segmentisch segmentisch segmentisch generieren und sie in der Vektor -Datenbank Ihrer Wahl speichern können, sodass Sie die Bulk -Einsparungen auf dem RAM auf einmal auf dem RAM entfernen können. Der Einbettungsprozess erfolgt getrennt vom Hauptprozess, um eine hohe Leistung zu erhalten, die durch Rust MPSC aktiviert ist.
➡️Faster Ausführung.
➡️Memory Management: Rust setzt das Speichermanagement gleichzeitig durch und verhindert Speicherlecks und Abstürze, die andere Sprachen plagen können
➡️True Multithreading
➡️Running Sprachmodelle oder Einbettungsmodelle lokal und effizient einbetten
➡️Candle ermöglicht Schlussfolgerungen zum Cuda-fähigen GPUs direkt außerhalb der Box.
➡️Schroektieren Sie die Speicherverwendung von Emketten.
Wir unterstützen alle Umarmungsmodelle an Kerzen. Und wir unterstützen auch Onnx -Laufzeit für Bert und Colpali.
model = EmbeddingModel . from_pretrained_hf (
WhichModel . Bert , model_id = "model link from huggingface"
)
config = TextEmbedConfig ( chunk_size = 200 , batch_size = 32 )
data = embed_anything . embed_file ( "file_address" , embedder = model , config = config )| Modell | Benutzerdefinierte Link |
|---|---|
| Jina | Jinaai/Jina-Embeddings-V2-Base-en |
| Jinaai/Jina-Embeddings-V2-Small-en | |
| Bert | Satztransformer/All-Minilm-L6-V2 |
| Satztransformer/All-Minilm-L12-V2 | |
| Satztransformer/Paraphrase-Minilm-L6-V2 | |
| Clip | OpenAI/Clip-Vit-Base-Patch32 |
| Flüstern | Die meisten Openai -Flüsterung von Huggingface unterstützt. |
model = EmbeddingModel.from_pretrained_hf(
WhichModel.SparseBert, "prithivida/Splade_PP_en_v1"
)
model = EmbeddingModel.from_pretrained_onnx(
WhichModel.Bert, model_id="onnx_model_link"
)
model: ColpaliModel = ColpaliModel.from_pretrained_onnx("starlight-ai/colpali-v1.2-merged-onnx", None)
model = EmbeddingModel . from_pretrained_hf (
WhichModel . Bert , model_id = "sentence-transformers/all-MiniLM-L12-v2"
)
# with semantic encoder
semantic_encoder = EmbeddingModel . from_pretrained_hf ( WhichModel . Jina , model_id = "jinaai/jina-embeddings-v2-small-en" )
config = TextEmbedConfig ( chunk_size = 256 , batch_size = 32 , splitting_strategy = "semantic" , semantic_encoder = semantic_encoder ) pip install embed-anything
Für GPUs und Verwendung spezieller Modelle wie Colpali
pip install embed-anything-gpu
model = EmbeddingModel . from_pretrained_local (
WhichModel . Bert , model_id = "Hugging_face_link"
)
data = embed_anything . embed_file ( "test_files/test.pdf" , embedder = model ) import embed_anything
from embed_anything import EmbedData
model = embed_anything . EmbeddingModel . from_pretrained_local (
embed_anything . WhichModel . Clip ,
model_id = "openai/clip-vit-base-patch16" ,
# revision="refs/pr/15",
)
data : list [ EmbedData ] = embed_anything . embed_directory ( "test_files" , embedder = model )
embeddings = np . array ([ data . embedding for data in data ])
query = [ "Photo of a monkey?" ]
query_embedding = np . array (
embed_anything . embed_query ( query , embedder = model )[ 0 ]. embedding
)
similarities = np . dot ( embeddings , query_embedding )
max_index = np . argmax ( similarities )
Image . open ( data [ max_index ]. text ). show () import embed_anything
from embed_anything import (
AudioDecoderModel ,
EmbeddingModel ,
embed_audio_file ,
TextEmbedConfig ,
)
# choose any whisper or distilwhisper model from https://huggingface.co/distil-whisper or https://huggingface.co/collections/openai/whisper-release-6501bba2cf999715fd953013
audio_decoder = AudioDecoderModel . from_pretrained_hf (
"openai/whisper-tiny.en" , revision = "main" , model_type = "tiny-en" , quantized = False
)
embedder = EmbeddingModel . from_pretrained_hf (
embed_anything . WhichModel . Bert ,
model_id = "sentence-transformers/all-MiniLM-L6-v2" ,
revision = "main" ,
)
config = TextEmbedConfig ( chunk_size = 200 , batch_size = 32 )
data = embed_anything . embed_audio_file (
"test_files/audio/samples_hp0.wav" ,
audio_decoder = audio_decoder ,
embedder = embedder ,
text_embed_config = config ,
)
print ( data [ 0 ]. metadata )Vielen Dank, dass Sie sich die Zeit genommen haben, zu diesem Projekt beizutragen. Wir schätzen Ihre Beiträge wirklich, ob es sich um Fehlerberichte, Feature -Vorschläge oder Anfragen handelt. Ihre Zeit und Mühe werden in diesem Projekt sehr geschätzt.
Dieses Dokument enthält Richtlinien und Best Practices, die Ihnen helfen, effektiv einen Beitrag zu leisten. Diese sollen als Richtlinien dienen, nicht als strenge Regeln. Wir empfehlen Ihnen, Ihr bestes Urteilsvermögen zu verwenden und sich wohl zu fühlen, um Änderungen dieses Dokuments durch eine Pull -Anfrage vorzuschlagen.
Eines der Ziele der Einbettung ist es, KI -Ingenieuren leicht auf dem neuesten Stand der Technik zu verwenden, um Modelle für typische Dateien und Dokumente zu verwenden. Hier wurde bereits viel erreicht und dies sind die Formate, die wir gerade unterstützen, und einige weitere müssen erledigt werden.
Wir freuen uns, mitzuteilen, dass wir unsere Plattform erweitert haben, um mehrere Modalitäten zu unterstützen, darunter:
Audiodateien
Markdowns
Websites
Bilder
Videos
Graph
Dies gibt Ihnen die Flexibilität, mit verschiedenen Datentypen an einem Ort zu arbeiten!
Wir haben einige wichtige Updates in Version 0.3 eingeführt, um sowohl Funktionalität als auch Leistung zu verbessern. Hier ist, was ist neu:
Semantisches Chunking: Optimierte Chunking-Strategie für eine bessere Workflows (Abruf-Augmented Generation).
Streaming für eine effiziente Indexierung: Wir haben Streaming für die speichereffiziente Indexierung in Vektordatenbanken eingeführt. Willst du mehr wissen? In unseren Artikel zu dieser Funktion finden Sie hier: https://www.analyticsvidhya.com/blog/2024/09/vector-streaming/
Null-Shot-Anwendungen: Erforschen Sie unsere Null-Shot-Anwendungsdemos, um die Leistung dieser Aktualisierungen in Aktion anzuzeigen.
Intuitive Funktionen: Version 0.3 enthält einen vollständigen Refactor für intuitivere Funktionen, wodurch die Plattform einfacher zu bedienen ist.
Chunkgewise Streaming: Anstelle von Datei-By-Datei-Streaming unterstützen wir nun Chunkwise Streaming und ermöglichen eine flexiblere und effizientere Datenverarbeitung.
Schauen Sie sich die neueste Version an: und sehen Sie, wie diese Funktionen Ihre GenerativeAI -Pipeline aufladen können!
Wir haben einige Fragen darüber erhalten, warum wir Kerze verwenden. Hier finden Sie eine kurze Erklärung:
Einer der Hauptgründe ist, dass Kerze keine spezifischen Modelle für ONNX -Format benötigt, was bedeutet, dass sie nahtlos mit jedem Umarmungsgesichtsmodell funktionieren kann. Diese Flexibilität war ein Schlüsselfaktor für uns. Wir erkennen jedoch auch, dass wir ein wenig in der Geschwindigkeit zugunsten dieser Flexibilität beeinträchtigt haben.
Was kommt als nächstes? Um dies anzusprechen, freuen wir uns, Ihnen mitteilen zu können, dass wir Kerzen-Onnx zusammen mit unserem vorherigen Rahmen für das Umarmungsgesicht einführen.
➡️ Unterstützung für GGUF -Modelle
Wir hatten vom ersten Tag an Multimodalität für unsere Infrastruktur. Wir haben es bereits für Websites, Bilder und Audios aufgenommen, aber wir möchten es weiter erweitern.
☑️Graph Einbettung - Bauen Sie DeepWalks ein, die zuerst Tiefe und Wort zu VEC einbetten
☑️Video Einbettung
☑️ Yolo Clip
Wir unterstützen derzeit eine breite Palette von Vektor -Datenbanken für Streaming -Einbettungen, einschließlich:
Aber wir halten dort nicht an! Wir arbeiten aktiv daran, diese Liste zu erweitern.
Willst du einen Beitrag leisten? Wenn Sie Unterstützung für Ihre bevorzugte Vektor -Datenbank hinzufügen möchten, würden wir gerne Ihre Hilfe haben! Weitere Richtlinien finden Sie in unserem Beitrag.md oder können Sie sich gerne direkt [email protected] wenden. Lass uns zusammen etwas Erstaunliches bauen!