量子回路の実行
Olivia Lanes による量子回路とプリミティブに関する動画をご覧ください。または、YouTube で別ウィンドウで開くこともできます。
レッスンの概要
このレッスンでは、ユーティリティスケールの量子計算を実行するための基本事項を概観します。使用する量子ハードウェアから、量子回路を設計する際に考慮すべき原則までを扱います。このレッスンを終えるころには、以下のことを理解していただけるでしょう:
-
IBM® の量子コンピューターが実際にどのようなものか。量子回路を最適に設計してハードウェア上で実行するには、ハードウェアの基本的な特徴を知っておく必要があります。
-
Qiskit とは何か、プリミティブとは何か、そしてそれらを使って量子回路を作成・実行する方法。
-
大規模な実験を実行するための標準的なワークフロー。これには、ユースケースに最適なプリミティブの選択、問題を量子回路にマッピングすること、そしてエラー軽減・抑制の適用が含まれます。これらにより、ハードウェアの性能を最大限に引き出すことができます。
ハードウェア – IBM 量子プロセッサー
大規模な量子回路を設計する際に最適な選択をするためには、実際にその回路を実行するハードウェアについて少し知っておく必要があります。物理量子ビットと IBM 量子プロセッサーについて簡単に説明しましょう。
IBM の量子プロセッサーは、超伝導トランズモン量子ビットを使用して構築されています。これは ジョセフソン接合 とコンデンサーを並列に接続した電気回路です。ジョセフソン接合は、2 層の超伝導金属が絶縁バリアを挟んで重なり合うことで形成される非線形インダクターです。非常に低温になると、超伝導体内の電子が対を形成し、「クーパー対」と呼ばれる状態になります。クーパー対は、接合の絶縁バリアを自発的にトンネルして一方の側から他方へ移動することができます。このトンネル現象が非線形特性をもたらし、量子ビットが生成されます。
マイクロ波伝送線路がチップ上に作製され、量子ビットにマイクロ波信号を届けます。特定の周波数・振幅・形状・持続時間を持つ精密にキャリブレーションされたマイクロ波パルスを伝送線路に印加することで、量子ビットに特定の動作をさせることができます。これが量子ゲートの基礎となっています。チップは、隣接する量子ビットがヘビーヘックス格子と呼ばれる特定の格子構造で接続されるように製造されています。この接続性(いわゆるトポロジー)は、後述するように、回路を設計する際に考慮すべき重要な要素です。
マイクロ波パルスの命令は、あなたのコンピューターからクラウドを経由して室温制御エレクトロニクスに届き、そこで命令が解釈されてパルスが物理的に生成されます。室温制御ボックスがパルスを生成した後、 それはケーブルを通じて希釈冷凍機に入り、最終的に量子チップへと到達します。信号は共振器に入り、ワイヤーボンドを通過し、伝送線路を伝わって量子ビットへと流れ込みます。
IBM は世界中に数十台の量子コンピューターを保有しており、最近では 100 量子ビットを超えるプロセッサーのみで構成されるようにシステムを更新しました。その一部はニューヨーク州北部にある IBM 量子データセンターに設置され、クラウド経由で一般に公開されています。また、一部は IBM Quantum® Network のパートナー向けに専用のオンプレミスシステムとして提供されています。quantum.cloud.ibm.com にログインすると、アクセス可能なプロセッサーを確認できます。
各プロセッサーには 3 つのパフォーマンス指標が記載されています。前のレッスンで説明しましたが、改めて確認すると、量子ビット数・EPLG・CLOPS です。
-
量子ビット数(Qubit count)。 これは説明不要です。単一の量子プロセッサーで使用できる量子ビットの総数です。比較的大規模なユーティリティスケールの問題に取り組むには、問題に対応できるだけの十分な量子ビットを持つプロセッサーを使用する必要があります。ただし、量子ビット数だけが重要なわけではありません。
-
EPLG(layered gate あたりのエラー数)。 これは量子ビットと量子ゲートの品質の尺度です。100 量子ビットの連鎖で隣接量子ビットをエンタングルする回路において、各ゲートが導入する平均エラー率を測定します。この値はできるだけ小さいほ ど望ましいです。
-
CLOPS(1 秒あたりの回路層演算数)。 これはプロセッサーの速度を定量化します。量子プロセッシングユニット(QPU)が単位時間あたりに実行できる量子ボリューム回路と呼ばれるベンチマーク回路の層数を測定します。数値が高いほど、計算が速くなります。
これらの指標の重要度は、具体的なアプリケーションによって異なります。今後のレッスンでは、これらの要素が計算結果にどのような影響を与えるかを実際の例で確認していきます。
ソフトウェア:Qiskit と Qiskit Runtime
量子問題を量子コンピューターへの命令に変換するには、IBM が開発した量子コンピューター向けのオープンソースソフトウェア開発キットである Qiskit を使用します。また、Qiskit のコア機能を基盤として構築・拡張するソフトウェアチュートリアルや関数のコレクションである Qiskit エコシステムと、Qiskit Runtime プリミティブを使用して量子ワークロードを設計・最適化し、効率的に実行できる量子コンピューティングサービス・プログラミングモデルである Qiskit Runtime もあります。
プリミティブは、より大きな回路やジョブを設計するために使用できる小さなビルディングブロックです。最も重要な 2 つのプリミティブは、サンプラーとエスティメーターであり、まもなく詳しく説明します。
最近リリースされた Qiskit v1.0 により、Qiskit はこれまで以上に高性能で安定したものになりました。これから始める方にとっては、絶好のタイミングです!すでに Qiskit に慣れ親しんでいる方は、最新バージョンをダウンロードして再インストールする必要があります。完全なインストールガイドは、Qiskit のインストールガイドをご覧ください。
量子回路
いよいよ量子プログラムの基盤となる量子回路について説明します。このセクションは復習としての位置づけです。量子回路に慣れていない方は、続きを読む前に「量子情報の基礎」コースの量子回路レッスンで詳しく学ぶことをお勧めします。
量子回路は、量子ビットを表す導線によってつながれた量子ゲートと測定のネットワークであり、以下に示すようなものです。量子回路は楽譜のように左から右へ読み、左端の時刻 0 から始まります。物理的な量子ビットにまだ割り当てられていない仮想量子ビットは、上から下に向かって昇順にリストされます。
ゲートは、関係する量子ビットの導線上に異なるシンボルで表されます。単一量子ビットゲート(下図のアダマールゲート、H と書かれたボックス)は、その導線上の量子ビットにのみ影響します。マルチ量子ビットゲート(下図の CNOT ゲート、q0 に線がつながった円の中のプラス記号)は 2 つ以上の量子ビットに影響 します。示されている CNOT ゲートでは、q1 の状態が q0 の状態に応じて変化します。すべてのゲートが実行された後、量子ビットを測定することができます。測定は黒いゲートに測定記号で示されています。測定結果は古典レジスター(下の二重線の「meas」バス)に書き込まれます。
回路の重要な特性の一つが深さです。量子回路の深さとは、回路を完成させるために並列実行される量子ゲートの「層」の最小数です。共通の量子ビットを持たないゲートは並列(同時)に実行できます。しかし、同じ量子ビットに 2 つ以上のゲートが作用する場合、それらは並列に実行できず、別々の層で順番に実行する必要があります。
回路の深さを求めるもう一つの、あまり明白ではない方法があります。これはある種のゲームで行います。ルールは単純です。左側の任意の量子ビット導線から始め、右に進みながらパスで遭遇したゲートの数を数えます。マルチ量子ビットゲートで現在の導線に接続されているときのみ、隣の導線にジャンプできます。目標は、パスで遭遇するゲートの数を最大化することです。この最大数が回路の深さと一致します。

量子ゲートの実装には時間がかかるため、回路の深さは量子コンピューターが回路を実行するのに必要な時間にほぼ対応します。プロセッサー上の量子ビットのデコヒーレンス時間によって、大きな深さの回路に適したマシンとそうでないマシンがあります。そのため、特定のデバイスで回路を実行できるかどうかを判断するには、回路の深さを知る必要があります。