추론, 섭취 및 인덱싱 - 녹에 의해 과급 되는가?
문서 탐색»
데모보기 · 벤치 · 벡터 스트리밍 어댑터. 오디오 공간에서 검색하십시오
Embedanything은 미니멀하고 성능이 뛰어나고 가벼운, 가벼운, 다중 소스, 멀티 모달 및 녹은 로컬 임베딩 파이프 라인입니다. 텍스트, 이미지, 오디오, PDF, 웹 사이트 또는 기타 미디어로 작업하든, 내장은 다양한 소스에서 임베딩을 생성하고 벡터 데이터베이스에 원활하게 스트리밍 (메모리 효율적인 인덱싱)을 간소화합니다. 밀도가 높고 드문 드문, onx 및 늦은 상호 작용 임베드를 지원하여 광범위한 사용 사례에 유연성을 제공합니다.
벡터 스트리밍을 사용하면 파일의 임베딩을 처리하고 생성하고 스트리밍 할 수 있으므로 10GB의 파일이있는 경우 청크에 의해 지속적으로 임베드 청크를 생성하여 의미 적으로 세그먼트를 세우고 선택한 벡터 데이터베이스에 저장할 수 있으므로 RAM에 한 번에 벌크 임베드 스토리지를 제거 할 수 있습니다. 임베딩 프로세스는 Rust MPSC에 의해 활성화 된 고성능을 유지하기 위해 기본 프로세스와 별도로 이루어집니다.
faster execution.
memory 관리 : Rust는 메모리 관리를 동시에 시행하여 다른 언어를 괴롭힐 수있는 메모리 누출 및 충돌을 방지합니다.
➡️True 멀티 스레딩
➡️ 언어 모델 또는 현지 및 효율적으로 모델을 포함시킵니다
➡️Candle은 CUDA 지원 GPU에 대한 추론을 상자 밖으로 바로 사용할 수 있습니다.
inmbedanything의 메모리 사용을 다시보고하십시오.
우리는 촛불의 포옹 얼굴 모델을 지원합니다. 또한 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 )| 모델 | 사용자 정의 링크 |
|---|---|
| Jina | Jinaai/Jina-embeddings-V2-Base-En |
| jinaai/jina-embeddings-v2-small-en | |
| 버트 | 문장 변환기/All-Minilm-L6-V2 |
| 문장-변환기/All-Minilm-L12-V2 | |
| 문장-변환기/paraphrase-minilm-l6-v2 | |
| 클립 | Openai/Clip-Vit-Base-Patch32 |
| 속삭임 | Huggingface의 대부분의 Openai 속삭임. |
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 )우선,이 프로젝트에 기여하기 위해 시간을내어 주셔서 감사합니다. 버그 보고서, 기능 제안 또는 요청이든 귀하의 기여에 진심으로 감사드립니다. 이 프로젝트에서 당신의 시간과 노력은 매우 중요합니다.
이 문서는 효과적으로 기여하는 데 도움이되는 지침 및 모범 사례를 제공합니다. 이들은 엄격한 규칙이 아니라 지침 역할을하기위한 것입니다. 최상의 판단을 사용하고 풀 요청을 통해이 문서의 변경 사항을 편안하게 제안하는 것이 좋습니다.
임베디의 목표 중 하나는 AI 엔지니어가 일반적인 파일과 문서에 최신 임베딩 모델의 최첨단 포함 모델을 쉽게 사용할 수 있도록하는 것입니다. 많은 사람들이 이미 여기에서 성취되었으며 지금은 우리가 지금 지원하는 형식이며 몇 가지 더해야합니다.
우리는 다음을 포함하여 여러 가지 양식을 지원하기 위해 플랫폼을 확장했음을 공유하게되어 기쁩니다.
오디오 파일
마크 다운
웹 사이트
이미지
비디오
그래프
이를 통해 한 곳에서 다양한 데이터 유형으로 작업 할 수있는 유연성을 제공합니다!
기능과 성능을 모두 향상시키기 위해 버전 0.3의 주요 업데이트를 출시했습니다. 다음은 새로운 것입니다.
시맨틱 청크 : 더 나은 검색 세대 생성 (RAG) 워크 플로를위한 최적화 된 청킹 전략.
효율적인 인덱싱을위한 스트리밍 : 벡터 데이터베이스에서 메모리 효율적인 인덱싱을위한 스트리밍을 도입했습니다. 더 알고 싶습니까? 이 기능에 대한 기사를 확인하십시오 : https://www.analyticsvidhya.com/blog/2024/09/vector-streaming/
제로 샷 응용 프로그램 : 제로 샷 응용 프로그램 데모를 탐색하여 이러한 업데이트의 힘을 확인하십시오.
직관적 인 기능 : 버전 0.3에는보다 직관적 인 기능을위한 완전한 리팩터가 포함되어 플랫폼을보다 쉽게 사용할 수 있습니다.
Chunkwise Streaming : 파일 별 스트리밍 대신 Chunkwise Streaming을 지원하여보다 유연하고 효율적인 데이터 처리가 가능합니다.
최신 릴리스를 확인하십시오. 이러한 기능이 GenerativeAi 파이프 라인을 어떻게 충전 할 수 있는지 확인하십시오!
우리는 촛불을 사용하는 이유에 대한 몇 가지 질문을 받았으므로 여기에 빠른 설명이 있습니다.
주된 이유 중 하나는 Candle이 특정 ONNX 형식 모델이 필요하지 않기 때문에 포옹하는 얼굴 모델에서 완벽하게 작동 할 수 있습니다. 이 유연성은 우리에게 핵심 요소였습니다. 그러나 우리는 또한 우리가 그 유연성에 유리하게 속도를 약간 타협하고 있음을 알고 있습니다.
다음은 무엇입니까? 이를 해결하기 위해, 우리는 포옹에 대한 이전 프레임 워크와 함께 Candle-Onnx를 소개하고 있음을 발표하게되어 기쁩니다.
gguf 모델에 대한 ➡️ 지원
우리는 인프라를 위해 첫날부터 다중 분류를 가졌습니다. 우리는 이미 웹 사이트, 이미지 및 오디오에 포함 시켰지만 더 확장하려고합니다.
☑️ 그랩 삽입 - 빌드 딥 워크 임베딩 깊이 먼저 및 vec에 단어
☑️ Video Embedding
☑️ yolo 클립
우리는 현재 스트리밍 임베딩을위한 광범위한 벡터 데이터베이스를 지원합니다.
그러나 우리는 거기서 멈추지 않습니다! 우리는이 목록을 확장하기 위해 적극적으로 노력하고 있습니다.
기여하고 싶습니까? 좋아하는 벡터 데이터베이스에 대한 지원을 추가하려면 도움을 받고 싶습니다! 가이드 라인에 대해서는 Contribution.md를 확인하거나 [email protected]를 직접 연락하십시오. 함께 놀라운 것을 만들어 봅시다!