倒排索引 (Inverted Index)
倒排索引 (Inverted Index)
Elasticsearch 使用 Search 時的重要觀念
Query:查詢文件的相關性 依 Term 計算文件與查詢字串的相關性分數 TF (Term Frequency) 詞頻 IDF (Inverse Document Frequency) 詞稀有性 Document Length Normalization 文件長度正規化 Filter:篩選符合的文件 僅篩選符合條件的文件,不計算相關性分數 適合不需要排序的精確篩選條件. Filter Cache 可重複使用以提升效能。 Highlighting 知道為什麼被搜尋出來,也是很重要的一件事
能儲存語意關係的 - 向量空間 (Vector Store)
資料來源: A Gentle Introduction to Vector Search 貓貓狗狗、蘋果香蕉,怎麼放到這個空間中? 👉 透過預訓練的 Embedding Model 如何比較貓貓狗狗之間的關係? 使用 KNN (K-Nearest Neighbors) Search 來進行搜尋目標附近的節點。 資料來源: A Gentle Introduction to Vector Search Elasticsearch 的 KNN (K-Nearest Neighbors) Search,其實是使用近似最近鄰搜尋 ANN (Approximate K-Nearest Neighbor) Search 實作,針對高維度空間適用,精確度較差,但有更好的查詢效率。 可使用 Script Query 的方式,做到 精確 KNN 搜尋。 Index_options 設定中,支援 HNSW (Hierarchical Navigable Small World): 適用於大量資料與高維度數據,犧牲些許準確度但大幅提升效率。 Element Type: 預設 float,提供高精準度,適用準確語意搜尋的情境。 支援 bit, byte 可接受量化壓縮處理,以節省儲存空間及提升查詢速度。
選擇 Embedding 模型
應用場景 語意搜尋 文本分類 推薦系統 支援的語言 英文 繁體中文 特定領域用途 訓練資料 法律 醫療 模型大小與效能 模型參數量 Model Size 量化與裁剪 Quantization Pruning Sentence Transformer intfloat/multilingual-e5-small intfloat/multilingual-e5-small · Hugging Face 支援中文 Model Size: 118M Params Embedding Size: 384 dimensions Token Limit: 512 使用時,特別注意 Dimensions 以及 Tokens Limit
Rerank 重新排名
語義搜尋要找得精準,執行成本很高 配合 Rerank 的執行策略: ANN: 使用犧牲精準度的方法進行大圍範搜尋 Rerank: 使用精準度較高的模型進行結果的重新排序 資料來源:openai
ESRE (Elasticsearch Relevance Engine)
Machine Learning Models 模型管理 Click to Download ELSER (Elastic Learned Sparse EncodeR) 效果不錯,但只支援英文 multilingual-e5-small 載入 3rd Party Model (HuggingFace) Eland Python Client (Enterprise License 才有的功能) Data Storage 資料儲存 Dense Vector Field (密集向量) Sparse Vector Field (稀疏向量) Rank Feature Field (特徵排名) 以文件指定欄位中的數值,加權排名結果的計分 Data Transformation 資料轉換 Ingest Pipeline Inference Processors Search 搜尋 KNN Query Sparse Vector Query 配合 ELSER 使用 Hybrid (RRF, Reciprocal Rank Fusion) Rerank (Enterprise License 才有的功能) Inference API 資料來源:elastic.co Inference API 支援的類型,以及整合的服務來源 Text Embedding Amazon Bedrock, Azure, Cohere, Google, HuggingFace, Mistral, OpenAI Sparse Embedding ELSER Completion Anthropic, Azure, Amazon Bedrock, Cohere, Google, OpenAI Rerank Cohere (可能是 Enterprise License 才有的功能) 其它還有:Security & Data Privacy, Application Development Tools…等整個生態圈的功能與工具。