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