オープンソース · Apache-2.0

Aria Language

量子回路のための小さく読みやすい言語です。ひとつのソースがバックエンド非依存の IR にパースされ、実行され、パラメータを学習し、OpenQASM 2.0、JSON、または機械検証済みの Lean 4 へエクスポートされます。

例

コマンドラインから実行したベル対です。

回路はただのテキストです。aria バイナリがそれを一覧表示し、パースし、実行し、学習し、エクスポートし、チューニングします。

circuit Bell() {
    qreg q[2]
    creg c[2]
    apply H on q[0]
    apply CX on q[0], q[1]
    measure q[0] -> c[0]
    measure q[1] -> c[1]
}

$ aria run bell.aria --circuit Bell --statevector
|00>  +0.707107+0.000000i
|11>  +0.707107+0.000000i

$ aria run bell.aria --circuit Bell --expectation "Z0 Z1"
<Z0 Z1> = 1.000000000000
なぜ Aria か

Aria で回路を書くと得られるもの。

ターゲット

必要な形式へエクスポート

同じ回路をそのまま実行するか、OpenQASM 2.0、JSON、あるいは Lean 4 の正しさの定理へエクスポートできます。

学習

その場で学習

symbolic[k] で学習可能な角度を宣言します。aria train が libtorch なしの純 Rust でパラメータシフト勾配を使って最適化し、aria tune がメタパラメータを探索します。

ランタイム

シミュレータを選ぶ

すべてのバックエンドがひとつのトレイトを実装します。既定は CPU 状態ベクトルで、MPS、GPU (Metal、CUDA、OpenCL)、libtorch、リモートの omega-server を加えられます。

検証

すべての例を検査

43 個の例すべてが独立した古典オラクルと数値的に照合されています。Lean 4 の証明に sorry はありません。

モダリティ

何を、どうシミュレートするか。

モダリティごとに固有のエンジンがあり、それぞれ Qiskit、Stim、ffsim、Perceval といった外部の参照実装と照合しています。

  • 量子ビットCPU、CUDA、Metal、OpenCL、libtorch 上の密な状態ベクトル。GPU 加速 SVD を使う MPS テンソルネットワーク。認証付き打ち切り限界を持つハイゼンベルク描像のパウリ伝播。
  • 量子ディットDITQASM 回路向けの厳密な混合基数状態ベクトルと、第二のエンジンとしての MPS。
  • フェルミオン (マヨラナ)欠落質量の証明書付きマヨラナ伝播。粒子数を固定した厳密なセクターエンジン。任意の量子ビットエンジンへのヨルダン–ウィグナー変換。FermionicQASM 1.0 または OpenFermion の梯子演算子テキストで記述します。
  • 光子 (CV と DV)離散変数: 一方向クラスター状態実行器を備えた OPTICQASM 回路向けの Fock 空間フォトニクス。連続変数: 打ち切った Fock 空間上のプログラム。
  • スタビライザー高速な期待値計算のためのクリフォード・タブロー。振幅、内積、パウリ行列要素のための厳密位相 CH 形式のスタビライザー・ランク。
計算手法

計算のしかた。

回路に合った手法を選んでください。厳密計算が現実的なところでは厳密に、そうでないところでは認証付きの近似で。

  • 密な状態ベクトルCPU、CUDA、Metal、OpenCL または libtorch 上で、すべての基底状態の厳密な振幅を計算します。
  • テンソルネットワーク (MPS)ボンド次元を制限した行列積状態。幅は量子ビット数ではなくエンタングルメントの量に応じて増えます。ノイズ付き MPS の経路も含みます。
  • ハイゼンベルク伝播観測量をパウリ和またはマヨラナ和として回路を逆向きに押し戻します。クリフォード回路では厳密、それ以外では落とした重みへの認証付き限界とともに打ち切ります。
  • スタビライザー法高速な期待値のためのクリフォード・タブロー。厳密な振幅と内積のための CH 形式のスタビライザー・ランク。
  • Fock 空間シミュレーション離散・連続変数光学のための光子数状態と、パーマネントに基づく振幅。
  • 粒子数セクターフェルミオン回路を、粒子数を固定した部分空間の中で厳密にシミュレートします。
  • 測定型 (一方向)ゲートモデルと並ぶ、クラスター状態の測定パターン向け参照実行器。
  • 学習と探索変分回路のためのパラメータシフト勾配と厳密な随伴勾配。メタパラメータのための aria tune (枝刈り付き TPE)。QUBO と QAOA の定式化。
次期リリース

次に取り組むこと。

  • 性能CPU と GPU の両バックエンドでのシミュレーション高速化。
  • マルチ QPU エミュレーション量子光ネットワークで結ばれた複数の QPU を、ひとつの Aria プログラムからエミュレートします。
リポジトリの中身

リポジトリに入っているもの。

  • 43 個の例題回路各ヘッダにハーネスと、通過すべきチェックが明記されています。
  • 誤り訂正 (aria-qec)トランスバーサルゲート、マジック状態蒸留、デコーダを備えた表面符号と Steane 符号。どのバックエンドでも動きます。
  • Lean 4 証明ツリー認識される回路 (Bell、GHZ、QFT、QPE、Grover) の正しさの定理。
  • エディタ対応VS Code、Neovim、tree-sitter 向けの構文と、オプションの Python バインディング。
  • 明記された限界LIMITATIONS.md、GATE-EXACTNESS.md、そして実測した CPU→GPU 切り替えサイズがコードとともに提供されます。
インサイト

仕組みについて書いたもの。

協業について

Aria の上に何かを作っていますか? 必要なものを教えてください。

contact@anzaetek.com