自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

嵌入和矢量數(shù)據(jù)庫實(shí)操指南

譯文
數(shù)據(jù)庫 人工智能
生成式AI在迅速發(fā)展,徹底改變了技術(shù)格局和數(shù)據(jù)管理。歡迎來到矢量數(shù)據(jù)庫世界。

譯者 | 布加迪

審校 | 重樓

這場革命的核心是矢量數(shù)據(jù)庫概念,這一突破性發(fā)展正在重塑我們處理復(fù)雜數(shù)據(jù)的方式。與傳統(tǒng)的關(guān)系數(shù)據(jù)庫不同,這數(shù)據(jù)庫具有管理和處理高維矢量數(shù)據(jù)的獨(dú)特功能,這種數(shù)據(jù)是許多AI 和機(jī)器學(xué)習(xí)應(yīng)用所固有的。隨著我們深入研究先進(jìn)AI時(shí)代,矢量數(shù)據(jù)庫正在成為一種關(guān)鍵的工具,在處理生成式AI模型生成的龐大復(fù)雜的數(shù)據(jù)集方面提供了無與倫比的效率和準(zhǔn)確性。

本文旨在探索矢量數(shù)據(jù)庫在生成式AI界的關(guān)鍵作用,著重介紹其功能、工作方式、用例和實(shí)教程。

矢量數(shù)據(jù)庫的定義

矢量數(shù)據(jù)庫是一種用于存儲、索引和檢索多維數(shù)據(jù)點(diǎn)的數(shù)據(jù)庫,這些多維通常稱為量。不同于數(shù)據(jù)庫處理表中組織的數(shù)據(jù)如數(shù)字和字符串,矢量數(shù)據(jù)庫專門為管理多維矢量空間中表示的數(shù)據(jù)而設(shè)計(jì)。這使得它們非常適合AI和機(jī)器學(xué)習(xí)應(yīng)用,這類應(yīng)用中的數(shù)據(jù)通常采用矢量的形式,比如圖像嵌入、文本嵌入或其他類型的特征矢量。

這些數(shù)據(jù)庫利用索引和搜索算法進(jìn)行相似性搜索,使它們能夠快速識別數(shù)據(jù)集中最相似的矢量。這種功能對于推薦系統(tǒng)、圖像和語音識別以及自然語言處理等任務(wù)至關(guān)重要,因?yàn)橛行У乩斫夂吞幚砀呔S數(shù)據(jù)起著至關(guān)重要的作用。因此,矢量數(shù)據(jù)庫代表了數(shù)據(jù)庫技術(shù)的進(jìn)步,可以滿足嚴(yán)重依賴大量數(shù)據(jù)的AI應(yīng)用的需求。

矢量嵌入

我們談?wù)撌噶繑?shù)據(jù)庫時(shí),一定要知道什么是矢量嵌入——數(shù)據(jù)最終如何存儲在矢量數(shù)據(jù)庫中。矢量嵌入充當(dāng)數(shù)字代碼,封裝了對象(比如音樂流媒體應(yīng)用程序中的歌曲的關(guān)鍵特征。通過分析和提取關(guān)鍵特征(比如節(jié)奏和流派,每首歌曲通過嵌入模型轉(zhuǎn)換矢量嵌入。

這個(gè)過程確保具有相似屬性的歌曲具有相似的矢量代碼。矢量數(shù)據(jù)庫存儲這些嵌入,在查詢時(shí)比較這些矢量,以查找和推薦匹配特征最接近的歌曲,有助于為用戶提供高效、相關(guān)的搜索體驗(yàn)。

矢量數(shù)據(jù)庫工作原理

執(zhí)行用戶查詢時(shí),涉及各種類型的原始數(shù)據(jù),包括圖像、文檔、視頻和音頻。所有這些數(shù)據(jù)是非結(jié)構(gòu)化數(shù)據(jù),也可是結(jié)構(gòu)化數(shù)據(jù),先通過嵌入模型進(jìn)行處理。該模型通常是一個(gè)復(fù)雜的神經(jīng)網(wǎng)絡(luò),將數(shù)據(jù)轉(zhuǎn)換高維數(shù)值矢量,并有效地將數(shù)據(jù)的特征編碼矢量嵌入,然后將其存儲到SingleStoreDB之類的矢量數(shù)據(jù)庫中。

需要檢索時(shí),矢量數(shù)據(jù)庫執(zhí)行操作(比如相似性搜索),以查找和檢索與查詢最相似的矢量,從而有效地處理復(fù)雜的查詢,并向用戶提供相關(guān)的結(jié)果。這整個(gè)過程支持在需要高速搜索和檢索功能的應(yīng)用中快速準(zhǔn)確地管理大量不同類型的數(shù)據(jù)

矢量數(shù)據(jù)庫與傳統(tǒng)數(shù)據(jù)庫有何不同?

不妨探討一下矢量數(shù)據(jù)庫傳統(tǒng)數(shù)據(jù)庫之間的區(qū)別。

矢量數(shù)據(jù)庫在數(shù)據(jù)組織和檢索方法上與傳統(tǒng)數(shù)據(jù)庫大不相同。傳統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu)是處理離散的標(biāo)量數(shù)據(jù)類型,比如數(shù)字和字符串,將它們組織成行和列。

這種結(jié)構(gòu)對于事務(wù)性數(shù)據(jù)來說很理想,但對于AI和機(jī)器學(xué)習(xí)中通常使用的復(fù)雜高維數(shù)據(jù)來說效率較低。相比之下,矢量數(shù)據(jù)庫旨在存儲和管理矢量數(shù)據(jù)——代表多維空間中點(diǎn)的數(shù)字?jǐn)?shù)組。

這使得它們天生就適合于涉及相似性搜索的任務(wù),其目標(biāo)是在高維空間中找到最接近的數(shù)據(jù)點(diǎn),這是圖像和語音識別、推薦系統(tǒng)和自然語言處理等AI應(yīng)用的一個(gè)常見要求。通過利用為高維矢量空間優(yōu)化的索引和搜索算法,矢量數(shù)據(jù)庫提供了一種更高效、更有效的方法來處理在先進(jìn)AI和機(jī)器學(xué)習(xí)時(shí)代下日益盛行的那種數(shù)據(jù)。

矢量數(shù)據(jù)庫用例

矢量數(shù)據(jù)庫在企業(yè)推薦系統(tǒng)中起著至關(guān)重要的作用。比如說,它們可以根據(jù)用戶的瀏覽或購買行為向用戶推薦商品。即使在欺詐檢測系統(tǒng)中也大放異彩,它們可以通過比較交易嵌入與欺詐活動的已知概況來檢測異常模式,從而實(shí)現(xiàn)實(shí)時(shí)欺詐檢測。人臉識別是另外的用例,其中矢量數(shù)據(jù)庫存儲臉部特征嵌入,有助于安全地實(shí)施監(jiān)視。

它們甚至可以通過使用預(yù)先確定的或不同的答復(fù)來響應(yīng)類似的查詢,從而幫助組織做好客戶支持。市場研究是矢量數(shù)據(jù)庫擅長的另一個(gè)領(lǐng)域,它通過分析客戶反饋和社交媒體帖子,將它們轉(zhuǎn)換成文本嵌入來分析情緒和發(fā)現(xiàn)趨勢,從而獲得更強(qiáng)大的商業(yè)洞察力。

SingleStoreDB作為矢量數(shù)據(jù)庫

SingleStoreDB強(qiáng)大的矢量數(shù)據(jù)庫功能可以順暢地服務(wù)于AI驅(qū)動的應(yīng)用、聊天機(jī)器人和圖像識別系統(tǒng)等。有了SingleStoreDB,就不需要為矢量密集型工作負(fù)載維護(hù)專用矢量數(shù)據(jù)庫。


與傳統(tǒng)的矢量數(shù)據(jù)庫方法不同,SingleStoreDB采用了一種新穎的方法,將矢量數(shù)據(jù)與不同類型的數(shù)據(jù)類型一起放在關(guān)系表中。這種創(chuàng)新的合并使您能夠輕松地訪問與矢量數(shù)據(jù)相關(guān)的全面元數(shù)據(jù)和額外屬性,同時(shí)利用SQL廣泛查詢功能。

SingleStoreDB采用可擴(kuò)展的框架精心構(gòu)建,確保始終支持快速增長的數(shù)據(jù)需求。告別限制,擁抱隨數(shù)據(jù)需求而進(jìn)化的解決方案。

使用SingleStoreDB矢量數(shù)據(jù)庫教程

先決條件

  • 注冊免費(fèi)的SingleStoreDB Cloud試用版。我們將使用SingleStore作為矢量數(shù)據(jù)庫。
  • 創(chuàng)建嵌入的Postman帳戶。
  • 獲取OpenAI API密鑰OpenAI帳戶。

一旦登錄到OpenAI戶,進(jìn)入這里所示的API選項(xiàng)卡。

接下來,轉(zhuǎn)到嵌入選項(xiàng)卡。

我們將從嵌入的API請求開始入手。為此,我們需要進(jìn)入API References頁面。進(jìn)入API References頁面下的“嵌入”選項(xiàng)卡,查看如何創(chuàng)建嵌入。

現(xiàn)在,不妨為嵌入創(chuàng)建API請求。為此,我們需要像Postman這樣的工具。您可以注冊,并在Postman帳戶中創(chuàng)建一個(gè)工作區(qū)。

現(xiàn)在,獲取我們的API URL ' https://api.openai.com/v1/embeddings ',并將其粘貼到Postman URL部分,使用OpenAI API密鑰對其進(jìn)行授權(quán)。

時(shí)候創(chuàng)建我們的第一個(gè)嵌入了。我們只需要一個(gè)模型和輸入?yún)?shù),如OpenAI文檔頁面所示。

模型,我們將使用text-embedding-ada-002和任何文本作為輸入。

不妨這么做。進(jìn)入到Postman儀表板創(chuàng)建一個(gè)body請求。在主體下,選擇raw,然后選擇JSON”,以傳遞JSON對象。

到模型和輸入。

向OpenAI發(fā)送post請求。您看到如下所示的類似響應(yīng)。

看到的數(shù)字是嵌入的矢量。為了存儲這些矢量嵌入,您需要一個(gè)健壯的數(shù)據(jù)庫,這是SingleStoreDB的亮點(diǎn)所在。不妨創(chuàng)建一個(gè)免費(fèi)的SingleStoreDB Cloud帳戶。

接下來,創(chuàng)建一個(gè)工作區(qū),如下所示。

您可以看到已創(chuàng)建的工作區(qū)和附加的示例/默認(rèn)數(shù)據(jù)庫。

不妨創(chuàng)建一個(gè)數(shù)據(jù)庫。

在儀表板中可以看到新創(chuàng)建的數(shù)據(jù)庫。

您可以進(jìn)入該數(shù)據(jù)庫查看其內(nèi)容。在本例中,由于我們還沒有提供任何數(shù)據(jù),因此您將看不到任何內(nèi)容。

不妨在數(shù)據(jù)庫中創(chuàng)建一些表。進(jìn)入SQL編輯器,如圖所示。您可以運(yùn)行一些簡單的SQL命令來創(chuàng)建表。

確保在“選擇數(shù)據(jù)庫”選項(xiàng)卡下選擇數(shù)據(jù)庫。選擇剛才創(chuàng)建的那個(gè)數(shù)據(jù)庫。

編寫一個(gè)簡單的SQL查詢來創(chuàng)建表和數(shù)據(jù)類型。

現(xiàn)在,不妨將矢量數(shù)據(jù)插入這個(gè)數(shù)據(jù)庫。我們將在這里輸入從Postman接收到的嵌入數(shù)據(jù)。返回到SQL編輯器,編寫以下SQL查詢。

我們使用的值將引用來自Postman的“Hello World輸入。在JSON_ARRAY_PACK中插入從Postman接收到的巨大的數(shù)字塊。

Postman拷貝這些數(shù)字。將這個(gè)巨大的數(shù)字塊粘貼到值中,然后運(yùn)行命令。

您可以看到結(jié)果被輸入到數(shù)據(jù)庫中。

這就是如何使用Postman從不同的輸入創(chuàng)建不同的嵌入,并將生成的矢量嵌入添加到新創(chuàng)建的數(shù)據(jù)庫中。

使用與前面相同的方法將它們存儲在數(shù)據(jù)庫中。添加您自己的輸入和內(nèi)容,將其轉(zhuǎn)換矢量。正如您在這里所見,我們添加了不同的輸入,并將生成的矢量嵌入存儲到數(shù)據(jù)庫中。

現(xiàn)在不妨搜索一些特定的,并從數(shù)據(jù)庫中檢索相關(guān)數(shù)據(jù),做一番試驗(yàn)不妨回到Postman儀表板,為OpenAI這個(gè)詞創(chuàng)建一個(gè)嵌入。

接下來,我們將針對現(xiàn)有嵌入在數(shù)據(jù)庫中執(zhí)行搜索。這應(yīng)該會返回結(jié)果,最接近的相似性列表在頂部。不妨進(jìn)入到SQL編輯器運(yùn)行這個(gè)查詢,如下所示。

將嵌入巨大的數(shù)字塊粘貼到JSON_ARRAY_PACK中,并運(yùn)行命令。

在上圖中,可以看到關(guān)鍵詞OpenAI的相似得分和排名。同樣,您可以看到任何關(guān)鍵字的相似得分。這樣,SingleStoreDB就可以用作貴公司的一種有效的矢量數(shù)據(jù)庫。

原文標(biāo)題:Embeddings and Vector Databases: A Hands-On Guide!,作者:Pavan Belagatti

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-07-06 15:05:34

矢量數(shù)據(jù)庫數(shù)據(jù)庫

2010-05-21 17:51:58

MySQL數(shù)據(jù)庫

2010-05-14 13:32:07

MySQL數(shù)據(jù)庫

2010-05-25 11:13:07

MySQL數(shù)據(jù)庫

2010-05-19 15:01:14

MySQL數(shù)據(jù)導(dǎo)入

2010-05-17 15:58:05

MySQL Admin

2010-04-09 15:22:57

Oracle數(shù)據(jù)庫

2010-05-04 09:14:11

Oracle數(shù)據(jù)庫

2010-06-12 09:46:05

MySQL數(shù)據(jù)庫

2010-05-25 17:01:44

MySQL命令行

2010-05-21 12:15:52

2010-05-14 14:21:18

2010-05-21 13:14:15

2010-04-15 11:41:21

Oracle 數(shù)據(jù)庫

2010-04-29 11:26:52

2010-05-19 17:14:50

MySQL&Oracl

2010-05-27 17:10:03

MySQL數(shù)據(jù)庫內(nèi)存

2010-05-17 15:34:30

MySql數(shù)據(jù)庫

2018-03-12 06:30:05

Python數(shù)據(jù)科學(xué)編程

2020-12-07 11:22:09

私域流量運(yùn)營
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號