NTT技術ジャーナル記事

   

「NTT技術ジャーナル」編集部が注目した
最新トピックや特集インタビュー記事などをご覧いただけます。

PDFダウンロード

挑戦する研究開発者たち

ビジネス課題の解決を量子技術開発により行う

従来に比べて極めて高速な処理が可能な量子コンピュータは、1982年に概念や原型となるアイデアが提案され、その後さまざまな概念、量子回路モデル、アルゴリズム等が提案され、1999年に初のハードウェアが登場し、2023年に初の国産の実機が稼動しました。こうした動きと連動するように、近年、課題とされていた処理規模拡大や、実現困難といわれてきた誤り訂正が条件付きで可能となり、その変化・進化は目まぐるしいものがあります。こうした量子コンピュータについて、NTTデータグループ技術開発本部 加藤拓己氏に、量子コンピュータの概説、課題、課題解決に向けた取り組み、そして、楽しいことに興味を持って発信するという思いを伺いました。

加藤拓己
技術開発本部 シニア・エキスパート
NTTデータグループ

量子の性質を利用したアルゴリズムを評価するソフトウェア開発

現在、手掛けている技術の概要をお聞かせいただけますか。

NTTデータグループでは、PoC(実証実験)の支援、コンサルティングやセミナーの提供、ビジネス課題ベースでのソリューション提案を行っています。これまでのシステム開発の実績に基づき、要件定義からクラウド等での実装まで幅広く対応できることを強みとして、将来的なシステム化に向けた準備、技術的な用途開拓に取り組んでいます。量子技術活用による「ビジネス課題の解決」が私たちのミッションです。その中で私は、「量子ゲート方式で問題を解いた場合、どれくらい時間がかかるかを推定するソフトウェアの開発」「量子化学計算を量子ゲート方式で解くアルゴリズムをシミュレーションするソフトウェアの開発」「量子アニーリングを用いて問題を埋め込む新手法の開発」「量子アニーリングや数理最適化を用いた、物流、香り、製造、レコメンド分野の効率化やデータ分析」に取り組んでいます。
量子コンピュータには、基本的に量子ゲート方式と量子アニーリング(イジングモデル)方式という、大きく2種類の方式があります(図1)。既存のコンピュータ(古典コンピュータ)では「1」「0」で状態が記述されるn個のビットを「AND」「OR」「NOT」といった論理ゲートを用いて計算することで解を得ていますが、量子ゲート方式では、量子が複数の状態を同時に取れる(量子の重ね合わせ状態)という、量子力学の性質を利用した「量子ビット」に量子ゲートを適用することで計算することで解を得ます。概念的に、n個の量子ビットを用いて2n個の状態を同時に処理できることになり、古典コンピュータで行うには難しい処理が極めて高速で実行可能となります。しかし、どのような計算でも高速に処理できるわけではありません。膨大な数の状態から、不要な状態を消して所望の状態だけを取り出せるようにする、つまり欲しい答えが高確率で得られるような、量子コンピュータ専用の特殊なアルゴリズム(量子アルゴリズム)が必要になります。また、量子ビットには、状態を観測した瞬間に2個の状態のうちどちらか1つに収束した結果となる、といった性質があり、量子アルゴリズムでは、計算の途中で量子ビットの状態を収束させないまま計算を行うことも求められます。また、量子ビットはわずかな外的な刺激により状態が変化し、これにより量子ビットの誤りが発生します(誤り耐性がない)。量子コンピュータのハードウェアは外部の刺激を極力少なくするために0K(絶対零度)に近い極低温で動作していますが、それでも誤りが発生し、それらが蓄積され、また、他の量子ビットに伝搬されるため、実用的な問題を解くうえで大きな課題となっています。
さて、「量子ゲート方式で問題を解いた場合、どれくらい時間がかかるかを推定するソフトウェアの開発」というテーマについては、具体的にどのような大きさの計算がどのような規模の量子コンピュータで計算できれば、古典コンピュータよりも高速になるのかを見積もるためのソフトウェアを開発しました。これを行うためには、量子コンピュータ向けのソフトウェアの処理時間を評価する必要があります。ところが、評価に使えるレベルの量子ゲート方式のコンピュータがまだ実在しないので、実際に動かしてみるということができません。そういった中で処理時間を評価するためには、ある程度適切な仮定を設定して、量子アルゴリズムを命令の列に分解してそれが何個あるかを数えます。そのため、妥当な仮定を設定し、また、量子アルゴリズムをつくるスキル等が必要になります。評価に使えるコンピュータがないことに加えて、こういった能力が必要とされることが、このテーマの難易度を高いものとしています。
「量子化学計算を量子ゲート方式で解くアルゴリズムをシミュレーションするソフトウェアの開発」については、どのようなアルゴリズムがどの量子化学計算に適するのかを評価するためのソフトウェア開発になりますが、処理速度推定ソフトウェアと同様なスキルが必要となり、難易度も高いテーマです(図2)。これらは、第3回・第4回量子ソフトウェアワークショップの講演およびポスターセッションで発表しており(1)(2)、どちらも、私自身がこういったスキルを駆使して開発を行っています。
現在は、量子ゲート方式のハードウェアが商業用に公開されて日が浅い中で、ノイズが多いことにより計算途中で結果に誤りが発生すること、そして、その誤り訂正を行うためには相当多数の量子ビットが必要となることが、実用的な問題を解くうえでの課題となっています。そういった状況で、どういった規模のハードウェアがあれば、どういった問題が解けるのか、また、そのためにはどのような量子アルゴリズムを用いればいいのかを探索することが量子コンピュータの実用上、大変意義があると考えています。

量子アニーリング方式についてはどうなのでしょうか。

砂粒が入った容器を何回か振動させると、砂粒表面の凹凸がそれぞれうまく組み合わさることで、最終的に全体の体積が小さくなり、砂粒が押し固められたようになり安定します。この砂粒が量子ビットに相当し、非常に弱い磁場の変化により(容器を外部から振動)、量子ビットどうしの相互作用により最終的には量子どうしが安定した状態に収束します(個々の砂の凹凸がうまく重なって空間を埋め合うことで安定した状態)。これが量子アニーリング方式の概念です。量子アニーリング方式は、複数の量子ビット(の組合せ)が安定的(最適)な状態で収束する性質を利用しているので、例えば最適な配送ルートの決定等の組合せ最適化問題に適用されます。古典コンピュータで組合せ最適化問題を解くことに比べ、良い解が得られない場合も多いのですが、それぞれの量子の相互作用により一瞬で安定状態となることから、解の候補を高速に多数選択するには優れています。また、量子ゲート方式と比べて、構造がシンプルなためハードウェア開発がしやすく、量子ビットの数も大規模にすることができるため、すでに数千量子ビット級のハードウェアが商業的に提供されています。
「量子アニーリングを用いて問題を埋め込む新手法の開発」については、実際に解く問題をイジングモデル*として表現してハードウェアに乗りやすいようなかたちにする(埋め込む)ための新しい手法を開発するもので、広島大学と共同研究で取り組んでいます。同じ問題であっても、その表現方法によりイジングモデルに埋め込んだときのサイズと要求分解能が異なります。一方で、量⼦アニーリング方式ではハードウェアの規模と計算精度には制限があるため、大規模な順列型組合せ最適化問題を解くには、イジングモデルのサイズと要求分解能をハードウェア仕様の制約以下まで小さくする必要があります。こうした課題に対して、「dual-matrix domain-wall法」という新手法を開発しました。巡回セールスマン問題を例として、無向グラフの頂点数(訪問する都市数)をn = 300とした場合、一般的な「one-hot法」に比べてイジングモデルのサイズを25分の1以下に削減しました。この手法を用いると、問題の表現に必要な変数の数は約3倍になりますが、イジングモデルのサイズをone-hot法の「n3」のオーダから「n2」のオーダへ、要求分解能も「n」のオーダから「定数」へ大幅に削減できるようになりました(3)
「量子アニーリングや数理最適化を用いて、物流、香り、製造、レコメンド分野の効率化やデータ分析」については、さまざまな応用分野におけるデータ分析や業務効率化を行うものです。私たちのチームでは、NTTおよび株式会社香味醗酵と共同で、香味醗酵が保有する数千種類の匂い成分から最適な組合せを計算することで、少数の匂い成分でさまざまな匂い・香りを瞬時に再構成する実機検証を2022年11月から実施しています(4)。また、数理最適化技術を活用した独自アルゴリズムを開発し、広島大学、株式会社伸光製作所と共同で、伸光製作所の製造ラインへ同アルゴリズムを適用し、プリント基板の量産を2023年4月より4カ月間実施・検証し、製造効率化および安定運用を確認しました(5)

* イジングモデル:格子状に配置された膨大な個数のミクロ要素が相互作用し合い、またそれぞれのミクロ要素に強制力が与えられているとき、全体(マクロ)としてどのような振る舞いを示すかを表現する、統計力学のモデル。量子アニーリング方式では、組合せ最適化問題をイジングモデルとして表現することで問題を解きます。

仕事のオン・オフをしっかり区別して、オフは興味のあることにチャレンジ

技術者としてスキルの維持、スキルアップはどうしていますか。

量子コンピュータは、1982年に概念や原型となるアイデアが提案され、その後さまざまな概念、量子回路モデル、アルゴリズム等が提案され、1999年に初のハードウェアが登場し、2023年に初の国産の実機が稼動しました。その意味ではまだまだ発展途上の技術分野なので、従来のスキルの勉強というよりも今後勉強しなければならない部分のほうが多いと思います。
私は、2022年にNTTデータグループに入社して、技術開発本部において量子コンピュータ関連の開発を担当していますが、大学卒業後はプラントエンジニアやITエンジニアをしており、2018年に量子コンピュータの仕事をするために、量子コンピューティングライブラリ「blueqat」を提供しているblueqat社に移籍しました。ですので、通算すると5~6年は量子コンピュータに業務としてかかわっています。
量子関連のスキルについては、前述のとおり今後も継続してスキルアップを図る必要もあり、量子コンピュータそのものはもちろんですが、科学の問題を解く場合はその科学分野の知識も必要になってきますし、知識とかスキルがあればあるほど困らない状況なので、私は何に対しても興味を持ってスキルアップに取り組んでいます。また、私は具体的な開発を担当しているのですが、社内の各種のお客さま関連のプロジェクトへ技術的な立場で上司とともに参画している中で、数理最適化であればお客さまのビジネスへの適用も多く、そこで何を問題としているのかということを見抜く力も必要になり、これはプロジェクトの活動を通してスキルアップを図っています。
とはいえ、スキルの維持・向上を意識しすぎてしまうと重荷に感じて義務的になってしまうこと、スキルアップの対象が非常に広範であることから、どちらかというと個人的に面白いと思った方向にスキルアップを図っていくようにしています。

開発において大切にしていることは何でしょうか。

IT系のエンジニアは、開発納期や品質の関係から、どうしてもプライベートな時間でも頭の中ではシステム等に関することを考えがちになります。これが続くとモチベーションが低下する、または、仕事の壁にぶつかったときに客観的に壁を見ることができないために、突破口を見つけることができず、そこで行き詰ってしまう、ということもあります。
そこで、私はオン・オフの切り分けをはっきりさせ、オフのときは仕事のことは一切考えず、自分の興味があることを行うように心掛けています。とはいえ、私にとって量子は1つの大きな興味の対象なので、仕事では見ていないような量子の世界を見てみようとか、普段つくっているものとは違うものをつくってみよう等思っており、それに関する勉強をしています。例えば、量子コンピュータのアルゴリズムを、Python(パイソン)というプログラミング言語で書いたものに、Webのインタフェースをつけてみようと思い、TypeScript(タイプスクリプト)やReact(リアクト)というWeb関連のプログラミング言語やライブラリの勉強をしました。また量子機械学習関係の記事をコミュニティ等へ投稿することもあります。
こうやってみると、オン・オフの区別があいまいになっているようにみえますが、仕事とは直接関係のない部分で量子にかかわっており、頭の中では完全に切り離されているので、自身としては区別がついていると思っています。ただ、こうした活動が仕事に反映されることもあり、その結果スキルや仕事の幅が広がることにもつながり、いい循環になっています。

面白いモノ・コトに興味を持って取り組み、発信していく

将来的に何をめざして開発を続けるのでしょうか。

前職で量子コンピュータに関するプログラムをいくつか開発してオープンソースで公開していました。また、技術記事の投稿を普段から行っているほか、最近はIBMの量子コンピュータのオープンソースライブラリのユーザコミュニティで活動を行っています。また、2020年に独立行政法人情報処理推進機構(IPA)の「未踏ターゲット」という事業に採択され、終了後もOBとしてさまざまな意見提起をしていたこともあり、この世界に多くの人脈を持っています。
量子コンピュータ自身も、近年はハードウェアが急速に発展し、誰でも無償で利用できるものも公開されています。さらに、実現が非常に困難といわれていた量子誤り訂正が、小規模ながら誤り訂正が実現したというニュースもあり、目まぐるしく変化し、進化しています。一方、古典コンピュータで量子コンピュータをシミュレーションする技術も進展しており、以前は古典コンピュータでは計算不可能とされていた規模の問題がシミュレーションできるようになり、量子コンピュータを通じて古典コンピュータの技術も進歩しており目が離せない状況です。
今後も、私の財産でもある人脈やコミュニティ等も活用して、実用化も視野に入れながら、こうした変化・進化の先にあるものをめざして開発を続けていきたいと思っています。何より、私自身、開発が好きなのです。そして、いずれはチームを技術で引っ張っていくような存在になりたいと思います。

社内外の技術者、パートナーへのメッセージをお願いします。

技術者の皆さんには、面白いものを見つけてそれに対して興味を持って深掘りして、得た結果や知見を世間に発信してほしいと思います。
私自身も、人が興味を持って結構な熱量で書いた文献を読み、それを面白いと思って興味を持ってきましたし、それを真似して発信していくことで他の人に興味を持ってもらう、あるいは、これを書いた人だと認知していただくことで可能性が広がった経験があります。単に面白い、興味を持つだけではなく、発信にまでつなげていってほしいと思います。
パートナーの皆さんには、量子コンピュータは最近の流行で、そこにはビジネスの匂いがするように思う人もいるかもしれませんが、実際、実用化は意外と遠い技術で、実用化に向けた課題もかなり多くあります。そういった状況を理解しつつ、実用化に向けて、量子そのものの面白さを感じ取りながら、未来につなげられるようなことをご一緒していただきたいと思います。

■参考文献
(1) https://qsw.phys.s.u-tokyo.ac.jp/workshop202308
(2) https://qsw.phys.s.u-tokyo.ac.jp/workshop202312
(3) https://www.nttdata.com/global/ja/news/topics/2023/101301/
(4) https://www.nttdata.com/global/ja/news/release/2022/110200/
(5) https://www.nttdata.com/global/ja/news/topics/2023/080100/