月升問題

Lesswrong·

本文探討了「月升問題」,即程式驗證無法應對未預見的現實複雜性,並提出未來的生成式機器學習模型或許能透過預測新穎情境來實現強健的正確性。

1960 年 10 月 5 日,位於格陵蘭圖勒(Thule)的美國彈道飛彈預警系統站顯示,有大批蘇聯飛彈正向美國本土襲來。幸運的是,在隨即召開的非正式威脅評估會議上,常識佔了上風:當時國際局勢並非特別緊張;該系統才剛安裝不久;赫魯雪夫(Kruschev)人就在紐約;總而言之,蘇聯發動大規模攻擊的可能性微乎其微。結果,美方並未發動毀滅性的反擊。問題出在哪裡?原來是月亮升起了,它將雷達訊號反射回了地球。毋庸置疑,該系統的設計者並未預見到這種月球反射現象。

在過去的十年中,國防部花費了數百萬美元開發一種名為「程式驗證」(program verification)的新電腦技術——這是電腦科學的一個分支,用其術語來說,其任務是「證明程式的正確性」。[...]

我們大可問問,這項新技術意味著什麼?我們對此掌握得如何?例如,如果 1960 年的預警系統被證明是正確的(事實並非如此),我們能否避免月亮帶來的問題?如果有可能證明用於控制自動「預警即發射」(launch-on-warning)系統的程式是正確的,這是否意味著不會發生災難性的事故?在目前提議的系統中,電腦將在幾秒鐘內做出發射決定,根本沒有時間進行任何人工干預(更不用說思考赫魯雪夫是否在紐約了)。程式驗證技術是否具有足夠的前景,以至於如果這些新系統都能被證明是正確的,我們晚上就能睡得更安穩?

— 摘自 Brian Cantwell-Smith 的《正確性的極限》(The Limits Of Correctness

劇透:Cantwell-Smith 問題的答案是「否定」的。再多的程式驗證也無法解決月升問題。正如 Cantwell-Smith 解釋得很好,程式驗證的根本問題在於,人們只能驗證程式是否符合「規範」(specification),而不能驗證該規範在現實世界中是否符合人們的預期。而在實踐中,規範本身的正確性並不比程式高出多少。如果工程師在編寫程式時沒有意識到需要考慮月升,那麼他們在編寫規範時同樣不會意識到需要考慮月升。

……然而,我主張月升問題在原則上並非完全無法解決。在原則上,我們可以編寫出能正確處理月升及現實世界所有其他複雜情況的核預警軟體,而不需要工程師預先知道所有這些複雜情況,不需要預先獲得關於這些情況的詳盡數據,也不需要僅僅猜測(例如)機器學習系統會以預期的方式進行分佈外(off-distribution)泛化。在原則上,證明「魯棒正確性」(robust correctness)是可能的——即證明核預警系統即使在未曾預料的新情況下,仍能(以高機率)按預期運行。當然,這種證明與今天的「程式驗證」完全不同,事實上,它可能根本不會借鑒程式驗證的理論或工具。

本文將勾勒出我構想中此類系統與證明的樣貌及其局限性。

機器學習部分

我將假設一種特定的機器學習(ML)架構,並非因為我認為這是實現月升魯棒系統的必要或唯一方式,而僅僅是為了有一個具體的形象。

在極高層次上,當今的圖像模型接收一大堆獨立的正態分佈噪聲,通過一個學習到的函數運行,然後輸出一個看起來很真實的圖像。我們想像一個類似的東西,但具有更多的數據模態:一個生成式模型,它接收一堆獨立噪聲,通過學習到的函數運行,並在其所有模態中輸出看起來真實的數據,無論是圖像(如衛星監控)、文本(如包含赫魯雪夫行程的新聞標題)、雷達讀數等等。

與當今的圖像生成器一樣,這種系統在原則上也可以用於預測而非生成。它是一個生成式概率模型;定義其分佈 P[data] 的函數可能很複雜,但在原則上,你可以用它進行所有正常的概率運算。

我們不會擔心系統具體是如何訓練的;只需想像它是某種尚未被發現的未來技術。我們假設該系統在很大程度上可以進行在線學習(online learning),並且其預測在分佈外具有良好的泛化能力。

一種行不通的技術:監督式學習

現在,一個直觀的想法是在系統的多種數據模態中加入一個單位元(one-bit)通道,指示核交換是否已經啟動。然後,該系統就可以像預測其他所有事物一樣來預測這個位元。

遺憾的是,我們在現實世界中關於啟動核交換的訓練案例為零。(好吧,技術上還有廣島和長崎,但對於學習假設的現代核交換來說,這可能是相當具誤導性的例子。)我們可以偽造一些人工案例,但這樣我們又回到了月升問題:就像工程師試圖制定規範時不可避免地會遺漏月升等重要的現實現象一樣,工程師試圖製作人工數據時也不可避免地會遺漏月升等重要的現實現象。當使用現實世界的數據訓練時,我願意假設系統能很好地泛化以預測新的現實世界原始數據,即使是在分佈外。但我願意假設一個在人工案例上訓練的系統能很好地泛化到分佈外的現實數據,原因與我不願意假設人工編寫的規範是正確的一模一樣。人類在這一點上並不具備魯棒性。

結論:為了檢測核交換,我們的系統必須採取除了最基本的監督式學習設置之外的其他方法。

「隱變量」與問題陳述

我們的核心假設是,在 ML 系統的某個地方,無論是「某一點」還是「分散開來」或以複雜的方式嵌入,系統都代表了其內部對於核交換是否已啟動的指標。也許它是某個「神經元」的激活(但可能不是)。也許它是某一層激活空間中某個線性方向的激活(更有可能,但仍可能不是)。最有可能的是,它是某種我們尚未弄清楚的嵌入。無論它是什麼,我們都將這種表示稱為代表核交換啟動的「隱變量」(latent variable)。

現在,月升問題的重點不僅僅是產生一個有效的系統,儘管這是目標的必要組成部分。重點也不僅僅是產生一個魯棒有效的系統,儘管這也是必要組成部分。重點是產生一個可證明魯棒有效的系統,即一個我們可以證明系統功能所依賴的核心承重假設的系統。這就是為什麼我們預先討論了程式驗證:程式驗證旨在證明程式將會運行。程式驗證的工具對這個問題並非特別有用,但證明我們核心承重假設的問題依然存在。

所以問題是:關於未來 ML 系統內部某個據稱代表核交換啟動的隱變量,我們在原則上可以通過數學證明哪些屬性(假設它們確實是真的),而這些屬性加在一起足以確立我們基於該隱變量的核預警系統實際上能魯棒地工作? 這就是我們的月升問題。

一些候選屬性與假設

在本節中,我將提出一份候選的屬性與假設清單。我不確定這是否是理想的清單,甚至不確定它是否有效;也許我遺漏了關鍵點!重點在於我們手頭有一個非常具體的問題,因此我們可以非常具體地討論給出的屬性和假設清單是否足夠——如果不足夠,該如何更改,或者最近的無障礙選項是什麼。我這裡的主要目的不是倡導這份特定的清單,而是將月升問題作為一個有用的測試案例,用來思考「安全」人工智慧的屬性。

假設 1:能力

我願意假設我們的 ML 系統有能力預測現實世界的原始數據,即使是在分佈外。這很重要,因為它排除了一些不太有趣但否則無法證偽的失敗模式——例如,在某個特定時間,我們整個宇宙的物理定律突然變成了完全不同的東西,核交換的整個概念完全失去了意義。(核交換的概念仍有可能因為更平凡的原因而失去意義!我們稍後會討論這種可能性。)

我願意假設這一點的原因是,這是一個純粹的核心能力問題。只要 ML 系統不滿足這個假設,它可能就還沒那麼危險(目前如此)。

數學屬性 1:真實模式與對應原理

首先,我們希望建立訓練數據中存在某種特定模式(因此也存在於產生訓練數據的任何世界中,即我們的物理世界)。對於最簡單的版本,已經有很多工具了;人們只需要能夠比最大熵(maxent)預測得更好。但我們想要一些更有力的東西。

理想情況下,我們想要一個帶有「對應原理」(Correspondence Principle)的「真實模式」概念。對應原理是指新模型應該在舊模型預測正確的地方與舊模型保持一致——例如,廣義相對論必須在大範圍內還原為牛頓引力,因為在那個範圍內牛頓引力的預測是正確的;否則我們的「廣義相對論」模型就存在能力缺陷。我們希望對於我們使用的任何「真實模式」概念都有一個對應原理的版本——即某種原則,說明如果我們發現了一個符合某些規則的模式,那麼任何未來的模型都必須在該模式目前預測正確的範圍內與之保持一致;否則新模型就存在能力缺陷。

這個屬性將從一組可以針對當前系統進行驗證的假設中,通過數學方式證明。

數學屬性 2:收斂分解

作為一個簡單的例子,想像一下我們的 ML 系統發現的一個真實模式看起來像某個空間中的聚類。那麼我們可能會猜測,廣泛的試圖預測該模式的系統都會在內部表示數據點的聚類標識符。特別是,廣泛的系統會將聚類標識符分解(factor out)出來,即以一種不與其他東西糾纏的方式來表示它,因為系統可能需要多次使用該 ID 來進行預測,如果聚類 ID 的表示與其他東西糾纏太深,那麼其他東西就會干擾預測。

這是一個(概念上的)收斂分解(convergent factorization)故事的具體例子:這是在許多不同的系統架構中,某個特定內部變量以與系統其他內部組件分離的方式被表示的原因。

理想情況下,我們希望在 ML 系統預測特定真實模式(即與核戰略有關的某些模式)的機制中,識別出一個對應於核交換啟動的收斂分解表示。數學上的挑戰是證明該表示的收斂分解。理想情況下,我們希望分解收斂所涵蓋的「廣泛系統」既包括 ML 系統,也包括人類大腦。這樣,我們就有數學依據來假設我們在 ML 系統中識別出的表示與人類大腦中的某種表示相匹配。

如果我們做得更精細,引入腦掃描技術,我們甚至可能直接確立 ML 系統中識別出的表示與人類大腦中「核交換啟動」這個詞所指向的心理表示相匹配。到那時,我們才真正、妥善地解決了月升問題。

局限性

從概念上講,上述假設和屬性足以確立:

  • ML 系統將在現實世界的分佈外進行泛化預測。
  • ML 系統內部識別出的表示,魯棒地對應於人類關於核交換啟動的概念。

……但這並不意味著人類關於核交換啟動的概念本身會在分佈外泛化。

一個典型的簡單例子:想像在分佈內,我們有兩個聚類,分別對應汽車和卡車:

  • 但隨後,有人製造了一堆介於汽車和卡車之間的新型車輛,形成了一個完整的頻譜,現在車輛的分佈看起來像這樣:

在那種情況下,將「汽車」和「卡車」作為截然不同的類別來談論甚至都沒有意義了,至少對於新車輛來說是這樣。(汽車/卡車標籤在舊車輛上仍然有用,這也是證明仍然可以提供某些保證的地方:對應原理會說,任何新模型在預測舊車輛時仍必須還原為舊的聚類模型,否則新模型的能力就是次優的。而收斂分解隨後會說,新模型在處理舊汽車時仍會收斂地使用汽車/卡車標籤。)

即便如此,如果核發射啟動表示所基於的原始真實模式無法泛化到新數據,這在原則上至少是一個可檢測*的問題。因此,如果以及當核發射領域出現類似汽車/卡車的問題時,系統理應會拋出錯誤並介入人工處理。

*感謝 Steve Petersen,特別是 Ramana Kumar 向我介紹了本文開頭引用的論文。

Lesswrong

相關文章

  1. 生成式AI在軟體工程中的現實面

    Hacker News · 4 個月前

  2. 為預警信號做準備

    3 個月前

  3. 關於形式方法與AI安全性的信念

    6 個月前

  4. 為何 Rust 解決了我們已不再有的問題——改用 AI 和形式化證明

    Hacker News · 4 個月前

  5. 「視野」的「長度」

    7 個月前