金澤直輝(かなざわ・なおき)
IBM東京基礎研究所
豊橋技術科学大学電気・電子情報工学専攻博士課程修了 博士(工学)。スピン波を用いた論理素子の実験実証を行う。2017年にIBM東京基礎研究所に入社。2018年からQiskitの開発に従事。2019年にQiskit Pulseの立ち上げを行い、現在はクラウド量子コンピューターを用いたパルスレベルの実験デモンストレーションおよびソフトウェア開発を行っている。
IBM東京基礎研究所 金澤 直輝
―近年、量子コンピュータを取り巻く環境は大きく変化している。
最前線で研究を進める研究者は、今の世界をどう見て、未来をどう作り上げていくのか。本連載では、日本で量子コンピュータ技術の研究開発において活躍する若手研究者の声から、量子コンピュータにまつわる様々な視点を届けていく。
IBMは、2023年に1000量子ビットを超えることを宣言した。日本ではすでに量子コンピューターの実機が新川崎・創造のもり かわさき新産業創造センターで稼働しており、今後の量子コンピューターの普及を牽引していく技術拠点となっている。ハードが進化する一方で、量子コンピューターが社会に広く実装されていくには、ソフト面の充実も重要だ。特に、量子コンピューターの計算エラーを軽減するソフトウェア開発は、実用化・汎用化に向けて進展が期待される。IBMでは、ソフトウェア開発環境「Qiskit」を中心に、ハードを支える体制を強化している。2021年5月には、量子古典ハイブリッド・アルゴリズムの実行時間を100倍以上高速化する新しいQiskit Runtimeが発表された。今回取材した金澤直輝氏は若くしてQiskit開発のコア部分を担ってきた。このQiskitとはどのようなツールなのか、そしてQiskitを通じて今後どのようにイノベーションを図っていくのか、その展望を伺った。
(聞き手・構成:釜屋憲彦/写真:増山弘之)
金澤直輝(かなざわ・なおき)
IBM東京基礎研究所
豊橋技術科学大学電気・電子情報工学専攻博士課程修了 博士(工学)。スピン波を用いた論理素子の実験実証を行う。2017年にIBM東京基礎研究所に入社。2018年からQiskitの開発に従事。2019年にQiskit Pulseの立ち上げを行い、現在はクラウド量子コンピューターを用いたパルスレベルの実験デモンストレーションおよびソフトウェア開発を行っている。
学生時代は工学系の研究室で高周波の磁性の研究をしていました。ものづくりが好きで、マイクロ波を電子回路の設計によって操作するエンジニアリングの世界にどっぷりと浸かっていました。
量子コンピューターと出会ったのは、IBMに入社してからです。配属された部署で大きなプロジェクトに区切りがついた段階で、当時のマネージャーから「何か新しい研究をやってみないか」と、誘いを受けました。
当社には「Transformation」という文化があります。同じことをずっとやるのではなく、時代の流れに合わせて柔軟に変化していくというという社風ですね。こうした社内の自由な雰囲気の後押しもあり、量子コンピューターの勉強をはじめてみました。最初の1年間は数人ほどのチームで勉強会を開いていました。
量子コンピューターの研究を本格化させる大きなモチベーションとなったのは、勉強していく中で見た、ケーブルがいっぱい張り巡らされた、当社の量子コンピューター実機の写真です。この写真を見た瞬間、「これは大学でやっていたマイクロ波エンジニアリングに通じるものがある!」と直感し、好奇心を突き動かされました。
マイクロ波のエンジニアリングについて、会社で起きていることを調べていた時、OpenPulseという、当時IBMの中では最先端のAPI(Application Programming Interface)の仕様書が公開されていました。これは何かというと、クラウド上で、パルスレベルで量子コンピューターを制御するインタフェースの仕様書です。
詳細を知るため、あるアメリカのチームにコンタクトをとったことをきっかけに本格的なプロジェクトが動き出しました。彼らとやりとりをしてみると、「APIはあるが、SDK(Software Development Kit )がまったくない」ということがわかった。つまりAPIを動かす新しいプログラムがスムーズに作れないという状況だったわけです。
「それなら、君が作ってみたら」という提案があり、ほとんどゼロからのソフトウェア開発となりました。最初は数人の小さいチームで、USの開発者の設計案をもとに実装を進めました。私にとっては何もかも初めてのことだったので、チームメンバーの協力をいただきながら必死に勉強しました。ソフトウェアエンジニアリングをはじめ、量子物理に関わる実験家の方々がどのように量子ゲート操作を実装しているかなど調べながら、少しずつ新しい開発に取り組んでいきました。言語開発にあたって、様々な実験プロトコルを抽象化していく段階で、大学で学んだマイクロ波実験の知見が大いに役立ちました。
Qiskitという、量子コンピューティングにおけるオープンソース化されたソフトウェアの開発環境です。Qiskitでは量子回路を構築し、シュミレーションし、実際に量子デバイス上で実行し、結果を可視化することが可能です。プログラミングは、量子回路モデルを使用します。ちなみに量子回路モデルとは、量子ゲートの組み合わせによって量子計算を表現する計算モデルで、これらによって干渉やエンタングルメント(量子もつれ)といった量子力学の原理に則った量子レジスタの操作を行います。
実際のプログラミングでは、下図のように、五線譜状のタイムラインに沿ってゲートを配線しながらプログラムを組み、それをグラフィカルに表現できます。シミュレータなども内蔵されており、複合的なライブラリで構成される統合的なソフトウェア開発環境となっています。チュートリアルも公開されていますし、仕様に慣れてくると直感的にプログラミングすることが出来ます。
私が担当しているのは、コア部分のパルスの制御です。量子コンピューターのプログラムの実態は、異なるパルスパターンの組み合わせです。つまり、パルス制御が量子コンピューターの性能を引き出す鍵のひとつといえます。エンジニアの視点から、より高度なパルス制御を実現するためには何をすべきかを日々考えています。最終的には、制御技術が完成され、パルスのAPIが無くなることが目標ですね。
1、2年前までは、主にQiskit Pulseというパルスレベルのプログラミングを行うためのSDK開発に携わっていました。Qiskit Pulseは、特定のハードウェアに依存しない一般の量子デバイスに対してパルスレベルの制御(例: 入力シグナルの連続時間ダイナミクスの制御)を指定する言語を提供します。
先ほど、Qiskitは量子回路モデルでプログラミングを行うと言いましたが、パルスレベルでプログラミングを行う場合、ちょっと記述方式が変わります。時間のスケールが異なり、順番的な時間ではなく、実際にどのタイミングでパルスを照射するかという絶対時間が重要になります。こうしたパルスレベルの制御を指示する記述方式の改良が、主に行っていた活動です。
パルスの開発環境を作り、ある程度完成されてきた段階で、実際のデモを通じてユーザー向けにQiskitの学習教材を作成してみたりもしました。すると、このような仕事に対して社内から「こんな実験を考えてみたんだけど」などといった具体的な声がかかるようになり、いくつかの共同プロジェクトや研究が立ち上がっていきました。
現在注力しているのは、専門家をつなげるプラットフォーム作りです。量子コンピューター界でのイノベーションが起こるようなしかけ作りですね。
具体的には、パルスレベルの現象の較正を行う専門家とアプリケーションレベルの研究を行う専門家を円滑につなげる環境です。パルスレベルのプログラミングと量子回路レベルのプログラミングは異なるシンタックスを使います。いくらパルスレベルの現象が抽象化された世界でプログラミング言語として提供されていたとしても、実際の物理実験の経験がない数理の専門家からするとパルスを自分でプログラミングするのは難しい。これを改善したかったのです。
2019年に私たちがパルスのモジュールを開発してから3年ほど経ちましたが、パルスを使った研究論文が少しずつ出てきました。しかしそうした研究のほとんどは、「新しい制御方式を確立し、こういうベンチマーク(指標・基準)を使って、何%改善しました」といったような内容です。「作ったパルスを使って実際にこのアプリケーションが動くようになりました」といったような、実用的な研究はまだ少ないのが現状です。
そうですね。せっかく優れた知見や知識、技術があっても、専門家の間でやりとりがされなくては、なかなかイノベーションは起きません。この課題を解決すべく開発し、公開したのがパルスゲートというプログラムモデルです。これによって、現在親しんでいただいている量子回路モデルでのプログラム構築にパルスゲート機能を追加することで、量子回路の一部の命令に対してパルスを使ってオーバーライドするような仕様が可能となりました。ほとんどの量子アルゴリズムは回路演算だけで記載できますが、 もっと低いレベルのプログラムの実装を制御する必要がある場合、パルスゲートが役に立ちます。
とはいえ、パルスのプログラム自体はどこかで定義しなければならないという課題がどうしてもあり、他の側面からのアプローチが必要です。そこで私たちが開発し、最近公開したプラットフォームがQiskit Experimentsなのです。
Qiskit Experimentsは、量子コンピューターによる実験の構築、実行、分析のためのツールが揃ったライブラリであり、IBMの提供するクラウドと連携しています。Qiskit Experimentsの一番の利点としては、パルスを較正した実験結果のデータをそのままクラウド上で保存し、シェアできる点です。(現在開発中)パルス較正の専門家は自分で較正を行い、その結果をクラウド上で保存・公開する。アプリケーションの専門家はその較正されたバックエンドをとってきて実験する。このような専門家同士の円滑なコラボレーション環境が整いつつあります。Qiskit Experimentsから多くのイノベーションが生まれることを期待しています。
既存のものだけではなく、新しいプロトコルを考えて、自分で実験をし、新しい統計データを出してみることが何より重要です。Qiskit Experimentsの特徴は、クラウドに接続するためのベースのクラスが用意されており、ユーザーはそのサブクラスを作ることによって自分の実験を定義できる点です。ユーザー自身はベースクラスを使って実験を設計し、あとはそれを実行し保存すればクラウドにきちんと整理された状態でデータが提供されます。最初はライブラリにある実験をお試しで使って、慣れていただき、そのうち自分で実験を考えてみるのがいいと思います。将来的には、長期的に安定して稼働するような制御プロトコルが出てくるといいなと考えています。
Qiskitコミュニティ が認証した活動的なメンバーに対して専門家や開発者側から様々な教育を行うことを目的としたプログラムとしてQiskit advocates があります。私も、このプログラムを通じて何人かのAdvocateに向けた指導を担当させていただきました。参加者には大学の先生や学生など、様々な背景の方々がいらっしゃいます。
プログラムはいたって実践的です。「こういう風に使うんですよ」と示しつつ、数ヶ月間のプロジェクトを一緒に成し遂げるような形です。この期間の中で密接に関わり合うので、「ここがわかりにくい」「この機能が出来たおかげで使いやすくなった」などの声を直接聞く機会となっています。作る側として、実際のユーザーの声はとても大切に捉えています。
大きなビジョンとしては、誰もがもっと簡単に、直感的に量子コンピューターにアクセスし、使うことができる未来です。いまの若い方々は、小学生の頃からすでにパソコンや携帯を使っているので、実際、直感的なコンピューターの使い方をしていると思います。将来的にはそれ同じような感覚で、量子コンピューターを使いこなしていただけるインタフェースを開発できればいいなと思っています。
また、個人的に、元々はマイクロ波エンジニアリングに関わっていたので、ゆくゆく高周波デバイス設計に戻ってみたいです。これまでそのような機会を得ることが出来なかったのですが、最近、弊社は東京大学とのパートナーシップ(Japan–IBM Quantum Partnership)もあり、ハードウェア寄りの研究環境が出来てきたので、こちらの方にも今後注力していくつもりです。
エジソンが大好きです。エジソンが成功者だと思っている方は多いと思うのですが、彼は失敗と努力を無数に積み重ねた人です。
以下が私の気に入っているエジソンの名言です。
“I have not failed. I’ve just found 10,000 ways that won’t work.”
(私は失敗したことがない。ただ、1万通りの、うまくいかない方法を見つけただけだ。)
大学時代にこの言葉に出会いました。当時、研究していた磁気センサーに強い温度依存性があり、実験がうまくいかなかったんです。こんな時、エジソンの言葉に勇気をもらいました。「失敗したんじゃない。このパターンがうまく行かないことが分かったんだ」と前向きに失敗を省みるようになったのです。今行っているソフトウェア開発は非常に競争が激しい世界です。提案した仕様が却下されると焦りますし、落ち込みます。しかし、エジソンの言葉が気づかせてくれるのは、失敗の有り難さです。失敗を分析し、結果的に成功につなげれば良い。今もなお、短くも説得力のある言葉が、私を支えてくれています。
理系・文系問わず、ぜひ量子コンピューターを使ってみてください。Qiskitのように実機にアクセスできるツールも用意されていますし、プログラミングに必要な言語も整っているので、経験をある程度積めば、直感的に使えるようになります。実際に量子コンピューターで重ね合わせ状態を作ってみて、それを観測してみることで新たな発見があるはずです。量子コンピューターに触れて、そこで何か感動できるものが得られれば、おそらくそれは、勉強や研究をする大きな原動力につながると思います。