模型層 開放閱讀

ANN 檢索

Approximate Nearest Neighbor Search

概念 ID
approximate-nearest-neighbor-search
更新時間
2026-05-29
來源數量
待補

ANN 檢索(Approximate Nearest Neighbor Search)

3 秒看懂

一句話定義: 在高維向量空間中,以微小精度損失換取數量級速度提升的”找最近鄰”技術——它是 RAG、推薦系統、影像搜尋等所有”向量化檢索”場景的底層引擎。

核心取捨: 不求 100% 精確最近鄰,而是在召回率(Recall)與查詢延遲(Latency)/記憶體佔用之間做工程化平衡。

3 分鐘產業解釋

為什麼這件事重要?

大語言模型(LLM)時代,幾乎所有資訊檢索正在經歷範式遷移:從 關鍵詞匹配(BM25/TF-IDF) 走向 語義向量檢索。使用者的一句自然語言被編碼為高維向量(如 768 維、1024 維、甚至更高),系統需要在數億甚至數十億候選向量中快速找到最相似的若干條——這就是 ANN 的用武之地。

沒有 ANN,RAG(檢索增強生成)將不可用。 當一個企業知識庫有 10 億條文件片段(embedding 向量),暴力計算所有距離(Brute-Force)的計算量是 O(N×D),對 10 億條資料完全不可接受。ANN 通過建立索引結構,將搜尋複雜度降低到近似 O(log N) 或亞線性水平,使得毫秒級響應成為可能。

產業位置

使用者查詢


Embedding 模型(文本→向量)  ← 模型層(OpenAI / BGE / Jina 等)


ANN 檢索引擎(向量→Top-K 結果)  ← 基礎設施層(本頁核心)


LLM 推論(注入上下文生成回答)  ← 應用層

ANN 位於整個 AI 應用棧的 基礎設施中間層——它既不生產向量,也不消費結果,但它是連線兩者的瓶頸。

15 分鐘專家深入

核心問題定義

給定一個查詢向量 q ∈ ℝᴰ,和一個包含 N 個向量的集合 S = {x₁, x₂, …, x_N},精確最近鄰搜尋要求找到:

x* = argmin_{x ∈ S} ||q - x||₂

當 D 很大(≥128)且 N 很大(≥10⁶)時,精確搜尋面臨 維度災難(Curse of Dimensionality):基於空間劃分的傳統方法(如 KD-Tree)退化為接近暴力搜尋的效能。

ANN 的核心思想:放棄精確性,建置近似索引結構,以 (1+ε)-近似或機率性保證換取亞線性搜尋時間。

三大演算法範式

ANN 演算法可歸為三大類(實際系統常混合使用):

1. 基於圖的方法(Graph-Based)

代表:HNSW(Hierarchical Navigable Small World)

  • 核心思想:建置多層小世界圖,上層稀疏用於長距離跳躍,下層稠密用於精確搜尋
  • 搜尋過程類似”高速公路→國道→街道”的逐級導航
  • 查詢複雜度:O(log N)(近似)
  • 記憶體開銷:較高(需要儲存圖的鄰接表)
  • 召回率通常最優,但建置時間和記憶體成本也最高

2. 基於空間劃分的方法(Partitioning / Clustering)

代表:IVF(Inverted File Index),及其變體 IVF-PQ、IVF-HNSW

  • 核心思想:先用 k-means 將向量空間劃分為若干聚類(Voronoi cells),查詢時只在最近的若干個聚類中搜索
  • 可與量化壓縮(PQ)結合,大幅減少記憶體
  • 引數 nprobe(查詢時探測的聚類數量)直接控制精度-速度權衡

3. 基於雜湊的方法(Locality-Sensitive Hashing, LSH)

代表:LSHAnnoy(Spotify)

  • 核心思想:設計特殊雜湊函式,使相近向量更可能被雜湊到同一桶中
  • 理論保證較完善(可證明的近似比),但實踐中記憶體效率和召回率通常不如 HNSW/IVF-PQ
  • Annoy 通過隨機投影樹實現,適合靜態資料集、記憶體對映友好

混合與變體

組合策略說明
IVF-PQ先聚類再對殘差做乘積量化,FAISS 的經典配置
HNSW + PQ圖導航 + 向量壓縮,兼顧速度與記憶體
ScaNN(Google)各向異性量化,在特定資料分佈下精度更優
DiskANN(Microsoft)基於 SSD 的圖索引,支援超大規模但降低記憶體需求
SPANN稀疏聚類頭在記憶體 + 候選在磁碟,類似 DiskANN 思路

技術原理(深度機制)

HNSW 工作原理

Layer 2 (最稀疏):  A ──── D
                   │      │
Layer 1 (中間):    A ── B ── D ── E
                   │    │   │    │
Layer 0 (最稠密):  A ─ B ─ C ─ D ─ E ─ F ─ G

建置過程:

  1. 每個新向量隨機分配一個最高層 l(通常按指數分佈,P(l) ∝ m_L^{-l})
  2. 從最高層開始,使用貪心搜尋在當前層找到最近鄰
  3. 下降到下一層,繼續貪心搜尋並建立雙向連線
  4. 每個節點在第 0 層最多連線 M 個鄰居,上層最多連線 M/2 個鄰居(第 0 層連線數較多,上層連線數較少)

搜尋過程:

  1. 從最上層的入口點開始
  2. 在當前層貪心搜尋,找到區域性最優
  3. 將該點作為下一層的入口,重複
  4. 在第 0 層使用 beam search(維護 ef 個候選),返回最終 Top-K

關鍵引數及其影響:

引數含義調大效果調小效果
M每層最大連線數↑ 召回率、↑ 記憶體、↑ 建置時間↓ 召回率、↓ 記憶體
efConstruction建置時 beam width↑ 索引質量、↑ 建置時間↓ 索引質量
efSearch查詢時 beam width↑ 召回率、↑ 查詢延遲↓ 召回率、↓ 延遲

IVF-PQ 工作原理

[原始向量 x ∈ ℝ^D]


  [IVF: 找最近聚類中心 c_i]          ← 粗量化,縮小搜尋範圍


  [殘差 r = x - c_i]                 ← 只儲存殘差


  [PQ: 將 r 切分為 M 個子向量]       ← 乘積量化壓縮
        │  每個子向量獨立做 k-means (k=256)

  [儲存: 每個子向量用 1 位元組編碼]     ← D 維向量壓縮為 M 位元組

乘積量化(Product Quantization)核心:

  • 將 D 維向量切分為 M 個子空間(每個子空間 D/M 維)
  • 每個子空間獨立做 k-means(k=256,用 8 bit 編碼)
  • 原始向量:D × 4 位元組(float32)→ 壓縮後:M 位元組
  • 距離計算:預計算查詢向量子空間與各碼本的距離表,查表求和

記憶體佔用估算示例:

  • 10 億向量,128 維,float32 → 原始:10⁹ × 128 × 4B ≈ 486 GB
  • IVF-PQ (M=64, 8bit) → 10⁹ × 64B ≈ 59.6 GB(含聚類中心和殘差編碼)
  • 加 IVF 索引頭約額外 5-10%(取決於聚類數)

距離度量

度量公式適用場景
L2(歐氏距離)||a-b||₂通用,影像特徵
餘弦相似度(a·b)/(||a||·||b||)文本 embedding(歸一化後等價於內積)
內積a·b歸一化後與餘弦等價
漢明距離不年增率特數二值雜湊向量

實踐提示: 主流 text embedding 模型(如 OpenAI text-embedding-3、BGE、Jina)輸出的向量通常已歸一化,此時 L2、餘弦、內積三者的排序結果等價。但索引建置時仍需正確指定度量型別。

精度-速度權衡量化(概念級)

召回率 (Recall@10)
  1.0 ─────────────────────────────── *  (Brute Force, 延遲極高)
       │                        *
  0.95 │                   * HNSW (ef=256)
       │              *
  0.90 │         * IVF-PQ (nprobe=64)
       │      *
  0.85 │   * IVF (nprobe=16)
       │  *
  0.80 │ * LSH
       └──────────────────────────────→ QPS (每秒查詢數)
          低                              高

上圖為定性趨勢圖,具體數值取決於資料集維度、分佈和硬體環境。


技術演進史

時期里程碑意義
1998LSH 理論奠基(Indyk & Motwani, STOC)首次給出亞線性時間 ANN 的理論保證
2000sKD-Tree / Ball-Tree 用於低維維度災難限制了在高維的應用
2006Product Quantization 提出(Jégou et al.)向量壓縮技術突破,使得大規模向量儲存可行
2013Annoy 釋出(Spotify)輕量級隨機投影樹,適合嵌入式場景
2014Faiss 啟動(Facebook/Meta AI)工業級 ANN 庫,GPU 加速先驅
2016HNSW 論文發表(Malkov & Yashunin)圖方法在實踐中全面超越 LSH 和 IVF
2020ScaNN 釋出(Google Research)各向異性量化,在高維文本場景表現優異
2019Milvus 啟動(Zilliz)雲端原生向量資料庫,ANN 作為核心引擎
2020DiskANN 釋出(Microsoft Research)SSD-based 圖索引,十億級向量低記憶體檢索
2021FAISS 1.7+ 大規模 GPU 支援GPU IVF-PQ 成為大規模生產方案
2022向量資料庫賽道爆發(Pinecone / Weaviate / Qdrant 融資)ANN 從學術概念變為商業基礎設施
2023RAG 爆發,ANN 需求指數增長成為 LLM 應用棧必選元件
2024NVIDIA cuVS / RAPIDS 加速、專用硬體(如 Pinecone 推論晶片探索)ANN 從軟體最佳化走向硬體定製
2025多模態 embedding + 長上下文 LLM 競爭下,“是否還需要 ANN” 出現討論但視窗限制和成本仍使 ANN 不可替代

技術路線對比

主流 ANN 演算法量化對比

維度HNSWIVF-PQLSHScaNNDiskANN
資料結構多層圖倒排+量化雜湊表各向異性量化索引圖索引 (SSD-backed)
召回率@10 (典型)極高(≥0.98)高(0.90-0.97)中(0.80-0.92)高(0.93-0.97)高(0.93-0.97)
查詢延遲低-中中(SSD IO)
記憶體佔用/向量高(~M×連線數×指標)低(M bytes)低-中極低(僅圖結構在記憶體)
建置時間
動態增刪支援(有碎片)需重建聚類較好需重建支援(惰性刪除)
GPU 加速有限非常友好友好友好不太友好
十億級規模記憶體成本高可行記憶體成本高可行友好(SSD)
代表實現hnswlib, FAISSFAISS, MilvusAnnoyScaNN 庫DiskANN

主流向量資料庫/引擎對比

維度FAISSMilvusPineconeQdrantWeaviateChroma
定位演算法庫分散式向量DB全託管 SaaS向量DB向量DB嵌入式向量DB
開源是(MIT-like)是(Apache 2.0)是(Apache 2.0)是(BSD-3)是(Apache 2.0)
ANN 演算法HNSW/IVF-PQ/ScaNN等多種(HNSW/IVF/DiskANN)自研HNSWHNSW主要基於 FAISS/Annoy
分散式否(單機庫)是(託管)
標量過濾需手動實現原生支援原生支援原生支援原生支援有限
適用規模研究/嵌入/自定義大規模生產中大規模中等規模中等規模原型/小規模
語言C++/PythonGo/C++託管RustGoPython

上下游

上游(ANN 依賴什麼)

環節關鍵依賴說明
Embedding 模型文本/影像/多模態編碼器輸出向量的質量直接決定 ANN 檢索效果(垃圾進垃圾出)
算力CPU(AVX-512 指令集)、GPU(CUDA)、記憶體頻寬ANN 查詢是記憶體頻寬密集型,不是計算密集型
儲存DRAM(主存)、NVMe SSD(DiskANN 等)記憶體容量決定可索引的向量規模
向量資料業務系統產出的文件/圖片/行為資料資料清洗和分塊(chunking)策略影響檢索質量

下游(ANN 服務什麼)

場景典型延遲要求向量規模
RAG / LLM 輔助檢索10-100ms10⁶ - 10⁹
電商/內容推薦1-50ms10⁷ - 10¹⁰
圖片/影片搜尋50-500ms10⁶ - 10⁹
廣告定向 / 人群擴量5-20ms10⁸ - 10¹⁰
多模態搜尋10-200ms10⁶ - 10⁸
欺詐檢測 / 即時匹配1-10ms10⁷ - 10⁹

關鍵指標

指標定義生產環境典型要求
Recall@K在 Top-K 返回結果中,包含真正 K 近鄰的比例≥ 0.95(RAG)/ ≥ 0.90(推薦)
QPS(Queries Per Second)單節點每秒處理查詢數1,000 - 100,000+(取決於硬體和索引)
P99 延遲99% 請求的響應時間< 50ms(即時場景)
記憶體/向量單個向量在索引中佔用的記憶體HNSW: ~400-1000 bytes(取決於向量維度和圖連線數,128維float32約為512-800 bytes); IVF-PQ(M=64): ~64 bytes
建置時間從原始向量到可查詢索引的時間10 億向量:數小時至數天(取決於演算法和硬體)
增量更新能力插入/刪除單條向量的代價HNSW: O(log N) 插入; IVF-PQ: 需批次重建
GPU 利用率GPU 上 ANN 查詢的計算效率FAISS GPU IVF-PQ 在合理 batch size 下可達較高利用率

供需與市場資料

需求側驅動

  • RAG 市場: 全球 RAG 相關基礎設施市場仍處於早期階段。多家行業分析機構對向量資料庫市場的估算差異較大,主流估算範圍為 2025 年約 10-25 億美元 [行業估算,口徑不一],2030 年可能達 50-100 億美元級別 [行業估算]。
  • 企業採用: 據各向量資料庫廠商公開揭露,主流產品(Milvus/Zilliz、Pinecone、Qdrant、Weaviate)的註冊使用者/客戶數在 2023-2024 年經歷了數倍增長。
  • 資料規模: 單個企業知識庫的向量規模從百萬級向十億級攀升,驅動對大規模 ANN 方案的需求。

供給側格局

玩家型別代表模式
開源向量資料庫Milvus, Qdrant, Weaviate, Chroma開源+雲端服務
全託管 SaaSPinecone, Zilliz Cloud按用量付費
傳統資料庫擴充套件PostgreSQL + pgvector, Elasticsearch + vector search現有基礎設施嫁接
雲端廠商內建Azure AI Search, AWS OpenSearch k-NN, GCP Vector Search平台生態繫結
底層演算法庫FAISS (Meta), ScaNN (Google), cuVS (NVIDIA)開源庫/SDK

融資與估值參考 [公開資訊]

公司最新已知輪次估值(如有公開)備註
Pinecone2023 年 B 輪 $100M~$750M(2023 估值)全託管 SaaS 模式
Zilliz (Milvus)2022 年 B+ 輪 $60M未充分揭露開源+雲端服務
Weaviate2023 年 B 輪 $50M未充分揭露開源+雲端服務
Qdrant2024 年種子/A 輪未充分揭露Rust 實現,效能導向
Chroma2023 年種子輪 $18M未充分揭露開發者友好,嵌入式

注:以上融資資訊來自各公司公開宣佈,估值數字為當時媒體報道,可能與當前情況有差異。


代表公司與資本對映

概念-產業鏈-上市公司對映

ANN 檢索產業鏈

├── 演算法/庫層
│   ├── FAISS (Meta / META) ← Meta 內部使用並向開源貢獻
│   ├── ScaNN (Google / GOOGL) ← Google Cloud Vector Search 底層
│   └── cuVS/RAPIDS (NVIDIA / NVDA) ← GPU 加速 ANN

├── 向量資料庫層
│   ├── Milvus / Zilliz (未上市)
│   ├── Pinecone (未上市)
│   ├── Weaviate (未上市)
│   ├── Qdrant (未上市)
│   ├── pgvector → PostgreSQL (微軟 Azure Cosmos DB for PostgreSQL 等)
│   └── Elasticsearch vector search (Elastic / ESTC)

├── 雲端平台層(ANN 作為服務提供)
│   ├── Azure AI Search (微軟 / MSFT)
│   ├── AWS OpenSearch k-NN (亞馬遜 / AMZN)
│   ├── GCP Vector Search (Google / GOOGL)
│   └── 阿里雲端 AnalyticDB 向量檢索 (阿里巴巴 / BABA)

├── 硬體/算力層
│   ├── GPU (NVIDIA / NVDA) ← ANN 是記憶體頻寬密集型
│   ├── 高頻寬記憶體 HBM (SK Hynix, Samsung, Micron) ← 影響 ANN 吞吐
│   └── NVMe SSD (Samsung, Western Digital 等) ← DiskANN 依賴

└── 應用層(ANN 消費者)
    ├── RAG 應用(各 LLM 廠商 / SaaS 公司)
    ├── 推薦系統(字節跳動/美團/Netflix 等)
    └── 廣告系統(Google/Meta/百度等)

對上市公司的直接影響:

公司與 ANN 的關係受益邏輯
NVIDIA (NVDA)GPU 是大規模 ANN 的主要加速器AI 推論/資料處理需求 → GPU 銷量
Meta (META)FAISS 維護者,內部大規模使用資訊流推薦效率提升 → 廣告營收
Google (GOOGL)ScaNN 開發者,GCP Vector Search 提供者雲端服務營收 + 搜尋質量提升
Microsoft (MSFT)DiskANN 開發者,Azure AI SearchAzure AI 生態粘性
Amazon (AMZN)OpenSearch k-NN,Bedrock 知識庫AWS AI 服務營收
Elastic (ESTC)Elasticsearch vector search搜尋引擎向 AI 搜尋轉型

投資邏輯

核心投資主題

1. ANN 是 AI 應用的”水電煤”

  • 每次 RAG 查詢都需要一次 ANN 檢索,ANN 的呼叫量與 AI 應用量正相關
  • AI 應用滲透率提升 → ANN 基礎設施需求同步增長

2. 向量資料庫是 ANN 的主要載體,但格局未定

  • 開源 vs SaaS 的競爭仍在進行中(類似早期的關聯式資料庫市場)
  • 傳統資料庫廠商(PostgreSQL/ES/Oracle)也在快速整合向量檢索能力,可能擠壓獨立向量資料庫的生存空間
  • 獨立向量資料庫公司需要在效能、易用性、企業特性上持續拉開差距

3. “資料庫內建向量檢索”可能是終局

  • 長期看,向量檢索可能成為資料庫的標配能力(如 pgvector、Elasticsearch),而非獨立產品
  • 類似全文搜尋:最初是獨立產品(Lucene/Solr),後來被各類資料庫內建
  • 如果這一判斷成立,獨立向量資料庫公司需要轉型為”AI-native 資料平台”才能生存

4. 硬體加速是差異化方向

  • ANN 是記憶體頻寬密集型任務,GPU/NPU 加速效果顯著
  • 定製化硬體(如 HBM 頻寬最佳化、專用 ANN 加速器)可能是下一個差異化點
  • NVIDIA cuVS/RAPIDS 是目前最成熟的 GPU ANN 方案

風險因素

風險說明
LLM 長上下文替代隨著上下文視窗擴大(1M+ tokens),部分場景可能用”全量輸入”替代檢索
嵌入質量瓶頸ANN 的效果上限取決於 embedding 模型質量,而非 ANN 本身
開源侵蝕商業價值FAISS、Milvus 等開源方案已非常成熟,SaaS 溢價空間有限
行業整合大雲端廠商可能通過免費整合壓縮獨立廠商空間

常見誤讀糾偏

❌ 誤讀 1:“ANN 總是比暴力搜尋差,生產環境應該用精確搜尋”

糾偏: 在高維(D ≥ 64)大規模(N ≥ 10⁶)場景下,ANN 的 Recall@10 可以達到 0.95-0.99+,而延遲降低 100-1000 倍。暴力搜尋在十億級資料上需要數秒甚至數分鐘,完全不可用於即時服務。絕大多數生產系統使用 ANN,精度損失對下游 LLM 生成質量的影響微乎其微。

❌ 誤讀 2:“向量資料庫 = ANN 索引,有了 FAISS 就不需要向量資料庫”

糾偏: ANN 索引只是向量資料庫的核心元件之一。生產環境還需要:持久化儲存後設資料過濾(如”只在 2024 年後的文件中檢索”)、多租戶隔離分散式擴充套件CRUD 操作訪問控制等。FAISS 是演算法庫,不是資料庫。用裸 FAISS 搭建生產系統需要大量工程工作。

❌ 誤讀 3:“HNSW 在所有場景下都是最優的”

糾偏: HNSW 在中等規模(<1 億向量)、記憶體充足、追求最高召回率的場景下確實表現優異。但在以下場景,其他方案更優:

  • 超大規模 + 記憶體受限: IVF-PQ 或 DiskANN 更經濟
  • 需要頻繁重建索引: IVF 的建置成本遠低於 HNSW
  • 純批次查詢(非即時): IVF-PQ + GPU 在高吞吐場景下可能更有優勢
  • SSD 為主的基礎設施: DiskANN 專為此設計

❌ 誤讀 4:“餘弦距離和 L2 距離在 ANN 中是等價的”

糾偏: 僅當所有向量(包括查詢和庫中向量)都經過 L2 歸一化後,餘弦距離排序才與 L2 距離排序等價(且與內積排序等價)。如果向量未歸一化,三者結果不同。實際使用中必須確保索引建置時的度量型別與 embedding 模型的設計一致。


學習路徑

入門(2-4 小時)

  1. 閱讀 Pinecone 的 “What is ANN?” 系列部落格(概念入門)
  2. 用 FAISS 官方 tutorial 跑通一個最基本的 IVF-PQ / HNSW 示例
  3. 理解 Recall、QPS、記憶體三者之間的權衡

進階(1-2 周)

  1. 精讀 HNSW 原始論文:Malkov & Yashunin, “Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs” (2016/2018 TPAMI)
  2. 精讀 IVF-PQ 相關論文:Jégou et al., “Product Quantization for Nearest Neighbor Search” (2011 TPAMI)
  3. 用 FAISS benchmark 工具,對不同索引型別在自己的資料集上跑 Recall-Latency 曲線
  4. 閱讀 FAISS 的 Wiki 和 tuning guide

高階(持續追蹤)

  1. 閱讀 DiskANN 論文:Subramanya et al., “DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node” (NeurIPS 2019)
  2. 瞭解 ScaNN 的各向異性量化原理:Guo et al., “Accelerating Large-Scale Inference with Anisotropic Vector Quantization” (2020)
  3. 追蹤 ANN-Benchmarks(ann-benchmarks.com)的最新排行榜
  4. 關注 NVIDIA cuVS / RAPIDS 的 GPU ANN 進展
  5. 瞭解混合檢索(Hybrid Search):向量檢索 + BM25 的融合排序(RRF / 加權融合)

一句話總結

ANN 檢索是 AI 應用從”玩具”走向”生產”的關鍵基礎設施——它用微小的精度折損,讓十億級語義檢索從”不可行”變為”毫秒級響應”,是 RAG、推薦、搜尋等所有向量化 AI 應用的不可替代的底層引擎。


延伸閱讀與來源

學術論文

  1. Malkov, Y. A., & Yashunin, D. A. (2018). Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs. IEEE TPAMI.
  2. Jégou, H., Douze, M., & Schmid, C. (2011). Product Quantization for Nearest Neighbor Search. IEEE TPAMI.
  3. Indyk, P., & Motwani, R. (1998). Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality. STOC.
  4. Subramanya, S. J., et al. (2019). DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node. NeurIPS.
  5. Guo, R., et al. (2020). Accelerating Large-Scale Inference with Anisotropic Vector Quantization. ICML.

開源專案與工具

產業

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型