作者|:Frank-Zhang.eth,Twitter :@dvzhangtz
筆者認為,人工智慧本身代表新型生產力,是人類的發展方向;Web3與A的結合將使得Web3成為新時代的新型生產關係,成為組織未來人類社會,避免AI 巨頭形成絕對壟斷的救贖之路。
身為長期奮戰在Web3 一級投資一線,以及曾經的AI研究者,寫一篇賽道mapping,弟認為自己責無旁貸。
一、本文目標
為了更充分地理解A,我們需要了解:
1.A的一些基礎概念如:什麼是機器學習,為何需要大語言模型。
2.AI開發的步騾如:資料獲取,模型預訓練,模型fine tune,模型使用;都是在做什麼。
3.一些新興方向如:外置知識庫,聯邦學習,ZKML,FHEML,promptlearning,能力神經元。
4.整個A鏈條上對應Web3 有哪些項目。
5.對於整個AI鏈條什麼環節具有比較大的價值或說容易出大項目。
在描述這些概念的時候,筆者會盡量不使用公式、定義,而是用打比方的方式來描述。
本文盡可能涵蓋了較多的新名詞,筆者希望在讀者心裡留下個印象,如果未來遇到,可以回來查其處於知識結構中的什麼位置。
二、基礎概念
Part 1
當今咱們熟悉的web3+ai項目,他們的技術是屬於人工智慧中的機器學習中的神經網路這一思路。
以下的這段主要界定清楚一些基礎概念:人工智慧、機器學習、神經網路、訓練、損失函數、梯度下降、強化學習、專家系統。
Part 2
人工智慧
定義:人工智慧是研究發展能夠模擬、延申、擴展人類智慧的理論、方法、技術及應用系統的一門新的技術科學。人工智慧的研究目的是促使智慧機器,會:聽,看,說,思考,學習,行動
我的定義:機器給的結果和人給的結果一樣,真假難辨(圖靈測試)
Part 3
專家系統
如果一件事有明確的步驟、需要用到的知識:專家系統
Part 4
如果一件事難以描述怎麼做:
1.有標註數據:機器學習,例如分析文本中的情感
例:需要的訓練數據
配鑰匙師傅問我:」你配嗎」neutral
隔壁很壯的小王問我:」你配嗎「-negative
2.幾乎無標註數據:強化學習,例如下棋
Part 5
神經網路是怎麼教導機器一個知識的
機器學習現在涉及的知識和範圍很廣,我們這裡只是討論機器學習中最經典的套路,神經網路。
神經網路是怎麼教會機器一個知識的呢?我們可以類比為我們:
如果想教小狗如何在墊子上小便(經典案例,無不良指向)--(如果想教機器一個知識)
方法1:如果狗狗在墊子小便則獎勵塊肉,如果不在則打屁股
方法2:如果狗狗在墊子小便則獎勵塊肉,如果不在則打屁股;而且距離墊子越遠,打得越狠(計算損失函數)
方法3:狗狗每走一步,就進行一次判定:
如果是朝向墊子走,則獎勵塊肉,如果不是朝向墊子走,則打屁股
(每進行一次訓練,計算一次損失函數)
方法4: 狗狗每走一步,就進行一次判定
如果是朝向墊子走,則獎勵塊肉,如果不是朝向墊
子走,則打屁股;
並且給狗狗在指向墊子的方向擺一塊肉,吸引狗狗往墊子走
(每進行一次訓練,計算一次損失函數,之後向著能最好降低損失函數的方向,進行梯度下降)
Part 6
為什麼最近十年神經網突飛猛進?
因為最近十年人類在算力、數據、演算法上突飛猛進。
算力:神經網路其實上個世紀就被提出了,但是當時的硬體運行神經網絡,耗時過長。但隨著本世紀晶片技術的發展,電腦晶片運算能力以18個月翻一倍的速度發展。甚至還出現了GPU這種擅長並行運算的晶片,這使得神經網路在運算時間上變得「可接受」。
數據:社群媒體,網路上沉澱了大量訓練資料大廠們也有相關的自動化需求。
模型:在有算力,有數據的情況下,研究者研究出了一系列更有效率,更準確的模型。
「算力」、「數據」、「模型」也被成為人工智慧三要素。
Part 7
大語言模型(LLM)為什麼其很重要
為什麼要關注:今天我們歡聚於此,是因為大家對Al+ web3 很好奇;而A 火是因為ChatGPT;ChatGPT 就屬於大語言模型。
為什麼需要大語言模型:我們上面說了,機器學是需要訓練資料的,但是大規模資料標註成本太高;大語言模型以一種巧妙的方式解決了這個問題。
Part8
Bert——第一個大語言模型
我們沒有訓練資料怎麼辦?一句人話本身就是一段標註。我們可以使用完型填空法來創造資料。
我們可以在一段話之中挖空,將一些字挖出來,讓transformer架構(不重要)的模型預測這些地方應該填寫什麼字(讓狗狗找墊子);
如果模型預測錯了,測一些損失函數,梯度下降(狗狗如果是朝向墊子走,則獎勵塊肉,如果不是朝向墊子走,則打屁股,並且給狗狗在指向墊子的方向擺一塊肉,吸引狗狗往墊子走)
這樣所有網路上的文段,都能成為訓練資料。這樣的一個訓練過程也稱為“預訓練”,所以大語言模型也稱為預訓練模型。這樣的模型可以給他一句話,讓他去一個字一個字的猜,下面該說什麼字。這個體驗和我們現在使用chatgpt 是一樣的。
我對預訓練的理解:預訓練讓機器從語料中學到了人類通用的知識,並培養了「語感」。
Part 9
大語言模型的後續發展
在Bert 提出之後,大家發現這玩意真好用!
只需要將模型變得更大,訓練資料變得更多,效果就能越來越好。這不是無腦衝就好了。
訓練數據暴漲:Bert 使用的是全部wikipedia、書籍數據訓練的,後來的訓練數據擴展到全網的英文數據,後擴展到全網全語言
模型參數量飛速上漲
三、AI開發的步驟
Part 1
預訓練資料獲取
(本步驟一般僅大廠/大研究所會做)預訓練一般會需要巨量數據,需要對全網各類網頁進行爬取,累積以TB為單位的數據,然後進行預處理
模型預訓練(本步驟一般僅大廠/大研究所會做)在完成資料收集之後,需要調集大量算力,數百張A100/TPU 級別算力進行預訓練
Part 2
模型二次預訓練
(option)預訓練讓機器從語料中學到了人類通用的知識,並培養了“語感”,但如果我們想要讓模型有某個領域的更多知識,可以拿這個領域的語料,灌入模型進行二次預訓練。
例如美團,作為一個餐飲外送平台,需要的大模型就應該了解更多餐飲外送的知識。所以美團拿美團點評業務語料進行二次預訓練,發展出MT-Bert.這樣得到的模型在相關場景上效果更好。
我對二次預訓練的理解:二次預訓練讓模型成為某個場景的專家
Part 3
模型fine tune 訓練
(option)預訓練模型如果想要成為某個任務上的專家,例如情感分類的專家,主題抽取的專家,說讀理解的專家;可以使用該任務上的數據,對模型進行fine tune。
但這裡就需要標註數據,例如如果需要情感分類數據,就需要類似下面的數據:
配鑰匙師傅問我:」你配嗎」neutral
隔壁很壯的小王問我:」你配嗎「negative
我對二次預訓練的理解:Fine tune讓模型成為某個任務下的專家
需要注意,模型的訓練都需要顯示卡間大量傳輸資料。當前咱們Al+ web3 有一大類項目是分散式算力–世界各地的人將自己的閒置機器貢獻出來做某些事情。但想用這種算力做完整的分散式預訓練,是非常非常難的;想做做分散式Fine tune 訓練,也需要很巧妙的設計。因為顯示卡間傳輸訊息的時間將高於計算的時間。
Part 4
需要注意,模型的訓練都需要顯示卡間大量傳輸資料。當前咱們Al+web3 有一大類項目是分散式算力——世界各地的人將自己的閒置機器貢獻出來做力某些事情。但想用這種算力做完整的分散式預訓練,是非常非常難的;想做做分散式Fine tune 訓練,也需要很巧妙的設計。因為顯示卡間傳輸訊息的時間將高於計算的時間。
Part 5
模型使用
模型使用,也稱為模型推理(inference)。這指的是模型在完成訓練後進行一次使用的過程。
相較於訓練,模型推理並不需要顯示卡片大量傳輸數據,所以分佈式推理是個相對容易的事情。
四、大模型的最新應用
Part 1
外置知識庫
出現原因:我們希望模型知道一些少量我們領域的知識,但又不希望花大成本再訓練模型
方法:將大量pdf 資料打包到向量資料庫之中,將其作為背景資訊作為輸入
案例:百度雲一朵、Myshell
Promptlearning
出現原因:我們感覺外置知識庫還無法滿足我們對模型的客製化需求,但又不想負擔整個模型的調參訓練
方法:不對模型進行訓練,只使用訓練數據,去學應該寫一個什麼樣的Prompt
案例:廣泛應用於當今
Part 2
聯邦學習(Federated Learning,FL)
出現原因:在訓練模型的使用,我們需要提供自己的數據,這會洩露我們隱私,這對於一些金融、醫療機構是不可接受的
方法:每一家機構都在本地使用資料訓練模型,然後將模型集中到一個地方進行模型融合
案例:Flock
FHEML
出現原因:聯邦學習需要每個參與者在本地訓練個模型,但這對每個參與者門檻太高了
方法:使用FHE的手段進行全同態加密,是的模型可以用加密後的資料直接訓練
缺點:極慢,極貴
案例:ZAMA,Privasea
Part 3
ZKML
出現原因:我們在使用別人提供的模型服務的時候,希望確認其真的在按我們的要求,提供模型服務,而不是使用一個小模型再瞎搞
方法:讓其用ZK的手段產生個證明,證明其確實在做他號稱他做了的運算
缺點:很慢,很貴
案例:Modulus
能力神經元(skillneuron)
出現原因:當今模型就像是一個黑箱,我們餵了他很多訓練數據,但他到底學到了什麼我們不知道;我們希望能有某種方式,讓模型在某個特定方向優化,比如具有更強的情感感知能力,具有更高的道德水平
方法:模型就像大腦,有些區域的神經元管理情感,有些區域管理道德,找出這些節點,我們就可以針對性的最佳化
案例:未來方向
五、A鏈條上對應Web3 項目分類方式
Part 1
筆者會分為三大類:
Infra:去中心化A的基礎設施
中介軟體:讓Infra 可以更好服務應用層
應用層:一些直接面向C端/B端的應用
Part 2
Infra 層:AI的基礎設施永遠是三大類:資料算力演算法(模型)
去中心化演算法(模型):
@TheBittensorHub 研究:x.com/dvzhangtz/stat..@flock_ io
去中心化算力:
通用算力: @akashnet_, @ionet
專用算力:@rendernetwork(渲染)、@gensynai(AI),@heuris_ai(Al)@exa_bits (A)(AD,
去中心化資料:
數據標註:@PublciAl_,QuestLab
儲存:IPFS,FIL
Oracle: Chainlink
索引:The Graph
Part 3
中介軟體:如何讓Infra 更好服務應用層
隱私: @zama fhe, @Privasea_ai
驗證: EZKL, @ModulusLabs , @gizatechxyz
應用層:應用其實其實很難全部分類,只能列舉其中最具代表性的幾項
數據分析
@_kaitoai,@DuneAnalytics ,Adot
Agent
Market: @myshell_ai
Web3知識聊天機器人:@qnaweb3
幫人做操作:@autonolas
六、什麼樣的地方比較容易出大項目?
首先,與其他領域類似,Infra 容易出大項目,尤其是去中心化模型、去中心化算力,筆者覺得其邊際成本較低。
然後,在與@owenliang60 哥的啟發下,筆者感到應用層如果能出現一個殺手級應用,其也會成為頂級大項目。
回顧大模型的歷史,是ChatGPT這個殺手級應用將其推向封口浪尖,其不是技術上的大迭代,而是針對Chat 這個任務的最佳化。也許在A+Web3 領域未來也會出現像Stepn/Friendtech 這樣的現象級應用,我們拭目以待