Pulse」は、ユーザーによる低次元の通信命令の制御や変更に加え、性能の最適化やエラー抑制やエラー緩和を実現する新たな手法の開発も可能にします。Pulse」は、ユーザーによる低次元の通信命令の制御や変更に加え、性能の最適化やエラー抑制やエラー緩和を実現する新たな手法の開発も可能にします。一般的に量子コンピュータは、あらかじめ定義された量子ゲートを使用して演算を実行します。この方法は特定の量子デバイスのノイズ特性を調べたり、量子エラー緩和技術をテストしたりするユーザーには不十分です。“と呼ばれるデバイス制御が必要です。BraketとOQCが提供するプライベートクラウドのユーザーは、OQCの超伝導量子デバイスにパルスレベルでアクセスできます。これにより、量子ゲートのキャリブレーションを正確に制御し、忠実度を示すメトリクスとシステムの特性についてよりきめ細かな見解を得られます。Braketのパルス制御は、現在はOQCに加えて複数の量子デバイスに拡張されています。このような背景から、本稿ではQOCが提供するデバイスを量子物理学レベルで解き明かし、パルス制御のユースケース、デモとともに、デバイスを最大限に活用するためのベストプラクティスを紹介します。Braket経由でQOCに送ると、QOCのコンパイラはそれを通信パルスに変換します。QOCの超伝導デバイスの場合では、マイクロ波パルスが使用されます。現在、ユーザーはコンパイルせずに直接パルスパラメータの精度で量子演算を実行することが可能です。これにより、周波数や位相、振幅、パルス時間、パルス形状などを迅速に特定できます。Pulseのライブラリ内で重要なオブジェクトが「フレーム」です。フレームには量子コンピューターの「送信」「受信」に関する一連のパルスが含まれており、これによりキュビットの遷移を対象に、量子ビットの状態を「|0>から|1>」にフリップするような操作が行え、パルスの振幅や持続時間などのパラメーターを指定するとフレーム内のパルスを操作できます。フレームの種類はデバイス固有です。PulseはOQCのデバイス向けに一連のフレームを提供しています。次に、OQCの量子ハードウェアの新機能を活用する際、これらのパラメータをどのように利用できるか、相関メトリクス、単一キュビットゲートのキャリブレーション、相互共振特性の3つに焦点を当てて紹介します。Pulseを使用した以下の例では、ドライブフレームと相互共振フレームが重要な役割を果たします。コヒーレンス・メトリクス量子ビットの重要な指標の一つに「コヒーレンス時間」があります。これは、量子ビットの量子特性が環境との相互作用によって失われるまでの時間です。量子ビットを操作する際はコヒーレンス時間を確認し、どれくらいの時間その量子ビットと相互作用できるかを知る必要があります。コヒーレンス時間を確認する一つの指標が「エネルギー緩和時間」で、通称「T1」と呼ばれます。T1は、励起状態にある量子ビットが基底状態になるまでの時間を表します。T1を知るために、まずは「Xゲート」を利用して励起状態の量子ビットを準備します。その後、特定の時間(遅延時間)待機し、量子ビットが励起状態にあるかどうかを測定します。遅延時間を変化させ、励起状態集団の指数関数的減衰を追跡することで、T1が出ます。Braketは手順として以下のコードを公開しています。Pulseを使えば、同じプログラムの中でゲート(今回はXゲート)とパルス(遅延T)を混ぜて使うことも可能です。遅延時間の増加に伴う励起状態の確率p(|1>)の変化。Braketの詳細ページで最新のコヒーレンス時間を定期的に提供しており、ユーザーはこれを用いて詳細な調査を行えます。ユーザーはデバイス固有のノイズを調査し、その特性や量子ビットへの影響を理解することで、エラー緩和やノイズ適応コンパイル技術といったノイズの影響を打ち消す新たな手法を開発できるでしょう。単一量子ビット次のデモでは、ユーザーが個々の量子ビットの状態をどのように操作できるかを紹介します。操作では「パルスレベルでどのように量子ビットを基底状態と第一励起状態の間で制御できるか」が重要になり、これを実現するにはシステムにエネルギーを加える必要があります。このエネルギーを加えるという作業は、特定の持続時間と周波数のマイクロ波制御パルスをシステムに加えることです。以下のコードは、ドライブフレームを利用してマイクロ波のパルス時間を特定し、量子ビットを制御する方法を示しています。このコードを実行したものが以下の図2です。図2は、量子ビットが基底状態と励起状態の間をどのように回転するかを表すラビ振動の特徴的な正弦波形を示しています。この振動の速さを測定すると、特定の量子ビットの回転角度に対する正確なパルス持続時間を決定できます(キュビットを|0>から|1>へ遷移させるために、マイクロ波パルスでキュビットを駆動するために必要な時間)。これにより、低エラーの単一量子ビットゲートを実現します。高品質の単一量子ビットゲートを出すには、マイクロ波パルス周波数を量子ビットの遷移周波数に一致させる必要があります。Pulseは量子ビットを駆動する周波数を操作できるため、フレームを少しデチューン(デフォルト値から周波数を変えること)することも可能です。それでは、同じドライブパルスを時間をかけて実行するとどうなるか、下のコードを適用して見てみましょう:このコードを実行すると、量子ビットが駆動したときに得られる特徴的なデータ「シェブロンパターン」を確認できます(図3)。図からも分かるように、駆動フレームが量子ビットの周波数遷移と同じように共振しているとき、発振コントラストは最も高く、発振率は最も低くなります。図3のように調整すると、共振は0Hzの周波数離調で起こります。このような測定を行うことで、量子ビット制御動作のドライブフレームがどの程度調整されているかを確認できます。パルス持続時間と周波数離調によって変化する励起状態確率のヒートマップ。駆動フレームが量子ビットの周波数遷移と正確に共振するとき、発振コントラストは最も高く、発振率は最も低くなる。低次元のデバイス・キャリブレーションは、いくつかの方法で性能向上に寄与します。「ゼロノイズ外挿法」では、様々なノイズレベルで量子演算を行い、その結果を仮想的な「ゼロノイズ」シナリオに外挿します。一つの方法は、量子計算中にゲートのキャリブレーション手順のロバスト性をリアルタイムで追跡することです。相互共振の特性評価デモ3では、単一量子ビットの操作について説明し、その後に複数の量子ビットのもつれを操作する方法を解説します。量子ビットをもつれさせる方法はいくつかあり、OQCのシステムでは相互共振のマイクロ波パルスを通して量子ビットをエンタングルできます。「エンタングルゲート」では、マイクロ波パルスが第1量子ビットの物理制御ポートに適用されますが、その周波数は別の量子ビットと共振します。これにより、第2の量子ビットにラビ振動のような駆動効果が生じますが、その速度は第1量子ビットの状態に大きく依存します。064013」に記載されています。これを実践するには、ブラケットパルスを用いてこのゲートのダイナミクスを観察する必要があります。そのために、まずは励起状態(|1>)の4番量子ビット(別名「制御量子ビット」)を用意し、次に制御量子ビットに作用する交差共振フレームのパルスを変更します。駆動パルスの持続時間を長くすることで、「ターゲット量子ビット」(#5)への影響を測定できます。次にこのプロセスを反復しますが、両方の量子ビットは基底状態(0)から始まります。shots=N_shots)図4はこの実験の結果を示しています。相互共振パルス中に制御量子ビットが初期状態(|0>〈青い点〉)、または(|1>〈オレンジの点〉)にあるときのターゲット量子ビットのダイナミクスが分かります。パルス持続時間の増加に伴う交差共振ゲートのダイナミクス図4は、制御量子ビットが与えられた時間だけ相互共振パルスで駆動し、その後のターゲット量子ビットの励起状態確率を示しています。制御量子ビットが「状態|1>」にあった場合、ターゲット量子ビットは(ノイズをある程度考慮すると)元の状態に戻っています。逆に、制御量子ビットが「状態|0|」であった場合、ターゲット量子ビットは異なる状態になります。図4で生成されたデータに2つのサインカーブを合わせたところ、図2のように異なる周波数のラビ振動が現れました。デモ3では、エンタングルゲートのコア動作に加え、エンタングルメントを生成するのに使用するゲートのビルディングブロックの操作を実証しました。OQCの量子コンピューターであれば、OpenPulseを利用して「2量子ビットゲート方式」のキャリブレーションが可能で、パルスの持続時間や振幅、周波数を制御できます。振幅を大きくすると「2量子ビット」のゲートが全体的に速くなりますが、その代償として誤差が大きくなります。OQCであれば、このバランスを見つけて安定した調整を実現します。新たなゲートのさらなる応用パルス制御の技術を取り入れれば、相互共振ゲートの性能を大幅に向上させることができます。「TensorFlow」を活用することで、複雑な制約条件下でもゲート設計を最適化でき、ゲート動作の調整と改良が容易になります。量子制御を最適化すれば、より効率的で正確な量子ビット操作が実現できます。パルスの最適化は、適用されるパルスを継続的に洗練・最適化することが重要で、これがゲート設計を改善する有望な手段になります。特徴など、パルスレベルにおける量子計算の基本について説明しました。これらはOQCの量子コンピューティングハードウェアで実行され、量子プログラムの核になります。Pulseによって、ユーザーはこのパルスレベルの制御を容易に利用することが可能です。サンプル・ノートブックをご覧いただき、OQCの量子コンピューティングハードウェアでパルスレベルの制御をぜひ体験してみてください。