向量數(shù)據(jù)庫—大模型時代的【存儲新基座】
今年,黃仁勛的一次演講讓眾多人的目光聚焦到向量數(shù)據(jù)庫上,作者也介紹,如果大模型是肉體,那向量數(shù)據(jù)庫則是靈魂。那么,向量數(shù)據(jù)庫到底存在哪些我們不知道的潛在能力呢?讓我們看看作者的分析吧~
AI大模型基座在以【日更】進展的同時,也給資本市場帶來了焦慮的情緒價值:估值 130 億美元的 AI 寫作工具 Grammarly 在 ChatGPT 發(fā)布后網(wǎng)站用戶直線下降;AI 聊天機器人獨角獸公司 Character.AI 的自建大模型在 ChatGPT 進步之下,被質(zhì)疑能否形成足夠的競爭壁壘 …
一、向量數(shù)據(jù)庫—怎么火起來的
時間回轉(zhuǎn)到今年的Q1季度,2023.3.21,NVIDIA創(chuàng)始人兼CEO黃仁勛在2023 GPU技術(shù)大會(2023 GTC)上發(fā)表演講。并表示今年將推出新的向量數(shù)據(jù)庫:RAFT。RAFT在此基礎(chǔ)上,還具有加速索引、數(shù)據(jù)加載和近鄰檢索等功能。
黃仁勛認為:“對于自研大型語言模型的組織而言,向量數(shù)據(jù)庫至關(guān)重要?!彼偨Y(jié):“初創(chuàng)公司競相構(gòu)建具有顛覆性的產(chǎn)品和商業(yè)模式,而老牌公司則在尋求應(yīng)對之法——生成式AI引發(fā)了全球企業(yè)制定AI戰(zhàn)略的緊迫感?!?/strong>
這一消息在演講結(jié)束只是直接震動了投資界及AI大模型的創(chuàng)業(yè)者們,很多VC也是調(diào)轉(zhuǎn)方向紛紛看向——向量數(shù)據(jù)庫項目。
二、走進向量數(shù)據(jù)庫的工作原理
1. 為什么需要向量數(shù)據(jù)庫
向量數(shù)據(jù)庫這一概念隨著黃仁勛的演講火爆了之后,不少的創(chuàng)業(yè)者以及廠商們開始紛紛投入此類項目的研發(fā)。
在研發(fā)之際,需要明白一個道理:我們?yōu)槭裁丛诖竽P蜁r代需要向量數(shù)據(jù)庫,為了證實這個概念在這里給大家科普三個非常關(guān)鍵的知識點,幫助大家了解我們?yōu)槭裁丛诖竽P蜁r代需要向量數(shù)據(jù)庫。
1)CPU工作原理
中央處理器(Central Processing Unit,簡稱CPU)是一塊由超大規(guī)模集成電路組成的運算和控制核心,主要功能是運行指令和處理數(shù)據(jù)。包括邏輯運算、算術(shù)運算、控制邏輯、時鐘信號、內(nèi)存讀寫、寄存器、緩存。
圖片來源:知乎
- 運算邏輯。CPU 內(nèi)部有一組運算邏輯單元 (ALU),用于執(zhí)行各種邏輯運算和算術(shù)運算。ALU 可以執(zhí)行加、減、乘、除等基本操作,還可以執(zhí)行各種復雜的操作,如排序、查找等。
- 控制邏輯??刂七壿嬘糜诳刂?CPU 的執(zhí)行流程。它可以根據(jù)程序的需要,控制 CPU 執(zhí)行不同的指令。控制邏輯還包括中斷控制器和時序控制器等組件。
- 時鐘信號。CPU 內(nèi)部有一個時鐘信號,用于控制 CPU 的執(zhí)行速度。時鐘信號以固定的頻率發(fā)送,每個時鐘周期被劃分為多個階段,每個階段用于執(zhí)行不同的操作。
- 內(nèi)存讀寫。CPU 可以從內(nèi)存中讀取數(shù)據(jù)和指令,也可以向內(nèi)存中寫入數(shù)據(jù)和指令。CPU 通過地址總線和數(shù)據(jù)總線來與內(nèi)存進行通信。
- 寄存器。CPU 內(nèi)部有一組寄存器,用于存儲臨時數(shù)據(jù)和指令。寄存器是 CPU 內(nèi)部的邏輯單元,可以像內(nèi)存一樣讀取和寫入。
- 緩存。CPU 內(nèi)部還有緩存,用于存儲較快的數(shù)據(jù)和指令。緩存可以加速 CPU 的執(zhí)行,提高計算機的性能。
CPU 的工作原理是通過基礎(chǔ)的指令來完成復雜的運算邏輯,但是弊端在于CPU中大部分晶體管主要用于構(gòu)建控制電路(象分支預(yù)測等)和Cache,只有少部分的晶體管來完成實際的運算工作。
2)GPU工作原理
在GPU出現(xiàn)以前,顯卡和CPU的關(guān)系有點像“主仆”。簡單地說這時的顯卡就是畫筆,根據(jù)各種有CPU發(fā)出的指令和數(shù)據(jù)進行著色,材質(zhì)的填充、渲染、輸出等。
隨著計算機的普及較早的娛樂用的都是【集成顯卡】,由于大部分坐標處理的工作及光影特效需要由CPU親自處理,占用了CPU太多的運算時間,從而造成整體畫面不能非常流暢地表現(xiàn)出來。
例如:渲染一個復雜的三維場景,需要在一秒內(nèi)處理幾千萬個三角形頂點和光柵化幾十億的像素。
CPU進行各種光影運算的速度變得越來越慢,更多多邊形以及特效的應(yīng)用榨干了幾乎所有的CPU性能。
于是GPU產(chǎn)生了NVIDIA公司在1999年8月31日發(fā)布GeForce 256圖形處理芯片時首先提出GPU的概念。
GPU為了高效率的處理執(zhí)行矩陣運算,從而配置了大量的處理核心并行+專一的思路并行矩陣運算。
簡而言之,GPU的圖形處理會已流水線完成如下的工作:
- 頂點處理。這階段GPU讀取描述3D圖形外觀的頂點數(shù)據(jù)并根據(jù)頂點數(shù)據(jù)確定3D圖形的形狀及位置關(guān)系,建立起3D圖形的骨架。在支持DX系列規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Vertex Shader(定點著色器)完成。
- 光柵化計算。顯示器實際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點和線通過一定的算法轉(zhuǎn)換到相應(yīng)的像素點。把一個矢量圖形轉(zhuǎn)換為一系列像素點的過程就稱為光柵化。例如,一條數(shù)學表示的斜線段,最終被轉(zhuǎn)化成階梯狀的連續(xù)像素點。
- 紋理帖圖。頂點單元生成的多邊形只構(gòu)成了3D物體的輪廓,而紋理映射(texture mapping)工作完成對多變形表面的帖圖。通俗的說,就是將多邊形的表面貼上相應(yīng)的圖片,從而生成“真實”的圖形。TMU(Texture mapping unit)即是用來完成此項工作。
- 像素處理。這階段(在對每個像素進行光柵化處理期間)GPU完成對像素的計算和處理,從而確定每個像素的最終屬性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Pixel Shader(像素著色器)完成。
- 最終輸出。由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。
GPU的工作通俗的來說就是完成3D圖形的生成,將圖形映射到相應(yīng)的像素點上,對每個像素進行計算確定最終顏色并完成輸出。
3)二者的差異
多線程機制
GPU的執(zhí)行速度很快,但是當運行從內(nèi)存中獲取紋理數(shù)據(jù)這樣的指令時(由于內(nèi)存訪問是瓶頸,此操作比較緩慢),整個流水線便出現(xiàn)長時間停頓。在CPU內(nèi)部,使用多級Cache來提高訪問內(nèi)存的速度。GPU中也使用Cache,不過Cache命中率不高,只用Cache解決不了這個問題。
所以,為了保持流水線保持忙碌,GPU的設(shè)計者使用了多線程機制(multi-threading)。當像素著色器針對某個像素的線程A遇到存取紋理的指令時,GPU會馬上切換到另外一個線程B,對另一個像素進行處理。等到紋理從內(nèi)存中取回時,可再切換到線程A。
圖片來源:知乎
4)總結(jié)
從設(shè)計目的,工作原理,任務(wù)執(zhí)行效率,應(yīng)用領(lǐng)域來看二者的區(qū)別簡單做一個總結(jié)。
- 設(shè)計目的:CPU 的設(shè)計目的是處理數(shù)據(jù)和執(zhí)行指令,主要用于計算和控制計算機的運行。GPU 的設(shè)計目的是處理圖形和視頻數(shù)據(jù),主要用于游戲、視頻處理和科學計算等領(lǐng)域。
- 工作原理:CPU 和 GPU 的工作原理不同。CPU 是基于邏輯運算和算術(shù)運算的處理器,主要依靠內(nèi)部緩存和寄存器來存儲和處理數(shù)據(jù)。GPU 則是基于圖形渲染和計算的處理器,主要依靠內(nèi)部圖形緩存和寄存器來存儲和處理數(shù)據(jù)。
- 執(zhí)行效率:在執(zhí)行效率方面,CPU 往往比 GPU 更快。因為 CPU 的設(shè)計目的是處理大量數(shù)據(jù)和執(zhí)行復雜計算,所以它的內(nèi)部緩存和寄存器容量較大,可以同時處理多個數(shù)據(jù)。而 GPU 的設(shè)計目的是處理圖形和視頻數(shù)據(jù),所以它的圖形緩存和寄存器容量較大,更適合處理單個數(shù)據(jù)。
- 應(yīng)用領(lǐng)域:CPU 主要用于計算和控制計算機的運行,如辦公文檔處理、網(wǎng)頁瀏覽和簡單游戲等。GPU 主要用于圖形和視頻處理,如游戲、視頻渲染和科學計算等。
GPU對比CPU就相當于是為了完成某件事情單獨訓練了一個特種兵團,而CPU是單兵作戰(zhàn)所有GPU完成的又快又好。
現(xiàn)在CPU的技術(shù)進步正在慢于摩爾定律,而GPU(視頻卡上的圖形處理器)的運行速度已超過摩爾定律,每6個月其性能加倍。
5)大模型的工作原理
科普完CPU與GPU接下來我們看一下,什么的大模型的工作原理,其實邏輯非常的簡單只分為兩個模塊【學習】+【推理】。
學習
首先進入一個生活場景,人的大腦在看見任何物體時首先要:眼睛看到先感知,分析這個過程傳給大腦處理成像識別,然后大腦給出相應(yīng)的指令,將大腦的工作過程抽象成一個盒子,接受輸入完成任務(wù)后輸出結(jié)果這個過程就是模型。
所以現(xiàn)在的人工智能網(wǎng)絡(luò)結(jié)果都是在模擬人工神經(jīng)網(wǎng)絡(luò)方法。
假設(shè)我們以4層網(wǎng)絡(luò)模型為例子來進行一個數(shù)字識別的模擬實驗。
假設(shè)一個手寫數(shù)字9是由28*28的像素組成的,將其作為輸入層展開,中間需要加上兩層中間層來完成模型架構(gòu)的設(shè)計最后一層為輸出層。
該模型的計算原理是關(guān)鍵,首先在輸入層的每個節(jié)點都會作為輸入對每個輸入都會 經(jīng)過一次計算。
模型中的節(jié)點越多參數(shù)也就越多模型也就越復雜,所以參數(shù)數(shù)量=模型規(guī)模。
在模型訓練時需要大量的多模態(tài)數(shù)據(jù)收集通過反復調(diào)整模型的參數(shù)來讓模型進行反復的推理和學習,以便在輸入數(shù)據(jù)時產(chǎn)生的差距 越來越小最后達到準確的狀態(tài)。
推理
到這里大家不禁會有一個疑問產(chǎn)生:模型為什么會越推理誤差越小?這便運用到了數(shù)學中的向量,通過將數(shù)據(jù)分批次進行向量化的方式來進行模型訓練之后每批計算結(jié)束,調(diào)整一次參數(shù),經(jīng)過多次調(diào)整模型就會準確的推理出所需要的信息了。
至此到這里大家應(yīng)該都明白了大模型以及,GPU、CPU的工作原理。
到這里想必大家應(yīng)該理解了為什么ChatGpt需要用GPU來訓練了,因為從原理上來講無論是游戲還是AI都是不斷通過GPU來運算向量坐標來完成的。
案例如下圖,大家可以看到這個紫色的圖形模態(tài)元素想要移動,實際上就是通過各個三角形的色塊來進行坐標向量移動實現(xiàn)的,這背后需要大量的公式運算邏輯:
所以在GPU的架構(gòu)下多矩陣的計算也讓在游戲領(lǐng)域中大放異彩。反觀AI的發(fā)展思路,神經(jīng)網(wǎng)絡(luò)的計算基礎(chǔ)也同樣是矩陣的乘法運算引入GPU作為訓練引擎應(yīng)對深度神經(jīng)網(wǎng)絡(luò)巨大的計算量就再合適不過了。
GPU目前已經(jīng)發(fā)展成了專門的Transformer引擎,這種應(yīng)用的行為也加快了AI行業(yè)的發(fā)展和爆發(fā),也讓GPU自身成了算力的動力源泉。
移動互聯(lián)網(wǎng)時代,JSON 文檔作為支撐大規(guī)模靈活數(shù)據(jù)存儲的通用格式,推動了 MongoDB 的流行;而在 AI 重塑軟件的時代,向量作為大模型理解世界的數(shù)據(jù)形式,也就促成新的重要基建:向量數(shù)據(jù)庫。
二、大模型是肉體,向量數(shù)據(jù)庫是靈魂
由上文的說明;我們在神經(jīng)元激活后形成對眼前事物的神經(jīng)表征,這就是人腦真正理解和學習的對象。AI 模型實際識別和理解的不是一個個具體的文字符號,而是神經(jīng)網(wǎng)絡(luò)對各類數(shù)據(jù)的向量化表示,表示的結(jié)果便是向量。
如果如果把 ChatGPT 類的大語言模型比作大腦,其天然就缺失了靈魂。
在大模型中,世界知識和語義理解被壓縮為了靜態(tài)的參數(shù),模型不會隨著交互記住我們的聊天記錄和喜好,也不會調(diào)用額外的知識信息來輔助自己的判斷。
所以向量數(shù)據(jù)庫的意義與就是在給大語言模型提供記憶與加強記憶。
大模型是新一代的 AI 處理器,提供的是數(shù)據(jù)處理能力;那么向量數(shù)據(jù)庫提供就是 memory,是它的存儲。
三、市場情況及資本熱度
圖片來源:36Kr
目前Zilliz在全球擁有超過 1000 家企業(yè)用戶,成為目前全球最流行的開源向量數(shù)據(jù)庫。2022 年,Zilliz 累計超過 1.03 億美金的 B 輪融資,估值達到 6 億美金。也被官宣是 NVIDIA 的向量存儲的官方合作伙伴。
緊接著,OpenAI ChatGPT plugins 發(fā)布的官方文章中,Milvus 和 Zilliz Cloud 同時作為首批插件合作伙伴被提及成為唯一一家開源項目與商業(yè)化云產(chǎn)品同時入選的向量數(shù)據(jù)庫公司。
而在近一個月之內(nèi),向量數(shù)據(jù)庫迎來了融資潮。Qdrant 、Chroma 和 Weaviate 紛紛獲得融資;而 Pinecone 也正式官宣了新的 1 億美金 B 輪融資,估值達到了 7.5 億美元。
由此推論資本是跟著科技走的,向量數(shù)據(jù)庫的存儲邏輯也必將是革命性的產(chǎn)品。
四、未來發(fā)展
向量數(shù)據(jù)庫的核心能力為大模型提供記憶。
多模態(tài)數(shù)據(jù)想量化調(diào)用與輸入,壓縮Token長度,效率更高調(diào)用更快;但其實向量這一數(shù)據(jù)結(jié)構(gòu),和向量搜索的需求都是隨著 ML/AI 模型逐漸發(fā)展到今天的,接下來就來構(gòu)想一下這一領(lǐng)域的演進歷程。
1. 向量是 AI 理解世界的通用數(shù)據(jù)形式
無論是游戲,網(wǎng)絡(luò),教育,醫(yī)療等等等世界各行各業(yè)的領(lǐng)域中AI大模型的應(yīng)用場景是趨近于無限的,正因為可應(yīng)用場景多,需要或許到的數(shù)據(jù)毅然很多很雜,所以在做模型訓練的時候應(yīng)該無限趨近于向量搜索和向量訓練,向量在未來也將會成為AI的靈魂和大腦是AI理解世界學習世界的通用形式。
2. 多模態(tài)向量化是最終趨勢
人的大腦在思考時:首先需要眼睛看到,傳遞給大腦,激活信號傳輸?shù)侥愕娘D葉,你的大腦解釋為:我看到了XXX。也就是說,當大腦試圖理解和解釋看到的信息時,大腦解讀的是視覺皮層輸出的神經(jīng)表示,而非進入眼睛的原始圖像。
所以在大語言模型學習和訓練的過程中也是如此盡管大模型呈現(xiàn)出的形式是端到端、文本輸入輸出的,但實際模型接觸和學習的數(shù)據(jù)并不是文本本身,而是向量化的文本,為了讓我們的大模型更加聰明更加懂所問的問題。
所以說,在用向量化的數(shù)據(jù)來訓練模型時多模態(tài)(語音數(shù)據(jù)、圖片數(shù)據(jù)、視頻數(shù)據(jù)、文本數(shù)據(jù))是最終的趨勢,只有將多模態(tài)的數(shù)據(jù)全部打碎進行向量化的壓縮讓大模型來進行學習,才可能讓大模型聰明起來。
輸出的文本更加豐富,更加懂問他的問題。
五、結(jié)語
在大模型時代,傳統(tǒng)的數(shù)據(jù)庫已經(jīng)沒有辦法來做基于AI大模型的應(yīng)用級人工智能產(chǎn)品的數(shù)據(jù)調(diào)用需求了。
這是一個向量數(shù)據(jù)庫開始瘋狂增長的時代,也是向量數(shù)據(jù)庫未來十年高速增長的開端。
作者:于天航,微信公眾號:懂技術(shù)的產(chǎn)品汪
本文由 @小于愛學習 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
咩咩……
意思就是,主要學Zilliz
【人工神經(jīng)網(wǎng)絡(luò)】那一塊好難理解 這應(yīng)該涉及到機器學習的內(nèi)容了
是的
半年后 本寶寶又過來打卡了 溫故而知新 但還是很難理解 感覺很繞~~