量子ビットの忠実度を向上させるという点において、間接的な疑問の一つは、単純なガウス分布のようなパルスよりも複雑なパルスを「整形」することでゲートの忠実度を高めることができるかどうか、ということである。そしてその答えは、「_DRAG パルスを見てみましょう」である。

DRAG Pulse への関心の本当の理由は、Google の Cryo Pulse Modulator に関する 動画 プレゼンテーションにおける Joseph Bardin のコメントです。

[21:08] 私たちが気づいたのは、ドラッグのようなことをしようとしなければ、対称なエンベロープさえあればよいということです。レイズドコサインやガウス関数はどちらも対称です。そこで、プログラム可能な電流源のアレイを構築し、ウェディングケーキのような電流波形を作成するための適切な有効化関数を用意しました。そして、振幅などをプログラムできるようにしました。

これがGoogleのアーキテクチャです。そして、それは実に巧妙です。

しかし、そのようなアーキテクチャを適応させて抗力パルスを生成するには何が必要なのでしょうか?この疑問を理解するには、まず抗力パルスとは何かを理解する必要があります。

数理モデル 見出しへのリンク

DRAG(Derivative Removal by Adiabatic Gate)パルスは、標準的なガウスパルスに、そのパルスの直交成分にスケーリングされた微分を加えることによって構成されます。これにより、ガウスエンベロープとガウス微分という2つの成分からなるパルスが生成され、超伝導量子ビットにおける高エネルギー状態への不要なリークを低減し、位相誤差を補正するのに役立ちます。

DRAGパルスの構成要素 標準ガウスパルス:

パルスの基底部は標準的なガウス包絡線であり、これは滑らかなベル型の曲線です。これはパルスの「同位相」成分 \(i(t)\) です。

  • ガウス微分: パルスに第 2 の成分が追加されます。これは標準ガウスパルスの微分であり、\(\beta \) と呼ばれる係数でスケーリングされます。これが「直交」\(q(t)\) 成分です。

  • 合計パルス: 最終的な DRAG パルスは、これら 2 つのコンポーネント \(v(t)\) の組み合わせです。

導関数は次の式で表されます。

\[ DRAG(t) = v(t)=i(t)+q(t) = i(t)+ \beta \frac{d(i(t))}{dt} \]

特に凝ったことはしていませんが、ドラッグパルスには多くの種類があること、そして標準的なドラッグパルスがガウス型ドラッグパルスであっても、さらに強力な構成を実現することは可能であるという点に注意する必要があります。

多くの抗力パルスタイプ 出典: APS

プログラムモデル 見出しへのリンク

DRAGパルスがどのように構築されるかを理解できたので、量子制御システムを用いた実装について見ていきましょう。今回は、Qblox Schedulerを検証します。これは高レベルのコンパイラとして機能し、ユーザーは量子ビットとパルスの観点から実験を定義できると同時に、低レベルの機器制御の複雑さを抽象化します。

問題のコードはgitlabで入手できます。以下のコードは、元のコードを簡略化したものです。

def drag( t: np.ndarray, G_amp, D_amp, duration: float, nr_sigma: float=4, phase: float=0 )
-> np.ndarray:

mu = t[0] + duration / 2
sigma = duration / (2 * nr_sigma)

# In-phase envelope
gauss_env = G_amp * np.exp(-(0.5 * ((t - mu) ** 2) / sigma**2))
# Quadrature envelope
deriv_gauss_env = -D_amp * (t - mu) / sigma * gauss_env

# generate pulses
drag_wave = gauss_env + 1j * deriv_gauss_env

# Apply phase rotation
rot_drag_wave = rotate_wave(drag_wave, phase=phase)

return rot_drag_wave

これは実際には非常に簡単で、オリジナルのコードは機能面でさらに強力です。詳細については、オンラインのドキュメントを参照してください。

パルスコントローラーモデル 見出しへのリンク

上記のコードは、基盤となるハードウェアがAWG(任意波形発生器)として動作すること、つまりサンプルバッファに基づいて任意の波形を生成できることを前提としているため機能します。しかし、4Kクライオステージに設置された何らかの制御ロジックとして定義される「パルサー」(またはパルス変調器)上で波形を生成する必要がある場合はどうでしょうか?

Googleのパルス変調器:第1世代 見出しへのリンク

GoogleのアーキテクチャがDRAGパルスに適さない理由は、直交成分の振幅を係数\(\beta\)で、持続時間を係数\(\sigma\)でスケーリングする必要があるためだと考えられます。これが正しいかどうかは確認する必要がありますが、今のところ、課題はパルサーがI/Q波形整形において_完全な柔軟性_を提供する必要があることだと想定できます。

言い換えれば、Googleの極低温アーキテクチャがDRAGパルスを生成できないということではありません。I/Qパルスを生成し、量子ビットを制御することは十分に可能です。しかし、最高忠実度の単一量子ビットゲートに使用される「標準DRAG」パルスは、追加のキャリブレーション/補償を行わない限り、そのアーキテクチャを使用する際には最適とは言えない可能性があります。

校正済みパルス変調器:第2世代 見出しへのリンク

Googleの動画は2019年のものであるため、彼らは既にDRAGパルス整形機能を備えたシステムを進化させており、これを第2世代クライオパルサーと呼ぶことができると予想されます。しかし、Bardin氏のGoogleのクライオに関する情報はオンラインで見つけることができなかったため、他の研究機関による以下の2つの進化を参照することにします。

  • SPulseGen、別名Succinct Pulse Generator、大阪大学、日本

  • DLR、別名遅延漏洩低減、オランダ、デルフト工科大学

SPulseGenのジェネレーターは、固定された大まかな波形を再生するだけでなく、パルスパラメータ(振幅、タイミング、波形)を調整できるように設計されています。この柔軟性は、波形が多少単純化されている場合でも、DRAGコンポーネント(または「微分補正」)を実装する上で重要です。

SPulseGen

DLRに関しては、「複雑な」IQシェーピングの要件を回避しています。連続微分直交チャネルを必要とする代わりに、ベースバンドパルスの時間遅延繰り返しを使用して、不要な(漏洩)スペクトル成分の破壊的干渉を生成します。

遅延漏洩低減

DLRとSPulseGenはどちらも、極低温環境下で動作する超低消費電力ハードウェアという枠組みの中で、量子ビットの高忠実度かつ低リーク制御という同じ課題に取り組むように設計されていますが、アプローチは正反対です。

  • SPulseGen: DRAGを維持しつつ、生成コストとサイズを削減します。

  • DLR: 時間的干渉によって同じスペクトル漏洩抑制を実現する新しい方法を発明することで、DRAGのハードウェア(I/Q変調)の必要性をなくします。

# 結論

ほら、この土曜日のマインドマップメモのおかげで、DRAGパルスについてより深く理解できました。4Kステージの制御ロジックの観点から言えば、これらのパルスの形状調整は心配する必要はありません。

今日の課題は、最高の忠実度を実現する最適なキャリブレーションと補償方法を習得することです。デルフト工科大学の遅延漏洩低減のようなアプローチは、間違いなく大きな違いを生み出すでしょう。

さらに興味深い課題は、ニューラルネットワークベースの強化学習(RL)のように、キャリブレーションを継続的に行う必要がある場合です。これは、ニューラルネットワークが4Kクライオステージで実行されるべきか、実行できるか、あるいは実行されるのか、おそらくin-situ特性評価方法を使用するのかという疑問を提起します。

一方、blumind.aiのような超低消費電力AI ASICの分野では、大きな変化をもたらす新たな開発が数多く行われています。しかし、代替ICアーキテクチャに関するこの調査については、今後のメモで取り上げることにしましょう。

ワクワクする時代ですね。


References