推論、摂取、インデックス - 錆によって過給されますか?
ドキュメントを探索»
デモの表示・ベンチ・ベクトルストリーミングアダプター。オーディオスペースで検索します
Embedanythingは、ミニマリスト、非常にパフォーマンス、稲妻、軽量、マルチソース、マルチモーダル、および地元の埋め込みパイプラインで錆びています。テキスト、画像、オーディオ、PDFS、ウェブサイト、またはその他のメディアを使用している場合でも、エンボダニチングは、さまざまなソースから埋め込みを生成し、ベクトルデータベースにシームレスにストリーミング(メモリ効率の高いインデックス)のプロセスを合理化します。密集した、まばらな、ONNXおよび後期インタラクションの埋め込みをサポートし、幅広いユースケースに柔軟性を提供します。
ベクトルストリーミングを使用すると、ファイルの埋め込みを処理および生成してストリーミングすることができます。そのため、10 GBのファイルがある場合は、埋め込み帯をチャンクごとに継続的に生成できます。これにより、セマンティックにセグメント化し、選択したベクトルデータベースに保存できます。埋め込みプロセスは、錆MPSCによって有効な高性能を維持するために、主要なプロセスから分離されます。
paster実行の実行。
➡memory管理:錆は同時にメモリ管理を実施し、他の言語を悩ませる可能性のあるメモリの漏れやクラッシュを防ぐ
multiThreading
running言語モデルまたはモデルをローカルかつ効率的に埋め込みます
➡➡頭により、CUDA対応GPUの推論が箱から出されます。
➡embedaythingを使用して、埋め込みのメモリの使用を解除します。
ろうそくのハグの顔のモデルをサポートしています。また、BertとColpaliのONNXランタイムもサポートしています。
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 )| モデル | カスタムリンク |
|---|---|
| ジナ | Jinaai/Jina-embeddings-v2-base-en |
| Jinaai/Jina-embeddings-v2-small-en | |
| バート | 文、変換器/All-Minilm-L6-V2 |
| Sente-Transformers/All-Minilm-L12-V2 | |
| 文 - 変換器/言い換え - ミニルム-L6-V2 | |
| クリップ | Openai/Clip-Vit-Base-Patch32 |
| ささやきます | HuggingfaceのほとんどのOpenai Whisperがサポートされています。 |
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
GPUの場合、および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 )まず第一に、このプロジェクトに貢献するために時間を割いてくれてありがとう。バグレポート、機能の提案、プルリクエストなど、ご貢献に感謝します。あなたの時間と努力は、このプロジェクトで非常に評価されています。
このドキュメントは、効果的に貢献するのに役立つガイドラインとベストプラクティスを提供します。これらは、厳格なルールではなく、ガイドラインとして機能することを目的としています。プルリクエストを通じて、最善の判断を使用し、このドキュメントに変更を提案することを快適に感じることをお勧めします。
Embedanythingの目的の1つは、AIエンジニアが典型的なファイルとドキュメントで最新の埋め込みモデルを簡単に使用できるようにすることです。ここではすでに多くのことが達成されており、これらは私たちが現在サポートしている形式であり、さらにいくつかを行う必要があります。
次のような複数のモダリティをサポートするためにプラットフォームを拡張したことを共有できることを楽しみにしています。
オーディオファイル
マークダウン
ウェブサイト
画像
ビデオ
グラフ
これにより、さまざまなデータ型をすべて1か所で操作できる柔軟性が得られます!
機能とパフォーマンスの両方を改善するために、バージョン0.3の主要な更新をいくつか展開しました。これが新しいものです:
セマンティックチャンキング:より良い検索充電(RAG)ワークフローのための最適化されたチャンキング戦略。
効率的なインデックス作成のためのストリーミング:ベクトルデータベースでのメモリ効率の高いインデックス作成のためのストリーミングを導入しました。もっと知りたいですか?この機能に関する記事をご覧ください:https://www.analyticsvidhya.com/blog/2024/09/vector-streaming/
ゼロショットアプリケーション:ゼロショットアプリケーションのデモを調べて、これらの更新の機能を実行していることを確認します。
直感的な関数:バージョン0.3には、より直感的な機能のための完全なリファクタルが含まれており、プラットフォームを使いやすくします。
ChunkWiseストリーミング:ファイルごとのストリーミングの代わりに、ChunkWiseストリーミングをサポートし、より柔軟で効率的なデータ処理を可能にします。
最新リリースをご覧ください:これらの機能がGenerativeaiパイプラインをどのように充電できるかをご覧ください!
ろうそくを使用している理由についてかなりの質問を受け取ったので、簡単な説明を次に示します。
主な理由の1つは、キャンドルが特定のONNX形式モデルを必要としないことです。つまり、ハグする顔モデルでシームレスに動作することができます。この柔軟性は、私たちにとって重要な要素でした。ただし、その柔軟性を支持して、スピードを少し妥協していることも認識しています。
次は何ですか?これに対処するために、ハギングフェイスに関する以前のフレームワークとともに、キャンドルアンクを導入していることを発表できることを楽しみにしています。
GGUFモデルのサポート
インフラストラクチャの初日からマルチモダリティがありました。ウェブサイト、画像、オーディオにすでに含めていますが、さらに拡張したいと考えています。
☑☑emberd-埋め込み - ディープウォーク埋め込み深さを最初に作り、vecに単語を構築します
☑video埋め込み
☑Yoloクリップ
現在、以下を含む、埋め込みをストリーミングするための幅広いベクトルデータベースをサポートしています。
しかし、私たちはそこで止まっていません!私たちはこのリストの拡大に積極的に取り組んでいます。
貢献したいですか?お気に入りのベクターデータベースのサポートを追加したい場合は、ご協力ください。ガイドラインについては、combution.mdをご覧ください。または、直接[email protected]を直接ご連絡ください。一緒に素晴らしいものを作りましょう!