精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

大規(guī)模相似性搜索:原理、技術與 Faiss 實踐

發(fā)布于 2025-1-10 12:36
瀏覽
0收藏

相似性搜索為何重要?

人工智能和機器學習的興起,催生了大量高維數(shù)據(jù)表示形式,即嵌入(embeddings),它們捕捉數(shù)據(jù)點之間的復雜關系,助力強大的分析與理解。然而,在大型數(shù)據(jù)集中查找相似嵌入是一項計算密集型任務。相似性搜索在檢索增強生成(Retrieval-Augmented Generation,RAG)領域引發(fā)了變革。RAG 將傳統(tǒng)信息檢索與語言模型相結(jié)合,通過利用相似性搜索查找相關文檔,使模型能訪問更廣泛的知識庫,生成更具信息量和上下文豐富的輸出,從而提高生成文本的準確性和相關性。

大規(guī)模相似性搜索的挑戰(zhàn)

傳統(tǒng)數(shù)據(jù)庫和搜索引擎難以滿足大規(guī)模相似性搜索的需求。它們依賴結(jié)構化查詢和索引方法,無法應對高維數(shù)據(jù)的動態(tài)特性。因此,需要專門的技術來解決這一問題。

大規(guī)模相似性搜索:原理、技術與 Faiss 實踐-AI.x社區(qū)

Faiss 框架

Faiss 由 Facebook AI Research 開發(fā),是一個專為高效相似性搜索設計的強大庫。它提供多種索引方法,在性能、準確性和內(nèi)存使用之間進行了不同的權衡優(yōu)化。Faiss 還支持 GPU 加速,非常適合處理大規(guī)模數(shù)據(jù)集。

大規(guī)模相似性搜索:原理、技術與 Faiss 實踐-AI.x社區(qū)

基礎準備

首先安裝和導入必要的依賴項:

pip install faiss-cpu
import time
import faiss
import numpy as np

接著定義一些常量:d? 表示向量維度(128),nb? 表示基礎向量數(shù)量(10000),nq 表示查詢向量數(shù)量(100)。

d = 128
nb = 10000
nq = 100

為保證結(jié)果可復現(xiàn),初始化隨機種子:

np.random.seed(1234)

生成兩組隨機向量,xb? 代表基礎向量(10000 x 128),xq 代表查詢向量(100 x 128):

xb = np.random.random((nb, d)).astype('float32')
xq = np.random.random((nq, d)).astype('float32')

這些向量本質(zhì)上就是我們的數(shù)據(jù)點。

分層可導航小世界(Hierarchical Navigable Small World,HNSW)

大規(guī)模相似性搜索:原理、技術與 Faiss 實踐-AI.x社區(qū)

  • 工作原理:HNSW 是一種基于圖的索引方法,向量被組織在小世界圖的層次結(jié)構中。圖中的每個節(jié)點(向量)都與其最近鄰節(jié)點相連。搜索時,算法在圖中導航,快速收斂到最近的向量。
  • 優(yōu)勢:HNSW 準確性高且搜索速度快,尤其適用于高維數(shù)據(jù)集。
  • 關鍵參數(shù):

M(每個節(jié)點的連接數(shù)):控制圖中每個節(jié)點連接的鄰居數(shù)量。數(shù)值越高,準確性越高,但內(nèi)存消耗也越大。

efConstruction? 和efSearch:分別控制索引構建和搜索過程中的探索深度。數(shù)值越高,搜索準確性越好,但計算量也更大。

創(chuàng)建兩個 HNSW 索引 —— HNSWFlat? 和 HNSWSQ(標量量化)來對比性能:

# HNSWFlat 是基本的 HNSW 實現(xiàn)
index_hnswflat = faiss.IndexHNSWFlat(d, 32)
start = time.time()
index_hnswflat.add(xb)
indexing_time_hnswflat = time.time() - start
start = time.time()
D, I = index_hnswflat.search(xq, 5)
search_time_hnswflat = time.time() - start

# HNSWSQ 結(jié)合了標量量化(SQ)以加快索引速度
quantizer_sq = faiss.IndexScalarQuantizer(d, faiss.ScalarQuantizer.QT_8bit)
index_hnswsq = faiss.IndexHNSWFlat(d, 32)
start = time.time()
index_hnswsq.add(xb)
indexing_time_hnswsq = time.time() - start
start = time.time()
D, I = index_hnswsq.search(xq, 5)
search_time_hnswsq = time.time() - start

兩個索引都使用“扁平”存儲方法,即不壓縮原始向量。

輸出結(jié)果:

print(f"HNSWFlat Indexing Time: {indexing_time_hnswflat:.4f} seconds")
print(f"HNSWFlat Search Time: {search_time_hnswflat:.4f} seconds")
print(f"HNSWSQ Indexing Time: {indexing_time_hnswsq:.4f} seconds")
print(f"HNSWSQ Search Time: {search_time_hnswsq:.4f} seconds")

與基于 IVF 的方法相比,HNSW 方法的索引速度明顯較慢,因為 HNSW 需要構建鄰居圖,計算成本較高。由于標量量化(SQ)在索引過程中更緊湊地表示向量,降低了向量維度,所以 HNSWSQ? 比 HNSWFlat? 稍快。HNSWFlat? 和 HNSWSQ 的搜索時間比基于 IVF 的方法略長,這是因為需要遍歷圖來找到最近鄰居。HNSW 以高精度著稱,尤其在高維空間中,但代價是索引和搜索時間較長。

倒排文件索引(Inverted File Index,IVF)

大規(guī)模相似性搜索:原理、技術與 Faiss 實踐-AI.x社區(qū)

  • 工作原理:IVF 是大規(guī)模數(shù)據(jù)集相似性搜索中另一種常用方法。它將數(shù)據(jù)集劃分為多個桶(buckets)或“列表”,每次查詢僅搜索其中一部分桶。
  • 優(yōu)勢:與 HNSW 相比,IVF 的主要優(yōu)勢是內(nèi)存需求較低。
  • 關鍵參數(shù):

nlist:聚類(或桶)的數(shù)量。數(shù)值越高,精度越高,但索引時間也會增加。

nprobe:查詢時搜索的聚類數(shù)量。增加此參數(shù)可提高召回率,但會降低搜索速度。

對比 IndexIVFFlat?(無乘積量化)和 IndexIVFPQ(有乘積量化):

# IVFFlat 使用無量化的扁平索引
nlist = 100
quantizer = faiss.IndexFlatL2(d)
index_ivfflat = faiss.IndexIVFFlat(quantizer, d, nlist, faiss.METRIC_L2)
start = time.time()
index_ivfflat.train(xb)
index_ivfflat.add(xb)
indexing_time_ivfflat = time.time() - start
index_ivfflat.nprobe = 10
start = time.time()
D, I = index_ivfflat.search(xq, 5)
search_time_ivfflat = time.time() - start

# IVFPQ 結(jié)合乘積量化(PQ)以提高內(nèi)存效率
m = 8
nbits = 8
index_ivfpq = faiss.IndexIVFPQ(quantizer, d, nlist, m, nbits)
start = time.time()
index_ivfpq.train(xb)
index_ivfpq.add(xb)
indexing_time_ivfpq = time.time() - start
index_ivfpq.nprobe = 10
start = time.time()
D, I = index_ivfpq.search(xq, 5)
search_time_ivfpq = time.time() - start

IVF 的關鍵思想是將數(shù)據(jù)集劃分為聚類(桶),每次查詢僅搜索其中一部分桶。這里設置 nlist 為 100,即有 100 個聚類。

輸出結(jié)果:

print(f"IVFFlat Indexing Time: {indexing_time_ivfflat:.4f} seconds")
print(f"IVFFlat Search Time: {search_time_ivfflat:.4f} seconds")
print(f"IVFPQ Indexing Time: {indexing_time_ivfpq:.4f} seconds")
print(f"IVFPQ Search Time: {search_time_ivfpq:.4f} seconds")

IVFPQ? 的索引時間比 IVFFlat? 長得多,因為 IVFPQ? 在初始聚類后還涉及額外的量化步驟。它應用乘積量化(PQ),需要學習一個碼本,將每個向量壓縮為多個量化子向量。IVFPQ 的搜索時間略長,這是由于在搜索過程中需要從量化表示中解壓縮和重構向量,但差異很小,其內(nèi)存效率的提升通常值得這額外的搜索時間。

局部敏感哈希(Locality Sensitive Hashing,LSH)

大規(guī)模相似性搜索:原理、技術與 Faiss 實踐-AI.x社區(qū)

  • 工作原理:LSH 將高維向量轉(zhuǎn)換為低維“哈希”值。相似向量更有可能具有相同的哈希值,通過關注包含相關哈希的桶來實現(xiàn)高效搜索。
  • 優(yōu)勢:LSH 為相似性搜索提供了一種快速且可擴展的方法,尤其適用于大型數(shù)據(jù)集和高維空間。
  • 關鍵參數(shù):

哈希表數(shù)量:控制準確性和速度之間的權衡。哈希表越多,準確性越高,但搜索時間也會增加。

每個表的哈希函數(shù)數(shù)量:用于生成每個哈希值的哈希函數(shù)數(shù)量。

使用 IndexLSH(基于哈希的方法,利用隨機投影為每個向量創(chuàng)建哈希值):

nbits = 16
index_lsh = faiss.IndexLSH(d, nbits)
start = time.time()
index_lsh.add(xb)
indexing_time_lsh = time.time() - start
start = time.time()
D, I = index_lsh.search(xq, 5)
search_time_lsh = time.time() - start

相似向量更有可能具有相同的哈希值,我們使用 16 位哈希。

輸出結(jié)果:

print(f"LSH Indexing Time: {indexing_time_lsh:.4f} seconds")
print(f"LSH Search Time: {search_time_lsh:.4f} seconds")

LSH 的索引速度極快,因為它只是基于隨機投影將數(shù)據(jù)點哈希到哈希桶中,無需像 IVF 或 HNSW 那樣的訓練過程,所以索引幾乎是即時的。與 IVFFlat? 和 HNSW? 相比,LSH 的搜索相對較慢,這是因為 LSH 的隨機性,可能需要搜索多個哈希桶才能找到最近鄰居。LSH 通常索引速度快,但與 HNSW 或 IVFPQ 等更復雜的方法相比,可能會犧牲準確性和搜索速度。

本文只是對大規(guī)模相似性搜索領域的簡要介紹,僅觸及了基礎知識,還有更多內(nèi)容有待探索。未來我們將深入研究實際應用,探索更高級的索引方法,甚至使用 Faiss 構建一些有趣的項目。

本文轉(zhuǎn)載自 ??柏企閱文??,作者: 柏企

收藏
回復
舉報
回復
相關推薦
日本a在线天堂| 国产精品激情av在线播放| 中文字幕亚洲影院| 国产精品秘入口| 日韩av二区在线播放| 一本色道久久88综合日韩精品| 国产视频不卡| 久久精品免费在线| 伊人久久大香线蕉| 91黄色激情网站| 中文字幕中文字幕99| 国产高清视频免费观看| 日韩一区二区免费看| 亚洲欧美日韩精品久久| 欧美wwwwwww| 污网站在线免费看| 91色porny| 国产男人精品视频| 青青草原国产视频| 最新国产一区| 91精品国产综合久久精品| 国产一区一区三区| 天天色综合av| 美女国产一区二区| 国内揄拍国内精品少妇国语| 中文字幕在线1| 日韩av黄色| 香蕉加勒比综合久久 | 香蕉视频国产在线| 日韩电影在线一区| 欧美精品制服第一页| 黄色a一级视频| 不卡一区视频| 午夜激情久久久| 日韩高清av电影| 欧美一区二区三区激情| 麻豆91在线观看| 欧美综合在线观看| 国产小视频在线看| 日韩精品久久| 亚洲欧洲高清在线| 中国特级黄色大片| 四虎视频在线精品免费网址| 亚洲h动漫在线| 在线无限看免费粉色视频| 丝袜视频国产在线播放| 国产成人精品影视| 91精品免费久久久久久久久| 欧美另类一区二区| 欧美破处大片在线视频| 久久激情视频免费观看| 国产免费一区二区三区网站免费| 欧美激情喷水| 婷婷一区二区三区| 欧美日韩激情四射| 免费观看在线午夜影视| 成人av第一页| 97久久夜色精品国产九色| 亚洲无码精品在线观看| 久久亚洲风情| 日韩av片免费在线观看| 国产三级av片| 亚洲美女一区| 欧美激情综合色| 九九视频免费观看| 欧美日本中文| 欧美大片免费观看| 男人天堂资源网| 日韩.com| 日韩中文字幕久久| 无码人妻精品中文字幕| 国产精品传媒精东影业在线| 最新日韩中文字幕| 岛国片在线免费观看| 婷婷精品在线观看| 日韩经典一区二区三区| 韩国三级视频在线观看| 亚洲天堂中文字幕在线观看| 日韩小视频在线观看专区| 北条麻妃亚洲一区| 一区二区三区四区视频免费观看| 一区二区三区四区乱视频| 欧美日韩午夜爽爽| 欧美黑人猛交的在线视频| 亚洲成人动漫一区| 极品美女扒开粉嫩小泬| 性欧美18一19sex性欧美| 五月婷婷久久综合| www黄色av| 激情都市亚洲| 欧美日韩久久不卡| 中文字幕在线观看视频www| 亚洲大奶少妇| 日韩你懂的电影在线观看| 91亚洲一线产区二线产区| 丁香婷婷成人| 亚洲精品一区二三区不卡| 在线不卡av电影| 国产日产一区 | www国产精品视频| 欧美激情精品久久| 久久99伊人| 国产99久久精品一区二区永久免费| 久草资源在线视频| 欧美一级二区| 国产精品男女猛烈高潮激情| 伊人网av在线| 东方aⅴ免费观看久久av| 久久偷看各类wc女厕嘘嘘偷窃 | 18av在线视频| 亚洲成在人线免费| 天天操天天爽天天射| 日韩脚交footjobhd| 欧美在线短视频| 亚洲少妇一区二区三区| 免费av一区二区三区四区| 欧美另类交人妖| 在线视频1卡二卡三卡| 91在线国产福利| a级片一区二区| av成人在线播放| 精品性高朝久久久久久久| 在线免费日韩av| 九九视频精品免费| 欧美亚洲另类久久综合| 成人性生交大片免费看网站| 欧美日本一区二区三区| 亚洲av无码一区二区三区人 | 一级全黄肉体裸体全过程| 草草在线观看| 精品少妇一区二区三区视频免付费| 国产清纯白嫩初高中在线观看性色| 视频一区在线| 搡老女人一区二区三区视频tv| 国产精品1区2区3区4区| 亚洲女人av| 国产精品日韩一区二区| av免费在线观| 91麻豆精品国产91久久久更新时间 | 免费在线亚洲欧美| 国产一区高清视频| 99riav视频在线观看| 欧美一区二区三区四区久久| 久久久久人妻一区精品色| 首页国产欧美日韩丝袜| 欧美一区免费视频| 亚洲天堂一区二区| 亚洲女同性videos| 日本免费精品视频| 久久久久99精品一区| 女性隐私黄www网站视频| 日韩精品免费一区二区夜夜嗨| 最近中文字幕日韩精品| 真实新婚偷拍xxxxx| 国产三区在线成人av| www.xxx亚洲| 免费视频国产一区| 国产精品a久久久久久| 国产视频精选在线| 欧美日韩精品二区第二页| 亚洲色图100p| 国产九九视频一区二区三区| 亚洲国产一二三精品无码| 永久免费精品视频| 777777777亚洲妇女| 色吊丝在线永久观看最新版本| 亚洲欧洲中文日韩久久av乱码| 久草免费福利在线| 欧美美女黄色| 国产精品电影网站| 精精国产xxxx视频在线| 欧美哺乳videos| 亚洲欧美自拍视频| 国产精品美女www爽爽爽| 国产精品嫩草影视| 国产专区一区| 久久久久久久久久久久久久一区| 免费在线看黄| 欧美不卡视频一区| 丰满少妇xoxoxo视频| 国产精品久久一卡二卡| 91精品人妻一区二区三区四区| 欧美人与牛zoz0性行为| 国产精品久久久91| 国产区在线看| 亚洲国产精品资源| 在线免费观看一区二区| 亚洲一区二区3| 亚洲精品国产精品国自产网站| 99精品福利视频| 久久这里精品国产99丫e6| 国产精品videossex撒尿| 久久精品一偷一偷国产| 手机看片一区二区三区| 欧美美女直播网站| 999这里只有精品| 成人免费在线播放视频| 中出视频在线观看| 精品一区二区三区免费| 国自产拍偷拍精品啪啪一区二区| 这里视频有精品| 欧美有码在线视频| aaa大片在线观看| 亚洲日本中文字幕| 99国产精品欲| 91久久一区二区| 久久久99精品| 国产精品久久久久7777按摩 | 中文字幕系列一区| 欧美福利视频网站| 欧美高清视频| 亚洲天堂男人的天堂| 亚洲h视频在线观看| 在线观看亚洲一区| 97超碰人人干| 亚洲男人天堂av网| 欧美色图17p| 久久久电影一区二区三区| 91人人澡人人爽| 精品一区二区三区在线观看国产| 一区二区三区四区五区视频 | 无需播放器亚洲| 久久人人爽爽人人爽人人片av| 日韩伦理精品| 午夜精品蜜臀一区二区三区免费 | 亚洲一级免费视频| 日本免费不卡视频| 欧美一级夜夜爽| 亚洲精品国产精品国自产网站按摩| 亚洲国产精品精华液ab| 伊人网综合视频| 国产高清亚洲一区| 欧美丝袜在线观看| 蜜臀av一区二区| 可以免费观看av毛片| 久久不射中文字幕| 国产a级一级片| 一区二区国产精品| 欧美久久久久久久久久久久久| 国产成人手机高清在线观看网站| 国产精品精品久久久| 亚洲黄色中文字幕| 韩剧1988在线观看免费完整版| 第一福利在线| 精品无码久久久久久国产| 五月婷婷六月丁香| 日韩av在线网站| 人成在线免费视频| 日韩国产中文字幕| 可以在线观看的黄色| 亚洲男人天堂2023| 日韩成人av网站| 精品国产乱码久久久久夜深人妻| 91porn在线观看| 亚洲美女在线看| 日韩大胆视频| 国产亚洲精品久久| av网站在线免费观看| 最近2019年中文视频免费在线观看| 精品久久久中文字幕人妻| 91麻豆精品久久久久蜜臀| 一区二区小视频| 91麻豆精品国产91久久久久久 | 免费在线观看一级毛片| 日韩精品久久久久久久玫瑰园| 一区二区小视频| 欧美一区二区三区免费大片| 精品人妻一区二区三区换脸明星| 色综合久久综合网97色综合| 欧美亚洲另类小说| 91麻豆精品国产无毒不卡在线观看| 国产尤物在线视频| 欧美亚州韩日在线看免费版国语版| 精品亚洲永久免费| 精品色蜜蜜精品视频在线观看| √天堂中文官网8在线| 一区二区三区 在线观看视频| 中文字幕一区二区三区人妻| 久久精品一二三| 在线观看免费黄色网址| 亚洲蜜臀av乱码久久精品蜜桃| 性欧美精品男男| 国产精品久久久久久久久免费相片 | 久久影视一区二区| 亚洲精品色午夜无码专区日韩| 成人免费视频视频| 91成年人网站| 亚洲欧美激情一区二区| 天天操中文字幕| 欧美日韩精品一区二区天天拍小说 | 理论在线观看| 大量国产精品视频| 成人午夜视屏| 亚洲综合在线小说| 亚洲bt欧美bt精品777| 一区二区视频国产| 99国产精品自拍| 久久精品久久99| 久久先锋影音av| 精品人妻伦九区久久aaa片| 五月综合激情网| 91精品在线视频观看| 日韩国产精品一区| 日本一级理论片在线大全| 国产精品久久久久秋霞鲁丝| 综合激情网...| 欧美 另类 交| 日韩精品1区2区3区| 黄色性视频网站| ...av二区三区久久精品| 国产精品男女视频| 日韩午夜在线观看视频| 1769视频在线播放免费观看| 91精品国产高清自在线| 欧洲大片精品免费永久看nba| 99久久精品免费看国产四区| 精品日本12videosex| av在线免费观看国产| 老司机免费视频一区二区| 亚洲色图14p| 亚洲va欧美va天堂v国产综合| 波多野结衣视频网站| 欧美一区二区视频在线观看| av大全在线免费看| 国产成人综合亚洲| 欧美三级午夜理伦三级在线观看| 久久偷窥视频| 亚洲三级网站| 美女扒开腿免费视频| 亚洲欧美综合在线精品| 成人毛片一区二区三区| 精品无人区太爽高潮在线播放 | 国内免费精品永久在线视频| 视频欧美精品| 一区二区日本伦理| 免费在线观看视频一区| 日韩一区二区a片免费观看| 岛国av午夜精品| 亚洲欧美自偷自拍| 97香蕉超级碰碰久久免费软件| 自拍偷拍亚洲视频| 国产伦精品一区二区三区四区视频| 九九热线有精品视频99| 国产成人精品视频免费看| 99久久精品国产精品久久 | **性色生活片久久毛片| 在线观看免费高清视频| 亚洲视频国产视频| 日韩精品第一| 亚洲欧洲一区二区在线观看| 日本欧美在线看| 国内毛片毛片毛片毛片毛片| 欧美丰满嫩嫩电影| 直接在线观看的三级网址| 亚洲自拍偷拍区| 一区视频在线看| 亚洲一区二区三区无码久久| 精品毛片网大全| 国产午夜在线视频| 国产欧美日韩精品在线观看| 成人中文在线| 欧美激情国内自拍| 亚洲在线视频网站| 天天影院图片亚洲| 国产精品久久久久9999| 婷婷中文字幕一区| 韩国三级在线看| 欧美丝袜一区二区| 成人影视在线播放| 91视频免费网站| 亚洲看片一区| 91资源在线播放| 337p亚洲精品色噜噜| 波多一区二区| 欧美日韩一区在线视频| 麻豆国产精品777777在线| 久草网视频在线观看| 亚洲精品日韩久久久| 青草综合视频| youjizz.com在线观看| 久久―日本道色综合久久| 国产精品久久久久久久久久久久久久久久久久| 久久精品国产清自在天天线 | 快射av在线播放一区| av一区观看| 丝袜a∨在线一区二区三区不卡| 国产熟女高潮一区二区三区| 日韩欧美在线视频日韩欧美在线视频 | 国产麻豆精品在线观看| 好吊操这里只有精品| 亚洲天堂一区二区三区| 欧美国产亚洲精品| 草草草在线视频| 一区二区三区四区视频精品免费 | 窝窝社区一区二区| 杨幂毛片午夜性生毛片| 亚洲图片欧美视频| 99免在线观看免费视频高清| 97se亚洲综合| 男人的j进女人的j一区|