国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用

這篇具有很好參考價值的文章主要介紹了向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

usearch的簡單使用

  • usearch是快速開源搜索和聚類引擎×,用于C++、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang和Wolfram ??中的向量和??字符串×
// https://github.com/unum-cloud/usearch/blob/main/python/README.md
$ pip install usearch
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting usearch
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/ba/f4/24124f65ea3e940e54af29d55204ddfbeafa86d6b94b63c2e99baff2f7d6/usearch-2.8.14-cp38-cp38-manylinux_2_28_x86_64.whl (1.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 17.0 MB/s eta 0:00:00
Requirement already satisfied: numpy in /home/ubuntu/anaconda3/envs/vglm2/lib/python3.8/site-packages (from usearch) (1.23.1)
Requirement already satisfied: tqdm in /home/ubuntu/anaconda3/envs/vglm2/lib/python3.8/site-packages (from usearch) (4.66.1)
Installing collected packages: usearch
Successfully installed usearch-2.8.14
  • 一個簡單的例子(注:本例子在運行時向index中不斷添加項目,并將最后的index持久化為一個文件,在運行時由于添加項目內(nèi)存占用會不斷增加)
import numpy as np
from usearch.index import Index, MetricKind, Matches

ndim = 131072
index_path =  "test.usearch"

index = Index(
    ndim=ndim, # Define the number of dimensions in input vectors
    metric='cos', # Choose 'l2sq', 'haversine' or other metric, default = 'ip'
    dtype='f32', # Quantize to 'f16' or 'i8' if needed, default = 'f32'
    connectivity=16, # How frequent should the connections in the graph be, optional
    expansion_add=128, # Control the recall of indexing, optional
    expansion_search=64, # Control the quality of search, optional
)# index = Index(ndim=ndim, metric=MetricKind.Cos)



for i in range(1,10):
    vector =  np.random.random((1000, ndim)).astype('float32')
    index.add(None, vector, log=True)

index.save(index_path)
vector =  np.random.random((1, ndim)).astype('float32')
matches: Matches = index.search(vector, 10)
ids = matches.keys.flatten()

print(matches)

# test.usearch大小: 10*1000*131072 =>2.2G  (如果dtype='f32'=>4G+)

usearch-images

  • https://github.com/ashvardanian/usearch-images

運行效果

向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫
向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫

向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫

向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫

數(shù)據(jù)獲取

  • https://huggingface.co/datasets/unum-cloud/ann-unsplash-25k/tree/main
    向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫

向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫

依賴 ucall

  • Requires: Python >=3.9
  • https://pypi.org/project/ucall/#files
    向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫

OSError: [Errno 28] inotify watch limit reached

  File "/home/ubuntu/anaconda3/envs/usearch/lib/python3.10/site-packages/watchdog/observers/inotify_c.py", line 428, in _raise_error
    raise OSError(errno.ENOSPC, "inotify watch limit reached")
OSError: [Errno 28] inotify watch limit reached

這個錯誤表明在使用 watchdog 庫時超過了 Linux 系統(tǒng)對 inotify 監(jiān)視的文件數(shù)或目錄數(shù)的限制。Linux 對于每個進程的 inotify 能夠監(jiān)視的文件和目錄有一個限制,當達到這個限制時,會出現(xiàn)像上面的錯誤一樣的問題??梢試L試增加系統(tǒng)對 inotify 的資源限制??梢酝ㄟ^修改 /etc/sysctl.conf 文件來增加 fs.inotify.max_user_watches 參數(shù)的值。例如:

```bash
sudo sysctl -w fs.inotify.max_user_watches=65536
```

然后,運行下面的命令使更改生效:

```bash
sudo sysctl -p
```

注意:增加監(jiān)視數(shù)可能會對系統(tǒng)資源產(chǎn)生一些影響,因此請根據(jù)實際情況慎重調(diào)整。

模型加載

向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-787699.html

  • https://huggingface.co/unum-cloud/uform-vl-multilingual-v2/tree/main
    向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫
///home/ubuntu/anaconda3/envs/usearch/lib/python3.10/site-packages/uform/__init__.py
def get_checkpoint(model_name, token) -> Tuple[str, Mapping, str]:
    model_path = snapshot_download(repo_id=model_name, token=token)
    config_path = f"{model_path}/torch_config.json"
    state = torch.load(f"{model_path}/torch_weight.pt")

    return config_path, state, f"{model_path}/tokenizer.json"


def get_model(model_name: str, token: Optional[str] = None) -> VLM:
    config_path, state, tokenizer_path = get_checkpoint(model_name, token)

    with open(config_path, "r") as f:
        model = VLM(load(f), tokenizer_path)

    model.image_encoder.load_state_dict(state["image_encoder"])
    model.text_encoder.load_state_dict(state["text_encoder"])

    return model.eval()
  • 修改成如下,調(diào)用時使用_model = get_model("你的下載路徑")
def get_checkpoint(model_name, token) -> Tuple[str, Mapping, str]:
    model_path = model_name#snapshot_download(repo_id=model_name, token=token)
    config_path = f"{model_path}/torch_config.json"
    state = torch.load(f"{model_path}/torch_weight.pt")

    return config_path, state, f"{model_path}/tokenizer.json"


def get_model(model_name: str, token: Optional[str] = None) -> VLM:
    config_path, state, tokenizer_path = get_checkpoint(model_name, token)

    with open(config_path, "r") as f:
        model = VLM(load(f), tokenizer_path)

    model.image_encoder.load_state_dict(state["image_encoder"])
    model.text_encoder.load_state_dict(state["text_encoder"])

    return model.eval()

其他細微的修改

數(shù)據(jù)源的修改
_datasets = {
    name: _open_dataset(os.path.join("/home/ubuntu/userfile/***/Usearch/usearch-images-main/data", name))
    for name in (
        "unsplash-25k",
        # "cc-3m",
        # "laion-4m",
    )
}
dataset_names: str = st.multiselect(
    "Datasets",
    [
        dataset_unsplash_name,
        # dataset_cc_name,
        # dataset_laion_name,
    ],
    [dataset_unsplash_name],#, dataset_cc_name],
    format_func=lambda x: x.split(":")[0],
)
  • 也可下載cc-3m數(shù)據(jù):
    向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用,數(shù)據(jù)分析,數(shù)據(jù)庫
數(shù)據(jù)讀取的修改
    # uris: Strs = File(os.path.join(dir, "images.txt")).splitlines()
    file_path = os.path.join(dir, "images.txt")
    with open(file_path, 'r') as file:
        uris = file.read().splitlines()

CG

  • “usearch” 通常指的是一個生物信息學工具,用于對DNA和蛋白質(zhì)序列進行搜索和比對。具體來說,它是由Qiime軟件包提供的一個用于序列分析的工具,主要用于對微生物群落的高通量測序數(shù)據(jù)進行處理和分析。Qiime(Quantitative Insights Into Microbial Ecology)是一個用于分析和解釋微生物群落結(jié)構(gòu)的開源軟件包。在Qiime中,usearch被用于處理和比對DNA序列,以便進行物種注釋、多樣性分析等。USEARCH —— 最簡單易學的擴增子分析流程

到了這里,關(guān)于向量數(shù)據(jù)庫:usearch的簡單使用+實現(xiàn)圖片檢索應用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • C#使用詞嵌入向量與向量數(shù)據(jù)庫為大語言模型(LLM)賦能長期記憶實現(xiàn)私域問答機器人落地之openai接口平替

    C#使用詞嵌入向量與向量數(shù)據(jù)庫為大語言模型(LLM)賦能長期記憶實現(xiàn)私域問答機器人落地之openai接口平替

    ------------恢復內(nèi)容開始------------ 在上一篇文章中我們大致講述了一下如何通過詞嵌入向量的方式為大語言模型增加長期記憶,用于落地在私域場景的問題。其中涉及到使用openai的接口進行詞嵌入向量的生成以及chat模型的調(diào)用 由于眾所周知的原因,國內(nèi)調(diào)用openai接口并不友好

    2024年02月06日
    瀏覽(101)
  • 如何使用 Elasticsearch 作為向量數(shù)據(jù)庫

    如何使用 Elasticsearch 作為向量數(shù)據(jù)庫

    在今天的文章中,我們將很快地通過 Docker 來快速地設置 Elasticsearch 及 Kibana,并設置 Elasticsearch 為向量搜索。 在上面,我們指定了 elasic 超級用戶的密碼為 password。這在下面將要使用到。 驗證容器是否已啟動并正在運行: 從上面我們可以看到 Elasticsarch 及 Kibana 已經(jīng)完全運行

    2024年04月17日
    瀏覽(96)
  • 《向量數(shù)據(jù)庫指南》:使用公共的Pinecone數(shù)據(jù)集

    《向量數(shù)據(jù)庫指南》:使用公共的Pinecone數(shù)據(jù)集

    目錄 數(shù)據(jù)集包含向量和元數(shù)據(jù) 列出公共數(shù)據(jù)集 加載數(shù)據(jù)集 迭代數(shù)據(jù)集 分批迭代文檔并插入到索引中。 將數(shù)據(jù)集插入為數(shù)據(jù)幀。 接下來怎么做 本文檔介紹如何使用現(xiàn)有的Pinecone數(shù)據(jù)集。 要了解創(chuàng)建和列出數(shù)據(jù)集的方法,請參閱創(chuàng)建數(shù)據(jù)集。 ?

    2024年02月16日
    瀏覽(95)
  • 如何使用python實現(xiàn)簡單爬取網(wǎng)頁數(shù)據(jù)并導入MySQL中的數(shù)據(jù)庫

    前言:要使用 Python 爬取網(wǎng)頁數(shù)據(jù)并將數(shù)據(jù)導入 MySQL 數(shù)據(jù)庫,您需要使用 Requests 庫進行網(wǎng)頁抓取,使用 BeautifulSoup 庫對抓取到的 HTML 進行解析,并使用 PyMySQL 庫與 MySQL 進行交互。 以下是一個簡單的示例: 1. ?安裝所需庫: ``` ``` 2. ?導入所需庫: ``` ``` 3. ?建立數(shù)據(jù)庫連接:

    2024年02月04日
    瀏覽(23)
  • 使用docker搭建Milvus向量數(shù)據(jù)庫

    使用docker搭建Milvus向量數(shù)據(jù)庫

    官網(wǎng)是這樣說的: Milvus創(chuàng)建于2019年,目標單一:存儲、索引和管理由深度神經(jīng)網(wǎng)絡和其他機器學習(ML)模型生成的大量嵌入向量。 作為一個專門用于處理輸入向量查詢的數(shù)據(jù)庫,它能夠?qū)θf億規(guī)模的向量進行索引。與現(xiàn)有的關(guān)系數(shù)據(jù)庫不同,Milvus主要按照預定義的模式處

    2024年02月09日
    瀏覽(93)
  • 開源模型應用落地-工具使用篇-向量數(shù)據(jù)庫(三)

    開源模型應用落地-工具使用篇-向量數(shù)據(jù)庫(三)

    一、前言 ? ? 通過學習\\\"開源模型應用落地\\\"系列文章,我們成功地建立了一個完整可實施的AI交付流程。現(xiàn)在,我們要引入向量數(shù)據(jù)庫,作為我們AI服務的二級緩存。本文將詳細介紹如何使用Milvus Lite來為我們的AI服務部署一個前置緩存。 二、術(shù)語 2.1、向量數(shù)據(jù)庫 ? ? 向量數(shù)

    2024年02月19日
    瀏覽(89)
  • 使用Langchain+GPT+向量數(shù)據(jù)庫chromadb 來創(chuàng)建文檔對話機器人

    使用Langchain+GPT+向量數(shù)據(jù)庫chromadb 來創(chuàng)建文檔對話機器人

    使用Langchain+GPT+向量數(shù)據(jù)庫chromadb 來創(chuàng)建文檔對話機器人 文件存放地址 參考: https://python.langchain.com/docs/use_cases/chatbots https://python.langchain.com/docs/integrations/vectorstores/chroma https://blog.csdn.net/v_JULY_v/article/details/131552592?ops_request_misc=%257B%2522request%255Fid%2522%253A%252216945020581680022659096

    2024年02月03日
    瀏覽(94)
  • ModaHub魔搭社區(qū):AI原生云向量數(shù)據(jù)庫MIlvus Cloud實現(xiàn) HNSW

    ModaHub魔搭社區(qū):AI原生云向量數(shù)據(jù)庫MIlvus Cloud實現(xiàn) HNSW

    HNSW 并不簡單,因此我們只在此處進行最簡單的實現(xiàn)。像之前一樣,我們首先創(chuàng)建一組(128 維)向量的數(shù)據(jù)集: 第一步是構(gòu)建 HNSW 索引。為此,我們需要將每個向量添加到我們的數(shù)據(jù)集中。我們首先創(chuàng)建一個數(shù)據(jù)結(jié)構(gòu)來保存索引。在這個基本示例中,我們將使用列表的列表來

    2024年02月15日
    瀏覽(26)
  • 基于GPT3.5實現(xiàn)本地知識庫解決方案-利用向量數(shù)據(jù)庫和GPT向量接口-實現(xiàn)智能回復并限制ChatGPT回答的范圍...

    基于GPT3.5實現(xiàn)本地知識庫解決方案-利用向量數(shù)據(jù)庫和GPT向量接口-實現(xiàn)智能回復并限制ChatGPT回答的范圍...

    標題有點長,但是基本也說明出了這篇文章的主旨,那就是利用GPT AI智能回答自己設置好的問題 既能實現(xiàn)自己的AI知識庫機器人,又能節(jié)省ChatGPT調(diào)用的token成本費用。 代碼倉庫地址 document.ai: 基于GPT3.5的通用本地知識庫解決方案 下面圖片是整個流程: 導入知識庫數(shù)據(jù) 利用

    2024年02月02日
    瀏覽(19)
  • 什么是向量數(shù)據(jù)庫?向量數(shù)據(jù)庫工作原理?向量數(shù)據(jù)庫解決方案?

    什么是向量數(shù)據(jù)庫?向量數(shù)據(jù)庫工作原理?向量數(shù)據(jù)庫解決方案?

    向量數(shù)據(jù)庫是一種專門用于存儲和處理向量數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)。向量數(shù)據(jù)是指具有多維度屬性的數(shù)據(jù),例如圖片、音頻、視頻、自然語言文本等。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫通常不擅長處理向量數(shù)據(jù),因為它們需要將數(shù)據(jù)映射成結(jié)構(gòu)化的表格形式,而向量數(shù)據(jù)的維度較高、結(jié)構(gòu)復雜

    2024年02月15日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包