推论,摄入和索引 - 由生锈增压吗?
探索文档»
查看演示·台词·矢量流适配器。在音频空间中搜索
嵌入是一种极简,性能高,闪电,轻巧,多源,多模式和局部嵌入管道内置的管道。无论您是使用文本,图像,音频,PDF,网站或其他媒体,嵌入内容都会简化从各种来源生成嵌入的过程,并无缝流(内存效率 - 索引)它们到矢量数据库。它支持致密,稀疏,ONNX和晚期嵌入,为广泛的用例提供了灵活性。
向量流动使您可以处理并生成文件的嵌入式并流式传输它们,因此,如果您有10 GB的文件,它可以不断地生成嵌入的嵌入块,您可以将语义分段并将其存储在您选择的矢量数据库中,从而消除散装嵌入在RAM上的嵌入。嵌入过程与主过程分开发生,以维持Rust MPSC启用的高性能。
➡qaster执行。
➡️MEMORY管理:RUST同时执行内存管理,防止记忆泄漏和崩溃可能困扰其他语言
➡️True多线程
➡quring语言模型或在本地有效地嵌入模型
➡️Candle允许从开箱即用的启用CUDA的GPU上推断。
➡测试嵌入的内存使用情况。
我们支持蜡烛上的任何拥抱脸模型。我们还支持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 | |
| 伯特 | 句子转换器/全米尼-L6-V2 |
| 句子转换器/全米尼L12-V2 | |
| 句子转换器/释义minilm-l6-v2 | |
| 夹子 | Openai/clip-vit-base-patch32 |
| 耳语 | 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并使用诸如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版本包含一个完整的重构功能,以实现更直观的功能,从而使平台更易于使用。
块状流:现在我们支持块流的流媒体,而不是逐文件流媒体,可以进行更灵活,有效的数据处理。
查看最新版本:看看这些功能如何增强您的Generativeai管道!
我们已经收到了很多有关使用蜡烛的问题的问题,所以这是一个快速的解释:
主要原因之一是蜡烛不需要任何特定的ONX格式模型,这意味着它可以与任何拥抱的面部模型无缝地工作。这种灵活性一直是我们的关键因素。但是,我们也认识到,我们一直在损害一些灵活性的速度。
接下来是什么?为了解决这个问题,我们很高兴地宣布,我们正在介绍Canduc-innx以及我们以前关于拥抱面的框架,
➡️支持GGUF模型
从第一天开始,我们就有多模式的基础设施。我们已经将其包括在网站,图像和音频上,但我们希望将其进一步扩展到。
☑️Graph嵌入 - 首先构建深条嵌入深度,并向VEC单词
☑️VIDEO嵌入
☑️Yolo剪辑
目前,我们支持广泛的矢量数据库用于流嵌入,包括:
但是我们不在那儿停下来!我们正在积极努力扩展此列表。
想贡献吗?如果您想增加对自己喜欢的矢量数据库的支持,我们很乐意获得您的帮助!查看我们的贡献。md以获取指南,或者随时直接联系[email protected]。让我们一起建造一些惊人的东西!