自 ChatGPT 爆火,國内頭部平台型公司一擁而上,先後發布 AGI 或垂類 LLM,但鮮有大模型基礎設施,比如向量數據庫。
7 月 4 日,騰訊雲彌補了這一不足,推出能被廣泛應用于大模型訓練、推理和知識庫補充等場景的騰訊雲向量數據庫 Tencent Cloud VectorDB,這是國内首個從接入層、計算層、到存儲層提供全生命周期 AI 化的向量數據庫。
什麽是向量數據庫?騰訊的目的是什麽?對 B 端應用方,這有什麽好處?
國内首個全生命周期 VectorDB
ChatGPT 讓 LLM 成爲 AI 賽道焦點,向量數據庫也由此成爲熱門話題。向量數據庫就可爲 LLM 插上一個廉價但有效的 " 外接大腦 "。
這話怎麽說?
首先,向量通常用于在多維空間中表示數據值 / 點的位置、特征或屬性;而向量數據是一種數學表達,即用一組有序的數值(通常是浮點數),表達一個對象或數據值 / 點。
舉個例子,在計算機視覺中,可以通過數值(即像素值)表達圖像,這組數值構成一個向量。每個數值對應圖像某個像素的顔色強度。比如,一幅 8x8 的灰度圖像,即一個包含了 64 個數值的向量。
其次,向量并非專用于 AGI,一開始被用于推薦類 AI。由于向量能被用于在多維空間中的數據點的特性,因此被用于推薦類 AI 的個性化推薦。在推薦系統中,無論是用戶,還是物品,都能用向量表示。
比如,某個用戶對服飾顔色、款式、材質、用途等有個性化偏好,這些偏好可用數值向量概括。通過計算用戶向量與物品向量之間的相似度,實現個性化推薦。
在 AI 世界中,向量被用于表達物理世界的萬物,而 LLM 的興起,對向量數據的存儲和計算需求,得以大規模釋放。
在 2022 年 12 月前,向量在各種 AI 推薦系統中已經得到深度應用。正因爲如此,向量數據才會散落在數量龐大的推薦系統文件中,沒有形成專門的向量數據庫。
向量數據結構雖然較爲簡單,但因爲應用場景極多,比如機器視覺、文本和圖像處理、神經網絡、自然語言處理等多模型 AGI 領域,故算法也相應種類繁多。
在多系統中調取 / 檢索向量數據,耗費的 GPU 和 CPU 資源量級極爲龐大,因而成本高而效率低下。騰訊雲數據庫副總經理羅雲說," 當我們使用向量數據庫 Workload(工作量)越來越大,插件式數據庫就會面臨挑戰。"
從 2019 年開始,有些通用 / 插件數據庫,就開始增加對向量數據庫的支持,比如 ElasticSearch、Redis 和 PostgreSQL。
騰訊雲此次發布的向量數據庫,最早也是始于 2019 年。那會兒騰訊雲推出一個叫做 "OLAMA" 的分布式向量數據庫存儲技術引擎,成爲騰訊雲向量數據庫底座之一。OLAMA 目前可支持十億級别的單行向量數據索引、查詢 QPS 達到百萬、響應延遲爲 20 毫秒。
從 2019 年開始,騰訊雲持續地豐富 OLAMA 引擎的 AI 能力,比如添加了好幾種向量索引算法,像 Embedding 算法和 Segment 算法,還包括 NLP(自然語言)檢索能力等等。
向量數據算法的作用是什麽?
簡單地說,怎麽能更快速、更準确、更低成本和更低時延找到向量,以及如此找到那些更相似的向量,這是向量數據算法的目的,也是此次騰訊推出的向量數據庫改進算法能力的體現。
騰訊 PCG 大數據平台部搜索推薦 Senior Tech Lead 鄭偉說," 除了快速高效低時延,騰訊雲向量數據庫另外一項大的改進,就是在做到低成本的同時,OLAMA 引擎的穩定性還得到了大幅提升。"
第三,在應用性方面,騰訊雲向量數據庫做了大量改進," 怎樣能更自動化、更智能地對外提供服務。" 鄭偉說," 在大模型出來後,怎麽樣能更好地貼合大模型做更多擴展,比如用戶隻要敲敲鍵盤,就能通過用我們的向量數據庫,得到各種賬單、各種數據和各種報表等。"
降本增效,提供記憶能力
騰訊雲推出專業向量數據庫,源自需求端的強力推動。
據羅雲透露," 基本上每天不止 1-2 客戶前來咨詢向量數據庫什麽時候能給他們使用。"
向量數據庫有三個階段需求:第一個階段,類型必須是向量數據庫。羅雲說,由于騰訊雲從 2019 年就開始持續叠代向量數據庫存檢引擎,到現在,這步已直接跨越;第二個階段,要解決成本問題。比如單 QPS(每秒查詢推理響應速度:Query Per Second)成本,需求方一次查詢需要花多少錢。
第三個階段,就是 B 端用向量數據庫的易用性,這需要騰訊雲具有豐富的行業的 AI 應用經驗。向量數據庫,用于向量提供存儲和檢索,需求方要把非結構化數據(如一段文本變成向量),要把文本分段,分段之後要找到合理模型做 Embedding(向量)。
在 ML(機器學習)和 NLP 中,Embedding 是一個 N 維的實值向量,幾乎可用于表達 / 描述任何形式,如文本、聲音或視頻等。實值的 Embedding 能描述單詞語義,主要是因爲 Embedding 向量能根據單詞在語言上下文(Context)中出現的形式達成學習。
騰訊雲向量數據庫已在 QQ 浏覽器、騰訊視頻、騰訊遊戲、QQ 音樂、搜狗輸入法等 30+ 業務場景中得到應用。當前,騰訊雲團隊還處于滿足需求的第三個階段,重點是 " 圍繞 AI 化提升産品整體的應用性 ",羅雲說。
爲什麽 LLM 要用到向量搜索技術?
如果給定一個對象,在一個集合中找到與之最相似的對象的過程,就是向量搜索。文本或圖片等内容,都能通過将其轉換爲向量的表示方式,進而将文本或圖片的相似度問題轉換爲向量的相似度問題。
這裏有個問題,就是 LLM 場景模型的上下文有個長度限制。比如,ChatGPT 3.5 上下文長度限制是 4k tokens。超出 Context 長度,ChatGPT 就會 " 失憶 ",影響交互結果(或稱 Context Learning)的準确性。
但是,向量搜索擁有的能力之一,就是将超出上下文長度限制的文本劃分成較短的組(Chunks),再将不同的組轉換爲 Embedding。這就相當于向量搜索擁有記憶能力。LLM 用向量數據庫,就類似于有了一個外部大腦。通過 Embedding,能找到與提示(Prompt)最相關的信息。
從這個角度上說,向量數據庫承擔了 LLM 的 Context Learning 的記憶任務,從而提高了 GPT 的交互準确性。
此外,由于基于以 Transform 架構爲基礎的 LLM 的 AI 訓練耗時長,成本高,因此就很難将最新的素材(數據)加入 LLM,這被稱爲 LLM 的時效限制。若終端用戶又急需 LLM 數據做即時更新,這時向量數據庫的作用就很顯著。
LLM 的空間限制也很明顯,比如 B 端用戶的私域數據,不方便提供給 LLM 訓練平台做高頻集訓。這時,B 端用戶就能将私域數據放在向量數據庫中,需要推理時,就臨時取調給 LLM。這樣做的好處是數據安全,而且訓練效率高、成本低。
爲什麽能實現這一點?
因爲向量數據庫專門用于存儲和查詢向量數據,業界稱之爲大模型的 " 海馬體 "。
騰訊雲向量數據庫最高支持 10 億級向量檢索規模,延遲控制在毫秒級,相比傳統單機插件式數據庫檢索規模提升 10 倍,同時具備百萬級每秒查詢(QPS)的峰值能力。
将騰訊雲向量數據庫用于大模型預訓練數據的分類、去重和清洗相比傳統方式,能提升 10 倍效率。如将向量數據庫作爲外部知識庫用于模型推理,則可降低 2-4 個數量級的成本。