解決方案:免費(fèi)體驗(yàn)AnalyticDB PostgreSQL版以文搜圖
本文為您介紹在實(shí)際的電商業(yè)務(wù)中,通過(guò)將商品圖片集合的向量化結(jié)果存儲(chǔ)在云原生數(shù)據(jù)倉(cāng)庫(kù)AnalyticDB PostgreSQL版向量檢索引擎中,實(shí)現(xiàn)以文搜圖的高效準(zhǔn)確檢索。
背景信息
在現(xiàn)實(shí)世界中,絕大多數(shù)的數(shù)據(jù)都是以非結(jié)構(gòu)化數(shù)據(jù)的形式存在,如圖片,音頻,視頻,文本等。這些非結(jié)構(gòu)化數(shù)據(jù)隨著智慧城市、短視頻、商品個(gè)性化推薦、視覺(jué)商品搜索等應(yīng)用的出現(xiàn)而爆發(fā)式增長(zhǎng)。為了能夠處理這些非結(jié)構(gòu)化數(shù)據(jù),通常會(huì)使用人工智能技術(shù)提取這些非結(jié)構(gòu)化數(shù)據(jù)的特征,并將其轉(zhuǎn)化為特征向量,再對(duì)這些特征向量進(jìn)行分析和檢索以實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的處理。通過(guò)構(gòu)建云原生數(shù)據(jù)倉(cāng)庫(kù)AnalyticDB PostgreSQL版向量檢索引擎和中文CLIP模型組成以文搜圖的方案體驗(yàn),實(shí)現(xiàn)高性能圖文多模態(tài)檢索,從而體驗(yàn)向量檢索在業(yè)務(wù)場(chǎng)景的能力和高性能。
多模態(tài)檢索在電商場(chǎng)景中扮演重要的角色,是滿(mǎn)足用戶(hù)需求、促成點(diǎn)擊交易不可缺少的一環(huán)。 圖文檢索場(chǎng)景中,通過(guò)自然語(yǔ)言形式的檢索,從給定的商品圖片池中檢索出相關(guān)圖片,是衡量模型多模態(tài)理解與匹配的能力。
使用場(chǎng)景
通過(guò)AnalyticDB PostgreSQL版向量分析,您可以非常容易地搭建各種智能化應(yīng)用。
以文搜圖服務(wù),即通過(guò)文字檢索圖片的應(yīng)用服務(wù)。
視頻檢索服務(wù),即通過(guò)視頻中的某些幀圖片進(jìn)行視頻圖片檢索。
聲紋檢索服務(wù),即通過(guò)音頻匹配音頻的應(yīng)用服務(wù)。
推薦系統(tǒng)服務(wù),即通過(guò)用戶(hù)特征實(shí)現(xiàn)推薦匹配的功能。
基于語(yǔ)義的文本檢索和推薦,通過(guò)文本檢索近似文本。
問(wèn)答機(jī)器人,通過(guò)與大模型結(jié)合搭建高效的問(wèn)答機(jī)器人服務(wù)。
文件去重,通過(guò)文件指紋特征來(lái)去除重復(fù)文件。
前提條件
AnalyticDB PostgreSQL版實(shí)例資源類(lèi)型為存儲(chǔ)彈性模式。
注意事項(xiàng)
本方案采用預(yù)置數(shù)據(jù)集的方式進(jìn)行以文搜圖的方案體驗(yàn),不支持通過(guò)上傳自有圖片進(jìn)行搜索體驗(yàn)。預(yù)置數(shù)據(jù)集詳情,請(qǐng)參見(jiàn)數(shù)據(jù)集。
在釋放AnalyticDB PostgreSQL版實(shí)例時(shí),AnalyticDB PostgreSQL版創(chuàng)建的安全組無(wú)法釋放,需要在實(shí)例釋放6個(gè)小時(shí)后釋放安全組。即通過(guò)本解決方案創(chuàng)建的資源在一鍵釋放后,在ECS上會(huì)有一個(gè)安全組的殘留。
說(shuō)明殘留安全組不會(huì)帶來(lái)業(yè)務(wù)影響,本方案涉及到的云資源已經(jīng)釋放,您可以在后續(xù)合適的時(shí)間(即6個(gè)小時(shí)后)登錄ECS控制臺(tái)刪除該安全組。
檢索架構(gòu)
為了建立圖像和自然語(yǔ)言的聯(lián)系,本解決方案采用CLIP模型對(duì)文本圖片編碼。CLIP模型是一種基于自然語(yǔ)言處理和計(jì)算機(jī)視覺(jué)的神經(jīng)網(wǎng)絡(luò)模型,可以同時(shí)理解文本和圖像,并在二者之間建立聯(lián)系。
在以文搜圖方案中,CLIP模型作用主要是文本和圖像的匹配。CLIP模型可以將文本和圖像進(jìn)行編碼,并計(jì)算它們之間的相似度。該相似度可以用來(lái)評(píng)估一個(gè)圖像是否與輸入的文本描述相匹配。在以文搜圖中,用戶(hù)可以輸入文本描述,CLIP模型自動(dòng)匹配相關(guān)的圖像。
本解決?案將基于AnalyticDB PostgreSQL版的向量檢索引擎,實(shí)現(xiàn)?本向量到圖?向量的快速檢索。
向量數(shù)據(jù)集,表結(jié)構(gòu)如下:
CREATE TABLE IF NOT EXISTS public.text_search_graphic ( id INTEGER NOT NULL, path TEXT, image_vector REAL[], PRIMARY KEY(id) ) DISTRIBUTED BY(id); ALTER TABLE public.text_search_graphic ALTER COLUMN image_vector SET STORAGE PLAIN;
向量索引結(jié)構(gòu)如下:
CREATE INDEX ON public.text_search_graphic USING ann (image_vector) WITH (dim = '1000', hnsw_m = '100', pq_enable='0');
使?如下SQL語(yǔ)句完成對(duì)?本向量的最近鄰查詢(xún):
SELECT id, path, l2_distance({image_vector}, Array{text_embedding}::real[]) AS similarity FROM public.text_search_graphic ORDER BY {image_vector} <-> Array{text_embedding}::real[] LIMIT {top_k};
其中
image_vector
為存儲(chǔ)向量數(shù)據(jù)的列名,text_embedding
為 ?本的編碼向量。l2_distance
函數(shù)計(jì)算圖像向量與?本描述向量的歐式距離,并重命名為similarity
列。該SQL按照?qǐng)D像向量與?本描述向量的距離進(jìn)?排序,以便將相似的圖像放在前 ?,并返回最相似的top_k
張圖像。
操作步驟
單擊DB+AI體驗(yàn)館。
在DB+AI體驗(yàn)館頁(yè)面,單擊以文搜圖卡片中的免費(fèi)體驗(yàn)。
在以文搜圖Web頁(yè)面,選擇相似度算法,包含歐式距離、內(nèi)積距離和余弦相似度。
輸入提問(wèn)示例或設(shè)置自定義提問(wèn)。
重要圖片集合范圍僅覆蓋服裝、家居、電子等領(lǐng)域,輸入/選擇提問(wèn)示例僅支持提問(wèn)圖片集合包含的商品。
選擇檢索方式,近似檢索或精確檢索。
說(shuō)明了解更多近似檢索或精確檢索的區(qū)別,請(qǐng)參見(jiàn)向量檢索。
單擊檢索圖標(biāo),體驗(yàn)以文搜圖功能。