亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原(yuan)創

faiss特征向量簡介

2023-06-30 06:30:46
46
0

1.Faiss方法介紹:

    faiss索(suo)(suo)(suo)(suo)引(yin)類(lei)(lei)(lei)型(xing)主要(yao)(yao)(yao)可(ke)以分(fen)為(wei)暴力檢(jian)索(suo)(suo)(suo)(suo)、乘積(ji)量化、局(ju)部敏感哈希、基(ji)于圖(tu)(tu)的(de)(de)(de)方法(fa)。向(xiang)量檢(jian)索(suo)(suo)(suo)(suo)問(wen)題通(tong)常需要(yao)(yao)(yao)考慮召回(hui)率(lv)、耗(hao)(hao)時(shi)以及(ji)內(nei)存占用(yong)三個問(wen)題,而(er)實際的(de)(de)(de)工業(ye)場景中,一般存在(zai)候(hou)選物(wu)料(liao)量級較(jiao)大(da),耗(hao)(hao)時(shi)要(yao)(yao)(yao)求高的(de)(de)(de)情(qing)況。對比(bi)faiss的(de)(de)(de)索(suo)(suo)(suo)(suo)引(yin)類(lei)(lei)(lei)型(xing),暴力檢(jian)索(suo)(suo)(suo)(suo)類(lei)(lei)(lei)索(suo)(suo)(suo)(suo)引(yin)雖然(ran)召回(hui)率(lv)百分(fen)百,但(dan)耗(hao)(hao)時(shi)無(wu)法(fa)接受。而(er)常用(yong)的(de)(de)(de)索(suo)(suo)(suo)(suo)引(yin)類(lei)(lei)(lei)型(xing)主要(yao)(yao)(yao)是(shi)(shi)乘積(ji)量化和(he)圖(tu)(tu)兩(liang)類(lei)(lei)(lei)標簽。其中,基(ji)于圖(tu)(tu)的(de)(de)(de)方法(fa)召回(hui)率(lv)可(ke)以逼近暴力檢(jian)索(suo)(suo)(suo)(suo)且(qie)耗(hao)(hao)時(shi)也略(lve)優于乘積(ji)量化類(lei)(lei)(lei)索(suo)(suo)(suo)(suo)引(yin),但(dan)是(shi)(shi)在(zai)構建索(suo)(suo)(suo)(suo)引(yin)過程中需要(yao)(yao)(yao)占用(yong)的(de)(de)(de)內(nei)存很大(da),如果能保證足(zu)夠的(de)(de)(de)資(zi)源,圖(tu)(tu)方法(fa)可(ke)以在(zai)耗(hao)(hao)時(shi)和(he)召回(hui)率(lv)上做到最優。乘積(ji)量化召回(hui)率(lv)低于圖(tu)(tu)方法(fa),但(dan)是(shi)(shi)能保證較(jiao)好的(de)(de)(de)耗(hao)(hao)時(shi)和(he)空間占用(yong),是(shi)(shi)在(zai)候(hou)選物(wu)料(liao)集較(jiao)大(da)時(shi)的(de)(de)(de)最優選擇。

2.相關方法和原理:

faiss三個最常見(jian)的索引是   indexflatl2   indexivfflat   indexivfpq

1  indexflatl2 indexflatip為(wei)最(zui)基礎的精準查詢

2  indexivfflat稱為倒(dao)排文件索引(yin),是使用kmeans建(jian)立聚(ju)類中(zhong)(zhong)心,通過(guo)查詢最近的聚(ju)類中(zhong)(zhong)心,比較聚(ju)類中(zhong)(zhong)的所有向量得到(dao)相似(si)向量,是一種加速搜索方(fang)法(fa)的索引(yin)

3  indexivfpq 是(shi)(shi)一種(zhong)減小內存(cun)的(de)(de)索引(yin)方式,indexflatl2和indexivfflat 都會全(quan)量(liang)(liang)(liang)存(cun)儲(chu)所有的(de)(de)向量(liang)(liang)(liang)在內存(cun)中,面對大(da)數據量(liang)(liang)(liang),faiss提供一種(zhong)基于  pq的(de)(de)壓(ya)(ya)縮算(suan)法編(bian)碼向量(liang)(liang)(liang)到指定(ding)字節數來減小內存(cun)占用,但這種(zhong)情(qing)況下,存(cun)儲(chu)的(de)(de)向量(liang)(liang)(liang)是(shi)(shi)壓(ya)(ya)縮過的(de)(de),所以查(cha)詢的(de)(de)向量(liang)(liang)(liang)也(ye)是(shi)(shi)近似的(de)(de)。

4  index_factory是faiss實現的一個索引工廠模式,可以通(tong)過字符串來靈活(huo)的創(chuang)建索引,pca算法可以將向(xiang)量降到指定的維度。

訓(xun)練(lian)階段:對訓(xun)練(lian)樣(yang)本進行聚類,選取1024個(ge)(ge)類,那么1000個(ge)(ge)訓(xun)練(lian)樣(yang)本平均每個(ge)(ge)類就(jiu)只有一個(ge)(ge)向量,10萬個(ge)(ge)樣(yang)本,每個(ge)(ge)類都需(xu)要;

查詢階段:對(dui)查詢樣(yang)本計算(suan)1024個中心的(de)距離,這里(li)計算(suan)了1024次(ci),然后找到它所(suo)屬的(de)聚類(lei)中心,這里(li)如果有1000個查詢樣(yang)本,就(jiu)計算(suan)了1000*1024次(ci),那么對(dui)于(yu)庫(ku)中的(de)樣(yang)本,屬于(yu)其他(ta)聚類(lei)中心的(de)。

3.Faiss的安裝(工程化)

強烈建議安裝faiss 1.7.3以上版本(ben)

pip install faiss-cpu==1.7.3 # pip install faiss-gpu==1.7.2 # gpu安裝

4. Faiss開發

首先(xian),Faiss檢索相似向(xiang)量TopK的工程基本都能分為三步:

  1. 得到向量庫;
  2. 用faiss 構建index,并將向量添加到index中;
  3. 用faiss index 檢索。

5. Faiss常用index優缺點及使用場景

Faiss之所以能加速,是因為它用的檢索方式并非精確檢索,而是模糊檢索。既然是模糊檢索,那么必定有所損失,我們用召回率來表示模糊檢索相對于精確檢索的損失

在(zai)(zai)我們(men)實際的(de)工程中,候(hou)選(xuan)向量(liang)的(de)數量(liang)級、index所占內存的(de)大小、檢(jian)索(suo)所需時間(jian)(是(shi)(shi)(shi)離(li)線檢(jian)索(suo)還是(shi)(shi)(shi)在(zai)(zai)線檢(jian)索(suo))、index構建時間(jian)、檢(jian)索(suo)的(de)召回率等都是(shi)(shi)(shi)我們(men)選(xuan)擇index時常常需要考慮的(de)地(di)方(fang)

0條評論
作者已關閉評論
w****n
2文(wen)章數
0粉絲數
w****n
2 文章 | 0 粉絲
w****n
2文章(zhang)數
0粉絲數
w****n
2 文(wen)章 | 0 粉(fen)絲(si)
原創(chuang)

faiss特征向量簡介

2023-06-30 06:30:46
46
0

1.Faiss方法介紹:

    faiss索引(yin)類(lei)型(xing)主要(yao)可以(yi)分為暴(bao)力(li)(li)檢(jian)(jian)索、乘(cheng)(cheng)積(ji)量(liang)化、局部敏感哈希(xi)、基于(yu)圖的(de)方法(fa)(fa)。向量(liang)檢(jian)(jian)索問題通常(chang)需(xu)要(yao)考慮召回(hui)率、耗(hao)(hao)時(shi)以(yi)及內存(cun)占用(yong)三(san)個問題,而實(shi)際(ji)的(de)工業(ye)場景(jing)中,一(yi)般存(cun)在(zai)(zai)候(hou)選(xuan)物(wu)料(liao)量(liang)級較大(da)(da),耗(hao)(hao)時(shi)要(yao)求高的(de)情(qing)況。對比(bi)faiss的(de)索引(yin)類(lei)型(xing),暴(bao)力(li)(li)檢(jian)(jian)索類(lei)索引(yin)雖然召回(hui)率百(bai)分百(bai),但(dan)耗(hao)(hao)時(shi)無法(fa)(fa)接受。而常(chang)用(yong)的(de)索引(yin)類(lei)型(xing)主要(yao)是乘(cheng)(cheng)積(ji)量(liang)化和圖兩類(lei)標簽。其中,基于(yu)圖的(de)方法(fa)(fa)召回(hui)率可以(yi)逼近暴(bao)力(li)(li)檢(jian)(jian)索且耗(hao)(hao)時(shi)也略優于(yu)乘(cheng)(cheng)積(ji)量(liang)化類(lei)索引(yin),但(dan)是在(zai)(zai)構建索引(yin)過程中需(xu)要(yao)占用(yong)的(de)內存(cun)很大(da)(da),如果能保證足夠的(de)資源,圖方法(fa)(fa)可以(yi)在(zai)(zai)耗(hao)(hao)時(shi)和召回(hui)率上做到最優。乘(cheng)(cheng)積(ji)量(liang)化召回(hui)率低于(yu)圖方法(fa)(fa),但(dan)是能保證較好的(de)耗(hao)(hao)時(shi)和空間占用(yong),是在(zai)(zai)候(hou)選(xuan)物(wu)料(liao)集較大(da)(da)時(shi)的(de)最優選(xuan)擇(ze)。

2.相關方法和原理:

faiss三個最常(chang)見(jian)的索引是(shi)   indexflatl2   indexivfflat   indexivfpq

1  indexflatl2 indexflatip為最基(ji)礎的精(jing)準(zhun)查詢

2  indexivfflat稱為倒排文件索引,是(shi)(shi)使用(yong)kmeans建(jian)立聚類(lei)中(zhong)(zhong)心(xin),通過(guo)查詢最近的(de)聚類(lei)中(zhong)(zhong)心(xin),比較聚類(lei)中(zhong)(zhong)的(de)所有(you)向量(liang)得到相似向量(liang),是(shi)(shi)一種加(jia)速(su)搜索方(fang)法的(de)索引

3  indexivfpq 是一種減(jian)小內(nei)存(cun)的(de)(de)(de)索引方(fang)式(shi),indexflatl2和(he)indexivfflat 都會(hui)全量(liang)存(cun)儲所(suo)有(you)的(de)(de)(de)向(xiang)(xiang)(xiang)量(liang)在內(nei)存(cun)中,面(mian)對大數據量(liang),faiss提供一種基于  pq的(de)(de)(de)壓(ya)縮算(suan)法編碼向(xiang)(xiang)(xiang)量(liang)到指定字節(jie)數來減(jian)小內(nei)存(cun)占用(yong),但(dan)這(zhe)種情況下,存(cun)儲的(de)(de)(de)向(xiang)(xiang)(xiang)量(liang)是壓(ya)縮過的(de)(de)(de),所(suo)以(yi)查詢的(de)(de)(de)向(xiang)(xiang)(xiang)量(liang)也是近似(si)的(de)(de)(de)。

4  index_factory是faiss實現的一個索(suo)引工廠(chang)模式,可(ke)以通過字符串來(lai)靈活的創(chuang)建(jian)索(suo)引,pca算(suan)法可(ke)以將(jiang)向量(liang)降到(dao)指定的維度(du)。

訓(xun)練(lian)階(jie)段:對訓(xun)練(lian)樣本(ben)進行(xing)聚類(lei),選(xuan)取1024個(ge)類(lei),那(nei)么1000個(ge)訓(xun)練(lian)樣本(ben)平均每個(ge)類(lei)就只(zhi)有一個(ge)向量,10萬個(ge)樣本(ben),每個(ge)類(lei)都需要;

查詢階段:對(dui)查詢樣本(ben)計(ji)算(suan)1024個中(zhong)(zhong)心的距離,這里計(ji)算(suan)了1024次,然(ran)后找到它(ta)所(suo)屬(shu)的聚類中(zhong)(zhong)心,這里如果有1000個查詢樣本(ben),就計(ji)算(suan)了1000*1024次,那(nei)么對(dui)于(yu)庫中(zhong)(zhong)的樣本(ben),屬(shu)于(yu)其他聚類中(zhong)(zhong)心的。

3.Faiss的安裝(工程化)

強烈建議安(an)裝(zhuang)faiss 1.7.3以上版本

pip install faiss-cpu==1.7.3 # pip install faiss-gpu==1.7.2 # gpu安裝

4. Faiss開發

首(shou)先,Faiss檢索相似向量TopK的工程基本都能分為(wei)三步:

  1. 得到向量庫;
  2. 用faiss 構建index,并將向量添加到index中;
  3. 用faiss index 檢索。

5. Faiss常用index優缺點及使用場景

Faiss之所以能加速,是因為它用的檢索方式并非精確檢索,而是模糊檢索。既然是模糊檢索,那么必定有所損失,我們用召回率來表示模糊檢索相對于精確檢索的損失

在我(wo)們實際的工程中(zhong),候選(xuan)向(xiang)量(liang)的數量(liang)級(ji)、index所占內(nei)存的大(da)小、檢索(suo)所需時(shi)間(jian)(是(shi)離線檢索(suo)還是(shi)在線檢索(suo))、index構建時(shi)間(jian)、檢索(suo)的召回率等都(dou)是(shi)我(wo)們選(xuan)擇(ze)index時(shi)常常需要考慮的地方(fang)

文章來自個人專欄
文(wen)章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0