原文作者: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 這樣的現象級應用,我們拭目以待