月別アーカイブ: 2019年11月

マイクロソフトは量子クラウド「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%の確率で死んでいる、ということになる。

エアバスは量子コンピュータで航空機をデザイン、NISQで量子アルゴリズム開発が始まる

量子コンピュータが登場するまでには5年から10年かかるといわれているが、既に量子アプリケーション開発が進んでいる。現在、「Noisy Intermediate-Scale Quantum (NISQ)」と呼ばれる量子コンピュータが稼働し、このプラットフォームで量子ソフトウェアの開発が始まった。NISQは演算ゲートのエラー発生率が高く、中規模構成のシステムとなる。この不安定なマシンで画期的な量子アプリケーションを開発できるのか、世界でアルゴリズム研究が始まった。エアバスはその先頭を走り、NISQで航空機の設計を見直し、エネルギー効率の良いデザインを探求している。

出典: Airbus

エアバスとは

エアバス(Airbus)はオランダに本社を置き、欧州四か国による航空宇宙機器製造会社として1970年に設立された。その当時、米国の航空宇宙機器メーカーが市場を独占しており、エアバスはこの対抗軸として創設された。米ソ冷戦に伴い、米国で企業統合が進み、今では大型旅客機メーカーはボーイング(Boeing)一社だけとなり、エアバスと一対一で対峙する構図となった。エアバスはこの市場で後発メーカーであり、機体設計に先進的な思想や技術を取り入れ、トップに追い付いてきた。今でもこの思想が受け継がれ、エアバスはスパコンを使って航空機を設計し、今では量子コンピュータを使った開発技法を探求している。

量子技術チャレンジ

量子コンピュータはまだ新しい技術で、エアバスは大学などと研究コミュニティを形成して開発を進める方式を取っている。エアバスは量子コンピュータ技術を競う「Airbus Quantum Computing Challenge」を展開している(先頭の写真)。これは量子コンピュータを使って量子アプリケーションを開発するチャレンジで、指定されたタスクを解決する形式で競技が進んでいる。チャレンジは2019年1月に始まり、10月末で開発が締め切られ、現在その成果が審査されており、2020年の第1四半期に順位が決まる。量子コンピュータ研究者、新興企業、大学などが参加しており、その数は500を超える。

エアバスの狙い

このチャレンジは航空機の飛行物理特性(aerospace flight physics problems)を量子アルゴリズムで解明することが目的となる。エアバスはチャレンジへの参加者とともに、量子技術の発展を目標にしている。また、エアバスとしては参加者が開発した優秀な技術を自社の航空機開発で利用することを計画している。更に、エアバスはチャレンジに参加した優秀な量子コンピュータ開発者の採用も視野に入れている。量子コンピュータが登場する前に、既に、量子技術研究者の採用で戦いが始まっている。

離陸時に最小コストで上昇

タスクは5つの項目からなり、参加者はこれらの問題を解決する量子アルゴリズムを開発する。その一つが「Aircraft Climb Optimisation」で、最小のエネルギー(燃料)とコスト(飛行時間)で上昇するプロセスを計算する(下の写真)。航空機は短距離輸送で利用されるケースが増え、離着陸回数が大幅に増えた。このため、如何に省エネで離陸できるかが問われている。このタスクは与えられた条件で最適な組み合わせ(Low Cost Index、燃費と時間の最小値)を求める問題に帰着する。最適化問題は「NP-Hard」と呼ばれ、複雑な問題の中でも難解な領域を指し、スパコンでも解くことが難しく、量子コンピュータに期待が寄せられている。

出典: Airbus

機体の空力特性を評価

次は、数値流体力学(Computational Fluid Dynamics)を量子コンピュータで解くタスク(下の写真)。航空機の効率性は機体全体の形状により決まる。このデザインで数値流体力学が使われ、機体周囲の空気の流れを解析し、機体に及ぼす力などを解明する。いわゆる空力特性を求めるもので、スパコンでは処理時間がかかり精度を上げることが難しい。量子コンピュータで同じモデルを実行すると、どれだけスピードアップできるかを把握することがこのタスクの目的となる。これにより、大規模な数値流体力学モデルを生成し、これを量子コンピュータでシミュレーションすることにつなげる。

出典: Airbus

変微分方程式をAIで解く

数値流体力学で空力特性を解析することは変微分方程式を解くことに帰結する。このタスクは「Quantum Neural Networks for Solving Partial Differential Equations」として出題され、量子コンピュータで偏微分方程式を解く技法が求められる。空気など流体の運動は変微分方程式(Navier-Stokes Equationsなど)で記述され、これを解くためには精緻なモデルを生成し、大規模な計算量を必要とする。この方式に対し、変微分方程式をニューラルネットワークで解く研究が進んでいる。これはAIをシミュレーション結果で教育することで、偏微分方程式の解を見つける手法で、現行手法(Finite Volume Method、有限体積法)に比べ、高速で収束し精度が高いことが報告されている。チャレンジではこの方式を量子コンピュータで実現する技法の開発が求められ、現行コンピュータに比べ、どれだけスピードアップできるのかを評価する。

主翼構造の最適化など

この他のタスクとして、主翼の構造の最適化(Wingbox Design Optimisation、下の写真)やペイロード利用効率の最適化(Aircraft Loading Optimisation)が出題されている。タスクの殆どが航空機の運用効率を高める技術を量子コンピュータで求めるもので、量子アルゴリズムは最適化問題(Optimization)で威力を発揮すると期待されている。

NISQでアルゴリズム開発

これらのタスクはNISQ型の量子コンピュータで実行される。不安定なプロセッサで大規模なゲート演算はできないため、エラーに耐性のある量子アルゴリズムの開発が求められる。また、量子コンピュータと現行コンピュータを連結したハイブリッド構成でアルゴリズムを開発する手法も対象となる。NISQで航空機デザインに役立つ成果がでるのか、審査結果が待たれる。

出典: Airbus

先行して開発する

エアバスは航空機開発でスパコンを採用した最初の企業で、今では量子コンピュータを使った開発方式を模索している。エアバスは量子コンピュータで飛行物理特性(Flight Physics)を計算することに着目し、複雑な物理特性を解明し、開発時間を短縮することを目指している。このために、エアバスは量子コンピュータ開発メーカーや研究機関と提携し、共同で量子アルゴリズムを開発する手法を取っている。高信頼性の量子コンピュータが登場するのはもう少し先だが、NISQやシミュレータでの量子アルゴリズム開発が本格的に始まった。

量子アルゴリズムで地球温暖化対策

航空機は大量の二酸化炭素を排出し地球温暖化の要因とされている。航空機は温暖化ガスの2.5%を輩出しているが、2050年にはパリ協定で定められた温暖化ガス排出量の1/4を占めると予測されている。このため、飛行機で移動することは反社会的とみられ、「Flight Shame」という風潮が広がり、飛行機に乗ることに後ろめたさを感じる人が増えてきた。航空機メーカーとしては温暖化ガス排出量を削減することが大きな使命となり、量子コンピュータを使い機体デザインや航空機運行を最適化する方向に向かっている。

Googleの量子コンピュータ開発、次はNISQでブレークスルーを起こす

Googleが発表した量子コンピュータ「Sycamore」(下の写真)は「Quantum Supremacy(スパコン越え)」に到達したのか判断が分かれているが、プロセッサは論理設計通りに稼働し、多数のゲート演算を実行し、大きなマイルストーンとなった。Sycamoreはエラーを補正する機構は搭載しておらず、大規模な演算を実行することは難しい。この種類の量子コンピュータは「Noisy Intermediate-Scale Quantum (NISQ)」と呼ばれ、ノイズが高く(エラー率が高く)、中規模構成(50から100Qubit構成)のシステムとなる。これからNISQで量子アルゴリズム開発が始まる。 果たしてNISQという不安定な量子コンピュータでキラーアプリを開発することができるのか、世界が注目している。

出典: Google

量子コンピュータの構想

量子コンピュータの基礎概念は1981年にRichard Feynmanが提唱した。当時、Feynmanはカリフォルニア工科大学の教授で、講座「Potentialities and Limitations of Computing Machines (コンピュータの可能性と限界)」の中で量子コンピュータの概念を講義した。「自然界は量子力学に従って動いているので、それをシミュレーションするには量子コンピュータしかない」と説明し、量子コンピュータという構想を示した。

量子技術を実現する

量子コンピュータの基礎研究が進む中、最初に量子コンピュータの演算単位「Qubit」を生成することに成功したのはDavid Wineland(当時アメリカ国立標準技術研究所の研究者、下の写真)のグループである。この研究が認められ、量子システムを計測・制御した功績で、2012年にノーベル物理学賞を受賞した。この研究ではTrapped Ion(電荷を帯びた原子(イオン)を容器に閉じ込めこれをレーザー光線で操作)という手法で2つのQubitからなる量子ゲートを生成した。量子コンピュータの演算基礎単位を実現できたのは2006年ごろでまだまだ新しい技術である。

出典: National Institute of Standards and Technology

NISQという種類の量子コンピュータ

今では、GoogleがSycamoreを開発し、53のQubitで量子ゲートを構成し、まとまった計算ができるようになった(下の写真)。これに先立ち、IBMは量子コンピュータを「IBM Q System One」として販売している。これらは「Noisy Intermediate-Scale Quantum (NISQ)」に分類され、Qubitが正常に稼働できる時間(Coherence Time)が短く、エラー(Decoherence)が発生してもそれを補正する機構は無く、不安定なシステムとなる。このため、スパコンを超える性能は出せるが、大規模な構成は取れないという制約を持つ。因みに、NISQというコンセプトはカリフォルニア工科大学教授John Preskillにより提唱された。Preskillは米国で量子技術の基礎研究をリードしており、「Quantum Supremacy」というコンセプトも同氏が提唱した。

出典: Google

量子機械学習アルゴリズム

NISQは量子ゲートのエラー率が高く大規模な演算はできないが、規模の小さい量子アルゴリズムの研究で使われている。実際に、化学、機械学習、物性、暗号化などのアルゴリズム開発が進んでいる。特に、量子機械学習(Quantum Machine Learning)に注目が集まっている。これはAIを量子コンピュータで実行する手法で、大規模なデータを量子状態で処理することで、アルゴリズム教育を高速で実行できると期待されている。具体的には、ニューラルネットワークで多次元のデータを処理するとき、そのデータマトリックスをQubitの量子状態にエンコードすることで学習プロセスが効率化される。一方、AIの実行では大量のデータを量子プロセッサに入力する必要があるが、このプロセスがネックとなる。量子コンピュータは演算速度はけた違いに速いが、データを読み込んだり、データを書き出す処理で時間がかかる。このデータ入出力プロセスを高速で実行することが重要な研究テーマとなっている。

ハイブリッド構成で稼働

NISQは現行コンピュータを置き換えるものではなく、両者が協調してタスクを実行する構成が取られる。これは「Hybrid Quantum-Classical Architectures」と呼ばれ、NISQが現行コンピュータのアクセラレータ(加速器)として機能する。現行コンピュータでアプリを実行する際にその一部をNISQにアウトソースする形を取る。パソコンでビデオゲームをする際に、アプリはCPUで稼働するが、画像処理の部分はGPUで実行される方式に似ている。

ハイブリッド構成で最適化問題を解く

ハイブリッド方式では「Variational Quantum Eigensolver (VQE)」という手法が注目されている。VQEはEigenvalue(固有値)を求める手法で現行コンピュータと量子コンピュータが連動して解を見つける。アルゴリズム全体は現行コンピュータで稼働し、数値演算の部分は量子コンピュータで実行される。具体的には、分子の基底状態(Ground State Energy、エネルギーが一番低い状態)を見つける計算や、ルート最適化(セールスマンが巡回するルートの最適化)などで使われる。

高信頼性量子コンピュータの開発

量子コンピュータ開発で、NISQは通り道で、最終ゴールは高信頼性量子コンピュータとなる。このために、ノイズに耐性のある量子ゲートの研究が続けられている。ノイズとは温度の揺らぎ、機械的な振動、電磁場の発生などがあげられる。これらがQubitの状態を変えエラーの原因となる。現行コンピュータでも記憶素子でエラーが発生するが、特別な機構を導入しエラー検知・修正をする。量子コンピュータでもエラーを補正する機構の研究が進んでいる。また、エラーに耐性の高いアーキテクチャの研究も進んでいる。その代表がMicrosoftの「Topological Qubit」で、Qubitの安定性が極めて高く、高信頼性の量子コンピュータができる。しかし、Topological Qubitはまだ基礎研究の段階で、物理的にQubitは生成できておらず、長期レンジの開発となる。(下のグラフ:Googleの量子コンピュータ開発ロードマップ、NISQではQubitの個数は1000が限界であるが、エラー補正機構を備えた高信頼性マシンではQubitの数は100万を超える。)

出典: Google

生活に役立つ量子アプリケーション

高信頼性量子コンピュータが登場した時点で、大規模な量子アプリケーションを実行することができ、社会に役立つ結果を得ることになる。新薬の開発(分子のシミュレーション)、送電効率の向上(室温超電導物質の発見)、 化学肥料生成(窒素固定(Nitrogen Fixation)触媒の開発)、大気中の二酸化炭素吸収(炭素固定(Carbon Fixation)触媒の開発)などが対象になる。高信頼性量子コンピュータがいつ登場するのか議論が分かれているが、アカデミアからは開発までには10年かかるという意見が聞かれる。一方、産業界からは、開発ペースが加速しており5年と予測する人も少なくない。

大きなブレークスルー

Googleの量子コンピュータ開発責任者John Martinis教授はSycamoreを世界初の人工衛星「Sputnik 1(スプートニク1号)」に例えている。スプートニクは歴史的な成果であるが、人工衛星は電波を発信する機能しかなく、社会生活に役立つものではなかった。しかし、スプートニクが宇宙開発の足掛かりとなり、その後、リモートセンシングやGPSや衛星通信など多彩なアプリケーションが生まれた。同じように、Sycamoreは限られた規模のゲート演算しかできないが、このプラットフォームで若い研究者が量子アルゴリズムを開発し、 大きなブレークスルーを起こすことが次の目標となる 。量子コンピュータ開発が大きな転機を迎えた。