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

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎

這篇具有很好參考價(jià)值的文章主要介紹了從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在這篇文章中,我們將手動(dòng)構(gòu)建一個(gè)語義相似性搜索引擎,該引擎將單個(gè)論文作為“查詢”輸入,并查找Top-K的最類似論文。主要包括以下內(nèi)容:

1.搭建milvus矢量數(shù)據(jù)庫

2.使用MILVUS矢量數(shù)據(jù)庫搭建語義相似性搜索引擎

3.從Kaggle下載ARXIV數(shù)據(jù),使用dask將數(shù)據(jù)加載到Python中,并構(gòu)建一個(gè)論文搜索引擎

1. 搭建milvus矢量數(shù)據(jù)庫

? ? milvus數(shù)據(jù)庫的安裝比較簡單,可以直接使用docker安裝,建議安裝2.1.x以上版本,功能更豐富,其分為標(biāo)準(zhǔn)版和集群版本,這里只安裝標(biāo)準(zhǔn)版本。

?① docker 在線安裝:

https://milvus.io/docs/v2.1.x/install_standalone-docker.md

② docker 離線安裝:若服務(wù)器存在網(wǎng)絡(luò)限制,可使用離線安裝策略,官方文檔如下:

https://milvus.io/docs/v2.1.x/install_offline-docker.md

這里展示我自己參考官方離線安裝文檔,但有些不同的的安裝方式,即自己手動(dòng)下載容器,在手動(dòng)上傳至服務(wù)器:

(1)首先在這里下載docker-compose.yml,查看需要的容器:

http://$ wget https://github.com/milvus-io/milvus/releases/download/v2.1.1/milvus-standalone-docker-compose.yml -O docker-compose.yml

主要包括以下三個(gè):

? ? image: quay.io/coreos/etcd:v3.5.0

? ??image: minio/minio:RELEASE.2022-03-17T06-34-49Z

? ??image: milvusdb/milvus:v2.1.1

(2)在docker hub找到需要下載的容器:

https://hub.docker.com/

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎?

?(3)復(fù)制pull命令到如下網(wǎng)址進(jìn)行在線下載,并打包成tar:

https://pullimage.passerma.com/

這一步可參考博客:

在線下載Docker Hub鏡像,打成tar包下載_passerma的博客-CSDN博客_dockerhub下載鏡像

(4)后續(xù)步驟按照離線官方文檔下這一步開始執(zhí)行:

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎?

?出現(xiàn)以下顯示,并通過docker-compose ps查看容器狀態(tài),出現(xiàn)以下結(jié)果則安裝成功:

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎?

2.使用MILVUS矢量數(shù)據(jù)庫搭建語義相似性搜索引擎

? 參考官方文檔:

??https://github.com/milvus-io/bootcamp/tree/master/solutions/text_search_engine/quick_deploy

?我這里由于服務(wù)器網(wǎng)絡(luò)限制原因沒有用第一種方案,如果使用第一種方案,前面的步驟1:搭建milvus矢量數(shù)據(jù)庫,可直接跳過:

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎?

?第二種方案:以源碼部署

第一步安裝milvus已經(jīng)在步驟一完成,跳過:

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎?

第二步:使用docker安裝mysql,離線安裝和在線安裝都可以,離線安裝參照上面miluv安裝步驟,下載mysql5.7.tar包,上傳至服務(wù)器,然后加載容器:

docker load -i mysql:5.7.tar

開啟mysql服務(wù):

 docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

?后續(xù)步驟按照教程走即可。

注意事項(xiàng):

從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎?

?這里的let endpoint 要填服務(wù)器地址加端口號(hào)。示例:http://12.88.8.104:8000

3.從Kaggle下載ARXIV數(shù)據(jù),使用dask將數(shù)據(jù)加載到Python中,并構(gòu)建一個(gè)論文搜索引擎

這個(gè)可參考文章:https://blog.csdn.net/deephub/article/details/126343422

我這里的改進(jìn)如下:

可以直接將arxiv的json格式通過dask包讀取后另存為csv格式,然后將數(shù)據(jù)通過serverapi上傳即可:

?papers_df = papers_db.to_dataframe(meta=schema)

在這后面加上一句:

papers_df.to_csv(path,single_file=True)

出現(xiàn)的問題:

1.加載arxiv.csv文件時(shí)由于其源碼是使用pandas一次轉(zhuǎn)化為一個(gè)list,一次上傳,這樣會(huì)導(dǎo)致內(nèi)存暴:milvus docker 會(huì)出現(xiàn) exit(137)錯(cuò)誤?

2.使用dask加載csv文件出現(xiàn)亂碼的問題。

解決方法:

使用dask庫加載:

dd_file = dask.dataframe.read_csv(file_dir,blocksize='10MB')blocksize表示一次加載的分片大小
for partition in tqdm(range(dd_file.npartitions)):
    subset_df = dd_file.get_partition(partition)
    if len(subset_df.index) !=0:
       data = [subset_df[col].values.compute().tolist() for col in ['title','text']]



#若使用上述方法出現(xiàn)亂碼,可使用下述方法:
#先使用pandas加載
pd_file = pd.read_csv(file)
dd_file = dask.dataframe.from_pandas(pd_file, npartitions=10)
for partition in tqdm(range(dd_file.npartitions)):
    subset_df = dd_file.get_partition(partition)
    if len(subset_df.index) !=0:
       data = [subset_df[col].values.compute().tolist() for col in ['title','text']]

附dask官方文檔:

https://docs.dask.org/en/latest/dataframe-create.html

3.在將數(shù)據(jù)進(jìn)行上傳時(shí),出現(xiàn)mysql數(shù)據(jù)庫 1366編碼錯(cuò)誤的問題:

在mysql_helpers.py修改如下兩個(gè)地方:文章來源地址http://www.zghlxwxcb.cn/news/detail-488014.html

def __init__(self):
    self.conn = pymysql.connect(host=MYSQL_HOST, user=MYSQL_USER, port=MYSQL_PORT, 
                                 password=MYSQL_PWD,
                                 #1. 增加charset='utf8mb4'
                                 charset='utf8mb4',
                                 local_infile=True)




def create_mysql_table(self, table_name):
    self.test_connection()
    sql = "create table if not exists " + table_name +"(milvus_id TEXT, title TEXT, text TEXT);"
    try:
        self.cursor.execute(sql)
        #使用sql語句改變表編碼格式
        self.cursor.execute("alter table "+table_name + " convert to charcter set utf8mb4;")

到了這里,關(guān)于從零開始構(gòu)建基于milvus向量數(shù)據(jù)庫的文本搜索引擎的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 向量數(shù)據(jù)庫:Milvus

    向量數(shù)據(jù)庫:Milvus

    ????????Milvus由Go(63.4%),Python(17.0%),C++(16.6%),Shell(1.3%)等語言開發(fā)開發(fā),支持python,go,java接口(C++,Rust,c#等語言還在開發(fā)中),支持單機(jī)、集群部署,支持CPU、GPU運(yùn)算。Milvus 中的所有搜索和查詢操作都在內(nèi)存中執(zhí)行。,當(dāng)前支持的Dimensions of a vector的最大值為32,768。其他限制。

    2024年01月23日
    瀏覽(23)
  • 《向量數(shù)據(jù)庫》——向量數(shù)據(jù)庫Milvus Cloud 和Dify比較

    《向量數(shù)據(jù)庫》——向量數(shù)據(jù)庫Milvus Cloud 和Dify比較

    Zilliz Cloud v.s. Dify Dify 作為開源的 LLMs App 技術(shù)棧,在此前已支持豐富多元的大型語言模型的接入,除了 OpenAI、Anthropic、Azure OpenAI、Hugging face、Replicate 等全球頂尖模型及模型托管平臺(tái),也完成了國內(nèi)主流的各大模型支持(如文心一言、智譜 AI 等)。 而 Zilliz Cloud ?和 Milvus 則是

    2024年02月08日
    瀏覽(41)
  • 《向量數(shù)據(jù)庫指南》——開源框架NVIDIA Merlin & 向量數(shù)據(jù)庫Milvus

    《向量數(shù)據(jù)庫指南》——開源框架NVIDIA Merlin & 向量數(shù)據(jù)庫Milvus

    推薦系統(tǒng) pipeline 中至關(guān)重要的一環(huán)便是為用戶檢索并找到最相關(guān)的商品。為了實(shí)現(xiàn)這一目標(biāo),通常會(huì)使用低維向量(embedding)表示商品,使用數(shù)據(jù)庫存儲(chǔ)及索引數(shù)據(jù),最終對(duì)數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行近似最近鄰(ANN)搜索。這些向量表示是通過深度學(xué)習(xí)模型獲取的,而這些深度學(xué)習(xí)

    2024年02月05日
    瀏覽(22)
  • 云原生向量數(shù)據(jù)庫Milvus

    云原生向量數(shù)據(jù)庫Milvus

    什么是 Milvus Milvus 是一款云原生向量數(shù)據(jù)庫,它具備高可用、高性能、易拓展的特點(diǎn),用于海量向量數(shù)據(jù)的實(shí)時(shí)召回。 Milvus 基于 FAISS、Annoy、HNSW 等向量搜索庫構(gòu)建,核心是解決稠密向量相似度檢索的問題。在向量檢索庫的基礎(chǔ)上,Milvus 支持?jǐn)?shù)據(jù)分區(qū)分片、數(shù)據(jù)持久化、增量

    2024年02月02日
    瀏覽(28)
  • docker 安裝向量數(shù)據(jù)庫 Milvus

    docker 安裝向量數(shù)據(jù)庫 Milvus

    官網(wǎng)為 www.milvus.io/ Milvus 向量數(shù)據(jù)庫能夠幫助用戶輕松應(yīng)對(duì)海量非結(jié)構(gòu)化數(shù)據(jù)(圖片 / 視頻 / 語音 / 文本)檢索。單節(jié)點(diǎn) Milvus 可以在秒內(nèi)完成十億級(jí)的向量搜索(請(qǐng)參考:在線教程),分布式架構(gòu)亦能滿足用戶的水平擴(kuò)展需求。 Milvus 向量數(shù)據(jù)庫的應(yīng)用場(chǎng)景包括:互聯(lián)網(wǎng)娛樂

    2024年02月13日
    瀏覽(44)
  • 向量數(shù)據(jù)庫Annoy和Milvus

    向量數(shù)據(jù)庫Annoy和Milvus

    Annoy 和 Milvus 都是用于向量索引和相似度搜索的開源庫,它們可以高效地處理大規(guī)模的向量數(shù)據(jù)。 Annoy(Approximate Nearest Neighbors Oh Yeah): Annoy 是一種近似最近鄰搜索算法,它通過構(gòu)建一個(gè)樹狀結(jié)構(gòu)來加速最近鄰搜索。 Annoy 支持支持歐氏距離,曼哈頓距離,余弦距離,漢明距

    2024年02月09日
    瀏覽(24)
  • milvus: 專為向量查詢與檢索設(shè)計(jì)的向量數(shù)據(jù)庫

    milvus: 專為向量查詢與檢索設(shè)計(jì)的向量數(shù)據(jù)庫

    milvus docs milvus release Milvus的目標(biāo)是:store, index, and manage massive embedding vectors generated by deep neural networks and other machine learning (ML) models. Milvus 向量數(shù)據(jù)庫專為向量查詢與檢索設(shè)計(jì),能夠?yàn)槿f億級(jí)向量數(shù)據(jù)建立索引。 與現(xiàn)有的關(guān)系數(shù)據(jù)庫主要按照預(yù)定義的模式處理結(jié)構(gòu)化數(shù)據(jù)不同,

    2024年02月15日
    瀏覽(24)
  • 《向量數(shù)據(jù)庫指南》——AI原生向量數(shù)據(jù)庫Milvus Cloud 2.3新功能

    《向量數(shù)據(jù)庫指南》——AI原生向量數(shù)據(jù)庫Milvus Cloud 2.3新功能

    支持用戶通過 upsert 接口更新或插入數(shù)據(jù)。已知限制,自增 id 不支持 upsert;upsert 是內(nèi)部實(shí)現(xiàn)是 delete + insert所以性能上會(huì)有一定損耗,如果明確知道是寫入數(shù)據(jù)的場(chǎng)景請(qǐng)繼續(xù)使用 insert。 支持用戶通過輸入?yún)?shù)指定 search 的 distance 進(jìn)行查詢,返回所有與目標(biāo)向量距離位于某一

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

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

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

    2024年02月09日
    瀏覽(93)
  • milvus向量數(shù)據(jù)庫搭建及可視化

    官方文檔 https://milvus.io/docs/install_standalone-docker.md sudo curl -L “https://github.com/docker/compose/releases/download/v2.10.0/docker-compose- ( u n a m e ? s ) ? (uname -s)- ( u nam e ? s ) ? (uname -m)” -o /usr/local/bin/docker-compose sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.10.0/docker-compose- unam

    2024年02月08日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包