基於 OpenSearch 向量檢索版+大模型,搭建對話式搜索

面向企業開發者的PaaS方案

一週前,阿里雲OpenSearch發佈的LLM智能問答版,面向行業搜索場景,提供企業專屬問答搜索服務。作爲一站式免運維的SaaS服務,智能問答版基於內置的LLM大模型提供問答能力,爲企業快速搭建問答搜索系統,詳見鏈接:https://developer.aliyun.com/article/1239380

除了SaaS的解決方案外,如今阿里雲OpenSearch再推面向企業開發者的PaaS方案:基於OpenSearch向量檢索版,爲企業開發者提供性能表現優秀、性價比優異的向量檢索服務,並提供與大模型結合腳本工具,用戶可在使用能力可靠的向量檢索服務的同時,自由選擇文檔切片方案、向量化模型、大語言模型。

大語言模型時代,對話式搜索開啓新紀元

隨着2022年末發佈大語言模型應用,短短兩個月時間月活過億,驚人的增長速度刷新了AI應用的記錄,也把整個世界帶到了大模型時代。

新的技術浪潮帶來業務場景的革新,Google、Bing等大企業的跟進,使得對話式搜索成爲企業爭相探索的新領域,如何將大語言模型強大的邏輯推理、對話能力,與業務自身垂直領域數據相結合,打造出專屬企業的對話式搜索服務,成爲待解決的首要問題。

爲什麼不能直接使用大語言模型?

大語言模型表現出的“什麼都懂,什麼都能聊”,主要依賴於底座大語言模型(LLM)中壓縮的世界知識,它能夠回答比較普世的問題,但如果直接使用大語言模型諮詢垂直專業領域問題,因爲世界知識中並不包含企業專屬的數據,得到的結果經常是完全錯誤的、不相關的。

下圖示例中,提到的havenask是阿里巴巴自研的開源大規模搜索引擎https://github.com/alibaba/havenask),作爲OpenSearch的底層引擎於2022年11月對外開源,但大語言模型並未獲知此信息,返回結果不理想。

開源信息尚且如此,可見企業想基於自身數據構建對話式搜索,是無法直接使用大語言模型的,需尋求結合方案。

爲什麼用向量檢索+大語言模型搭建對話式搜索?

對話式搜索的應用場景

對話式搜索可被應用於電商、內容、教育、企業內部等多行業領域,根據客戶特徵與問題需求,精準獲得問答結果,高效獲取信息。

那麼企業該如何基於自身數據,構建垂直領域對話式搜索服務呢?

當前大多數企業均採用“文檔切片+向量檢索+大模型生成答案”的方式,構建垂直領域對話式搜索。

將企業數據和對話交互信息,先進行向量特徵提取,然後存入向量檢索引擎構建索引並進行相似度召回,將召回TOP結果傳入LLM大語言模型,對信息進行對話式結果整合,最終返回給客戶。這種方案在成本、效果、業務使用靈活度等方便均具備優勢,成爲企業的優選方案。

什麼是向量?

將物理世界產生的非結構化數據(如圖片、音視頻、對話信息),轉化爲結構化的多維向量,用這些向量標識實體和實體間的關係。再計算向量之間距離,通常情況下,距離越近、相似度越高,召回相似度最高的TOP結果,完成檢索。向量檢索其實離我們很近:以圖搜圖、同款比價、個性化搜索、語義理解……

爲什麼向量能用於對話式搜索?

向量檢索的其中一個典型應用場景就是「自然語義理解、語義理解」,而對話式搜索的核心,也在於對問題和答案的語義理解。

下圖舉例,當用戶諮詢“浙一醫院”的相關問題時,由於數據庫中不具備“浙一”關鍵詞,所以傳統分詞搜索無法召回。此時引入向量分析,對人們歷史語言與點擊關聯進行分析,建立語義相關性模型,將數據特徵用高維向量表達,通過比對向量距離,發現“浙一醫院”和“浙江大學醫學院附屬第一醫院”相關性很高,可以被檢索出來。

由此可見,向量可以在對話式搜索方案中,承擔語義分析、返回相關數據結果的重要作用

OpenSearch向量檢索版+大模型方案簡介

OpenSearch向量檢索版是阿里巴巴自主研發的大規模分佈式搜索引擎,其核心能力廣泛應用於阿里巴巴和螞蟻集團內衆多業務。OpenSearch向量檢索版專注向量檢索場景,數據毫秒級查詢,數據秒級更新、實時寫入,支持標籤+向量混合檢索等能力,滿足同平臺下不同企業、同企業內不同業務的問答場景向量結果返回。

OpenSearch向量檢索版+大模型方案整體分爲2個部分,首先將業務數據進行向量化預處理,其次在線搜索服務進行檢索及內容生成。

(1)業務數據預處理

爲了能夠按照用戶需求搜索到目標商品,需要對業務數據進行預處理,構建向量索引實現搜索功能

步驟1:將文本形式的業務數據導入文本向量化模型中,得到向量形式的業務數據

步驟2:將向量形式的業務數據導入到OpenSearch向量檢索版中,構建向量索引

(2)搜索問答在線服務

實現搜索功能後,結合Top N搜索結果,基於LLM問答模型返回搜索問答結果

步驟1:將終端用戶輸入的query輸入文本向量化模型,得到向量形式的用戶query

步驟2:將向量形式的用戶query輸入OpenSearch向量檢索版

步驟3:使用OpenSearch向量檢索版內置的向量檢索引擎得到業務數據中的Top N搜索結果

步驟4:將Top N搜索結果整合作爲prompt,輸入LLM問答模型

步驟5:將問答模型生成的問答結果和向量檢索得到的搜索結果返回給終端用戶

(3)效果展示

下圖爲將OpenSearch產品文檔作爲業務數據,使用本方案構建的對話式搜索效果展示。

OpenSearch向量檢索版+大模型方案,有哪些優勢?

(1)高性能:自研的高性能向量檢索引擎

  • 大模型場景下,向量維度普遍較高,對性能成本要求更高
  • OpenSearch向量檢索版支持千億數據毫秒級響應,實時數據更新秒級可見
  • OpenSearch向量檢索版的檢索性能優於開源向量搜索引擎數倍,在高QPS場景下召回率明顯優於開源向量搜索引擎

OpenSearch向量檢索版VS開源引擎性能:中數據場景

OpenSearch向量檢索版VS開源引擎性能:大數據場景

上述數據來源阿里巴巴智能引擎事業部團隊,2022年11月

(2)低成本:採用多種方式優化存儲成本,減少資源消耗

  • 數據壓縮:可將原始數據轉化爲float形式存儲,並再採用zstd等高效算法進行數據壓縮,實現存儲成本優化
  • 精細索引結構設計:針對不容類型索引,可採用不同優化策略,降低索引大小
  • 非全內存加載:可以使用mmap非lock的形式加載索引,有效降低內存開銷
  • 引擎優勢:OpenSearch向量檢索版引擎本身具備構建索引大小、GPU資源耗用的優勢,同等數據條件下,OpenSearch向量檢索版內存佔用僅爲開源向量檢索引擎的50%左右

(3)具備豐富的向量檢索能力

  • 支持HNSW、QC、Linear等多種向量檢索算法
  • 支持標籤、文本倒排索引、向量索引的混合檢索

  • 支持按表達式過濾,邊過濾邊檢索

  • Query中支持設置,相似度閾值、掃描返回的節點數等參數,配置靈活

(4)海量數據支持,應對業務擴張

  • 支持大規模向量快速導入與索引構建,單節點 348維 1億向量,通過配置優化,可在3.5小時內完成全量構建
  • 支持數據動態更新、即增即查、自動索引重建
  • 支持數據水平擴展

(5)可靈活、快速搭建企業專屬對話式搜索

  • 穩定可靠:使用客戶業務數據而非公開數據進行內容生成,輸出結果更加穩定、可靠
  • 交互升級:既能爲客戶返回對話式檢索結果,也可以作爲傳統檢索,返回TOP結果,更靈活應對各種業務場景
  • 流式輸出:向量檢索之後的LLM交互通常耗時較長,OpenSearch支持流式輸出,緩解等待時間過長的體驗問題

產品配置流程

  1. 第一次開通阿里雲賬號並登錄控制檯,您需先創建AK和SK
  2. 產品支持MaxCompute數據源、API數據源,您需提前準備向量數據(後續產品將集成文本embedding服務,可關注產品更新公告)
  3. 購買OpenSearch向量檢索版實例,系統自動部署與購買規格一致的空集羣,您需爲該集羣「配置數據源、配置索引結構、索引重建」,完成向量數據導入與索引構建之後,纔可正常搜索
  4. 在控制檯查詢測試頁面或通過API/SDK,進行向量搜索效果測試
  5. 下載OpenSearch大模型結合工具,並配置大模型相關信息(用戶可通過簡單調整結合工具代碼,自行選擇第三方大模型結合使用)
  6. 啓動對話式搜索服務

更多使用說明參考: https://help.aliyun.com/document_detail/2341640.html

特別提醒:本解決方案中的“開源向量模型”、“大模型”等來自第三方(合稱“第三方模型”)。阿里雲無法保證第三方模型合規、準確,也不對第三方模型本身、及您使用第三方模型的行爲和結果等承擔任何責任。請您在訪問和使用前慎重考慮。此外我們也提醒您,第三方模型附有“開源許可證”、“License”等協議,您應當仔細閱讀並嚴格遵守這些協議的約定。

點擊立即免費試用雲產品 開啓雲上實踐之旅!

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章