處理流程:(1) 使用 BGE、E5 或 Voyage 等模型將你的文件編碼為嵌入,(2) 將這些嵌入儲存在向量資料庫中(Pinecone、Qdrant、Weaviate、pgvector),(3) 當查詢到達時,使用相同的模型對其編碼,(4) 使用餘弦相似度或內積等相似度指標找到最近的嵌入。查詢「如何修復記憶體洩漏」會匹配標題為「在 Node.js 中除錯 RAM 消耗」的文件,因為它們的嵌入在向量空間中很接近。
純語意搜尋有一個弱點:它可能會遺漏關鍵字搜尋能輕鬆捕捉的精確匹配。如果有人搜尋錯誤代碼「ERR_SSL_PROTOCOL_ERROR」,語意搜尋可能會返回一般的 SSL 疑難排解,而不是確切的錯誤。混合搜尋結合了兩者:關鍵字匹配(BM25)用於精確度,語意搜尋用於召回率,然後合併結果。大多數生產環境的搜尋系統使用混合方法。
語意搜尋的品質完全取決於嵌入模型。通用模型(OpenAI 的 text-embedding-3、Cohere Embed)適用於大多數文字。領域特定模型(在醫療、法律或程式碼資料上訓練的)在其領域中表現優於通用模型。多語言模型支援跨語言搜尋。MTEB 排行榜在許多任務上對嵌入模型進行基準測試——它是選擇嵌入模型的最佳資源。