學界新聞
產業新聞

Google 量子糾錯技術大突破

# Google 量子糾錯技術大突破 量子電腦在實際應用和商業化中面臨的最大挑戰是其高錯誤率,為了降低錯誤率,必須使用量子糾錯(Quantum error correlation, QEC)來修正錯誤。今年 8 月底,Google(聯合 13 家大學與研究機構)在自家量子電腦上使用 QEC,成功顯著降低錯誤率,且資料儲存壽命延長了兩倍,這一成果預刊在 [arXiv](https://arxiv.org/abs/2408.13687) 上,被認為是量子電腦發展史上的一大突破。 ## 背景介紹 你手上的手機,眼前的電腦,耳旁的 AirPods,這些設備運作的基本單位是[位元](https://www.entangletech.tw/lesson/popular-02)(bit),透過 [0 與 1](https://www.entangletech.tw/lesson/basic-algorithm-02)(即電流不導通或導通)來處理數據,如數字、圖片、影片和音樂。位元的錯誤率非常低,因此我們很少在平常遇到電腦出錯,然而,這不代表位元不會出錯,例如一個原本代表「$1$」的位元,可能會因為電子誤跑出去,變成「$0$」,產生錯誤。為了降低這種錯誤的發生,我們可以使用多個位元表達同一個訊息,例如: \begin{split} 1\rightarrow 11111 \end{split} 即使有一個位元變成 $0$,如「$11011$」,我們仍然可以判斷原本應該是「$1$」而不是「$0$」。
repetion
透過多次重複表達,訊息傳遞過程中即使出現錯誤,仍能識別原始訊息

同樣,量子電腦的基本單位是量子位元(qubit)。Qubit 也會出錯,為了降低錯誤,會需要用多個 qubits 表達一個資訊,避免因為幾個 qubits 出錯而導致資訊解讀錯誤(原本要說 $1$,解讀成 $0$)。換言而之,我們會用多個 qubits 來代表一個理想 qubit 要表達的資訊,像是: \begin{split} |1\rangle_L=|11111\rangle \end{split} 原本一個理想 qubit 可以表達的資訊,要用右邊五個 qubits 來表示。左邊這種理想的 qubit 稱作 **logical qubit**(下標 L 代表 llogical),右邊這五個 qubits 則稱作 **physical qubit**。 ## 量子糾錯(QEC) 在今天的電腦中,我們可以輕易地用多個 bit 來明顯降低錯誤率,看是 0 比較多還是 1 比較多來判斷原本要表達什麼哪一個,然後將出錯的位元修正回來,接著做下一個計算。然而,量子電腦就沒那麼簡單,因為我們無法在計算過程中去得知每個 physcial qubit 上帶有什麼資訊(即「測量」,一但測量,量子態就會消失),然後知道哪些 physcial qubit 出錯並做修正。 這時候就需要 QEC,今天的主角,可以在不破壞量子態的情況下,找到出錯的 physical qubit 並修正,避免資訊因為外界干擾(noise)而受影響。QEC 的方法有很多種,而 Google 採用的是 **Surface Code**。 當 physical qubit 的錯誤率低到一個門檻時,使用 surface code 可以讓錯誤率隨著用越多 physical qubits 組成出一個 logical qubit,呈指數性下降,即: \begin{split} \epsilon_d \propto \left( \frac{p}{p_{\text{thr}}} \right)^{(d+1)/2} \qquad (1) \end{split} 其中 $\epsilon_d$ 和 $p$ 分別代表 logical 與 physical qubit 的錯誤率,$p_{thr}$ 就是前面說的閾值,$d$ 代表 distance,表示用 $d\times d$ 個 physical qubit(應該說 data qubit,下面會詳細解釋) 組合出一個 logical qubit。可以看出當 $p\ll p_{thr}$,錯誤率會隨著 $d$ 越大呈指數性下降。 這也是 Google 成果的亮點之一,他們透過強大的工程能力將 physical qubit 的錯誤率降低到可以使用 surface code 的門檻,也是歷史上首次在這門檻下進行 QEC 實驗。 ## Surface code 的工作原理 當 physical qubit 的錯誤率低於 0.1% 時,可以使用 surface code 進一步降低量子電腦的錯誤率。下圖是個由 105 個 physical qubits (圖中的圈圈)組成的超導量子晶片,我們將透過這張圖說明 surface code 的工作原理。
Google surface code
圖中每個圈圈都是 physical qubit,黃色圈圈是負責計算與儲存的 data qubit,藍色圈圈是負責檢查 data qubit 有沒有錯誤的 measure qubit,根據檢查哪類錯誤又可以細分成淺藍的 Z 型與深藍的 X 型

在 surface code 中, physical qubit 分成兩類:負責儲存與計算的 Data qubit(黃色圈圈),和負責檢測錯誤的 measure qubit(藍色圈圈,又稱作 Stabilizer)。其中,data qubit 的錯誤可以分成兩類,X 型錯誤與 Z 型錯誤(詳看 [Bloch sphere](https://www.entangletech.tw/lesson/basic-algorithm-09)),因此 stabilizer 還可以細分成兩類,圖中位於淺藍框框的 stabilizer 是負責偵測 data qubit 是否有 Z 型錯誤,位於深藍框框的則為 X 型錯誤。 在運算的過程中,會不時地確認 data qubit 沒有出錯,出現錯誤的地方就作修正,確保資料無誤後才繼續做下一步運算。這段過程包含以下步驟: 1. 將 X 與 Z stabilizer 初始化為 $|0\rangle$ 2. 對 data qubit 與 stabilizer 做一系列 gate 操作(但不會影響到 data qubit 的狀態)(見下圖) 3. 測量 X 與 Z stabilizer,記錄測量結果 以上三個步驟稱作一個 cycle。
stabilizer
這張圖說明第二步驟怎麼運作,黑色圈圈是 stabilizer,abcd 代表 data qubit,圖(b)是 Z stabilizer,圖(c)是 X stabilizer

Picture come from doi::10.21468/SciPostPhysLectNotes.49

圖中這種 stabilizer 分別稱作 ZZZZ 與 XXXX stabilizer,stabilizer 的種類很多,這邊僅拿最簡單的例子輔助說明,這次 Google 所使用的是 XZZX stabilizer
接著 1. 紀錄測量結果 2. 分析測量結果,推斷哪些 data qubit 出錯,以及是哪種類型的錯誤 3. 對錯誤的 data qubit 作修正 以上三個步驟叫做解碼(等等回再提到),一個 cycle 加上解碼就是 surface code 的一個循環。
這邊只是方便說明,將之視為一個循環,常常解碼動作跟不上 cycle,後面會再詳細提到
以下圖為例,測量 stabilizer 後,有兩個 Z stabilizer 報錯(圖中淺紅色框框),透過這兩個訊號我們得知紅色 data qubit 有 Z 型錯誤,我們就對該 data qubit 做 Z gate 以修正它。過程中我們都不用測量 data qubit 就能知道哪些 data qubit 出錯,錯在哪。
error
根據 stabilizer 的測量結果知道哪個 data qubit 出錯

回到圖一上方,可以看到 $d=3,5,7$ 字樣,這代表什麼意思呢?當 $d=n$ 時,代表我們用 $n\times n$ 個 data qubit 組合一個 logical qubit,所以當 $d=7$ 時,代表我們用 49 個 data qubit 組合一個 logical qubit,即: \begin{split} |0\rangle_L=|0_00_1...0_{20}...0_{47}0_{48}\rangle \end{split} 左邊下標代表第幾個 data qubit。
這邊只是做簡單舉例,實際上更複雜,不一定非得全部都是 0 才能代表 logical 的 0,也不一定是每次有錯就會修正,詳細可以看延伸閱讀的第二點
## 實驗成果 現在我們來看這次 Google 的成果。這次成果第一個亮點就是 Google 製作出的(physical) qubit 錯誤率已經低到可以使用 surface code 的門檻。不會會導致 qubit 出錯的因素有很多,很難用單一個值表示 qubit 多會出錯,下圖是這 qubit 每一種錯誤的出錯機會,整體出錯率為 8.7%。
qubit error
physical qubit 的各項錯誤累積分佈。紅線是單 qubit gate,黑線是 CZ gate,黃色就是閒置時的出錯,青色是讀取錯誤,藍色(Meas.)是整體平均。

下圖橫軸是糾錯的 cycle 數,縱軸是 logical qubit 的錯誤率。曲線越平緩,代表整體錯誤率越低。可以看見當 distance (用多少個 physical qubits 代表一個 logical qubit)越大時,logical qubit 的錯誤率越低(圖中的紅色線、淺藍線與深藍線)。
Logical qubit error rate
Logical qubit 出錯機率

下一張圖可以更直觀地表示錯誤率降低,橫軸是 distance,縱軸是 logical qubit 的錯誤率。可見 distance 每加 2,錯誤率就降低一半 ,如 equation 1 所示,錯誤率的確成指數型下降。當 $d=7$ 時,logical qubit 的錯誤率降低到 0.143%。
Logical error per cycle
d 每增加 2,錯誤率就降低一半,右上方匡中,d=7 之後的數據是用模擬的

另外,在沒有使用 surface code 時,單一個 physical qubit 的壽命平均僅有 $85\space \mu s$,在 distance-7 surface code 下,單一個 logical qubit(共 49 個 data qubits)的壽命達到 $291\space \mu s$,延長了 2.4 倍。 ## 實時解碼器 實時解碼器(Real-time decoder)是這次成果的另一個亮點。由於超導量子電腦的 gate 操作速度非常快速,只有幾奈秒,一個糾錯 cycle 僅需幾微秒,而解碼的過程牽涉到量子電腦的硬體設備以及後端電腦的數據處理,解碼的速度往往跟不上 cycle 的速度,因此以往都是將 stabilizer 的測量結果儲存起來,隔一段時間才對 data qubit 做糾正,這種解碼器稱作離線解碼器(offline decoder)。 Google 將會是第一次人類使用 real-time decoder,糾錯 cycle 與解碼同時進行,這是科技上的一大創舉。Google 在 $d=5$ 的 surface code 上分別運行 real-time(RT)與 offline decoder,使用 RT 的錯誤率 0.35%,offline 則為 0.269%,雖然 RT 的錯誤率比 offline 高,但這是因為 RT 要求要高速處理數據。
Accuracy comparison for the surface code with three decoders
每種解碼器下的錯誤率,RT 是實時解碼,Ens 與 NN 都是離線解碼器,Ens 是 ensembled matching synthesis,NN 是神經網路

在這實驗中,每個糾錯 cycle 耗時 $1.1\space \mu s$,RT 在一百萬次 cycle 中,平均耗時 $63 \space \mu s$ 完成解碼,沒有表現出耗時隨 cycle 越多而越來越長,代表 RT 能夠跟上 cycle 的節奏(雖然每解碼完一個,電腦已經跑了約 57 次 cycle),且在如此高速的情況下,仍能保持同樣的錯誤降低效果。
Decoder latency versus experiment duration
RT 解碼器隨著 cycle 數所需的耗時

## Google 量子糾錯的突破與未來挑戰 這項研究成果無疑表現出 Google 的工程能力,以及其與約 200 位科研人員的努力,他們共同證明 fault-tolerance quantum computer([容錯量子電腦](https://www.entangletech.tw/lesson/popular-08))是可行的,然而這不代表這條路就一路順暢。 Google 理論預測,錯誤率要達到 $10^{-6}$,distance 要來到 27,將需要 1457 個 physical qubits,如何維持同樣品質,製作出如此大量的 qubits 仍是一項挑戰,而在這麼多 qubits 下,RT 如何保持一樣高速與高精確性,也是另一個艱難的挑戰。 在這次實驗中,還沒有真的做計算,只是把 logical qubit 設定為 0(或 1),然後不斷地做糾錯,看能撐到什麼時候。如果對 logical qubit 做 quantum gate 操作,無法確保錯誤率依然能保持這麼低。 在實驗過程中,團隊發現平均每小時(約 $3\times 10^9$ cycles)就會出現一個錯誤,這錯誤的來由與機制仍須深入研究,這很有可能是未來量子糾錯的新課題。
此文章僅作初步導讀,有更多內容在本文中沒有詳細提到,歡迎參看原論文
## 延伸閱讀 - [Google 預刊論文](https://arxiv.org/abs/2408.13687) - [Surface coe 詳細解說](https://www.youtube.com/watch?v=IdZkxX-Qank) - [Google 2023 年糾錯成果部落格文章](https://research.google/blog/suppressing-quantum-errors-by-scaling-a-surface-code-logical-qubit/) - [專家解釋這次研究成果](https://openaccess.uoc.edu/bitstream/10609/151207/1/Explaining%20the%20Paper%20%20Quantum%20Error%20Correction%20Below%20the%20Surface%20Code%20Threshold.pdfhttps://openaccess.uoc.edu/bitstream/10609/151207/1/Explaining%20the%20Paper%20%20Quantum%20Error%20Correction%20Below%20the%20Surface%20Code%20Threshold.pdf)
林昱誠
林昱誠
LinkedIn
林昱誠是 EntangleTech 技術長,同時也是一名藥師,研究所期間致力於藥物化學研究。2023 年 IBM 評選為臺灣第七個 Qiskit advocate,也是臺灣唯一一個非理工出身的 Qiskit advocate,致力於推廣量子計算應用於藥學與醫學領域。