目前,AIGC領(lǐng)域正處于蓬勃發(fā)展的階段,同時(shí)大規(guī)模數(shù)據(jù)集的使用和計(jì)算資源用量提升,也為AIGC業(yè)務(wù)架構(gòu)底層的基礎(chǔ)設(shè)施提出了更高的要求。為了更好地支持AIGC業(yè)務(wù)的發(fā)展,UCloud在數(shù)據(jù)中心建設(shè)、網(wǎng)絡(luò)、文件存儲(chǔ)、主機(jī)鏡像市場(chǎng)等多個(gè)方面都提供了相關(guān)產(chǎn)品和解決方案。
數(shù)據(jù)庫(kù)方面,在云主機(jī)鏡像市場(chǎng)已支持Milvus向量數(shù)據(jù)庫(kù)的基礎(chǔ)上,UCloud云數(shù)據(jù)庫(kù)UDB中的PostgreSQL(以下簡(jiǎn)稱(chēng)UPgSQL)還新增支持了pgvector向量數(shù)據(jù)庫(kù)插件,持續(xù)在AIGC業(yè)務(wù)架構(gòu)中所涉及的向量數(shù)據(jù)庫(kù)環(huán)節(jié)完善產(chǎn)品支持。
pgvector的特點(diǎn)及使用場(chǎng)景
pgvector是PostgreSQL數(shù)據(jù)庫(kù)的擴(kuò)展插件,其設(shè)計(jì)目的是讓用戶(hù)能夠在現(xiàn)有的PostgreSQL數(shù)據(jù)庫(kù)上實(shí)現(xiàn)向量搜索和計(jì)算,而無(wú)需引入額外的向量數(shù)據(jù)庫(kù),主要特點(diǎn)如下:
和PostgreSQL數(shù)據(jù)庫(kù)深度集成
pgvector作為PostgreSQL數(shù)據(jù)庫(kù)的一個(gè)擴(kuò)展插件,它允許在PostgreSQL數(shù)據(jù)庫(kù)中存儲(chǔ)和查詢(xún)向量數(shù)據(jù),無(wú)需遷移數(shù)據(jù)或更改應(yīng)用程序架構(gòu),從而降低了集成的復(fù)雜性。如果業(yè)務(wù)架構(gòu)已經(jīng)在使用 PostgreSQL,而且希望快速地添加向量數(shù)據(jù)支持,pgvector是一個(gè)便捷的選擇。
SQL簡(jiǎn)單易用
pgvector使用標(biāo)準(zhǔn)SQL查詢(xún)語(yǔ)言,適合于熟悉SQL查詢(xún)的用戶(hù),而Milvus等專(zhuān)業(yè)向量數(shù)據(jù)庫(kù)則是提供了自己的查詢(xún)語(yǔ)言和 API。
數(shù)據(jù)模型可以靈活組合
pgvector允許用戶(hù)將向量數(shù)據(jù)存儲(chǔ)在表中的特定列中,同時(shí)允許將向量數(shù)據(jù)與其他屬性數(shù)據(jù)混合在一起。這種靈活性使得用戶(hù)可以在單一查詢(xún)中同時(shí)處理向量數(shù)據(jù)和其他結(jié)構(gòu)化數(shù)據(jù),從而滿(mǎn)足更廣泛的分析需求。
開(kāi)箱即用
UDB UPgSQL數(shù)據(jù)庫(kù)產(chǎn)品已經(jīng)內(nèi)置了pgvector插件,可以在實(shí)例創(chuàng)建成功后直接開(kāi)始使用,無(wú)需進(jìn)行額外的配置。與Milvus等向量數(shù)據(jù)庫(kù)相比,這種集成方式減少了學(xué)習(xí)和配置的成本。
UCloud pgvector數(shù)據(jù)庫(kù)快速入門(mén)
pgvector最大支持創(chuàng)建16000個(gè)維度的向量, 并可以對(duì)最大2000個(gè)維度的向量建立索引。云數(shù)據(jù)庫(kù)UPgSQL默認(rèn)已經(jīng)安裝并啟用pgvector插件,以下是商品搜索與推薦系統(tǒng)案例中使用pgvector的具體步驟:
1.在UCloud UPgSQL控制臺(tái)創(chuàng)建一臺(tái)PostgreSQL數(shù)據(jù)庫(kù)實(shí)例,通過(guò)Root用戶(hù)登錄數(shù)據(jù)庫(kù)。
2.創(chuàng)建一個(gè)商品表,其中包含商品的名稱(chēng)、描述和特征向量。
3.向商品表中插入一些商品數(shù)據(jù),包括商品名稱(chēng)、描述以及與其相關(guān)的特征向量。
4. 當(dāng)搜索商品時(shí),可以使用向量相似度來(lái)執(zhí)行智能的商品搜索
5.基于用戶(hù)的歷史購(gòu)買(mǎi)記錄或?yàn)g覽行為,可以計(jì)算用戶(hù)的偏好向量,然后根據(jù)相似度來(lái)為用戶(hù)推薦其他商品。
6.創(chuàng)建索引:為了提高查詢(xún)效率, pgvector支持為向量數(shù)據(jù)建立IVF-Flat索引,可以通過(guò)下列語(yǔ)句創(chuàng)建索引。
創(chuàng)建索引語(yǔ)句的參數(shù)說(shuō)明:
●CREATE INDEX ON products表示在 "products" 表上創(chuàng)建一個(gè)新的索引。
●USING ivfflat: 這部分指定了要使用的索引方法,即 "ivfflat"。
●(vector_data vector_cosine_ops): "vector_data" 是列的名稱(chēng), "vector_cosine_ops" 是指向量余弦相似度操作符,這表明你希望使用余弦相似度來(lái)優(yōu)化這個(gè)索引。
●WITH (lists = 100): "lists" 參數(shù)設(shè)置為 100,是為了控制索引中的列表數(shù)量,以便在向量搜索時(shí)進(jìn)行更有效的查詢(xún)。
更多使用方法詳見(jiàn) pgvector官方文檔(https://github.com/pgvector/pgvector)
UDB作為UCloud云平臺(tái)的核心產(chǎn)品,為廣大用戶(hù)提供了多樣化的數(shù)據(jù)庫(kù)選擇,覆蓋了MySQL、PostgreSQL、SQL Server、MongoDB等常用數(shù)據(jù)庫(kù)品類(lèi)。UDB PostgreSQL數(shù)據(jù)庫(kù)支持pgvector插件后,可以通過(guò)創(chuàng)建UDB PostgreSQL數(shù)據(jù)庫(kù)快速獲得pgvector功能,無(wú)需額外的配置。
同時(shí),如果需要專(zhuān)業(yè)的向量數(shù)據(jù)庫(kù)功能,也可以使用UCloud鏡像市場(chǎng)中的Milvus鏡像,創(chuàng)建對(duì)應(yīng)主機(jī)獲取Milvus向量數(shù)據(jù)庫(kù)服務(wù)。作為一款開(kāi)源向量數(shù)據(jù)庫(kù),Milvus專(zhuān)注于高性能的向量數(shù)據(jù)存儲(chǔ)與檢索。它的設(shè)計(jì)旨在處理大規(guī)模的向量數(shù)據(jù),包括圖像、文本、音頻等各個(gè)領(lǐng)域的向量特征。Milvus以高效的相似性搜索和向量計(jì)算為特色,滿(mǎn)足了多領(lǐng)域數(shù)據(jù)探索和分析的需求。