不要信任,要驗證:去中心化推理概述

中級4/16/2024, 2:08:16 AM
區塊鏈和機器學習的交叉點很接近,但在去中心化推理中,平衡成本和信任是一個關鍵挑戰。

假設您想要運行像 Llama2–70B 這樣的大型語言模型。如此龐大的模型需要超過 140GB 的內存,這意味着您無法在家用計算機上運行原始模型。你有什麼選擇?您可能會跳到雲提供商,但您可能不太熱衷於信任單個中心化公司來爲您處理此工作負載並收集所有使用數據。那麼你需要的是 分散推理,它允許您運行 ML 模型,而無需依賴任何單一提供商。

信任問題

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

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

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

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

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

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

1. 零知識證明(ZK ML)

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

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

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

例子:埃茲克勒,模量實驗室,人類

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

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

這些欺詐證據是Truebit風格 交互式挑戰-響應遊戲,您可以在鏈上重復平分模型執行軌跡,直到找到錯誤。

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

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

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

例子:不是,重訪 (盡管目前尚未明確)

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

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

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

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

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

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

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

例子:儀式 (盡管目前尚未明確),原子網絡

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

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

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

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

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

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

這意味着您要麼需要避免使用浮點,這意味着對性能的巨大打擊,要麼您需要在比較輸出時允許一些寬松。不管怎樣,細節都很復雜,你無法完全抽象出來。 (事實證明,這就是爲什麼 EVM不支持 浮點數,盡管有些區塊鏈喜歡靠近 做。)

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

綜上所述

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

但我寫這篇文章並不是爲了作爲最後的結論——我實時思考了很多這些想法,並與人們進行了很多充滿活力的辯論。我一直發現寫作是檢驗我的想法的最佳方式。如果您正在這個領域構建一些東西,請伸出援手!我一直很想了解你正在做什麼——如果你能證明我錯了,那就更好了。

聲明:

  1. 本文轉載自[蜻蜓研究],著作權歸屬原作者[Haseeb Qureshi],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

不要信任,要驗證:去中心化推理概述

中級4/16/2024, 2:08:16 AM
區塊鏈和機器學習的交叉點很接近,但在去中心化推理中,平衡成本和信任是一個關鍵挑戰。

假設您想要運行像 Llama2–70B 這樣的大型語言模型。如此龐大的模型需要超過 140GB 的內存,這意味着您無法在家用計算機上運行原始模型。你有什麼選擇?您可能會跳到雲提供商,但您可能不太熱衷於信任單個中心化公司來爲您處理此工作負載並收集所有使用數據。那麼你需要的是 分散推理,它允許您運行 ML 模型,而無需依賴任何單一提供商。

信任問題

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

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

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

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

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

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

1. 零知識證明(ZK ML)

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

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

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

例子:埃茲克勒,模量實驗室,人類

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

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

這些欺詐證據是Truebit風格 交互式挑戰-響應遊戲,您可以在鏈上重復平分模型執行軌跡,直到找到錯誤。

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

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

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

例子:不是,重訪 (盡管目前尚未明確)

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

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

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

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

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

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

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

例子:儀式 (盡管目前尚未明確),原子網絡

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

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

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

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

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

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

這意味着您要麼需要避免使用浮點,這意味着對性能的巨大打擊,要麼您需要在比較輸出時允許一些寬松。不管怎樣,細節都很復雜,你無法完全抽象出來。 (事實證明,這就是爲什麼 EVM不支持 浮點數,盡管有些區塊鏈喜歡靠近 做。)

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

綜上所述

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

但我寫這篇文章並不是爲了作爲最後的結論——我實時思考了很多這些想法,並與人們進行了很多充滿活力的辯論。我一直發現寫作是檢驗我的想法的最佳方式。如果您正在這個領域構建一些東西,請伸出援手!我一直很想了解你正在做什麼——如果你能證明我錯了,那就更好了。

聲明:

  1. 本文轉載自[蜻蜓研究],著作權歸屬原作者[Haseeb Qureshi],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!