マイクロソフトは量子クラウド「Azure Quantum」を発表、量子コンピュータ登場前に量子アプリの開発が進む

Microsoftは2019年11月、開発者会議「Ignite」で量子クラウド「Azure Quantum」を発表した(下の写真)。Azure Quantumは量子技術を統合したクラウドで、量子アプリケーションの開発環境とそれを実行する量子コンピュータから構成される。CEOのSatya Nadellaは、量子コンピュータで未解決の問題を解決し、食の安全、気候変動、エネルギー伝送の分野でブレークスルーを起こすと表明した。

出典: Microsoft

Azure Quantumとは

Azure Quantumは量子コンピュータから開発環境からソリューションまでを提供する量子技術のフルスタックとして位置付けられる。Microsoftは既に、量子開発環境「Quantum Development Kit」や量子プログラム言語「Q#」などを発表しているが、これらがAzure Quantumの中に組み込まれた。エンジニアはAzure Quantumで量子アルゴリズムを開発し、それらを量子コンピュータや量子シミュレータで実行することができる。商用量子コンピュータが登場するまでには時間がかかるが、Azure Quantumで先行して量子アプリケーションを開発し、来るべき時代に備えておく。

量子コンピュータの種類

Azure Quantumは実行環境として開発中の量子コンピュータを利用する。対象となるマシンは、Microsoft、IonQ、Honeywell、Quantum Circuitsで、この中でプロトタイプが稼働しているのはIonQだけとなる。他の量子コンピュータは開発中で、マシンが稼働すると順次、Azure Quantumで使われる。

量子コンピュータの概要

Microsoftは「Topological Quantum Computer」という方式の量子コンピュータを開発している(下の写真)。二次元平面で動く特殊な粒子の特性を利用し、その位相変化を情報単位とする方式で、極めて信頼性が高いが、開発には時間を要す。IonQとHoneywellは「Trapped Ions」という手法の量子コンピュータを開発している。電荷を帯びた原子(イオン)の電子のエネルギー状態でQubitを構成する。Quantum Circuitsは超電導回路を使ってQubitを生成するが、量子コンピュータを多数のモジュールで構成する。GoogleやIBMは複数の超電導回路を一つのチップに搭載するが、Quantum Circuitsはこれを多数のモジュールに分けて搭載する。量子プロセッサを多重化することで信頼性を高めるアプローチを取る。

出典: Microsoft

量子アプリケーション開発環境

Microsoftは量子アプリケーション開発環境「Quantum Development Kit」と量子プログラム言語「Q#」を2017年12月に投入している。しかし、2019年7月には、これら開発環境をオープンソースとしてGitHubに公開した。Microsoftはオープンソースの手法で、開発者コミュニティと連携して、量子アプリケーションを開発する方針とした。今回の発表でこれら開発環境をAzure Quantumに組み込み、エコシステムの拡大を目指している。

量子プログラム事例

GitHubには量子アルゴリズムのサンプルが掲載されており、これらを利用して新しい量子アプリケーションを開発することができる。GitHubには代表的なアルゴリズムとして、検索(Grover’s Algorithm)、素因数分解(Shor’s Algorithm)、量子化学、シミュレーションなどが掲載されている。また、量子アルゴリズムを学習するためのサンプルも豊富に揃っており、ここでスキルを身につけ、量子アルゴリズム開発を始める。

量子テレポーテーション

GitHubにサンプルコードとして「量子テレポーテーション(Quantum Teleportation)」が掲載されている。量子テレポーテーションとは、ある場所から別の場所に情報(Qubitの状態)を送信する技術であるが、物質(電子や光子など)を送ることなく、情報を伝える技術である。SF映画に登場するテレポーテーションのように、情報を遠く離れた場所に移動させる技術である。電気シグナルで情報を伝達しないので経路上で盗聴されることはない。極めて奇妙な物理現象であるが、Quantum Teleportationを量子ゲートで示すと下の写真上段の通りとなる。左上のQubitの情報を右下のQubitに送るのであるが、簡単なゲート操作を経て、右下のQubitの状態を読み出すだけで情報が伝わる。この量子ゲートをQ#でコーディングすると下の写真下段のようになる。

出典: GitHub

量子テレポーテーションを実行すると

サンプルコードはJupyter Notebook(オープンソース開発・シミュレーション環境)の上に展開されており、コードをそのまま実行できる。ここでは「TeleportRandomMessage」という命令(Operation)を定義し、Qubitの状態をテレポートするコードを作成し、それをMicrosoftの量子シミュレータで実行させた。その結果、送信側のQubitの状態「|->」が、受信側のQubitにテレポートし、正しく「|->」と出力された(下の写真)。(「|->」とはBlock Sphere(先頭の写真左側の球体)でQubitが-Y軸方向に向いている状態。)

出典: GitHub

量子アプリケーション事例

既に、先進企業はMicrosoftの量子アプリケーション開発環境を使って事業を進めている。OTI Lumionicsはカナダ・トロントに拠点を置く企業で、量子技術を使って新素材を開発している。この手法は「Computational Materials Discovery」といわれ、量子化学と機械学習の手法で有機EL(OLED)を開発している。OTI Lumionicsは量子アルゴリズムを開発し、新素材のシミュレーションを実行し、その物理特性を予測する(下の写真)。

出典: OTI Lumionics

開発者コミュニティ拡大

量子コンピュータの商用機が登場する前に、既に量子アルゴリズム開発が始まっている。開発した量子アルゴリズムはシミュレータで実行する。しかし、量子シミュレーションでは大量のメモリが必要となり、Qubitの数が増えるとパソコンやサーバでは実行できなくなる。このため、大規模構成のQubitのシミュレーションはAzureに展開して量子アプリケーションを実行する。Microsoftとしては量子アルゴリズム開発環境を提供することで、多くのエンジニアがQ#などに慣れ親しみ、開発者コミュニティを拡大する狙いもある。量子コンピュータが登場する前に、既に、量子エンジニアの囲い込みが始まった。

シュレーディンガーの猫

Azure Quantumのシンボルは「シュレーディンガーの猫(Schrödinger’s Cat)」である(先頭の写真右端)。この猫はオーストリアの物理学者シュレーディンガーが量子力学を説明する思考実験として使われた。量子力学ではQubitの状態(Block Sphereの青丸の位置)を特定することはできず、0である確率は50%で、1である確率は50%となる。Qubitを計測することで初めて0か1かに決まる。これを猫に例えると、箱に入った猫は蓋を開けるまで、その生死は分からない。つまり、箱の中で、猫は50%の確率で生きており50%の確率で死んでいる、ということになる。