區塊鏈與人工智能的結合會產生什麼樣的化學反應?AI 智能合約、AI DApp 將給去中心化世界帶來前所未有的能力。智能合約將可以處理更多樣、更模糊的輸入,並給出更智能的輸出。公鏈項目 Cortex 正在嘗試鏈上 AI 推斷、在智能合約裏引入人工智能,以此來改變人工智能模型被大公司壟斷的格局。

作者:木子

人工智能和區塊鏈是近幾年的兩大風口,一些頂尖技術團隊試圖爲兩者的結合找到可行方案,並在未來的技術生態中佔據戰略要地。作爲第一個真正實現鏈上 AI 推斷、在智能合約裏引入人工智能的公鏈,Cortex 不僅想要擴展智能合約的功能,也在努力改變人工智能模型被大公司壟斷的局面。

儘管區塊鏈項目需要各種概念和算法上的探索,但更難的其實是生態建設、代碼落地和應用部署。目前 Cortex 主網已經上線,挖礦、錢包 app、區塊瀏覽器等都已有產品開發上線,社區建設也日新月異。有人指出,Cortex 很多基礎設施來自以太坊,另一些人卻通過代碼對比發現,Cortex 在以太坊的基礎上添加了近四十萬行代碼,佔代碼總量的近 40% 。

隨着越來越多的 DeFi (去中心化金融)產品出現,區塊鏈在金融領域的應用成爲近期的熱點。而 Cortex 也將 DeFi 視爲當前發力的主要方向。無論是根據用戶的行爲進行徵信計算、還是通過實時數據給出投資策略,都是大數據和人工智能最有前途的應用場景,Cortex 定位於 AI 與區塊鏈的嫁接,顯然更有可能在這些 DeFi 的想象空間中大顯身手。Cortex 內嵌的激勵機制,也可能促使 AI 模型開發者上傳更多更好的模型,通過使用者的自由選擇而實現「AI 的民主化」。

何謂智能合約+人工智能?

目前智能合約的應用範圍很有限,僅限於發幣融資、轉賬這些簡單操作。從理論上說,圖靈完備的智能合約能夠進行各種形式的運算,也就可以實現一切計算機的功能。但理論與實際之間存在一道鴻溝,今天我們能看到的智能合約的最複雜應用,也就是博彩遊戲、資金盤之類的算法遊戲,還有一些簡單的金融應用。

Cortex 試圖爲區塊鏈的智能合約賦予更高級的應用。在這個去中心化的人工智能平臺上,開發者可以將 AI 模型存儲至區塊鏈並寫入智能合約中,以達到鏈上的模型推斷共識。在 Cortex 鏈上,開發者可以開發 AI 智能合約,在機器學習的推斷過程引入合約,從而得到區塊鏈之外的值——比如用戶上傳的圖片到底是貓還是狗。

在需要判斷一張圖片裏的動物是貓還是狗的時候,智能合約無需藉助預言機等鏈下網絡的幫助,可以直接調用機器學習模型進行推斷,這就提高了執行的效率。有了人工智能的幫助,基於區塊鏈的電商平臺也能針對顧客的瀏覽歷史,進行個性化的商品推薦,而物聯網網絡,則有可能在智能家居產品中集成類似 siri 的語音響應系統。智能合約,可說是真正擁有了智能。

儘管人工智能已是媒體熱詞,但其內涵一直在演變。一般來說,人工智能是指通過技術手段,使機器能夠表現出類似人類的智能。在半個多世紀的發展歷程中,研究者提出過各種各樣的實現方案,目前最主流的方案是機器學習。機器學習是指使用大量數據訓練一個數學模型,使其不斷改進,最終得到一個較爲成熟的模型。使用數據集改進模型的過程稱爲「訓練」,而使用實驗數據集根據模型得到可用的輸出的過程稱爲「推斷」。

Cortex 的目標是提供 AI 模型的訓練與推斷全套解決方案。由於 PoW 算法計算過程和驗證過程是非對稱性,而 AI 訓練的過程和驗證工作量的過程是對稱性,這種本質上的差別導致了 AI 訓練環節註定無法上鍊,和 PoW 相結合。Cortex 則選擇了將 AI 推斷的過程上鍊,包括模型的上傳、存儲、調用並進行推斷。訓練過程將在鏈下進行。

基於以太坊的多項創新:CVM 虛擬機、專用模型表示工具、確定性的推斷引擎……

Cortex 的智能合約使用了以太坊的 Solidity 語言,並在 EVM 的基礎上改造出了 CVM ,加入了「推斷」指令,便於調用 AI 模型進行推斷。其智能合約系統向後兼容以太坊的智能合約,所以以太坊的 DApp 開發者可以將其開發的應用無縫切換到 Cortex 鏈上。

不過,Cortex 絕不僅僅是以太坊的簡單升級。想一想,將計算資源消耗極大的 AI 搬上區塊鏈,要解決的難題相當多且棘手。除了 CVM,基於 MXNet 做的模型量化以實現鏈上推斷的確定性,這部分研發成果,應該說是 Cortex 的開創性貢獻。

由於 Cortex 鏈上不承擔訓練模型的任務,所以用戶需要將模型通過 CVM 解析成字符串,與參數一起打包上傳到存儲層。Cortex 的存儲層並不在區塊鏈上,而是使用了一種 P2P 的存儲協議 Libtorrent,以實現高效存儲更多的模型與數據。上傳到存儲層後,將生產一個模型的哈希值放到鏈上,供使用者調用。

有了模型之後,智能合約就可以通過「推斷」指令調用 AI 模型。Cortex 的 AI 智能合約執行過程與普通智能合約類似,也需要全網的全節點對智能合約運行一遍,並對運行結果進行共識。但由於這個過程中涉及到 AI 模型推斷,因此步驟有所增加。節點進行推斷時,需要從存儲層中索引到對應的 AI 模型,下載模型字符串及參數,將字符串通過 Cortex 模型表示工具轉換爲 CVM 執行碼,再在 CVM 中進行推斷。Cortex 的模型表示工具是一套開放而靈活的標準。使用不同深度學習框架的用戶可以在框架之間遷移自己的模型,大大提高了使用的便捷。

對於區塊鏈來說,現有的機器學習模型與數據集在存儲與計算資源消耗方面都顯得過於龐大,將現有數據模型直接搬到鏈上將大大降低區塊鏈的效率。並且,在中心化場景下,由於 GPU 並行計算的大量應用,對模型推斷過程並沒有太高的確定性要求。對於區塊鏈來說,缺乏確定性往往意味着不同節點的執行結果無法完全一致,會不能通過共識過程。針對這些問題,Cortex 提出了系統的解決方案。

首先,將 AI 模型存入鏈上之前 Cortex 會對其進行量化與壓縮。量化,是指合理地降低變量的精度,使其佔用儘量少的存儲空間,比如將浮點數變量簡化爲佔用 2 比特的整形變量。這對模型的讀取和執行的效率與成本都有極大改進。壓縮,是指在保持模型精度的前提下儘可能減少模型對內存的需求。這些處理將大大減小模型對存儲的需求,相應地能緩解傳輸、執行過程中對帶寬和內存的壓力。

爲了實現模型的轉換,Cortex 開發了專用的模型表示工具(MRT)。使用 MRT,目前可以將 MXnet 框架訓練得到的浮點數模型轉化爲整形模型,後續會支持更多種模型框架訓練的模型進行轉換。轉換過程中去除了浮點數,在節省計算與存儲資源的同時也爲執行的確定性提供了先決條件。原本在 nnvm 上執行的模型在經過 MRT 轉換後將可以在 CVM 上執行。Cortex 團隊對 9 個轉換後的模型進行了測試,與未轉換的模型相比,平均準確度損失不足 2% 。

除了對模型進行量化和壓縮,Cortex 還開發了確定性的 AI 推斷引擎—— Synapse 。這也是爲了適應區塊鏈這個特定的運行場景而進行的一項創新。Cortex 智能合約內的推斷需要藉助網絡內的全節點執行,並對結果進行共識。不同節點的硬件、軟件環境都可能不同,而且現代 AI 推斷引擎需要藉助大量 GPU 並行計算提高運行效率。異構運行環境和對執行順序要求不高的執行方式都會增加結果的不確定性,但區塊鏈無法容忍不確定性,即使執行結果有細微的不同也無法通過區塊鏈的共識。Synapse 的 AI 推斷執行過程同樣藉助 GPU 並行計算進行加速,但子例程的執行是確定的、可驗證的。

從以上的介紹可以發現,雖然很多組件繼承自以太坊,但爲了兼容 AI 模型,Cortex 做了大量改進。 比如 CVM 除了加入推斷指令外,還集成了確定性推斷引擎 Synapse。根據對 CortexTheseus 與 go-ethereum 代碼的對比可以發現,Cortex 在以太坊的基礎上添加了近四十萬行代碼,佔代碼總量的近 40% 。Cortex 整體代碼註釋率約 22% ,註釋率較高。而以太坊 geth 客戶端註釋率約爲 14% ,用於深度學習的 MXNet 框架的註釋率約爲 29% 。完善的註釋會提高代碼的可讀性,爲代碼的審覈、修改與維護提供方便。

爲了保證算力的分散,Cortex 使用 Cuckoo Cycle PoW 共識機制。這是目前最能抵抗 ASIC 的 PoW 共識機制之一。由於對內存要求很高,所以 ASIC 芯片對哈希算法的加速並不會產生太大的優勢,這樣確保了算力不會過於集中,普通人也可以參與挖礦。目前 Cortex 網絡的出塊時間約爲 15 秒,區塊獎勵爲 7 CTXC。

助力和激勵 AI 模型開發者

除了對模型存儲和使用過程的優化,Cortex 的另一個亮點在於對 AI 模型開發者的激勵。Cortex 會自帶一個 AI 模型平臺,所有上傳的模型將會在平臺上進行排名。排名高的模型單次調用得到的收益也會更多。這能更好地激勵開發者向平臺上貢獻更多更好的模型。

這裏需要提到 Cortex 的費用系統,這一系統也是以以太坊的 GAS 爲基礎。用戶使用智能合約需要依據智能合約消耗的系統資源給礦工付費。不同之處在於,Cortex 中產生的轉賬費用除了支付給礦工之外,還有一部分會分給合約所使用 AI 模型的擁有者。排名高的模型會得到更多的獎勵,這種設計意在激勵更多開發者上傳更多高質量的模型,豐富 Cortex 的模型生態。Cortex 生態內的費用單位爲胺多酚(Endorphin),每一單位的胺多酚與 CTXC (Cortex 代幣)的價格比率將由市場動態決定。

目前 Cortex 主網已經上線,由於繼承了以太坊 geth 的基礎架構,所以很多以太坊的開發工具稍加改動也可以供 Cortex 開發者使用,如 Remix IDE 。目前,錢包客戶端、區塊瀏覽器等組件已經可以使用,項目的主要代碼也已完全開源。從瀏覽器中可以發現,Cortex 網絡運行良好,目前有 27 個 AI 模型可以使用。

Cortex 在應用領域的首選發力點,將是當下火熱的 DeFi 方向。金融領域本來就是大數據、AI 模型重要的應用場合。無論是根據用戶的行爲進行徵信計算、還是通過實時數據給出投資策略,都將是 Defi 領域 AI DApp 大顯身手的機會。區塊鏈天生的數據透明屬性將爲模型提供真實可信的數據集,模型的優劣將通過推斷結果的準確性被公之於衆。而金融應用的吸金效應也將爲優秀模型的訓練者提供足量的經濟激勵。

AI 智能合約、AI DApp 將給去中心化世界帶來前所未有的能力。智能合約將可以處理更多樣、更模糊的輸入,並給出更智能的輸出。推薦系統、搜索引擎、模式識別都有了去中心化的可能。雖然 AI 區塊鏈還面臨着數據隱私、執行效率等各種各樣的問題,但 Cortex 的嘗試已經邁出了最難的第一步,區塊鏈的未來從此有了更大的想象空間。