0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

向量數(shù)據(jù)庫是如何工作的?

jf_ro2CN3Fa ? 來源:Sully ? 2023-06-18 11:06 ? 次閱讀

向量數(shù)據(jù)庫和 Embedding 是當(dāng)前 AI 領(lǐng)域的熱門話題。

Pinecone 是一家向量數(shù)據(jù)庫公司,剛剛以約 10 億美元的估值籌集了 1 億美元。

Shopify、Brex、Hubspot 等公司都在他們的 AI 應(yīng)用程序中使用向量數(shù)據(jù)庫和 Embedding。那么,它們究竟是什么,它們是如何工作的,以及為什么它們在 AI 中如此重要呢?讓我們一探究竟。

我們先看第一個問題,什么是 Embedding?你可能在 Twitter 上已經(jīng)看到這個詞被無數(shù)次提及。

簡單來說,Embedding 就是一個多維向量數(shù)組,由系列數(shù)字組成 。它們能夠代表任何東西,比如文本、音樂、視頻等等。我們這里將主要關(guān)注文本。

23e30a24-0d82-11ee-962d-dac502259ad0.jpg

創(chuàng)建 Embedding 的過程非常簡單。這主要依靠 Embedding 模型(例如:OpenAI 的 Ada)。

你將你的文本發(fā)送給模型,模型會為你生成該數(shù)據(jù)的向量結(jié)果,這可以被存儲并在之后使用。

Embedding 之所以重要,是因為它們賦予我們進(jìn)行語義搜索的能力 ,也就是通過相似性進(jìn)行搜索,比如通過文本的含義。

因此,在這個例子中,我們可以在一個向量空間上表示“男人”、“國王”、“女人”和“王后”,你可以非常容易地看到它們在向量空間之間的關(guān)系。

23fbad0e-0d82-11ee-962d-dac502259ad0.jpg

來看一個更直觀的例子:

假設(shè)你是一個有一大箱玩具的小孩?,F(xiàn)在,你想找出一些類似的玩具,比如一個玩具汽車和一個玩具巴士。它們都是交通工具,因此它們是相似的。

這就是所謂的 “語義相似性”—— 表示*某種程度上** 事物具有*相似的含義或想法 。

現(xiàn)在假設(shè)你有兩個相關(guān)聯(lián)但并不完全相同的玩具,比如一個玩具汽車和一個玩具公路。它們并不完全相同,但因為汽車通常在公路上行駛,所以它們是相互關(guān)聯(lián)的。

那么,Embedding 為何如此重要呢?主要是由于大語言模型(LLM)存在上下文限制 。在一個理想的世界中,我們可以在一個 LLM 提示中放入無限數(shù)量的詞語。但是,正如許多人所知,目前我們還做不到。以 OpenAI 的 GPT 為例,它限制在大約在 4096 - 32k 個 token。

因此,由于其 “內(nèi)存”(即我們可以填充到其 token 的詞語的數(shù)量),我們與 LLM 的交互方式受到了嚴(yán)重限制。這就是為什么你不能將一個 PDF 文件復(fù)制粘貼到 ChatGPT 中并要求它進(jìn)行總結(jié)的原因。(當(dāng)然,現(xiàn)在由于有了 gpt4-32k,你可能可以做到這一點了)

那么,怎么把 Embedding 和 LLM 關(guān)聯(lián)起來解決 token 長度限制的問題呢?實際上,我們可以利用 Embedding,只將相關(guān)的文本注入到 LLM 的上下文窗口中。

讓我們來看一個具體的例子:

假設(shè)你有一個龐大的 PDF 文件,可能是一份國會聽證會的記錄(呵呵)。你有點懶,不想閱讀整個文件,而且由于其頁數(shù)眾多,你無法復(fù)制粘貼整個內(nèi)容。這就是一個 Embedding 的典型使用場景。

所以你將 PDF 的文本內(nèi)容先分成塊,然后借助 Embedding 將文本塊變成向量數(shù)組,并將其存儲在數(shù)據(jù)庫中。

在存儲分塊的向量數(shù)組時,通常還需要把向量數(shù)組和文本塊之間的關(guān)系一起存儲,這樣后面我們按照向量檢索出相似的向量數(shù)組后,能找出對應(yīng)的文本塊,一個參考的數(shù)據(jù)結(jié)構(gòu)類似于這樣:

{

[1,2,3,34]:'文本塊1',
[2,3,4,56]:'文本塊2',
[4,5,8,23]:'文本塊3',

……



}

現(xiàn)在你提出一個問題:“他們對 xyz 說了什么”。我們先把問題“他們對 xyz 說了什么?”借助 Embedding 變成向量數(shù)組,比如[1,2,3]。

現(xiàn)在我們有兩個向量:你的問題 [1,2,3] 和 PDF [1,2,3,34],然后,我們利用相似性搜索,將問題向量與我們龐大的 PDF 向量進(jìn)行比較。OpenAI 的 Embedding 推薦使用的是余弦相似度。

2416a816-0d82-11ee-962d-dac502259ad0.png

好了,現(xiàn)在我們有最相關(guān)的三個 Embedding 及其文本,我們現(xiàn)在可以利用這三個輸出,并配合一些提示工程將其輸入到 LLM 中。例如:

已知我們有上下文:文本塊 1,文本塊 2,文本塊 3。

現(xiàn)在有用戶的問題:他們對 xyz 說了什么?

請根據(jù)給定的上下文,如實回答用戶的問題。

如果你不能回答,那么如實告訴用戶“我無法回答這個問題”。

就這樣,LLM 會從你的 PDF 中獲取相關(guān)的文本部分,然后嘗試如實回答你的問題。

這就簡單的闡述了 Embedding 和 LLM 如何為任何形式的數(shù)據(jù)提供相當(dāng)強大的類似聊天的能力。這也是所有那些“與你的網(wǎng)站/PDF/等等進(jìn)行對話” 的功能如何工作的!

請注意 Embedding 并非 FINE-TUNING。

來源:twitter-thread.com/t/ZH/ 1655626066331938818




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1517

    瀏覽量

    6932

原文標(biāo)題:向量數(shù)據(jù)庫是如何工作的?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    騰訊云把向量數(shù)據(jù)庫“卷”到哪一步了?

    被大模型“帶飛”這一年,向量數(shù)據(jù)庫才剛剛寫下序言
    的頭像 發(fā)表于 01-15 09:49 ?1497次閱讀
    騰訊云把<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>“卷”到哪一步了?

    大模型卷價格,向量數(shù)據(jù)庫“卷”什么?

    被大模型“帶飛”這一年,向量數(shù)據(jù)庫才剛剛寫下序言
    的頭像 發(fā)表于 05-23 09:24 ?1673次閱讀
    大模型卷價格,<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>“卷”什么?

    數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計

    本文檔的主要內(nèi)容詳細(xì)介紹的是數(shù)據(jù)庫教程之如何進(jìn)行數(shù)據(jù)庫設(shè)計內(nèi)容包括了:1 數(shù)據(jù)庫設(shè)計概述 ,2 數(shù)據(jù)庫需求分析 ,3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 ,4
    發(fā)表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進(jìn)行<b class='flag-5'>數(shù)據(jù)庫</b>設(shè)計

    數(shù)據(jù)庫和自建數(shù)據(jù)庫的區(qū)別及應(yīng)用

    數(shù)據(jù)庫是指優(yōu)化和部署在云端的數(shù)據(jù)庫,阿里云和騰訊云都提供云數(shù)據(jù)庫,云數(shù)據(jù)庫和自己搭建的數(shù)據(jù)庫有什么區(qū)別?有必要使用云
    的頭像 發(fā)表于 11-20 16:26 ?4436次閱讀
    云<b class='flag-5'>數(shù)據(jù)庫</b>和自建<b class='flag-5'>數(shù)據(jù)庫</b>的區(qū)別及應(yīng)用

    索引速度提升10倍!愛可生向量數(shù)據(jù)庫基于昇騰AI實現(xiàn)全面升級

    近日,在深圳昇騰創(chuàng)新中心的支持下,愛可生向量數(shù)據(jù)庫(TensorDB)完成了與華為Atlas 800推理服務(wù)器和全場景AI框架昇思MindSpore的兼容性測試,實現(xiàn)了愛可生向量檢索技術(shù)與昇騰AI
    的頭像 發(fā)表于 03-14 09:28 ?682次閱讀

    愛可生向量數(shù)據(jù)庫基于昇騰AI實現(xiàn)全面升級

    ? ? 近日,在深圳昇騰創(chuàng)新中心的支持下,愛可生向量數(shù)據(jù)庫(TensorDB)完成了與華為Atlas 800推理服務(wù)器和全場景AI框架昇思MindSpore的兼容性測試,實現(xiàn)了愛可生向量檢索技術(shù)與昇
    的頭像 發(fā)表于 03-23 10:40 ?1010次閱讀

    北美有的,中國也有了!Zilliz Cloud向量數(shù)據(jù)庫云服務(wù)重磅登場

    Milvus自2019年正式開源以來,已經(jīng)成長為全球最大、最活躍的向量數(shù)據(jù)庫開源項目與開發(fā)者社區(qū)。作為Milvus背后的開發(fā)者與運營者,Zilliz一直走在向量數(shù)據(jù)庫的最前沿,始終秉承
    的頭像 發(fā)表于 07-12 16:30 ?783次閱讀
    北美有的,中國也有了!Zilliz Cloud<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>云服務(wù)重磅登場

    數(shù)據(jù)庫建立|數(shù)據(jù)庫創(chuàng)建的方法?

    數(shù)據(jù)庫是一個存儲關(guān)鍵數(shù)據(jù)的文件系統(tǒng)。利用數(shù)據(jù)庫管理系統(tǒng)建立每個人的數(shù)據(jù)庫可以更好地提供安全。 數(shù)據(jù)庫建立|
    的頭像 發(fā)表于 07-14 11:15 ?1075次閱讀

    向量數(shù)據(jù)庫:AI時代的下一個熱點

    AI大模型帶火了向量數(shù)據(jù)庫
    的頭像 發(fā)表于 08-08 22:45 ?376次閱讀

    什么是向量數(shù)據(jù)庫?關(guān)系數(shù)據(jù)庫向量數(shù)據(jù)庫之間的區(qū)別是什么?

    向量數(shù)據(jù)庫是一種以向量嵌入(高維向量)方式存儲和管理非結(jié)構(gòu)化數(shù)據(jù)(如文本、圖像或音頻)的數(shù)據(jù)庫,
    的頭像 發(fā)表于 08-16 10:13 ?2151次閱讀
    什么是<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>?關(guān)系<b class='flag-5'>數(shù)據(jù)庫</b>和<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>之間的區(qū)別是什么?

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接

    python讀取數(shù)據(jù)庫數(shù)據(jù) python查詢數(shù)據(jù)庫 python數(shù)據(jù)庫連接 Python是一門高級編程語言,廣泛應(yīng)用于各種領(lǐng)域。其中,Python在
    的頭像 發(fā)表于 08-28 17:09 ?1601次閱讀

    數(shù)據(jù)庫應(yīng)用及其特點 數(shù)據(jù)庫數(shù)據(jù)的基本特點

    和管理的一項重要應(yīng)用,其優(yōu)點不僅可以提高工作效率,還可以保證數(shù)據(jù)的安全性和可靠性。本文將詳細(xì)介紹數(shù)據(jù)庫應(yīng)用及其特點,同時探討數(shù)據(jù)庫數(shù)據(jù)的基本
    的頭像 發(fā)表于 08-28 17:22 ?2535次閱讀

    ChatGPT和OpenAI都在用的Redis,是如何從傳統(tǒng)數(shù)據(jù)庫升級為向量數(shù)據(jù)庫的?

    精心設(shè)計的基于人工智能的應(yīng)用程序可以極快地篩選極其龐大的數(shù)據(jù)集,以產(chǎn)生新的見解并最終推動新的收入來源,從而為企業(yè)創(chuàng)造真正的價值。但是,如果沒有新出現(xiàn)的新事物——向量數(shù)據(jù)庫,任何數(shù)據(jù)增長
    的頭像 發(fā)表于 09-01 16:16 ?759次閱讀

    探尋向量數(shù)據(jù)庫爆火的真相,Zilliz 技術(shù)合伙人帶你解惑

    大模型時代的到來將向量數(shù)據(jù)庫的熱度推向了高點,在此氛圍下,有人發(fā)出了哲學(xué)家般的一問:究竟是大模型選擇了向量數(shù)據(jù)庫還是向量
    的頭像 發(fā)表于 09-28 11:40 ?457次閱讀
    探尋<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>爆火的真相,Zilliz 技術(shù)合伙人帶你解惑

    搭載英偉達(dá)GPU,全球領(lǐng)先的向量數(shù)據(jù)庫公司Zilliz發(fā)布Milvus2.4向量數(shù)據(jù)庫

    在美國硅谷圣何塞召開的 NVIDIA GTC 大會上,全球領(lǐng)先的向量數(shù)據(jù)庫公司 Zilliz 發(fā)布了 Milvus 2.4 版本。這是一款革命性的向量數(shù)據(jù)庫系統(tǒng),在業(yè)界首屈一指,它首次
    的頭像 發(fā)表于 04-01 14:33 ?356次閱讀
    搭載英偉達(dá)GPU,全球領(lǐng)先的<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>公司Zilliz發(fā)布Milvus2.4<b class='flag-5'>向量</b><b class='flag-5'>數(shù)據(jù)庫</b>