AI時代,如何用好大模型是當(dāng)前各行各業(yè)矚目的焦點。向量數(shù)據(jù)庫作為大模型“記憶體”,不僅能夠為其提供數(shù)據(jù)存儲,而且能通過數(shù)據(jù)檢索、分析讓大模型進行知識增強,成為生成式AI應(yīng)用開發(fā)新范式的重要組成部分。
用圖片搜索圖片或者文本搜索文本時,在數(shù)據(jù)庫中存儲和對比的并不是圖片和視頻片段,而是通過深度學(xué)習(xí)等算法將其提取出來的“特征”,“特征”提取的過程稱為 Embedding,提取出的“特征”用數(shù)學(xué)中的向量來表示。向量化的目的是為了通過向量相似來進行非結(jié)構(gòu)化數(shù)據(jù)的檢索,向量化后的數(shù)據(jù)才能夠被AI模型更好的理解使用。向量數(shù)據(jù)庫就是用于生產(chǎn)、存儲、索引和分析來自機器學(xué)習(xí)模型產(chǎn)生的海量向量數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)。其典型應(yīng)用場景比如:基于大語言模型的智能客服、基于企業(yè)知識庫的問答以及Chatdoc等工具應(yīng)用。
火山引擎向量數(shù)據(jù)庫技術(shù)演進之路
● 存算分離的分布式架構(gòu)搭建
在抖音集團內(nèi)部,早期的向量化檢索引擎是圍繞搜索、推薦、廣告業(yè)務(wù)來構(gòu)建的,由于這些業(yè)務(wù)天然具有極大的數(shù)據(jù)規(guī)模,因此從一開始,就需要思考如何在向量索引中支持百億數(shù)據(jù)的檢索需求,比如圖蟲擁有幾億圖片素材,數(shù)量規(guī)模早已超出單機內(nèi)存的極限,舉個例子,對于1億條128維的Float向量,不考慮任何輔助結(jié)構(gòu),就需要100000000 * 128 * 4 bytes 也就是約48GB的服務(wù)器內(nèi)存。
研發(fā)團隊設(shè)計了一套存算分離的分布式系統(tǒng)架構(gòu),來進行向量數(shù)據(jù)的分片和分布式編排,通過向量存儲、批式構(gòu)建和實時在線檢索,解決一份向量多個索引、支持多個場景的問題,同時,還能夠節(jié)省索引構(gòu)建資源,加快索引構(gòu)建,使在線檢索服務(wù)穩(wěn)定性得到明顯提升。對于用戶來講,在抖音上搜索內(nèi)容則會又快又準。
● 計算內(nèi)核性能優(yōu)化
構(gòu)建一個企業(yè)級的向量檢索應(yīng)用,數(shù)據(jù)量可能超過億級,延遲在10ms內(nèi),要求用起來更快、更穩(wěn),所以在計算框架搭建好之后,也必須關(guān)注其內(nèi)核,如何提供高性能的向量化檢索服務(wù)以滿足業(yè)務(wù)的苛刻需求。由于向量化檢索是典型的計算密集、數(shù)據(jù)密集場景,其優(yōu)化方向主要圍繞提升吞吐、降低服務(wù)成本、提升穩(wěn)定性開展。通過一系列性能優(yōu)化工作,如降低內(nèi)存占用、優(yōu)化索引性能、CPU指令集計算優(yōu)化、優(yōu)化過濾和重排序等業(yè)務(wù)相關(guān)的計算過程,這套架構(gòu)可以很好解決各類業(yè)務(wù)場景的離線和在線檢索計算需求,相同檢索精度下的吞吐和時延相比開源基線有了3倍以上的改善,且滿足大規(guī)模線上業(yè)務(wù)的穩(wěn)定性要求,因此被抖音集團大量業(yè)務(wù)采用。
但因為每個索引搭建一套集群的成本較高,且存在配置復(fù)雜等問題,研發(fā)團隊又對框架進一步迭代,進行云原生改造,實現(xiàn)組件多租戶化,提供自動化調(diào)度能力,以降低錯誤率,加快交付。
● 向量標量混合檢索能力
向量數(shù)據(jù)庫用于業(yè)務(wù)場景時,向量數(shù)據(jù)通常與結(jié)構(gòu)化數(shù)據(jù)配合使用,例如,在將文檔表示為向量的同時,還需要存儲文檔所屬的部門,以方便在檢索時進行權(quán)限過濾。這類需求可以抽象為使用與向量相關(guān)的結(jié)構(gòu)化數(shù)據(jù)進行過濾,業(yè)界通常有兩種解決方案:一是后過濾,將排名top的K個結(jié)果擴大一定倍數(shù),檢索出更多的向量,然后用結(jié)構(gòu)化數(shù)據(jù)做過濾,留下topK個,這種方法適用于結(jié)構(gòu)化過濾掉的比例較低,向量召回結(jié)果比例較高的場景;二是先過濾,先使用DSL過濾數(shù)據(jù)集,然后在結(jié)果集中進行向量排序,適用于DSL過濾結(jié)果較少的場景。
隨著數(shù)據(jù)量的增加,這兩種檢索鏈路的性能各有適用的場景,但如何在執(zhí)行時自動找到最適合的執(zhí)行路徑呢?為此,技術(shù)團隊又研發(fā)了DSL定向引擎,支持在檢索過程中同時進行向量檢索和DSL過濾(結(jié)構(gòu)化過濾),具有高性能、邏輯完備、可按需終止和執(zhí)行計劃優(yōu)化等特點。在混合查詢性能對比行業(yè)評測中,該向量數(shù)據(jù)庫的無過濾吞吐、1%過濾吞吐和99%過濾吞吐多項性能均排名第一。
● 幫助大模型知識庫更快落地
大模型應(yīng)用場景的不斷拓寬,催生了向量數(shù)據(jù)的存儲、檢索需求。將企業(yè)自身數(shù)據(jù)轉(zhuǎn)化為向量數(shù)據(jù)時遇到不少困難,如何幫助業(yè)務(wù)選擇開箱即用的向量化模型,也影響到大模型應(yīng)用的落地速度。技術(shù)團隊在知識庫、生成式AI素材管理等場景,開始嘗試提供預(yù)設(shè)的向量化方法以供業(yè)務(wù)選擇。大多數(shù)業(yè)務(wù)只需要選擇一個適合自身數(shù)據(jù)的向量化方法,即可用原始數(shù)據(jù)直接寫入向量數(shù)據(jù)庫,并用相同的模型將請求數(shù)據(jù)轉(zhuǎn)換為請求向量進行查詢。
● 向量數(shù)據(jù)庫技術(shù)全景
經(jīng)過長期的內(nèi)部探索和優(yōu)化,抖音采用的向量數(shù)據(jù)庫產(chǎn)品結(jié)構(gòu)如下圖所示:基于云基礎(chǔ)設(shè)施,提供經(jīng)過深度打磨和優(yōu)化的各個引擎,提供從多模態(tài)數(shù)據(jù)寫入,到向量生成,再到在線檢索,以及上線后的彈性調(diào)度和監(jiān)控的一整套全鏈路解決方案。
火山引擎向量數(shù)據(jù)庫的場景化落地實踐
經(jīng)過抖音集團內(nèi)部的技術(shù)實踐,向量數(shù)據(jù)庫目前已經(jīng)覆蓋50+的業(yè)務(wù)線,基本支撐了內(nèi)部所有的向量檢索場景,比如抖音、頭條、懂車帝、圖蟲、火山引擎Oncall智能問答和剪映等,主要的業(yè)務(wù)場景包括智能搜索、AIGC跨模態(tài)檢索、推薦和去重、智能問答、相關(guān)排序、聚類分析和數(shù)據(jù)挖掘等,并且多個場景庫規(guī)模達百億級別。
下面以圖蟲和火山引擎Oncall智能問答為例,展示向量數(shù)據(jù)庫的應(yīng)用實踐。
● 智能搜索場景——圖蟲的以圖搜圖
圖蟲提供了以圖搜圖的能力,致力于為用戶提供正版素材內(nèi)容及數(shù)字資產(chǎn)管理解決方案。目前,圖蟲創(chuàng)意在庫圖片量4.6億、高清視頻超2000萬條,每天有大量用戶來搜索、查詢圖片和視頻。億級海量數(shù)據(jù)對向量檢索服務(wù)能力提出更高要求,業(yè)務(wù)如何靈活的設(shè)置分片,當(dāng)數(shù)據(jù)量大幅增加時又如何避免重新部署集群,加快索引構(gòu)建、節(jié)約資源。
解決方案是提供端到端的圖片搜索能力,流程是先將圖片源數(shù)據(jù)上傳到向量數(shù)據(jù)庫,把圖片數(shù)據(jù)進行向量化、存儲并形成向量索引,然后,用戶將要搜索的圖片上傳,上傳后向量化,向量化的圖片與向量數(shù)據(jù)庫進行向量檢索比對查詢,獲取相似度最高的結(jié)果,返回給用戶。
● 企業(yè)知識庫場景——火山引擎Oncall智能問答
火山引擎Oncall智能問答能夠輔助一線客服、提供客戶問題回復(fù)參考?;鹕揭婀倬W(wǎng)每天會收到大量的客戶售后進線,高峰時段人均要并行受理多個問題,需要能夠快速排查并且給出客戶反饋。對于工程師來講,面對眾多技術(shù)門檻較高的產(chǎn)品,要進行快速理解和判斷,難度較大。
解決方案就是,將火山知識庫文檔和數(shù)據(jù)通過向量特征提取,然后存儲到向量數(shù)據(jù)庫中,應(yīng)用LLM大語言模型與向量化的知識庫檢索和比對知識,構(gòu)建火山引擎Oncall智能問答,可以讓聊天機器人的回答更具專業(yè)性和時效性,構(gòu)建專屬Chatbot。未來,火山引擎Oncall的FAQ知識將持續(xù)沉淀,知識庫持續(xù)完善,同時還能提供大模型訓(xùn)練數(shù)據(jù),處理大量客戶咨詢問題,實現(xiàn)機器人自動生成回復(fù)結(jié)果。
如今,向量數(shù)據(jù)庫已經(jīng)成為整個大模型生態(tài)的基礎(chǔ)設(shè)施,支撐著大模型在業(yè)界的推廣和應(yīng)用?;鹕揭嫦蛄繑?shù)據(jù)庫技術(shù)經(jīng)過抖音等業(yè)務(wù)的實踐打磨,已經(jīng)對外開放,賦能千行百業(yè),加速AI大模型落地應(yīng)用。未來隨著新的應(yīng)用場景的出現(xiàn),向量數(shù)據(jù)庫還將持續(xù)創(chuàng)新,提供更加靈活和多樣化的功能,滿足不同用戶的需求。(作者:程峻熙)