區塊鏈和機器學習交集密切,但在去中心化推理中,平衡成本和信任是關鍵挑戰。

原文:Don't Trust, Verify: An Overview of Decentralized Inference

作者:Haseeb Qureshi

編譯:白話區塊鏈

封面:Photo by Shubham Dhage on Unsplash

image.png

如果你想要運行類似 Llama2-70B 這樣的大型語言模型。 這種龐大的模型需要超過 140GB 的記憶體,這就意味著你無法在家用機器上直接運行原始模型。 那麼你有什麼選擇呢?你可能會轉向雲服務提供者,但你可能不太願意信任一個單一的集中式公司來為你處理這個工作負載,並收集你的所有使用數據。 所以,你需要的是去中心化推理,它能讓你在不依賴於任何單一提供商的情況下運行機器學習模型。

1、信任問題

在一個去中心化的網路中,僅僅運行模型並信任輸出是不夠的。  假設我讓網路使用 Llama2-70B 來分析一個治理困境。 我怎麼知道它實際上沒有使用 Llama2-13B,給我更糟糕的分析,並將差異收入囊中呢?

在中心化世界中,你可能會相信像 OpenAI 這樣的公司是誠實的,因為它們的聲譽受到了威脅(而且在某種程度上,LLM 的品質是不言而喻的)。  但在去中心化的世界中,誠實並不是預設的——它需要驗證。

這就是可驗證推理發揮作用的地方。 除了提供對查詢的回應之外,您還要證明它在您要求的模型上正確運行了。 但是如何做到呢?

天真的方法是將模型作為智慧合約在鏈上運行。 這肯定會保證輸出是經過驗證的,但這是非常不切實際的。 GPT-3 用 12288 的嵌入維度表示單詞。 如果您在鏈上進行這樣大小的單次矩陣乘法,根據當前的 gas 價格,它將耗費約 100 億美元——計算將連續填充每個區塊約一個月的時間。

所以,不行,我們需要一個不同的方法。

觀察了這個領域之後,我清楚地看到,有三種主要方法出現來解決可驗證推理的問題:零知識證明、樂觀欺詐證明和密碼經濟學。 每種方法都有其自身的安全性和成本影響。

image.png

2、零知識證明(ZK ML)

想像一下,你能夠證明你運行了一個龐大的模型,但無論模型有多大,這個證明的大小都是固定的。 這就是 ZK ML 承諾的,通過 ZK-SNARKs 的神奇之處實現。

雖然在原理上聽起來很優雅,但將深度神經網路編譯成零知識電路,然後進行證明是非常困難的。 而且這是非常昂貴的——最低成本可能是推理成本增加 1000 倍,延遲增加 1000 倍(生成證明的時間),更不用說在任何這些事情發生之前,將模型本身編譯成電路了。 最終,這種成本必須轉嫁給使用者,所以這對最終用戶來說會非常昂貴。

另一方面,這是唯一一種在密碼學上保證正確性的方法。  使用 ZK,無論模型提供者如何努力,都不能作弊。 但這樣做成本巨大,這使得這種方法在可預見的未來對於大型模型來說不切實際。

示例:EZKL、Modulus Labs、Giza

3、樂觀欺詐證明(Optimistic ML)

樂觀的方法是信任,但要進行驗證。  我們假設推理是正確的,除非證明相反。 如果某個節點試圖作弊,「觀察者」在網路中可以指出作弊者,並使用欺詐證明來挑戰他們。 這些觀察者必須始終在鏈上觀察,並在自己的模型上重新運行推理,以確保輸出是正確的。

這些欺詐證明是 Truebit 風格的互動式挑戰-回應遊戲,在鏈上重複對模型執行軌跡進行二分,直到找到錯誤為止。

image.png

如果這種情況真的發生了,那也將是非常昂貴的,因為這些程式龐大而內部狀態巨大——單個 GPT-3 推理成本約為 1 petaflop(10¹⁵ 浮點運算)。 但是博弈論表明,這幾乎不會發生(欺詐證明也因為代碼幾乎從不在生產中被觸發而臭名昭著地難以編寫正確)。

樂觀 ML  的優勢在於只要有一個誠實的觀察者在關注,就是安全的。 成本比 ZK ML 便宜,但請記住,網路中的每個觀察者都在重新運行每個查詢。 在均衡狀態下,這意味著如果有 10 個觀察者,安全成本必須轉嫁給使用者,因此他們將不得不支付比推理成本更多的費用(或者觀察者的數量)。

與樂觀 Rollups 一樣,不利之處在於你必須等待挑戰期過去,才能確保響應被驗證。  不過,這取決於網路參數化的方式,你可能只需要等待幾分鐘而不是幾天。

示例:Ora、Gensyn(儘管當前尚未具體說明)。

4、加密經濟學(Cryptoeconomic ML)

在這裡,我們放棄所有花哨的技術,採取簡單的方法:權益加權投票。  用戶決定有多少節點應該運行他們的查詢,它們各自透露其回應,如果響應之間存在差異,那麼異常的那個將被扣除權益。 標準的預言機內容——這是一種更直接的方法,讓使用者設置他們所需的安全級別,平衡成本和信任。 如果 Chainlink 做機器學習,這就是他們的做法。

這裡沒有什麼延遲很快——你只需要從每個節點獲得一次提交和揭示。 如果這些記錄被寫入區塊鏈,那麼技術上可以在兩個區塊內完成。

然而,安全性是最弱的。  如果多數節點足夠狡猾,它們可能會合謀。 作為使用者,你必須考慮這些節點所承擔的風險以及作弊所需的成本。 話雖如此,使用像 Eigenlayer 重新抵押和可歸屬安全性這樣的東西,網路在安全失敗的情況下可以有效地提供保險。

但這個系統的好處是使用者可以指定他們想要多少安全性。  他們可以選擇在他們的選區中有 3 個節點或 5 個節點,或者是網路中的每個節點——或者,如果他們想要冒險,他們甚至可以選擇 n=1。 這裡的成本函數很簡單:用戶為他們想要的節點數付費。 如果你選擇了 3 個,你就要支付 3 倍的推理成本。

這裡的棘手問題是:你能讓 n=1 安全嗎?在一個簡單的實現中,如果沒有人檢查,一個孤立的節點應該每次都會作弊。 但我懷疑,如果你加密查詢並通過意圖進行支付,你可能能夠模糊節點的視線,讓他們認為他們實際上是唯一回應這個任務的人。 在這種情況下,你可能能夠讓普通使用者支付的費用不到 2 倍的推理成本。

最終,加密經濟學方法是最簡單、最容易、可能也是最便宜的,但原則上是最不吸引人和最不安全的。 但一如既往,細節決定成敗。

示例:Ritual(儘管目前說明不足)、Atoma Network

5、為什麼可驗證的機器學習這麼難

你可能會想知道為什麼我們還沒有這一切?畢竟,歸根結底,機器學習模型只是非常大的計算機程式。 證明程式是否被正確執行長期以來一直是區塊鏈的基礎。

這就是為什麼這三種驗證方法與區塊鏈保護其區塊空間的方式如此相似——ZK Rollups 使用 ZK 證明,OP Rollups 使用欺詐證明,而大多數 L1 區塊鏈使用加密經濟學。  毫不奇怪,我們最終得到了基本相同的解決方案。 那麼,應用到機器學習時,是什麼使這一過程變得困難呢?

機器學習獨特之處在於,機器學習計算通常被表示為密集的計算圖,旨在在GPU上高效運行。  它們並不是設計來進行證明的。 因此,如果你想在ZK或 OP 的環境中證明機器學習計算,它們必須以使此成為可能的格式重新編譯——這非常複雜且昂貴。

image.png

ML中的第二個基本困難是非確定性,程式驗證假設程序的輸出是確定性的。  但是,如果你在不同的 GPU 架構或 CUDA 版本上運行相同的模型,你會得到不同的輸出。 即使你強制每個節點使用相同的架構,你仍然會遇到演算法中使用的隨機性問題(擴散模型中的雜訊,或 LLM 中的令牌抽樣)。  你可以通過控制隨機數發生器的種子來固定隨機性。 但即使有了這一切,你仍然面臨著最後一個令人頭疼的問題:浮點運算中固有的非確定性。

GPU中幾乎所有的操作都是基於浮點數的。  浮點數很挑剔,因為它們不是可交換的——也就是說,對於浮點數來說,(a + b)+ c 不總是等同於 a +(b + c)。 由於 GPU 高度並行化,每次執行時加法或乘法的順序可能不同,這可能導致輸出的微小差異。 鑒於單詞的離散性,這不太可能影響 LLM 的輸出,但對於圖像模型來說,可能會導致圖元值略有不同,從而使兩幅圖像無法完全匹配。

這意味著你要麼需要避免使用浮點數,這將極大地影響性能,要麼你需要允許在比較輸出時有些放鬆。 無論哪種方式,細節都很繁瑣,你不能將它們簡單地抽象掉。(這就是為什麼 EVM 不支援浮點數的原因,儘管一些區塊鏈像 NEAR 支援浮點數。)

簡而言之,去中心化的推理網路很難,因為所有細節都很重要,而現實中卻有大量的細節。

6、總結

總的來說,目前區塊鏈和機器學習顯然有很多交集,一個是創造信任的技術,另一個是急需信任的技術。 雖然每種去中心化推理方法都有其自身的權衡,但我對看到創業者如何利用這些工具來構建最佳網路非常感興趣。

注:本文代表作者的主觀觀點,不代表 Dragonfly 或其關聯公司的觀點。 Dragonfly 管理的基金可能已經投資了本文提到的某些協定和加密貨幣。 本文不構成投資建議,不應作為任何投資的依據,也不應被用來評估任何投資的優點。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。