dw網(wǎng)站模板下載西安seo顧問(wèn)培訓(xùn)
拓?cái)?shù)派大模型數(shù)據(jù)計(jì)算系統(tǒng)(PieDataComputingSystem,縮寫:πDataCS)在10月24日程序員節(jié)「大模型數(shù)據(jù)計(jì)算系統(tǒng)」2023拓?cái)?shù)派年度技術(shù)論壇正式發(fā)布。πDataCS 以云原生技術(shù)重構(gòu)數(shù)據(jù)存儲(chǔ)和計(jì)算,「一份存儲(chǔ),多引擎數(shù)據(jù)計(jì)算」,讓 AI 模型更大更快,全面升級(jí)大數(shù)據(jù)系統(tǒng)至大模型時(shí)代。除云原生虛擬數(shù)倉(cāng) PieCloudDB,πDataCS 支持的第二款計(jì)算引擎:云原生向量計(jì)算引擎 PieCloudVector 也正式發(fā)布。PieCloudVector 支持海量向量數(shù)據(jù)存儲(chǔ)、向量數(shù)據(jù)高效查詢,助力多模態(tài)大模型 AI 應(yīng)用。
AI 將引領(lǐng)下一波全球 GDP 的增長(zhǎng)。根據(jù)麥肯錫2023年6月報(bào)告,生成式 AI(基于大模型)每年會(huì)為全球 GDP 貢獻(xiàn)約2.6至4.4萬(wàn)億美元,相當(dāng)于英國(guó)2021年 GDP 總值(3.1萬(wàn)億美元)。高盛也在其2023年4月報(bào)告中指出,生成式 AI 可以為全球 GDP 貢獻(xiàn)7%的增長(zhǎng)。大模型的迅速崛起讓生成式 AI 基于大模型的應(yīng)用也在不斷創(chuàng)新,而應(yīng)用對(duì)大規(guī)模向量數(shù)據(jù)的處理、相似性搜索等需求的增加,也促進(jìn)了向量數(shù)據(jù)庫(kù)的進(jìn)一步發(fā)展。
拓?cái)?shù)派自研的向量云原生計(jì)算引擎 PieCloudVector,作為 πDataCS 第二款計(jì)算引擎,是大模型時(shí)代的分析型數(shù)據(jù)庫(kù)升維,目標(biāo)是助力多模態(tài)大模型 AI 應(yīng)用,進(jìn)一步實(shí)現(xiàn)海量向量數(shù)據(jù)存儲(chǔ)與高效查詢。 PieCloudVector 支持和配合大模型的 Embeddings,幫助基礎(chǔ)模型在場(chǎng)景 AI 的快速適配和二次開發(fā)。
1 大模型與向量
隨著數(shù)據(jù)的爆炸式增長(zhǎng)和計(jì)算能力的提升,大模型成為了處理復(fù)雜問(wèn)題和分析海量數(shù)據(jù)的重要工具。大模型指的是擁有龐大參數(shù)規(guī)模、高復(fù)雜度和強(qiáng)大學(xué)習(xí)能力的機(jī)器學(xué)習(xí)模型。 這些模型通常由數(shù)百萬(wàn)甚至數(shù)十億個(gè)參數(shù)組成,通過(guò)對(duì)大規(guī)模數(shù)據(jù)進(jìn)行訓(xùn)練來(lái)獲取知識(shí)和推理能力。大模型的出現(xiàn)使得在各種領(lǐng)域中的任務(wù),如自然語(yǔ)言處理、圖像識(shí)別、語(yǔ)音識(shí)別和推薦系統(tǒng)等取得了顯著的突破。
特征的向量化表示
在數(shù)學(xué)和計(jì)算機(jī)科學(xué)中,向量是具有大小和方向的量。向量用一組浮點(diǎn)數(shù)表示一組“特征”,這個(gè)特征是從真實(shí)物體(貓、花等)的二進(jìn)制表示(文本、圖片、音頻、視頻等)中提取出來(lái)的(如上圖所示),一般由大模型提取。通過(guò)將真實(shí)物體轉(zhuǎn)化為向量表示,可以在向量空間中進(jìn)行計(jì)算和比較,例如計(jì)算相似度、聚類分析、分類任務(wù)等。向量表示也為構(gòu)建推薦系統(tǒng)、情感分析、信息檢索等任務(wù)提供了基礎(chǔ)。
2 什么是向量數(shù)據(jù)庫(kù)
向量數(shù)據(jù)庫(kù)是一種專門用于存儲(chǔ)和管理向量數(shù)據(jù)的數(shù)據(jù)庫(kù)系統(tǒng),可以對(duì)向量提供高效的存儲(chǔ)、索引和查詢功能。
計(jì)算向量的余弦相似度
在向量搜索中,可以使用不同的距離度量(如歐式距離、余弦相似度、曼哈頓距離等)來(lái)計(jì)算兩個(gè)向量之間的距離。距離越近表示這兩個(gè)向量越相似。如下圖,“派派”與“樹獺”的距離度量則可通過(guò)余弦相似度來(lái)計(jì)算,來(lái)判斷其相似程度。
傳統(tǒng)數(shù)據(jù)庫(kù)更擅長(zhǎng)精確匹配,在浮點(diǎn)數(shù)的存儲(chǔ)和處理能力都較為欠缺,無(wú)法高效地處理向量數(shù)據(jù)。為了能夠高效存儲(chǔ)和查詢向量數(shù)據(jù),向量數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生。
向量數(shù)據(jù)庫(kù)能夠滿足存儲(chǔ)和處理向量數(shù)據(jù)的特定需求,能夠高效的將存儲(chǔ)向量和原始實(shí)體(文字/圖像/語(yǔ)音),并將它們關(guān)聯(lián)起來(lái)。從而得以提供高效的相似度搜索、大規(guī)模數(shù)據(jù)管理、復(fù)雜向量計(jì)算和實(shí)時(shí)推薦等功能,幫助用戶更好地利用和分析向量數(shù)據(jù),助力大模型應(yīng)用。
拓?cái)?shù)派認(rèn)為,一款優(yōu)秀的向量數(shù)據(jù)庫(kù)除了應(yīng)當(dāng)具備高效的向量存儲(chǔ)和相似性搜索功能,還需滿足事務(wù)的 ACID 保證和用戶權(quán)限控制, 在確保對(duì)向量數(shù)據(jù)的插入、更新和刪除操作能夠正確執(zhí)行,保證并發(fā)訪問(wèn)時(shí)數(shù)據(jù)的一致性的同時(shí),為用戶提供穩(wěn)定、可靠且安全的服務(wù),適用于各種數(shù)據(jù)管理和應(yīng)用場(chǎng)景。這也是 PieCloudVector 的設(shè)計(jì)思路。
3 云原生向量計(jì)算引擎 PieCloudVector
拓?cái)?shù)派團(tuán)隊(duì)在對(duì)比了 pgvector,pgembedding 等多種開源實(shí)現(xiàn)和性能后,并沒(méi)有選擇這類開源實(shí)現(xiàn)方式,而是完全獨(dú)立自研了 PieCloudVector 以使其滿足用戶的使用場(chǎng)景。PieCloudVector 具備高效存儲(chǔ)和檢索向量數(shù)據(jù)、相似性搜索、向量索引、向量聚類和分類、高性能并行計(jì)算、強(qiáng)大可擴(kuò)展性和容錯(cuò)性等特性。
3.1 PieCloudVector 架構(gòu)
在架構(gòu)的設(shè)計(jì)上,拓?cái)?shù)派團(tuán)隊(duì)利用其在打造 πDataCS 的第一款計(jì)算引擎云原生虛擬數(shù)倉(cāng) PieCloudDB 時(shí),在 eMPP(elastic MPP)與分布式架構(gòu)領(lǐng)域積累的經(jīng)驗(yàn)與優(yōu)勢(shì),打造了向量計(jì)算引擎 PieCloudVector 的 eMPP 分布式架構(gòu)。如下圖所示,PieCloudVector 每個(gè) Executor 對(duì)應(yīng)一個(gè) PieCloudVector 實(shí)例,從而實(shí)現(xiàn)高性能、可伸縮性和可靠性的向量存儲(chǔ)和相似性搜索服務(wù)。而被轉(zhuǎn)化的向量表示將被存儲(chǔ)在 πDataCS 統(tǒng)一的存儲(chǔ)引擎「簡(jiǎn)墨」中。
PieCloudVector 的 eMPP 分布式架構(gòu)
用戶只需一個(gè)客戶端即可使用任何語(yǔ)言進(jìn)行相似搜索。有了 PieCloudVector 的幫助,用戶不僅可以存儲(chǔ)、管理原始數(shù)據(jù)所對(duì)應(yīng)的向量,也可調(diào)用 PieCloudVector 相關(guān)工具進(jìn)行模糊搜索,與全局搜索相比犧牲部分精度實(shí)現(xiàn)毫秒級(jí)搜索,進(jìn)一步提升查詢效率。
3.2 PieCloudVector 功能
PieCloudVector 可以提供精確搜索和模糊搜索兩種搜索模式。 目前,PieCloudVector 為用戶提供以下功能:
- 支持近似向量搜索 KNN-ANN
- 支持主流的 ANN 算法,如 IVFFlat 和 HNSW 等
- 支持向量壓縮(PQ)
- 并行+分布式
- SIMD/GPU 加速
- 支持 Langchain 框架
接下來(lái),我們將對(duì)其中前兩個(gè)功能進(jìn)行詳細(xì)介紹:
3.2.1 近似搜索 KNN-ANN
K-Nearest Neighbor(K 最近鄰,KNN)是向量搜索的基本問(wèn)題之一。該問(wèn)題在已有的 N 個(gè)向量中找出與給定向量距離最近的 K 個(gè)向量。通過(guò) K 最近鄰算法,可以實(shí)現(xiàn)像相似圖片檢索、相關(guān)新聞推薦、用戶畫像匹配等應(yīng)用。它允許根據(jù)向量之間的距離或相似度快速找到與給定向量最相似的向量,從而提供了高效的相似性搜索和推薦服務(wù)。
但隨著數(shù)據(jù)量的逐漸增大,精確查詢需要將輸入的向量與每一條記錄進(jìn)行比對(duì),計(jì)算成本將成倍增長(zhǎng)。為了解決這個(gè)問(wèn)題,PieCloudDB 建立向量索引來(lái)提前獲取數(shù)據(jù)間的大致關(guān)系,加速查詢效率。PieCloudVector 引入Approximate Nearest Neighbor(近似最近鄰,ANN)算法來(lái)建立向量索引。通過(guò) ANN,PieCloudVector 能夠節(jié)省全局搜索的時(shí)間,犧牲部分精度以加速查詢速度,進(jìn)一步提升查詢效率,實(shí)現(xiàn)毫秒級(jí)查詢速度,做到模糊查詢。
PieCloudVector 在建立向量索引時(shí)提供多種 ANN 算法, 包括最為流行的 IVFFlat(Inverted File with Flat)算法 HNSW(Hierarchical Navigable Small World)算法,用戶可根據(jù)數(shù)據(jù)的特性來(lái)選擇:
- IVFFlat 算法(左圖): 基于倒排文件的向量索引算法。它將向量數(shù)據(jù)提前進(jìn)行分組,并為每個(gè)組建立一個(gè)倒排索引。在模糊查詢時(shí),IVFFlat 算法會(huì)檢索與目標(biāo)向量相近的組中包含的數(shù)據(jù),從而加快搜索速度并降低內(nèi)存消耗。然而,由于使用了分組,IVFFlat 算法的精確度一般相對(duì)較低。
- HNSW 算法(右圖): 基于層級(jí)導(dǎo)航的向量索引算法。它通過(guò)在數(shù)據(jù)之間建立“關(guān)系網(wǎng)”來(lái)構(gòu)建索引結(jié)構(gòu)。這個(gè)過(guò)程需要耗費(fèi)一定的時(shí)間和內(nèi)存資源。但是,HNSW 算法的精確度通常優(yōu)于 IVFFlat 算法。它能夠更好地捕捉數(shù)據(jù)之間的局部結(jié)構(gòu)和相似性,并支持高效的近似搜索。
3.2.2 向量壓縮
向量相似性搜索在處理大規(guī)模數(shù)據(jù)時(shí)需要大量的內(nèi)存來(lái)支撐。例如,對(duì)于包含1百萬(wàn)個(gè)稠密向量的索引來(lái)說(shuō),通常需要幾 GB 的內(nèi)存來(lái)存儲(chǔ)。高維數(shù)據(jù)使內(nèi)存使用問(wèn)題更加嚴(yán)重,因?yàn)殡S著維度的增加,向量表示空間變得極其龐大,需要更多的內(nèi)存來(lái)存儲(chǔ)。
為了解決這個(gè)內(nèi)存壓力問(wèn)題,向量壓縮(Product Quantization,PQ)是一種常見方法。 它能夠?qū)⒏呔S向量壓縮,從而顯著減少內(nèi)存的占用。通過(guò)將每個(gè)向量分割成若干子空間,并對(duì)每個(gè)子空間進(jìn)行量化,PQ 可以將原始的高維向量轉(zhuǎn)換為多個(gè)低維碼本(codebook),從而降低內(nèi)存需求。
使用 PQ 后,存儲(chǔ)索引所需的內(nèi)存可以減少高達(dá)97%, 使 PieCloudVector 在處理大規(guī)模數(shù)據(jù)集時(shí)更有效地管理內(nèi)存,并加快相似性搜索的速度。此外,PQ 還能提升最近鄰搜索的速度,通常能夠使搜索速度提高 5.5倍。另外,將PQ 與倒排文件(Inverted File,IVF)結(jié)合形成的 IVF+PQ 復(fù)合索引,在不影響搜索準(zhǔn)確性的情況下,進(jìn)一步提升搜索速度16.5倍。與未使用量化索引相比,總體搜索速度可提高92倍。
向量壓縮(Product Quantization)
4 PieCloudVector 典型應(yīng)用場(chǎng)景
根據(jù)向量的實(shí)際使用流程,PieCloudVector 的應(yīng)用場(chǎng)景大致可以分為四層,分別對(duì)應(yīng)實(shí)際使用向量的過(guò)程中不同的場(chǎng)景。
4.1 準(zhǔn)備數(shù)據(jù)與切分(圖像、文本、音頻等)
在這一層,涉及到數(shù)據(jù)的準(zhǔn)備和切分。例如,在圖像、文本、音頻等形式。需要對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理、清洗和特征提取,以得到適合后續(xù)處理的向量表示。這一步驟通常是為了將原始數(shù)據(jù)轉(zhuǎn)化為可供創(chuàng)建嵌入(embeddings)的輸入。
4.2 創(chuàng)建 Embeddings
在這一層,將通過(guò)適當(dāng)?shù)乃惴ɑ蚰P蛯?shù)據(jù)轉(zhuǎn)化為向量表示。這向量表示反映了數(shù)據(jù)的特征和語(yǔ)義信息。例如,可以使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、Transformer 等模型來(lái)生成圖像、文本或音頻的嵌入表示。
4.3 存儲(chǔ)向量
在這一層,將創(chuàng)建的向量表示存儲(chǔ)起來(lái),以便后續(xù)的向量搜索。PieCloudVector 支持分布式向量存儲(chǔ),可彈性擴(kuò)展存儲(chǔ)資源,并通過(guò)向量壓縮減少內(nèi)存的占用。
4.4 向量搜索(Vector Search)
在這一層,基于已存儲(chǔ)的向量進(jìn)行相似性搜索。PieCloudVector 提供高效的向量搜索功能,通過(guò) KNN、ANN 等向量搜索算法,支持 L2 distance, Inner Product,以及 Cosine Distance 向量距離度量方式,能夠快速找到與給定查詢向量最相似的向量。這種向量搜索功能廣泛應(yīng)用于相似圖片檢索、相關(guān)新聞推薦、用戶畫像匹配等場(chǎng)景。
下圖是 PieCloudVector 在一款知識(shí)庫(kù)系統(tǒng)的應(yīng)用流程架構(gòu),共包括從文本切分到應(yīng)用程序返回答案給用戶六個(gè)步驟。該知識(shí)庫(kù)系統(tǒng)利用 PieCloudVector 來(lái)支持知識(shí)庫(kù)系統(tǒng)中的語(yǔ)義搜索和答案檢索功能。它將文本轉(zhuǎn)化為向量表示,并通過(guò)向量相似性搜索來(lái)找到相關(guān)的答案。這種架構(gòu)能夠高效地處理大規(guī)模的文本數(shù)據(jù)集,并提供準(zhǔn)確的答案回復(fù)給用戶。
知識(shí)庫(kù)系統(tǒng)的應(yīng)用流程架構(gòu)
在未來(lái),PieCloudVector 將繼續(xù)不斷迭代和發(fā)展,為大模型提供獨(dú)特的記憶和支持。隨著生成式 AI 和大模型的不斷演進(jìn),PieCloudVector 將更加深入地融合向量數(shù)據(jù)庫(kù)的優(yōu)勢(shì),并與其他技術(shù)和算法進(jìn)行緊密集成。
PieCloudVector 將持續(xù)改進(jìn)其存儲(chǔ)、索引和查詢能力,以應(yīng)對(duì)越來(lái)越復(fù)雜和龐大的向量數(shù)據(jù)。 它將探索新的量化算法、近似搜索方法和并行計(jì)算策略,以提高查詢效率和準(zhǔn)確性。
同時(shí),PieCloudVector 將致力于與不同領(lǐng)域的應(yīng)用場(chǎng)景相結(jié)合,并將逐步擴(kuò)展支持多模態(tài)數(shù)據(jù)的處理和分析能力,提供更全面、靈活的解決方案。
參考資料:
- 大模型數(shù)據(jù)計(jì)算系統(tǒng)——理論
- 大模型數(shù)據(jù)計(jì)算系統(tǒng)——實(shí)現(xiàn)
- The Economic Potential of Generative AI: The Next Productivity Frontier
- Generative AI Cloud Raise Global GDP by 7%