素人が量子プログラミングを始めて1年がたった
Qiitaに初めて量子コンピュータのプログラミング記事を投稿したのが
2020/12/17
でした。そこから1年経ちました。
素人なりに、量子コンピュータが今どういう状況であるかを書いてみたいと思います。
なお、開始2ヶ月時点での記事は以下の通り。このときと感じ方は変わっているでしょうか?
素人が量子プログラミングをやって感じたこと
2ヶ月時点で感じたこと がどう変わったか
振り返ってみます。
-
量子プログラミングは、ひたすら面倒? →SDKやAPIが増えてきたため、だいぶ緩和されました。特に量子機械学習は恩恵を感じます。
-
ライブラリを使うのにもある程度知識は必要? → これは変わりません。
-
地獄のデバッグ? → これは変わりません。
-
日本の量子コンピュータ技術者は圧倒的に少ない気がする? → これも変わりませんが、いたるところで量子コンピュータへの参入を聞きますので、だんだん増えてきていると思います。特に大手が「味見」でやってみるような話が多いかも。
-
プログラミング環境は整えやすい? → これは変わりません。
-
ちょっと勉強するだけでもリテラシーが上がっていく? → これも変わりません。ただ、最先端がぐいぐい進んでいくので全く追いつけないです。。
-
(今の)量子コンピュータでできること、できないこと がちょっとわかる? →これも変わりません。ただ、最先端がぐいぐい進んでいくので(ry
新たに感じたこと
- 今の量子コンピュータ実機(NISQ)1でビジネス問題を解くという夢は終わった
でかいこと言ってますが、これは間違いないと思ってます。NISQの実証実験が明らかにしたことは、エラー率を下げない限りただ大規模化(量子ビット数の増加)をしても計算が破綻してしまい意味をなさないということです。GoogleのシカモアQAOA論文をみてもそれは明らかでした。問題や量子ビットのトポロジーなど色々な要素が絡みますが、なんとか解が出るのはせいぜい10量子ビットとか20量子ビットの回路までであって、これでビジネス上の問題を解くというのは無理でしょうし、そもそも数十万円の古典コンピュータで十分にシミュレートできる範囲です。
- NISQ向けのアルゴリズムだけを切り出しても、容易には古典を超えられない
実機のエラー率が問題であれば、少なくともシミュレーションでは古典アルゴリズムを超える性能が出ると期待したくなります。しかし、これすらも多くの場合はうまくいきません。
私がぎりぎり観測できてる範囲は量子機械学習だけですが、2019とか2020の論文をみても、例えばクラスタリングや分類問題で、性能面で古典アルゴリズムにボロ負けしています2。
量子の世界へ古典情報を埋め込むまではいいのですが、量子情報の世界を効率よく探索すること、まさに求解アルゴリズムをうまくやるということが極めて難しいです。
ただ適当にモデルを作って適当に最適化した程度では全然うまくいきません。
「とにかく量子はすごいから、古典のものを量子にすげ替えれば性能は同等以上になる」というのは全く正しく有りません。だからこそ、面白いとも言えます。
研究者人たちはこのアルゴリズム探索を頑張っているという認識です。
- 思いほか光量子やシリコンが台頭してきている
新しい方式がどんどん登場してきています。光量子(アナログ、GKP量子ビット)、シリコンなどなど。
超伝導とイオントラップが当面は二強かと思ったのですが、今後数年でもひっくり返る可能性あり、という感じです。
- 量子誤り訂正の進展が速い
量子誤り訂正(QEC)の実機実証がどんどん進んでいます。
最初は誤りの検出だけでしたが、今は誤りの検出→訂正までもできはじめています。
まだ17量子ビットで1論理量子ビット?を作るというレベル3、作るだけで論理演算も出来ていない、サイクルを増やすとどんどん誤ってしまう、などなど課題は山積みですが、あくまで理論上の存在だったQECが実機で動いたというのは凄いニュースです。
これがスケールするか(=大規模化するか)は別問題だと思いますが、期待したくなります。
ただ、QECには論理量子ビットの数十倍(以上?)の膨大な物理量子ビットを必要としますので、物理量子ビットが最低でも1,000量子ビットぐらいはないと意味ある問題は解けなさそうです。
- そうはいっても時間がかかるので、”量子ビジネス”は実用より人材育成や教育にシフトしている
そうはいっても量子コンピュータでまともな問題が解けるのはまだまだ先でしょう4。早くて2030年、もっと先であろうと思います。
でもビジネスを展開する企業としては、それまで食費0円というわけにはいきません。
なので、自社の抱える専門部隊を「人材育成や教育」にまわしてお金を稼いでいるという印象です。
また、シミュレータを売ったり、環境を売ったりするケースも目立ちます。
ある程度は知識がないと、食い物にされますので、気をつけましょう。
量子コンピュータに参入すべきなのか?
実用がだいぶ先だとわかった上でやる ことは必須かと思います。
私自身は、”本業”でご飯を食べながら、隙間時間に「無駄になってもいいや」という気持ちで勉強したり実装したりしています。
ただ、何もしないでいると、量子コンピュータがほんとうの意味で「実用化」されたとき、もはや容易に追いつけないほど先へ行ってしまっている可能性は高いと思います。
まとめ
実用がどれぐらい難しいか、量子を乗りこなすのがどれほど職人技なのかがよくわかった一年でした。
量子コンピュータは”楽しんで”やるのがいいと思います。
とにかく色々な分野の人材が足りてないので、あなたの居場所もきっとあると思います。5
-
ゲート型のみを量子コンピュータと言っています。アニーリングのほうも、ゲートよりましでしょうが、バラ色という印象はありません。問題や用途によっては使えなくもないかな?ぐらいで・・・。 ↩
-
そのくせ、計算時間は(量子を無理やり古典でシミュレーションするので)古典の100倍とか1000倍とかかかるので、評価だけで大変です。 ↩
-
表面符号で、d=3の符号だったかと思います。 ↩
-
初期の頃は、「量子コンピュータでビジネス問題を解きますよ(古典コンピュータより良いとは言っていない)」というのも多かったですが、最近は控えめになってきた気がします。 ↩
-
Pythonごりごり書けますよ!という人も歓迎されるでしょうし、計算機強いですよ!という人も歓迎されるでしょうし、物理詳しいですよ!という人も歓迎されるでしょう。とにかく、色々なところが未整備なので、みんなでやっていかないと終わりません! ↩