La prima vedere, Corecția Erorilor Cuantice pare simplă: grupați qubiții fizici într-un qubit logic, aplicați o metodă pentru a menține consecvența între ei și apoi operați circuite cuantice folosind acești qubiți logici.

Sursa imaginii: Riverlane

Însă, în practică, acest prim pas este departe de a fi evident. Cum se creează și se întrețin acești qubiți logici? De exemplu, din perspectiva unui Sistem de Control Cuantic (QCS) (cum ar fi QM OPX1000, ZI’s ZQCS sau Qblox Q1 Cluster), ce este necesar pentru a „opera” sau „orchestra” qubitul logic? Și odată ce acest qubit logic este „gata” de a fi operat, ce este necesar pentru a-l utiliza pentru a efectua calcule cuantice, prin intermediul circuitelor cuantice compuse din porți de 1 și 2 qubiți? Această întrebare simplă nu se referă doar la sistemul de control hardware, ci și la stiva software, în special la compilatoare: Avem acum mai multe compilatoare, unul pentru qubiții fizici și unul pentru qubiții logici? Și când vine vorba de scalare, ce este necesar pentru ca compilatoarele să facă față complexității scalării atunci când gestionează 10.000 de qubiți fizici într-un mediu eterogen compus din GPU/QPU hibrid și QCS? Acestea sunt întrebări simple, cu răspunsuri non-triviale!

Acest memoriu este primul dintr-o serie despre corecția erorilor cuantice din perspectiva sistemelor de control cuantic. Acest prim scurt memoriu introduce conceptele de bază necesare pentru a „crea” un qubit logic consistent la nivelul fizic.

Formarea Qubiților Logici Link to heading

Ce definește un „Qubit Logic”? Crearea de qubiți logici începe prin gruparea qubiților fizici, fiecăruia atribuindu-i un rol specific. Unii servesc ca qubiți auxiliari sau helper, în timp ce alții funcționează ca qubiți de date sau principali.

Această grupare este adesea reprezentată de diagrama din dreapta, care prezintă un „Cod de suprafață 17 bazat pe distanța 3” (credit imagine: Irréversible Inc).

Iată structura de bază, aplicabilă codurilor de suprafață:

  • Qubiții de date (cercuri albe) conțin informația cuantică. Suprafața 17 conține 9 qubiți de date.

  • Qubiții ancilla (cercuri negre) efectuează verificări nedistructive ale parității. Suprafața 17 conține 8 qubiți ancilla.

QEC ca protocol Link to heading

Interacțiunea dintre date și qubiții ancilla este specifică fiecărei „plachete”:

  • Plăcuțele (fețe verzi și roz) definesc relația tipologică de verificare a erorilor dintre qubitul ancilla din mijloc și qubiții de date vecini.

  • Stabilizatorul: Fiecare qubit ancilla este utilizat pentru a măsura un operator Pauli sau stabilizator: Codurile de suprafață au doi stabilizatori: cel de tip Z detectează erorile de inversare a bitului (X), în timp ce cel de tip X detectează erorile de inversare a fazei (Z).

Măsurarea stabilizatorului este măsurarea unui singur stabilizator, implementată prin cuplarea secvențială a unui qubit ancilla la qubiții de date vecini și apoi măsurarea ancilla.

Biții sindrom sunt reprezentați de rezultatul măsurării operatorului stabilizatorului de verificare a parității. Biții sindrom sunt produși câte unul pentru fiecare ciclu de măsurare.

Extracția sindromului este procesul complet de efectuare a tuturor măsurătorilor stabilizatorului într-un ciclu de corecție a erorilor pentru a obține sindromul de eroare complet.

Un mic test: Cine este vinovatul de qubit? Link to heading

În acest context, luați în considerare diagrama de mai jos (credit: Laurent Prost din Alice & Bob). Z₁ Z₂ și Z₂ Z₃ reprezintă măsurători comune de verificare a parității (stabilizator) între Qubit 1 și Qubit 2, respectiv între Qubit 2 și Qubit 3. Spre deosebire de plăcuțele bidimensionale anterioare, această diagramă presupune că fiecare qubit fizic este legat doar de un alt qubit, indicând un cod de repetiție unidimensional.

Corectarea erorilor cuantice: Înțelegerea verificării parității în rundele de extragere a sindromului

În diagrama din stânga (cazul A), se pare că eroarea este pe qubitul de date 3, dar de fapt indică erori pe qubiții de date 1 și 2. Linia orizontală roșie arată că eroarea apare doar în Z₂Z₃ . Dacă eroarea ar fi pe qubitul 3 , Z₃Z₄ s-ar inversa și el. Prin urmare, Z₁Z₂ reprezintă o eroare byzantine, ceea ce înseamnă că atât Q1 , cât și Q2 s-au inversat. Diagrama din dreapta (cazul B) arată rezultatul așteptat dacă eroarea ar fi pe Qubitul 3.

În culise: „Magia” QEC Link to heading

Această a doua secțiune este puțin mai complexă, dar este importantă pentru înțelegerea notelor ulterioare despre orchestrarea qubiților fizici în cadrul unui grup logic. Încerc să o păstrez cât mai ușoară posibil, fără a intra în detalii matematice sângeroase pe care colegii mei de la QEC le-ar explica mult mai bine!

Ziduri de domeniu și erori degenerate Link to heading

Eroarea bizantină Q1 + Q2 este de fapt o problemă comună numită Eroare degenerată. Mai exact, se referă la o situație în care două sau mai multe erori distincte fizic produc exact același bit de sindrom, caz în care devine imposibil să se distingă erorile.

Pereți ai regiunilor cu coduri de suprafață dinamice: Secțiuni temporale ale regiunii de detectare Dar aceasta nu este o problemă în QEC: Stabilizatorii nu sunt utilizați pentru a detecta erorile direct. În schimb, stabilizatorii sunt utilizați pentru a identifica limitele fizice ale qubitului (cunoscute și sub numele de pereți de domeniu) în care reacționează un sindrom de eroare. Apoi, prin creșterea redundanței pentru a se suprapune limitele, se pot identifica erori individuale (sau, alternativ, se poate utiliza codul de suprafață time-dynamic al GoogleAI așa cum se arată în diagrama din dreapta).

Proiectarea acestei redundanțe în sistemele cuantice este fundamental complexă și necesită o bază matematică solidă. Pentru a înțelege conceptul la nivel înalt, trebuie să revenim la elementele de bază: Cum funcționează de fapt verificarea parității?

Cum funcționează de fapt verificarea parității? Link to heading

La început, poate părea neclar cum funcționează verificarea parității, deoarece determinarea parității necesită cunoașterea bitului sindrom așteptat, care depinde de starea qubitului de date. Cu toate acestea, cunoașterea în avans a stării qubitului de date ar anula scopul calculului cuantic. Cu alte cuvinte:

„Dacă nu cunoaștem starea cuantică, cum putem spune dacă s-a schimbat?”

Dovada zero cunoștințe Pentru a rezolva această provocare, cheia este să apelăm la același truc folosit pentru demonstrația „zero cunoștințe” utilizată în experimentul din peștera Alibaba: este suficient să punem întrebări specifice ale căror răspunsuri sunt cunoscute, indiferent de informațiile cuantice codificate (credite imagine: dailycoin)

Aceste întrebări specifice corespund operatorilor stabilizatori Pauli. Bitul sindromului, sau rezultatul măsurătorii, poate fi privit ca calea A sau B. În QEC, calea A reprezintă starea validă, în timp ce calea B indică o eroare. Ceea ce trebuie să facă „motorul” QEC este să construiască circuitul cuantic care operează pe qubitul logic într-un mod care să păstreze această constrângere, numită și „stare protejată”.

Codificare Stări Protejate Link to heading

Aici devine esențială ingineria. Pentru a se asigura că măsurarea sindromului returnează întotdeauna calea A atunci când nu există nicio eroare și calea B în caz contrar, informațiile de paritate multi-qubit trebuie codificate astfel încât relațiile dintre qubiți să fie fixe pentru fiecare stare codificată validă.

Aceasta este funcția circuitului de codificare. Scopul său este de a mapa o stare de intrare simplă, necoruptă (cum ar fi un singur qubit fizic \(|ψ> = α|0> + β|1>\) cu ancillae goale \(|00...0>\) într-o stare logică de qubit puternic înlănțuită \(|ψ_L>\) protejată prin corecția erorilor cuantice.

Circuit de codificare QEC

Voi discuta circuitul de codificare mai detaliat într-o notă ulterioară. Deocamdată, se poate considera circuitul de codificare ca un circuit cuantic proiectat și specializat, folosit pentru a inițializa sau a porni qubitul logic în starea protejată.

Cod de distanță Link to heading

Pentru a corecta erorile degenerate (adică sindroamele „bizantine” Q1 + Q2 ), este posibil să se crească redundanța prin creșterea a ceea ce se numește distanța de cod \(d\). La prima vedere, s-ar putea spune că distanța de cod \(d\) definește cât de robustă este protecția împotriva erorilor.

Qubit logic: Distanțe de cod de suprafață vs. ponderea stabilizatorului

Dacă distanța de cod este \( d=3 \), inversarea a 2 qubiți adiacenți distruge informația, iar QEC nu reușește să corecteze qubitul logic, adică nu reușește să mențină qubitul logic în starea protejată. Cu o distanță de cod mai mare, de exemplu \( d=5 \), decodorul QEC poate asigura că, chiar dacă Q1 și Q2 se inversează și se maschează reciproc de verificarea Z1/ Z2 , atunci măsurarea stabilizatorului de creștere va oferi decodorului suficient context pentru a identifica Q1 și Q2 ca o dublă eroare. Dintr-o perspectivă matematică, aceasta poate fi scrisă astfel:

Un cod cu o distanță \(d\) poate detecta până la \((d-1)\) erori și corecta până la \(\lfloor (d - 1)/2 \rfloor\) erori.

Teorema pragului Link to heading

Dacă redundanța rezolvă problema, de ce să nu se folosească pur și simplu cod de suprafață cu dimensiuni mai mari? Provocarea este că, pentru fiecare qubit fizic suplimentar (pentru a crește redundanța), trebuie măsurați mai mulți stabilizatori. Iar mai multe măsurători înseamnă mai multe pericole (de apariție a erorilor fizice).

Ceea ce duce la așa-numita Teoremă a pragului

Un circuit cuantic de dimensiunea \(N\) poate fi implementat cu precizie ridicată printr-un circuit cuantic zgomotos, cu condiția ca probabilitatea de eroare în fiecare locație din circuitul zgomotos să fie sub o valoare prag fixă \(p_{th}>0\). Dimensiunea circuitului zgomotos se scalează ca \(O(N.log^c(N))\) pentru o constantă pozitivă \(c\).

În termeni simpli, teorema pragului înseamnă că, atâta timp cât rata de eroare a qubiților fizici \(p\) este sub un prag \(p_{th}\), atunci este posibil să se adauge mai mulți qubiți fizici pentru a îmbunătăți corecția erorilor și că numărul de qubiți măriți are o complexitate de \(N.log(N)\) .

De ce este important acest lucru? Deoarece se spune că, chiar dacă qubiții „nu se comportă” tot timpul, cu condiția să nu se întâmple prea des, atunci este posibil să se obțină un set mai mare de qubiți care să se comporte mai bine decât suma qubiților individuali, deschizând astfel calea pentru era post-NISQ, adică FTQC sau Fault-Tolerant Quantum Computing.

Desigur, întrebarea esențială aici este care este acest prag \(p _ {th} \). Acestea sunt de ordinul a 0,1% până la 1% și, deși poate părea scăzut, aceasta nu este o problemă, deoarece qubiții moderni pot atinge deja fidelități de 99,9% (pentru porți de un qubit).

Fidelități Qubit

Concluzie Link to heading

Iată, această scurtă notă pune bazele conceptelor utilizate în corecția erorilor cuantice.

Arhitectura și componentele sistemului NVQlink

Următoarele două memorii vor fi mai practice. Al doilea va analiza ce înseamnă concret pentru Sistemul de Control Cuantic (și decodorul de erori) să opereze qubitul fizic într-un qubit logic, în termeni de control, citire și secvențiere. Al treilea memoriu se va concentra pe sistemul de decodare, precum și pe latența redusă și „link” în timp real între decodor și sistemul de control.

Această notă este de fapt prima dintr-o serie. Următoarele note QEC se vor concentra pe următoarele subiecte:

Orchestrarea extragerii sindromului din perspectiva Sistemului de Control Cuantic

  • Decodare erori în timp real: Rețele ASIC, GPU și neuronale cu latență ultra-scăzută.

  • Qubiți inteligenți proiectați în comun: Cazul qubiților protejați împotriva erorilor de Alice și Bob

  • Compilatoare de cod Surface la scară largă: maximizează toleranța la erori pentru miliarde de operații fizice

  • Arhitecturi de decodare ierarhică: principiul localității și procesare multistrat

Orchestrare logică a qubitilor: Chirurgie la rețea și împletitură

Dincolo de codurile de suprafață: Trecerea la codurile qLDPC

Distilare în stare magică și rotații analogice

Se pare că asta mă va ține ocupat în următoarele 6 luni!


References:


DrawIO diagrams used in this memo:


.drawio .webp .svg
qec encoding circuit

.drawio .webp .svg
stabilizer measurement

.drawio .webp .svg
surface code distance

.drawio .webp .svg
qec 1d repetiion code

.drawio .webp .svg
zero knowledge

.drawio .webp .svg
dynamic surface codes

.drawio .webp .svg
surface code

.drawio .webp .svg
qec cycle

.drawio .webp .svg
qec stack