الاستدلال ، الابتلاع ، والفهرسة - الشحن الفائق بواسطة الصدأ؟
استكشف المستندات »
عرض العرض التوضيحي · مقاعد · محولات تدفق المتجهات. ابحث في مساحة الصوت
إن التضمين هو خط أنابيب الحد الأدنى ، والأداء للغاية ، والبرق ، وخفيف الوزن ، ومتعدد ، ومتعدد الوسائط ، والمحلية المدمجة في الصدأ. سواء كنت تعمل مع النص أو الصور أو الصوت أو ملفات PDF أو مواقع الويب أو وسائل الإعلام الأخرى ، فإن التضميد يقلل من عملية توليد التضمينات من مصادر مختلفة وتدفق بسلاسة (مثبتة الذاكرة) إلى قاعدة بيانات متجه. وهو يدعم تضمينات كثيفة ، متناثرة ، onnx والتحديد المتأخر ، مما يوفر مرونة لمجموعة واسعة من حالات الاستخدام.
يمكّنك تدفق المتجه من معالجة وإنشاء التضمينات للملفات ودفقها ، لذلك إذا كان لديك 10 جيجابايت من الملفات ، فيمكنك توليد جزءًا من التضمينات بشكل مستمر ، مما يمكنك تقسيمها بشكل دلالي ، وتخزينها في قاعدة بيانات المتجه التي يختارونها ، وبالتالي فإنه يلغي تخزينًا للتجسيدات الكبيرة على ذاكرة الوصول العشوائي على الفور. تحدث عملية التضمين بشكل منفصل عن العملية الرئيسية ، وذلك للحفاظ على الأداء العالي الممكّن بواسطة Rust MPSC.
➡ تنفيذ فائقة.
management إدارة الدم: الصدأ يفرض إدارة الذاكرة في وقت واحد ، ومنع تسرب الذاكرة والتعطلات التي يمكن أن تصيب لغات أخرى
multure multithreading
➡ نماذج لغة أو نماذج تضمين محليًا وكفاءة
➡ Candle يسمح بالاستدلالات على وحدات معالجة الرسومات التي تدعم CUDA مباشرة خارج الصندوق.
recreded استخدام ذاكرة التضمين.
نحن ندعم أي نماذج من وجه المعانقة على الشمعة. ونحن ندعم أيضًا وقت تشغيل ONNX لـ Bert و 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 )| نموذج | رابط مخصص |
|---|---|
| جينا | Jinaai/Jina-Embeddings-V2-Base-en |
| Jinaai/Jina-Embeddings-V2-Small-en | |
| بيرت | محولات الجملة/All-Minilm-L6-V2 |
| محولات الجملة/All-Minilm-L12-V2 | |
| محولات الجملة/إعادة صياغة minilm-L6-V2 | |
| مقطع | Openai/Clip-Vit-Base-Patch32 |
| يهمس | معظم Openai Whisper من Huggingface مدعوم. |
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 واستخدام نماذج خاصة مثل الكولبالي
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 )بادئ ذي بدء ، أشكركم على قضاء الوقت للمساهمة في هذا المشروع. نحن نقدر حقًا مساهماتك ، سواء كانت تقارير الأخطاء أو اقتراحات الميزات أو طلبات السحب. وقتك وجهدك يقدران بدرجة عالية في هذا المشروع.
يوفر هذا المستند إرشادات وأفضل الممارسات لمساعدتك في المساهمة بفعالية. هذه تهدف إلى أن تكون بمثابة إرشادات ، وليس قواعد صارمة. نحن نشجعك على استخدام أفضل حكمك ونشعر بالراحة في اقتراح التغييرات في هذا المستند من خلال طلب سحب.
أحد أهداف التضمين هو السماح لمهندسي الذكاء الاصطناعى باستخدام نماذج تضمين الحالة على الملفات والمستندات النموذجية بسهولة. لقد تم بالفعل إنجاز الكثير هنا وهذه هي التنسيقات التي ندعمها الآن ويجب القيام ببعضها البعض.
نحن متحمسون لمشاركة أننا قمنا بتوسيع منصتنا لدعم طرائق متعددة ، بما في ذلك:
ملفات الصوت
تخفيضات
مواقع الويب
الصور
مقاطع الفيديو
رسم بياني
هذا يمنحك المرونة للعمل مع أنواع البيانات المختلفة في مكان واحد!
لقد طرحنا بعض التحديثات الرئيسية في الإصدار 0.3 لتحسين كل من الوظائف والأداء. هذا ما الجديد:
التقطيع الدلالي: استراتيجية الضبط المحسّنة لتحسين سير عمل الجيل المتمثل في التوليد (RAG).
تدفق للفهرسة الفعالة: لقد قدمنا تدفقًا لفهرسة الذاكرة الموفرة للذاكرة في قواعد بيانات المتجهات. تريد معرفة المزيد؟ تحقق من مقالتنا حول هذه الميزة هنا: https://www.analyticsvidhya.com/blog/2024/09/vector-treaming/
تطبيقات Zero-Shot: استكشف عروض تطبيقات Zero-Shot لمعرفة قوة هذه التحديثات في العمل.
وظائف بديهية: يتضمن الإصدار 0.3 مجموعة كاملة من الوظائف البديهية ، مما يجعل النظام الأسهل في الاستخدام أسهل.
تدفق chunkwise: بدلاً من تدفق الملف على حدة ، فإننا ندعم الآن تدفق chunkwise ، مما يسمح بمعالجة بيانات أكثر مرونة وفعالية.
تحقق من أحدث إصدار: وانظر كيف يمكن لهذه الميزات شحن خط أنابيب generativeai الخاص بك!
لقد تلقينا بعض الأسئلة القليلة حول سبب استخدامنا للشمعة ، لذا إليك تفسيرًا سريعًا:
أحد الأسباب الرئيسية هو أن الشمعة لا تتطلب أي نماذج محددة لتنسيق ONNX ، مما يعني أنها يمكن أن تعمل بسلاسة مع أي نموذج وجه معانقة. كانت هذه المرونة عاملاً رئيسياً بالنسبة لنا. ومع ذلك ، فإننا ندرك أيضًا أننا نضرب قليلاً على السرعة لصالح هذه المرونة.
ماذا بعد؟ لمعالجة هذا ، نحن متحمسون للإعلان عن أننا نقدم Candle-Onnx إلى جانب إطار عملنا السابق على الوجه المعانقة ،
➡ دعم نماذج GGUF
كان لدينا تعدد الوسائط من اليوم الأول للبنية التحتية لدينا. لقد قمنا بالفعل بتضمينها لمواقع الويب والصور والصوت ، لكننا نريد توسيعها بشكل أكبر.
☑ التضمين العجوز - قم ببناء عمق التضمينات العميقة أولاً وكلمة لـ VEC
☑video التضمين
clip يولو مقطع
نحن ندعم حاليًا مجموعة واسعة من قواعد بيانات المتجهات لتضمينات البث ، بما في ذلك:
لكننا لا نتوقف هناك! نحن نعمل بنشاط على توسيع هذه القائمة.
تريد المساهمة؟ إذا كنت ترغب في إضافة دعم لقاعدة بيانات المتجه المفضلة لديك ، فسنحب مساعدتك! تحقق من مساهمتنا. md للحصول على الإرشادات ، أو لا تتردد في الوصول مباشرة إلى [email protected]. دعونا نبني شيئًا مذهلاً معًا!