Вывод, проглатывание и индексация - подушено ржавчиной?
Изучите документы »
Просмотреть демо · Скамья · векторные потоковые адаптеры. Поиск в аудиоса
EncedanyThing-это минималистский, высокопрофессиональный, молниеносный, легкий, многострановый, мультимодальный и местный встроенный трубопровод, встроенный в ржавчину. Независимо от того, работаете ли вы с текстом, изображениями, аудио, PDF-файлами, веб-сайтами или другими носителями, EncedanyThing упрощает процесс генерации встраиваний из различных источников и беспрепятственной потоковой передачи (индексирование с памятью) в векторную базу данных. Он поддерживает плотные, редкие, ONNX и поздние взаимодействия, предлагая гибкость для широкого спектра вариантов использования.
Векторная потоковая передача позволяет обрабатывать и генерировать вставки для файлов и транслировать их, поэтому, если у вас есть 10 ГБ файла, он может непрерывно генерировать встроенный кусок кусочком, что вы можете семантически сегментировать и хранить их в векторной базе данных по вашему выбору, таким образом, он устраняет хранилище массовых построек на ОЗУ. Процесс встраивания происходит отдельно от основного процесса, чтобы поддерживать высокую производительность, включенную в Rust MPSC.
➡ Запросное выполнение.
➡ Управление памяти: Rust обеспечивает управление памятью одновременно, предотвращая утечки и сбои памяти, которые могут воевать на другие языки
➡ Требуется многопоточное чтение
➡ Заводка языковых моделей или встраивание моделей локально и эффективно
Shandle позволяет выводы о графических процессорах с поддержкой CUDA прямо из коробки.
➡ Обратите внимание на использование памяти.
Мы поддерживаем любые модели обнимающего лиза на свече. И мы также поддерживаем время выполнения 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 |
| ПРЕДЛОЖЕНИЯ Трансформаторы/All-Minilm-L12-V2 | |
| ПРЕДЛОЖЕНИЯ Трансформаторы/Перефразий-Минильм-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
Для графических процессоров и использования специальных моделей, таких как Кольпали
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 )Прежде всего, спасибо, что нашли время, чтобы внести свой вклад в этот проект. Мы действительно ценим ваш вклад, будь то отчеты об ошибках, предложения или запросы. Ваше время и усилия высоко ценятся в этом проекте.
Этот документ предоставляет руководящие принципы и лучшие практики, чтобы помочь вам внести свой вклад в эффективное вклад. Они предназначены для того, чтобы служить руководящими принципами, а не строгими правилами. Мы призываем вас использовать ваше лучшее суждение и чувствуем себя комфортно, предлагая изменения в этом документе с помощью запроса на привлечение.
Одна из целей EncedanyThing - позволить инженерам ИИ легко использовать современные модели встраивания в типичных файлах и документах. Многое уже было достигнуто здесь, и это те форматы, которые мы поддерживаем прямо сейчас, и еще нужно сделать еще несколько.
Мы рады поделиться тем, что мы расширили нашу платформу для поддержки нескольких модальностей, включая:
Аудиофайлы
Отметки
Веб -сайты
Изображения
Видео
График
Это дает вам возможность работать с различными типами данных в одном месте!
Мы развернули некоторые основные обновления в версии 0.3, чтобы улучшить как функциональность, так и производительность. Вот что нового:
Семантическая чертова: оптимизированная стратегия обучения для лучших рабочих процессов получения поколения (RAG) (RAG).
Потоковая передача для эффективной индексации: мы ввели потоковую передачу для индексации, эффективной памяти, в векторных базах данных. Хотите узнать больше? Проверьте нашу статью об этой функции здесь: https://www.analyticsvidhya.com/blog/2024/09/vector-streaming/
Приложения с нулевым выстрелом: исследуйте наши демо-приложения с нулевым выстрелом, чтобы увидеть силу этих обновлений в действии.
Интуитивно понятные функции: версия 0.3 включает в себя полный рефактор для более интуитивных функций, что делает платформу проще в использовании.
Протокол Chunkwise: вместо потоковой передачи файлов мы теперь поддерживаем потоковую передачу Chunkwise, что позволяет получить более гибкую и эффективную обработку данных.
Проверьте последний релиз: и посмотрите, как эти функции могут перегружать ваш трубопровод Generativeai!
Мы получили довольно много вопросов о том, почему мы используем свечу, так что вот быстрое объяснение:
Одна из основных причин заключается в том, что Candle не требует каких -либо специфических моделей формата ONNX, что означает, что она может работать беспрепятственно с любой моделью обнимающего лица. Эта гибкость была для нас ключевым фактором. Тем не менее, мы также признаем, что мы немного поставили под угрозу скорость в пользу этой гибкости.
Что дальше? Чтобы решить эту проблему, мы рады сообщить, что мы представляем Candle-Onx вместе с нашей предыдущей структурой на обнимательном виде,
➡ Поддержка моделей GGUF
У нас была мультимодальность с первого дня для нашей инфраструктуры. Мы уже включили его для веб -сайтов, изображений и звуков, но мы хотим расширить его дальше.
☑ Встроение графа - постройте встроенные встроенные встроены глубины и слово в VEC
☑ Встроение Video
☑ yolo clip
В настоящее время мы поддерживаем широкий спектр векторных баз данных для потоковых встроений, включая:
Но мы там не останавливаемся! Мы активно работаем, чтобы расширить этот список.
Хотите внести свой вклад? Если вы хотите добавить поддержку вашей любимой векторной базы данных, мы хотели бы получить вашу помощь! Ознакомьтесь с нашим взносом. Давайте построим что -то удивительное вместе!