よろずQCのZen問答: Blueqat湊氏が語る。「将来的に量子コンピュータを仕事にしたい人が何をすればよいか」
Blueqat湊氏の追っかけの筆者です。暑いので日よっていたら、この動画を見つけた。米国の戦争映画、刑事ドラマ、SFを見てたらお勧めに出てきた。ふーーんと思って見たら、これは良い。情報の宝庫や!!
こういう情報は実際に手を動かして、作業しQC事業を展開している人でないと言えないなあと感心。早速、ご本人にこのネタでBlogを書くのかと聞いたら、忙しいのでしないとのこと。それでは、不詳暇人の筆者が、宇多話などを含めてまとめてみたいと思う。動画は短いのでみるのもよし、みてからこのTextを読むのもよし。
それでは、始めよう。
この話はBlueqat社に限った話だとしているが、聞いているとこれは企業に就職して将来QCで飯を食おうと思ってる人全員に当てはまると思う。研究者になる人はまた別だろうが。Blueqatは研究も事業もどちらにも力を注いでいるが、明らかに発想がBusiness 優先だ。筆者も研究者の真似事を違う分野でやったけど、研究で生き延びるにはかなりの才能と引きもいると思う。筆者の見るところ、日本は研究者に冷淡でPost Dcなどの地位もあまりきっちりと確立しているようには見えない。安全牌は企業だろう。しかし、企業とて安泰ではない。昔は50を過ぎれば、無言の肩たたき。。。今は45?将来は日々刻々と変化する特殊技術を身につけ、企業を渡り歩くか、起業するかしないと生きてはいけない。「部長か課長はできます。」では生き延びられない。
どの分野を習得・理解すべきか?
ここで、湊氏は4つの大きな分野をあげて、満遍なく理解するのが必要だと言ってる。これは元々、湊氏のblogに何回も登場している。それをまとめた筆者のblogはここで、その部分は
それは、
- QPE(量子位相推定):実用化には時間がかかり、どちらかと言えば研究色が強い。化学関係や創薬など。
- QAE(量子振幅推定):殆どの適用範囲が金融領域のsimulationだ。
- Optimization(最適化):経路組み合わせや投資の最適化など。
- ML:最適化。3と4はヒトカラげにできるかもしれない
どのalgorithmを理解すべきか?
習得しておくと良いalgorithmは、(日本語・英語対比のこのblogを参照のこと。)
- VQE
- QAOA
- QPE
- QAE
- QML
- HHL
それぞれの解説はBlueqatのHome pageやYoutubeに散在している。色々と本も出ているが、例えば、湊氏共著の「IBM Quantumで学ぶ量子コンピュータ」によくまとまっている。
ではどこを勉強するのがお勧めかというと、1つ位は深くやっておき、他は全体的に理解しておくのが良いと。そりゃそうだろう。企業に入って「これがやりたいから、お客さんのリクエストは知りません。」では会社勤めはできない。
他に勉強したり知っておくべきは何か?
各algorithmを深く掘り下げるには、基本的な知識や経験も必要だ。例えば、組み合わせ最適化やQMLには統計的な理解も必須だし、rule-baseやDBの知識もいる。data science的なデータ解析などの基礎知識や理解も必要である。それより何より、物理・数学の基本的な理解や知識は当然必要である。線形代数や複素数を理解せずこういったalgorithmを理解することは不可能ではないかもしれないが、かなり無理があるだろう。
さらに実際に手を動かして、softwareを書くことが必要となった場合、最良はphysonだろう。しかし、最近はコードなしでsoftwareを開発できるツールなども色々と提供されているので、そのようなものにも慣れて使えるようにしておく必要がある。
Blueqat社でインターンするために必須なこと
現在Blueqat社は組み合わせ最適化とMLに特化しているので、あなたがBlueqatに参加したいと思うのであれば以下は必須。
- Physon :(一時期、湊氏えらくJuliaに凝ってたが、結局はPhysonのようだ。)それに付随するNumpy、ScipyやMLのためのFrameworkであるPytorchなどの理解も必須。で、QCのalgorithmもそこそこわかり、MLもそこそこわかっていないといけない。
- Front end(FE)とServer Side(SS)の技術や知識:
- FEとしては、JavaScript、CSS、HTMLの知識やそれぞれのFrameworkやツールの理解と使いこなしが必要だ。UIの実装は手で一から書くことはせずこう言ったFrameworkやツールで作成できることが必要。
- SSにはPythonに対応したFrameworkが必要でいくつかあるが、BlueqatではFlaskを使用している。
2に関して湊氏が強調しているのは。求められているのはBlueqatでMLができると言うのは、単に問題に適用できるMLのモデルを作成するだけでなく、SSもFEも全体として構築して、データがどのように流れてどのように変化するか、一気通貫で見せることができる能力だ。これは強い。大きな会社だったら、SS、MLモデル、FEそれぞれを開発するチームがいるだろう。しかし、一人のMLエンジニアが全てこれを一人で実装できれば、綺麗なストーリーとなってお客さんのニーズにしっかり答えることができるだろう。
それで、言ったことを実行するために、Blueqatでは夏期インターンを募集している。学生だけでなく社会人もOKとかで(特に隠居暇老人は排斥していないが)、社会人でも盆休みと組み合わせれば2週間位なら休暇も取れるだろう。筆者がもう50年若ければ。。。。応募最低条件は
- blueqatの基礎的なチュートリアル
- 古典機械学習の基礎的チュートリアル
- 深層学習の基礎的チュートリアル
- pythonの学習とflask/html/css/jsの基礎的なチュートリアル
をなるべくすましてと言うことだが、至極まっとうな条件だと思う。以上の基本ができてその上でインターンなんで、これをせずに応募はあり得ないだろう。しかも、今どき、情報は一杯無料で入手可能だ。
筆者所感
Blueqatに特化した話とはいえ、かなり普遍的に役立つ情報だと思う。GoogleがMLというか量子AIに特化し始めていることもあり、QCとMLを結合した技術とそれをSSとモデル作成とFEを組み合わせて学べるなど最高のチャンスだ。組み合わせ最適化は最近色々とその限界が議論されているが。囲みを参照。
しかしながら、まだ組み合わせ最適問題は研究の余地があるので、これに時間を割くのも有用だろう。
更にいうならば、将来広い意味で潰しの効くエンジニアになるのであれば、QCだけでなくそれが隣接する技術も取得するのが望ましい。筆者はWeb serviceが台頭してきた時、技術管理の方向に振れたので、Web serviceは理論は理解しているけれど、実践は全くだめ。しかも、Web serviceに使用される技術はどんどん変化している。それをづっと追い続けてしかもちゃんと実装できる能力は生半可なものではない。一人でも多くの人がインターンに参加すると良いなと思う。大きく振りかぶったセミナーやworkshopなんかよりずっと意味がある。こういう会社や湊氏のような経営者が増えないと日本のQCは他のITなどの技術と同様でまた負ける。