Dragonfly Capital 合夥人:去中心化推理的信任問題與驗證挑戰

作者:Haseeb Qureshi,Dragonfly Capital 合夥人來源:medium 翻譯:善歐巴,金色財經

假設你想要運行像Llama2–70B 這樣的大型語言模型。如此龐大的模型需要超過140GB 的內存,這意味著你無法在家用電腦上運行原始模型。你有什麼選擇?你可能會跳到雲端供應商,但你可能不太熱衷於信任單一中心化公司來為你處理此工作負載並收集所有使用資料。那麼你需要的是去中心化推理,它可以讓你在不依賴任何單一提供者的情況下運行機器學習模型。

信任問題

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

在中心化的世界中,你可能會相信像OpenAI 這樣的公司會誠實地這樣做,因為他們的聲譽受到威脅(在某種程度上,LLM 的品質是不言而喻的)。但在去中心化的世界中,誠實不是假設的──而是經過驗證的。

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

最簡單的方法是將模型作為鏈上智慧合約運行。這肯定會保證輸出得到驗證,但這非常不切實際。 GPT-3 表示嵌入維度為12,288 的單字。如果你要在鏈上進行一次如此規模的矩陣乘法,按照當前的Gas 價格計算,將花費約100 億美元——計算將連續大約一個月填滿每個區塊。

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

在觀察了整個情況之後,我很清楚已經出現了三種主要方法來解決可驗證的推理:零知識證明、樂觀詐欺證明和加密經濟學。每個都有其自己的安全性和成本影響。

1.零知識證明(ZK ML)

想像一下,能夠證明你運行了一個大型模型,但無論模型有多大,證明實際上都是固定大小的。這就是ZK ML 透過ZK-SNARK 的魔力所承諾的。

雖然原則上聽起來很優雅,但將深度神經網路編譯成零知識電路並進行證明是極其困難的。它的成本也非常高——至少,你可能會看到1000 倍的推理成本和1000 倍的延遲(產生證明的時間),更不用說在這一切發生之前將模型本身編譯成電路了。最終,該成本必須轉嫁給用戶,因此對於最終用戶而言,這最終將非常昂貴。

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

例:EZKL、Modulus Labs、Giza

2.樂觀詐欺證明(Optimistic ML)

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

這些詐欺證明是Truebit 風格的互動式挑戰-回應遊戲,你可以在鏈上反覆平分模型執行軌跡,直到找到錯誤。

VhKqei2nNnECDNicDjS8TBM5MWkbZQO49Tjqo4W7.png

如果這種情況真的發生,其成本將非常高昂,因為這些程序非常龐大並且具有巨大的內部狀態——單一GPT-3 推理的成本約為1 petaflop(10^5 浮點運算)。但博弈論表明這種情況幾乎永遠不會發生(眾所周知,詐欺證明很難正確編碼,因為程式碼幾乎永遠不會在生產中受到攻擊)。

樂觀的好處是,只要有一個誠實的觀察者在關注,機器學習就是安全的。成本比ZK ML 便宜,但請記住,網路中的每個觀察者都會自行重新執行每個查詢。在均衡狀態下,這意味著如果有10 個觀察者,則安全成本必須轉嫁給用戶,因此他們將必須支付超過10 倍的推理成本(或無論觀察者有多少)。

與樂觀總結一樣,缺點是你必須等待挑戰期過去才能確定回應已得到驗證。不過,根據網路參數化的方式,你可能需要等待幾分鐘而不是幾天。

範例:Ora、Gensyn(儘管目前未指定)

3.加密經濟學(加密經濟ML)

在這裡,我們放棄所有花俏的技術,做簡單的事:股權加權投票。使用者決定應該有多少個節點運行他們的查詢,每個節點都會顯示他們的回應,如果回應之間存在差異,那麼奇怪的節點就會被削減。標準的預言機東西-這是一種更直接的方法,可以讓使用者設定他們想要的安全級別,平衡成本和信任。如果Chainlink 正在做機器學習,他們就會這樣做。

這裡的延遲很快——你只需要每個節點的提交-顯示。如果將其寫入區塊鏈,那麼從技術上講,這可能會發生在兩個區塊中。

然而,安全性是最薄弱的。如果夠狡猾,大多數節點可以理性地選擇共謀。作為用戶,你必須推斷這些節點的風險有多大以及作弊將花費多少成本。也就是說,使用Eigenlayer 重新抵押和可歸因安全之類的東西,網路可以在安全失敗的情況下有效地提供保險。

但該系統的優點在於使用者可以指定他們想要的安全程度。他們可以選擇在仲裁中包含3 個節點或5 個節點,或網路中的每個節點- 或者,如果他們想要YOLO,他們甚至可以選擇n=1。這裡的成本函數很簡單:使用者為他們想要的法定數量的節點付費。如果選擇3,則需要支付3 倍的推理成本。

這裡有一個棘手的問題:你能讓n=1 安全嗎?在一個簡單的實作中,如果沒有人檢查,一個單獨的節點應該每次都作弊。但我懷疑,如果你對查詢進行加密並透過意圖進行付款,你可能能夠向節點混淆它們實際上是唯一響應此任務的節點。在這種情況下,你可能可以向一般使用者收取不到2 倍的推理成本。

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

範例:Ritual(儘管目前未具體說明)、Atoma Network

為什麼可驗證的機器學習很難

你可能想知道為什麼我們還沒有擁有這一切?畢竟,從本質上來說,機器學習模型只是非常大型的電腦程式。長期以來,證明程式正確執行一直是區塊鏈的基礎。

這就是為什麼這三種驗證方法反映了區塊鏈保護其區塊空間的方式——ZK rollups 使用ZK 證明,optimistic rollups 使用詐欺證明,而大多數L1 區塊鏈使用加密經濟學。毫不奇怪,我們得出了基本上相同的解決方案。那麼,是什麼讓這在應用於機器學習時變得困難呢?

ML 是獨一無二的,因為ML 運算通常表示為密集計算圖,旨在在GPU 上有效運作。它們並不是為了被證明而設計的。因此,如果你想在ZK 或樂觀環境中證明ML 計算,則必須以使其成為可能的格式重新編譯——這是非常複雜且昂貴的。

paF36c1QADZiYpPAx1YYBOdr04YS8fzHw0n61gWK.png

機器學習的第二個基本困難是不確定性。程式驗證假設程式的輸出是確定性的。但如果你在不同的GPU 架構或CUDA 版本上運行相同的模型,你會得到不同的輸出。即使你必須強制每個節點使用相同的架構,你仍然會遇到演算法中使用的隨機性問題(擴散模型中的噪聲,或LLM 中的令牌取樣)。你可以透過控制RNG種子來修復隨機性。但即便如此,你仍然面臨最後一個威脅性問題:浮點運算固有的不確定性。

GPU 中的幾乎所有運算都是在浮點數上完成的。浮點很挑剔,因為它們不具有關聯性-也就是說,對於浮點來說(a + b) + c 並不總是與a + (b + c) 相同。由於GPU 是高度並行化的,因此每次執行時加法或乘法的順序可能會有所不同,這可能會導致輸出出現微小差異。考慮到單字的離散性質,這不太可能影響LLM 的輸出,但對於圖像模型來說,它可能會導致像素值略有不同,從而導致兩個圖像無法完美匹配。

這意味著你要么需要避免使用浮點,這意味著對性能的巨大打擊,要么你需要在比較輸出時允許一些寬鬆。無論哪種方式,細節都是複雜的,你無法完全將它們抽象化。 (事實證明,這就是為什麼EVM不支援浮點數,儘管NEAR等一些區塊鏈支援浮點數。)

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

結語

目前,區塊鏈和機器學習顯然有許多共同點。一種是創造信任的技術,另一種是迫切需要信任的技術。雖然每種去中心化推理方法都有其自身的權衡,但我非常有興趣了解企業家如何使用這些工具來建立最佳的網路。

Total
0
Shares
Related Posts