EP03 - 5000 字讀懂生成式 AI

向量資料庫 | 生成式 AI | 降噪

歡迎來到降噪,一起消除雜訊洞察價值

OVERVIEW
本期重點

  • 科普向量資料庫

  • 從圍棋到生成式 AI 到底發生了什麼事?

STUDYING
科普向量資料庫

source: nvidia

一年前若是問我 Gen AI 是什麼?我會回答:預測下個字的系統

現在我會說:Gen AI 是資料儲存與搜尋技術的躍遷

聽起來很抽象,下面我會用一些例子來分享我的觀察。

▋ 個人電腦時期 | 從物理資料到數位資料

source: wiki IBM 5150

時間回到 1960 年代,在美國,一個典型的會計師事務所會養上百個會計師。

每天的工作就是在 A4 的表格上,手寫填入客戶的出納,再計算最終的數字。

要提交一家公司正確無誤的會計數據平均要耗掉一名會計師整周的工時,整份文件可能需要用大麻布袋來裝才能裝得下。

到了 75~80 年代,從真空管升級到電晶體的電腦開始出現在市場上,因為體積變小與價格降低,事務所得以購入一些機器來加速工作。

有了這些機器的幫助,一名會計師可以在一個下午的時間處理完一周的工作。

儲存資料的媒介也從 A4 紙張轉換成磁帶,開啟資料數位化的第一步。

同個時期,為了解決數位資料儲存與檢索的問題,SQL (結構式查詢語言) 開始被廣泛使用。

它可以用表格形式儲存資訊,列和欄代表不同的資料屬性和資料值之間的各種關係,也就是現在大家熟悉的 Excel ( 試算表 ) 。

Oracle 也在當時成為第一個提供商業 SQL 關聯式資料庫管理系統的供應商。

▋ 演算法時期 | 從數位資料到向量資料

source: cambridge-intelligence

SQL 的優點就是資料結構非常的整齊完美,缺點也是整齊完美。

隨著資訊量不斷上升,相信大家在使用搜索的時候最痛恨只給出 100% 吻合的內容,誰記得了那麼準確的關鍵字?

向量資料就是在解決資料關聯性的問題,而這個技術也成為 LLM 的基石,催生了 Gen AI 的誕生。

是否曾經因為在電商網站上點了「你可能會感興趣...」的分類又多買了好多東西,或是看完了一則 Youtube 影片又忍不住點了其他推薦影片?

大家或許都會稱之為 「演算法」,但實際的邏輯就是將相似的內容自動搜尋出來給你。

那麼問題來了,從 100% 吻合到相似搜尋,在電腦裡實際發生了什麼事?

大家應該都有看過四象限的分類法,縱軸與橫軸代表兩個光譜的極端,再將要分類的內容放到四象限的座標上。

以書本為例,縱軸可以用勵志 / 不勵志,橫軸用傳記 / 非傳記,例如 Musk 傳可以在這個分類中得到 (0.4, 0.9) 的分數。

透過這樣的分類方式將書本分布在座標上,我們就能得到二維的分類,而這個分類法就是向量化。

最終我們再來看哪些書本的位置是靠近的,這些靠在一起的書本就是比其他的書本更相關。

分類的維度越高就代表越細緻,{12, 13, 19, 8, 9} 五個維度就會比兩個維度精準的多。

特別找到一個影片用視覺化的方式來呈現向量數據,這個影片清楚的呈現數據在多維度的狀態下分布的情形。

source: cosmograph.app 

個人很喜歡這個呈現方式,讓我聯想到宇宙大爆炸。

影片是用 cosmograph.app 製作的,主要是用來做資料視覺化,影片包含 100 萬個 Token。

▋ Gen AI 時期 | 從向量資料到抽象認知

source: neo4j.com

看完上面的向量化的分類方法應該會產生一個疑問?那是誰決定分數的多寡?

這時就必須介紹 Embedding (嵌入) ,嵌入是使用深度學習建立向量的過程。

「嵌入」是此過程的輸出,換句話說,是由深度學習模型建立的向量,用於該模型的相似性搜尋。

著名的論文 Attention is all you need 中所使用的 Transformer 架構,(簡單來說) 就是暴力的計算每一個字 ( Token ) 與其他所有字的關係 ( 維度 ) 所建立起來的向量集。

沒想到的是,還真的透過這樣暴力的分類方法,找到語言的相關性,從 100% 吻合的搜尋變成抽象參數的生成器。

​像是 GPT-3 有 1750 億個參數,開源的 Mistral 7B 則有 70 億個參數。

想像一下,每個文字 (Token) 都被上億個參數定位著 ( 如同影片 ),而我們輸入的提示詞 ( Prompt ) ,也會透過 Embedding 方式轉成向量,Mapping 回模型的座標中,透過這樣的方式來檢索 LLM。

這也是為什麼提示詞 (Prompt) 這麼重要的原因,因為我們不希望它每個問題都去訪問整個宇宙,而是在限定的座標 ( 星系 ) 中去搜尋。

▋ 結論 | 當個料理人

街邊小吃與高檔餐廳最大的不同就是,街邊小吃通常都是依循一個特定的食譜,流水線式的出菜;而高檔的餐廳在上菜時,都會有人解釋這道菜使用什麼食材、為什麼使用這個食材以及怎麼處理這個食材。

一斗米就能成料,我們會把「日本料理」當成用語,但卻不會把「英國料理」拿來稱呼,背後當然有很多文化因素造成兩者的差異。

不過相信在每個人的心中都能細微的感受到,日本人在「料」的「理」解與處「理」上有著優勢。

這裡並不是要評論誰高誰低,而是回到基本,從「料」來思考、來設計。

回到文章開頭的問題, Gen AI 是什麼?

Gen AI 就是資料科學進化後的副產品,底層邏輯來自對資料整理與處理的躍遷,Output 也是一連串的降噪工程。

50 年前大家不懂 SQL 能幹嘛,先行者優勢讓 Oracle 賺得盆滿缽滿。

雖然現在去搞一個向量資料庫的 Oracle 已經來不及了,但我們終將受惠於這樣的技術。

最近很紅的 Agent 就是結合不同的向量資料庫來回答特定領域的問題。

你也可以建立自己的 Agent ,你的聲音、你的照片還有你寫過的情書,都能轉化成新的向量資料,再結合不同模態的大型語言模型炒出不同的新菜色。

在工具滿盈的現在,該問自己的就是,我想要做什麼菜呢?

STUDYING
從圍棋到生成式 AI 到底發生了什麼事?

source: Zemford

從下圍棋到畫畫的底層邏輯

2016 年 AlphaGo 擊敗了韓國九段職業棋手李世乭,讓沉寂已久的 AI 研究瞬間進入大眾的視野。

隔年 2017 年,由 ​ Vaswani 等人發表的劃時代論文「 Attention Is All You Need 」宣告了 ​ Transformers 模型的來到。

數年後,以 Transformers 為基礎的 Chat-GPT 橫空出世,用不到一年的時間將人類的文明推向 AI 時代。

我很好奇,這些年到底發生了什麼事?為什麼這幾個事件能標誌為重點事件?以及背後的關係到底是什麼?​

下面分享我研究的發現,希望能用最簡單易懂的方式讓大家理解 AI 的基礎邏輯,並弄懂他的極限與可能性。

▋若用一個詞來理解生成式 AI 那就是 「降噪 (denoising) ​ 」的技術工程。

source: Vedant Jumle

我一開始對 Chat-GPT 的想像就是它是接龍大師,只要給一個輸入,Chat-GPT 就會透過運算,用機率的方式把文字接出來。

確實,AlphaGo 的根本邏輯就是透過大量的計算每一個落子的致勝機率,透過監督 / 非監督式學習,一步一步的學習如何戰勝對手。

這與生成字串很像,「我」後面能接的字,透過分析大量的文本,肯定能知道後面最高機率能接的字是什麼。​

聽起來很合理,但是仔細想想這落入了「窮舉法」的思維裡,認為都是大量運算的結果,反正所有的內容都丟進去裡面,暴力算出來就好了。

給大家一個算數,如果以每步有 19*19=361 種可能性的圍棋來說,計算到第二層,就已經出現了「361*360=129,960」種可能!

第三層,就有 4700 萬種可能,第四層有 160 億種可能,第五層有 6 兆種可能。就算你使用超級電腦、運算速度再快,也不可能運算到超過十層(36 兆個兆)!

這幾乎是不可能的任務,遑論更複雜的語言,這背後到底是怎麼做到的呢?

原來,AlphaGo 雖然精通所有高手的棋譜,但之所以這麼成功,Deep mind 的研究員的工作事實上都是在叫 AlphaGo 不要想太多。

最終產生的組合拳就是價值網路、策略網路、蒙地卡羅搜尋以及深卷積神經網路,其中深卷積神經網路是我認為最有趣也最有啟發的,因為原先這個模型是拿來做影像辨識的。

▋深卷積神經網路

source: biorxiv.org

不知道大家記不記得早年的影像辨識系統 (其實也大概幾年前而已),AI 可以在圖片中框選目標,並標示目標是什麼。

訓練的方法也很簡單,只要大量的輸入目標圖像給模型來學習就好,不需要告訴目標有什麼特徵。

例如:我想要辨識貓,只需要準備一百張貓咪的圖片,不需要所有的品種,只要你告訴模型它是貓,它就能透過這些圖片,抽象的理解貓是什麼。

其中底層原理來自於深卷積神經網路會計算每一個像素與其它八個像素之間的關係值 (CNN 架構),之後將它用向量的方式儲存起來,並把這些向量值理解成 "貓" 這個物件。

我們再用 "貓" 這個 Prompt 來呼叫這組對應的向量值。

其中最迷人的地方在於,一百張貓咪的照片透過運算轉換成一個可被重複利用的向量值,對比我們現在用硬碟來儲存一百張貓咪的照片有著巨大的價值轉換。

搜尋到的圖片不再是儲存在某個雲端的硬碟中,而是可以透過呼叫這些向量值來生成我要的圖片。

就好像不再需要黃金儲備來發行貨幣一樣,只需要透過抽象的價值來滿足需求即可。

​​

▋回到圍棋​

source: nvidia

而圍棋,事實上就是一張 19x19,361 Pixel 的黑白點陣圖,AlphaGo 利用深卷積神經網路將每一目與每一目之間的關係值當成影像辨識,抽象的讓它理解 "贏" 的圖片長什麼樣子。

所以,它的過程事實上是一個不斷往 "贏" 方向降噪的結果,就如同你對生成式 AI 下了一個 "貓" 的 Prompt 。

熟悉 MJ 與 Stable diffusion 的朋友應該能理解從模糊到清楚的過程,這過程就是在降噪,不同的 Sampler 就是降噪的不同算法。

source: arxiv.org

▋理解完圖像的部分,接下來到文字的部分。

「 Attention Is All You Need 」這論文裡到底提了什麼概念,讓 Transformers 這個模型變成目前生成式 AI 的主流基礎架構呢?

要說明 Transformers 的架構好在哪,就必須先理解先前的架構的限制是什麼。

在 Transformers 之前,業界范用的模型為 RNN (循環神經網絡) 架構,RNN 模型有效的模擬大腦神經元之間互相傳遞訊息的方式,對於處理有規則的資訊非常的高效。

其基礎邏輯就是模型會對前一個文字與後一個文字做相關性的計算,來生成最終的解果。

若訓練的資料中出現的次數越多,則生成的結果將更大機率的符合資料的內容。

因此常被拿來使用在客服機器人、語音助理等需要回答單一領域的知識。

缺點也很明顯,就是超出訓練資料以外的內容,生成出來的機率就非常的低,白話來說就是不能舉一反三,沒有融會貫通所有的資料。

Transformers 模型的出現解決了這個問題,之中關鍵的 self-attention 模組就是提出了一個新的架構來 "同時" 計算所有字的相關性,而不是像先前 RNN 架構只看前後兩個字元。​

例如我輸入了一篇一千字的文章,RNN 架構計算的是第一個字與第二個字的關係,第二個字與第一個與第三個字的關係,self-attention 模組計算的是每一個字與其他 999 個字的關係。

這就幫助機器能通盤的理解一篇文章中所有字與其他字的相互關係,並把運算結果儲存成一個可被重複訪問的資料庫。

這也可以理解為什麼目前的 Chat-GPT 能輸入字符 (Token) 是有限制的,以及訓練模型為什麼這麼貴,因為每次的計算都是字字計較的。

而 Self-attention 這個機制十分范用,不只能做自然語言的理解,還能通用到語音與圖像辨識 / 生成領域。

試想一下,從計算一個像素與其他八個相連像素的關係,進步到一個像素與所有像素的關係,就可以理解為什麼成果可以這麼好。

從 RNN 進階到 Transformers ,事實上是從 CPU 式的序列式運算,進化成 GPU 式的平行運算,這也是 Nvidia GPU 這麼火紅的原因,因為電腦運算正式走入平行運算的時代。

▋結語

這篇文章整理給自己,梳理我對 AI 發展的觀察,同時也是為了建立一個新的知識節點,給自己在未來能反覆取用。​

回到文章開頭所說的,生成式 AI 就是 「降噪 (denoising) ​ 」的技術工程,在面對未知的問題時,如何找到關聯性,將這些關聯性連起來找答案,而不是在渾沌中丟骰子。

source: wiki

如同米開朗及羅所說:我只是把困在石頭裡的大衛釋放出來而已。

大衛本來就存在在石頭裡,但不同的人 (模型) 來雕刻 ( 降噪 ) 的結果卻天差地遠。

Jobs 曾說,創造就是將兩個點連結起來

但是這樣還不夠

在輸入端,你必須同時將知識,整理好關聯性後儲存到自己的資料庫中,如同已故的查理蒙格自備多個思維模型來解決投資的問題。(訓練自己的模型)

​在資訊充盈的現在,注意力 (attention) ,與濾除雜訊 ​ ( denoising ) 的能力將會是每個人能否朝向最終結果邁進的基礎能力。

即便結果不如意,我們還須保持精力 ( computing ) 來執行下一次的運算,直到我們找到滿意的答案。

Reply

or to participate.