量子コンピュータは API を介して活用される

2018/10/11 ーーー 今日からは、3回に分けて、Quantum Computing Will Not Break Your Encryption, Yet という記事を参照しながら、量子コンピューティングの現状と将来について考えていきたいと思います。この記事は、2017年10月に Forbes に Paul Teich さんが寄稿したものであり、量子コンピューティング全体をカバーする良記事となっています。タイトルを見ると、暗号化に絞り込んで解説されているように思えますが、そのような内容ではありません。

第一回目は、Challenge #1: ProgrammingQuantum Computing です。量子コンピューティングのプログラミングと言うと、量子物理学の理解を前提とした、量子アルゴリズムの構築が必然となります。しかし、それはきわめて難解なものであり、すべてのアプリケーション開発に当てはめてしまうと、エコシステムの構築が危うくなるという側面を持ちます。

以下の記事では、量子アルゴリズムの構築は量子物理学者に任せ、それらを API を介して利用するというモデルが語られています。考えてみれば、機械学習などに用いられる GPU アクセラレータ開発も、かなり専門性が高いものであり、アプリケーションの開発は API を介して行われているはずです。それと同様に、量子コンピュータも API を介して活用されるというのが、Paul Teich さんの見解です。

ーーーーー

量子コンピュータ・アーキテクチャは、現在の2進数コンピュータ・ビットの代わりに、Qubits をベースにしている。私は量子物理学者ではないため、Qubits の動作や働きについて説明できない。私が量子コンピュータ・プログラムの仕組みを説明するために用いるイメージは、プールに小さなボールを投げ込んだときに生じる波紋のように、複数の Qubits が相互作用するというものだ。

それぞれの波紋間の距離と、それぞれの波紋同士が接触するタイミングに意味があると仮定する。つまり、それぞれの波紋の相対位置と、波紋同士が接触する順番がプログラムである。 そして、波紋同士が交差する場所では、それぞれの波紋の上下の位置が、興味深いパターンで変化していく。ある場所では、それぞれの波紋の中点が測定されるが、それらの測定値の集合が、量子コンピュータ・プログラムの結果である。

私の類推は、ビジュアル的には簡潔であるが、あまりにも単純すぎる。つまり、量子コンピュータ・プログラムの記述方法や、結果の解釈方法について説明するものではない。

しかし、実際のプログラミングの才能と、それぞれの分野における経験には、なんの関連性もない。したがって、それは量子コンピュータ・アーキテクチャに対しても言えることなのだ! 私は冗談を言っているわけではない。例として、IBMのQuantum Experience Composer を見てほしい。それは、音楽データの入力システムのように見える。しかし私はミュージシャンではなく、IBM の量子コンピュータ・システムを理解している量子物理学者でもない。また、現在における主流のソフトウェア・プロフェッショナルにとっては、IBM の Comporser の使い方を理解することも、現実の問題を解決するための方式を理解することも、困難である。プログラマーたちが、この五線譜のようなものにメモを付けたとしても、それらのメモは意味をなさないだろう。彼らが詳細な説明を読んだとしても、現実のドメインの問題を量子コンピュータ・ドメインのプログラムに翻訳することは不可能だ。

特定の量子コンピュータ・アーキテクチャのプログラミング方法を理解していて、解決したい問題の内容を理解している、量子物理学者を見つけだすことは、きわめて難しい。あなたが抱えている、すべてのビッグデータ分析を実現する、Masters/PhD レベルのデータ・サイエンティストを見つけるよりも、はるかに困難なことである。言い換えるなら、干草の山の中から、一本の針を見つけだつようなものだろう。

こうした課題を解決するために、量子コンピュータ・エコシステムには API を作成する必要性が生じる。続いて、きわめて便利な機能を持つライブラリを作成し、量子コンピュータ の複雑さを隠蔽する必要がある。そして、量子コンピュータ・システムの動作や量子コンピュータ・プログラムの作成方法を知らないプログラマーが、API を介して量子コンピュータ・システムを使用できるようにしなければならない。たとえば、IBM の QISKit では、Python の API を介した QC アクセラレーションが実現されている。しかし、依然としてそれらの API は、量子物理学を理解しているプログラマーに依存している。次のステップは、有用な量子コンピュータ・アクセラレーション関数のライブラリを作成することにある。

ーーーーー

たしかに、量子コンピューティングの能力はスゴそうです。でも、ネコの頭には、量子物理学なんてチンプンカンプンです。でも、いろいろな文献を読んでみると、かなり優秀な人間の頭脳をもってしても、とても高いハードルとして聳え立つのが、量子物理学のカベなんだと理解できるようになりました。つまり、人間離れした人間のみが到達できるのが、量子物理学の世界というわけです。

そんな量子コンピュータが、経済をドライブし、社会に馴染んでいくとは、とうてい思えませんが、API を介したパーシャル量子コンピューティングであれば、なんとなくイメージが湧いてきます。オープンソースやクラウドで学習されてきたエコシステムが、量子の世界でも成立するなら、このテクノロジーは実用化されていくでしょう。

もちろん、量子物理学や量子アルゴリズムの研究は、民間の経済のためにだけではなく、行政や科学といった分野でも重要であるため、世界中のあらゆる国々で積極的に進められていくでしょう。おそらく、これからの10年〜20年にわたって、それぞれの国々が対処すべき、トップ・プライオリティのテクノロジーとして認識されていくはずです。