窮人的量子比特:量子計算機太難造了,先試試概率計算機?
選自IEEE Spectrum
作者:Kerem Camsari、Supriyo Datta
機器之心編譯
機器之心編輯部
近年來,隨着摩爾定律走向消亡,量子計算機被人們寄予厚望。許多評論者指出,如果工程人員能夠設計出實用的量子計算機,人類的計算方式將發生結構式轉變。
但是,這一斷言有個重要的「如果」。
從理論上來說,量子計算機前景廣闊,但建造一臺實用的量子計算機需要克服巨大的困難。一些懷疑者甚至認爲,由於技術難度過大,人們可能無法在可預見的未來建造出一臺通用量子計算機。當然,也有人比較樂觀,認爲只要花 5-10 年就能實現這一願景,這些人來自谷歌、IBM、英特爾等正在建造量子計算機的科技巨頭。
但是,即使整個量子計算產業的發展比支持者預期的要慢很多,有一件事似乎是確定的。量子計算已經激發了人們對概率在計算系統中所扮演角色的深刻理解——正如已故物理學家理查德 · 費曼在上世紀 80 年代將這一想法重新帶回人們視野時所期望的那樣。
在 2012 年開始着手概率比特(p-bit)的研究時,我們尋求的正是這種理解。「概率比特」是基於量子比特(qubit)起的一個名字。費曼曾將這種這種概率計算機視爲他所展望的量子計算機的一種對比。因此,我們問了自己一個問題:怎麼才能造一個出來?
有兩個磁化方向的磁體可以存儲一個比特。早期的計算機使用這種方法制造出了磁芯存儲器。然而,將磁芯存儲器變小是非常困難的,因爲它的體積越小,性質就越不穩定。
在 2019 年的一篇《Nature》論文中,我們成功利用了這個看起來像 bug 的特點,使用不穩定的小磁體來實現 p-bit。在日本東北大學研究者的幫助,我們構建了一臺有 8 個 p-bit 的概率計算機。
這種新的基於磁體的 p-bit 在建造概率計算機時並不是必需的。其實,早些時候,我們已經構建了一種利用複雜電子電路從確定性比特中產生僞隨機序列以實現 p-bit 的概率計算機。富士通等公司也已經開始銷售類似的概率計算機。但是,使用不穩定的磁體作爲基本構建塊,我們就可以用幾個晶體管(而不是幾千個)來實現一個 p-bit,這使得大型概率計算機的構建成爲可能。
在這樣一臺計算機中,p-bit 組成的系統從初始狀態演化到最終狀態,並通過許多可能的中間狀態之一。計算機走哪條路徑完全是一種偶然,每條路徑都有一定的概率。把所有可能路徑的概率加起來,你就得到了到達一個給定最終狀態的總概率。
量子計算機也做類似的事情,但它用的是量子比特,而不是概率比特。這就意味着,這裡每條路徑都有物理學家所說的概率振幅,它可以是負的。更準確地說,它是一個複數,既有實部也有虛部。
在量子計算機中,要想確定從某個初始狀態到最終狀態的總體概率,你首先要把所有可能路徑的振幅相加,得到最終狀態的概率振幅。最終的振幅也是一個複數,然後求其大小的平方得到實際概率,這個數字介於 0 和 1 之間。
簡而言之,這就是概率計算機和量子計算機之間的關鍵區別。前者將所有概率加起來,後者將複數概率振幅加起來。
這種差異其實非常重要。概率是一個小於 1 的正數,所以加上一個額外的路徑只會提高最終概率。但概率振幅是負數,這就意味着增加一個額外的路徑可能會抵消一個現有的路徑。這就好像一條路徑有一個負的概率。
量子計算的力量直接來自這種使概率爲負的能力。用於整數分解的 Shor 以及用於數據搜索的 Grover 等知名算法都會小心翼翼地編排可用的中間路徑,以確保那些導致錯誤輸出的路徑被抵消,而那些通往正確答案的路徑可以被添加。
但是,這一力量的實現是要付出代價的。攜帶這些複數振幅的量子比特必須被小小翼翼地保護,以免受環境的影響。這通常需要極低的溫度。相比之下,在室溫下使用更簡單的技術就可以創建概率計算機。但這樣的計算缺乏負概率的魔力,因此只對不需要路徑抵消的算法有效。
用概率比特模擬量子計算機在理論上是可能的,但這並不是一個實用的策略。儘管如此,與確定性計算機相比,概率計算機還是能在很多重要問題上提供顯著加速,這就是爲什麼我們對建造這種計算機如此感興趣。
概率計算機如何工作?其實,它的原理和我們日常使用的數字系統非常不同,甚至大多數計算機工程專業的學生都對此知之甚少。因此,我們想以對話的方式聊一聊這個話題。
對話人物的名字取自伽利略的一本書——《兩種世界體系的對話》。這是一本寫得很機智的書,書中內容以三個人物的對話展開——Simplicio(主張地心說的亞里士多德主義者)、Salviati(主張日心說的哥白尼主義者)和 Sagredo(在這場辯論中持中立態度的博學智者)。在這場對話中,Salviati 系統地駁斥了 Simplicio 的所有觀點,並得出了伽利略所主張的關於地球圍繞太陽運轉的證明。Sagredo 最終總結道,睿智的 Salviati(其實就是伽利略本人在書中的投影)是正確的。亞里士多德錯了。然後三人退下,享受餐點和美酒。
本文的對話也在這三人之間展開,只是角色的使命略有變化。Salviati 負責傳達作者的知識和觀點;Sagredo 可以看成讀者(你);Simplicio 只是路人甲。三人在飛機上相遇。
以下是對話部分:
什麼是「概率計算機」
Sagredo:我看你在讀 IEEE 雜誌,你是電氣工程師嗎?
Salviati:是啊,我是研究計算的。
Sagredo:你最近在忙什麼有趣的事情嗎?
Salviati:我和我的同事在研究一種新的計算方法。你知道,我們的所有電子設備,比如手機,都是基於電路的,每個輸入都有對應的輸出,比如輸入 5 和 6,這些設備就可以給出它們相乘的結果 30。但現在,我們構建了一個反向的電路:給一個數字 30,設備可以給出你所有的輸入組合,比如 5 和 6、15 和 2、10 和 3 以及 30 和 1。
Sagredo:聽起來很有意思。但這是做什麼用的?
Salviati:它有很多用途,因爲現在很多問題反過來都會變得很難,比如乘法計算就比因式分解簡單得多。很多小孩都可以迅速算出 711 x 85 等於 65535,但把 65535 分解爲 711 x 85 就沒那麼簡單了,進一步得到其他組合(比如 257 x 255)就更難了。
Sagredo:我明白了。但是我聽說現在的計算機都能打敗圍棋大師,那解決這類問題也不難吧?
Salviati:的確,現在的數字計算機可以打敗圍棋大師,但鮮爲人知的是,它們要消耗 10 兆瓦的電才能做到這一點,而人類圍棋大師只需要消耗 10 到 20 瓦。人們對降低複雜計算的能耗非常感興趣,我們認爲我們正在研究的「反向計算」可以實現這一願景。
Sagredo:您應該很難向我這種小白解釋你們的設計理念吧?
Salviati:確實得多花點時間,我需要畫幾張畫。(Salviati 看到旁邊的人有張沒用過的餐巾紙。)不好意思,可以用一下您的餐巾紙嗎?
Simplicio:沒問題。
Salviati:(Salviati 放下小桌板開始畫畫。)你看,在數字計算機中,所有的東西都能用比特(0 和 1)來表示,後者又可以用擁有兩種狀態的物理實體來表示,比如磁鐵。
工程師們製造複雜的電路來執行特定的操作。比如,我們可以構造一個電路來做一比特二進制乘法運算:輸出的比特是 0 或 1(我們稱它爲 C),具體結果取決於輸入比特 A 和 B 的乘積。
Sagredo:這和你們的反向電路區別在哪兒?
Salviati:我們用 p-bit 來構建電路,它既不是 0 也不是 1,而是在二者之間快速波動,一半的時間是 0,一半的時間是 1。
Sagredo:那這有什麼用呢?這些比特幣根本不攜帶任何信息。
Salviati:沒錯,但如果我們讓它們互相溝通,這些比特幣就有用了。你看,如果它們彼此之間不互相溝通,它們就會獨立地在 0 和 1 之間波動。我們可以畫一個像這樣的直方圖來表示 A、B 和 C 所有組合的概率。八種可能性中的每一種都是等可能的。
Salviati:現在假設 A、B 和 C 可以互相溝通,而且它們喜歡相互傾聽和模仿。那麼如果 A 變成 1,B 和 C 也會變成 1。如果 A 變成 0,B 和 C 也會相繼變成 0。現在再畫一個直方圖,我們可以看到峰值只剩下兩個。
此時,我們的 p-bit 小磁體仍舊保持波動,但它們的波動是一致的。
Sagredo:就好像你有了一個在 0 和 1 之間波動的大磁體,但這個大磁鐵看起來也沒多大用。
Salviati:確實如此。如果我們有一個非常積極的溝通,就能得到一個大磁體。爲了使這一點有用,我們必須巧妙地設計它們之間的通信,以便出現所需的一組峰值。
舉個例子,如果我們想實現 1 比特乘法器,我們只需要 8 個峰值中的 4 個出現。對於 ,我們想要看到的是:, , , 。
如果能通過精心設計 p-bit 之間的通信來實現這一點,我們就得到了前面提到的可逆電路。
Sagredo:這是怎麼做到的?
Salviati:讓三個磁體在四種可能之間自由穿梭:, , , 。
但如果我們強制地將 A 和 B 磁體鎖定爲 0,那麼這些磁體就只剩下了一種選擇:,也就是說,C 只能爲 0。
Sagredo:這就像一個以正向模式運行的乘法器:0 x 0 = 0,對不對?
Salviati:是的。如果要以反向模式運行,我們可以將 C 鎖定爲 0。如此一來,該系統將在以下三個選項之間波動:, , 。這是反向的乘法器。給定輸出 0,系統告訴我們有三種可能的輸入與之對應,分別是:0 x 0, 0 x 1, 和 1 x 0。
Sagredo:我明白了。但是你如何在你的 p-bit 之間設計這種神奇的通信呢?換句話說,你怎麼知道要設計什麼樣的通信方式?
Salviati:有一些成熟的方法可以用來確定創建一組所需的峰值需要何種通信方式。
Sagredo:你這是在閃爍其詞。根據你前面的說法,我還以爲這是你們自己想出來的,所以才那麼興奮。
Salviati:事實上,這部分是衆所周知的,至少對某些應用是這樣。一些公司正在使用普通硬件和隨機數生成器來構建概率計算機,以模擬我剛纔說的概率位翻轉。但這樣做會浪費很多能量,很快就能把筆記本電腦的電池耗盡。我們的電路只需要三個晶體管和一個特殊的硬件元件就能實現同樣的功能,這個硬件元件的內在物理特性產生了隨機數。
Sagredo:能否介紹一下這個特殊元件?
Salviati:我們使用了一種名爲磁穿隧接面(magnetic tunnel junction)的東西來建造一個簡潔的裝置,該裝置可以讓 p-bit 溝通起來非常容易。我們設它的輸出爲 V_out,這個輸出是波動的。如果 V_in 爲 0,V_out 就會有 50% 的時間爲 1,50% 的時間爲 0。但如果 V_in 是正的,V_out 就更有可能是 0。如果 V_in 是負的,V_out 就更有可能是 1。如果你讓 V_in 一直是正的或負的,你就可以將輸出「鎖定」爲某個狀態。
這就是每個 p-bit 通過輸入電壓 V_in 傾聽其他 p-bit 的方式,它通過輸出電壓 Vout 來「說話」。比如,p-bit A 可以通過將 A 的輸出反饋給 B 的輸入來與 p-bit B 通信。我們用這個裝置構造了可逆電路。到目前爲止,我們還沒有做什麼驚天動地的事情:它們只是一個概念性的證明。但我們已經表明,這樣的設備可以用先進的技術構造出來。有朝一日,我們可以利用這樣的技術構造出巨大的電路,以解決現實世界的問題。
Sagredo:現實世界的問題是指哪些問題?
Salviati:比如優化問題,在這類問題中,你需要找到使某個成本函數最小化的配置。
人們每天都在解決優化問題,比如找到遞送一堆包裹的最佳順序,使得快遞員走的距離最短。類似的問題可以映射到我們使用的基本架構上。每個問題都需要特定的連接模式。一旦我們弄清楚這些模式並把它正確地連接起來,p-bit 電路就能以配置峰值的形式給出答案。
Sagredo:Okay,你激發了我對這個系統的興趣。但我們馬上就要着陸了,還有什麼渠道能讓我瞭解你們的研究嗎?
Salviati:我們最近發表了一篇文章,介紹瞭如何構造一臺能夠計算親屬之間遺傳親緣程度的 p-bit 計算機,你可以看一下。
文章鏈接:https://spectrum.ieee.org/computing/hardware/waiting-for-quantum-computing-try-probabilistic-computing
兩年過去,研究者取得了哪些新進展
自 2019 年展示用於概率計算機的硬件以來,普渡大學等機構的研究團隊還利用現有的硅技術,通過 Amazon Web Services 公開提供的傳統硬件模擬了一臺具有數千個 p-bit 的概率計算機(相關鏈接:https://ieeexplore.ieee.org/abstract/document/9173656)。
此外,研究者還發表了幾篇關於集成單個硬件組件的進展的論文,試圖建模更大的系統,並從一開始就確保能源效率(相關鏈接:https://onlinelibrary.wiley.com/doi/abs/10.1002/adma.201906021)。
「關於 p-bit 的最佳實現目前還沒有定論。但我們已經展示了哪些是有效的,確定最佳實現是遲早的事。」普渡大學的一位電子與計算機工程教授表示。
普渡大學的概率計算研究隸屬於一個名爲「Purdue-P」的項目。從名字來看,這些研究者似乎是唯一一批從事概率計算研究的學者,但在世界的其他地方,還有一些團隊在用不同的材料和範式研究相似的技術。
普渡大學前博士後研究員 Kerem Camsari 表示,「作爲一個領域,我們着眼於自身還不能解決的計算問題。同時我們也在想,現在有數字計算,有量子計算,還有什麼?」「其實,從更高的層次來看,有很多東西都可以被稱作『概率計算』」。
https://spectrum.ieee.org/computing/hardware/waiting-for-quantum-computing-try-probabilistic-computing
https://www.purdue.edu/newsroom/releases/2021/Q1/creating-a-new-type-of-computing-thats-naturally-probabilistic.html