クラウドで体験する量子コンピュータ

1.7K Views

May 10, 23

スライド概要

一般の方向けに、量子コンピュータの実力やプログラミングの現状を紹介します。
また、公開されている量子コンピュータ・クラウドを紹介し、実行例を紹介します。

profile-image

大阪大学量子情報・量子生命研究センター Quantum Computer(QC) programmer/system software for QC/developing QC clouds 実用的な量子コンピュータを実現するため、ソフトウェアを開発しています。量子コンピュータ・クラウドの中の人。 量子コンピュータの面白さを多くの人に広めたいと思い、量子コンピュータの入門書、入門記事等を書いています。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

クラウドで体験する量子コンピュータ 第3回 量子コンピューティングEXPO【春】 大阪大学 量子情報・量子生命研究センター 特任研究員 束野 仁政(つかの さとゆき) @snuffkin 1

2.

自己紹介 ◆経歴 つかの さとゆき https://snuffkin.github.io/ • 量子コンピュータ・プログラマ ➢量子コンピュータ・クラウド開発 ➢量子ソフトウェア勉強会など ◆量子コンピュータのオープンソース活動 • 量子星占い(2019~) • 量子コンピュータの実機を使ったアプリケーションを 開発し、公開・運用 • 量子コンピュータ・クラウド基盤gaqqie(2021~) • 情報処理推進機構(IPA)の未踏ターゲット事業に採択 2

3.

自己紹介 ◆量子コンピュータの面白さを広める活動 • 量子コンピュータの同人誌 ➢「高校数学からはじめる量子コンピュータ」シリーズ ➢「AWSではじめる量子コンピュータ」 • 量子コンピュータの入門記事 ➢CQ出版社Interface誌 ➢エンジニアスタイル(Web媒体) • 量子コンピュータの入門書 ➢「ラズパイ電子工作&光の実験で理解する量子コンピュータ」 (CQ出版社・共著) ➢「量子コンピュータの頭の中」(技術評論社) ビジネス書でも専門書でもなく、難しい量子力学は無しで、 計算したりプログラミングしたり、手を動かして理解する入門書 6月発売予定。400ページ弱。図が180個くらい 3

4.

目次 1. 量子プログラミングの現状 2. 一般公開されている実機の紹介 3. 量子プログラミングのデモ ※いわゆる「量子ゲート方式」の量子コンピュータに絞った内容 4

5.

用語に関して • 従来のコンピュータに関する用語と、 量子コンピュータに関する用語を区別するため、 「古典○○」「量子○○」という言葉を使います • 例: 古典コンピュータ、古典プログラミング • 物理学には「古典力学」「量子力学」といった分野がある • 「古典○○」に悪い意味はなく、あくまでも区別のための用語 • 例: 古典芸能、クラシック音楽 5

6.

1. 量子プログラミングの現状 6

7.

量子コンピュータの現状 現在の量子コンピュータは ライト兄弟の初飛行に たとえられるような段階 Scott’s Supreme Quantum Supremacy FAQ! https://www.scottaaronson.com/blog/?p=4317 大勢乗せる(大量の量子ビットを扱う) 安全に長時間飛ぶ(正確に長時間計算する) 7

8.

最近の話題 ◆国産超伝導量子コンピュータ初号機を公開(2023年3月) • 理化学研究所、大阪大学等の共同研究グループの成果。研究者向けに公開 • クラウドサービスのソフトウェア周りは 大阪大学(量子ソフトウェア研究拠点)が主に開発 提供:理化学研究所 8

9.

最近の話題 ◆IBMが433量子ビットの超伝導量子コンピュータを公開(2023年5月) • 利用するには特別な契約が必要 • 2016年にクラウド公開された実機は 5量子ビットだった 2016年当時の実機は今は公開されていないが、 5量子ビットの実機は無料で利用可能 9

10.

量子プログラミングの概況 • 古典コンピュータのプログラミング • C, Java, Pythonなど、様々な言語やツールがある • 利用者数、学習資料も多い ➢世界のITエンジニアは2000万人 • プログラミング言語理論など、ソフトウェア工学も発展している • 量子コンピュータのプログラミング(量子プログラミング) • メジャーなものはPythonライブラリであることが多い • 利用者数、学習資料はまだ少ない ➢世界規模の量子プログラミング・コンテストの参加者が2000人 • ソフトウェア工学の発展もこれから 10

11.

量子プログラミングで可能なこと • 古典プログラミング • ソートなど、抽象度の高い関数を利用できる • 計算理論を詳しく知らなくても、 ある程度プログラミングできる 例: 4種類のデータから 1個の正解を検索する(Python) target_list = ["a", "b", "c", "d"] index = target_list.index("b") • 量子プログラミング • アセンブリ言語に近い • 現状では、量子計算を学ぶ必要あり(行列、確率) • 検索処理の例(Grover検索) 例: 4種類のデータから1個の正解を検索する(Grover検索) 11

12.

量子プログラミングのライブラリ 量子コンピュータをクラウド提供している企業、スタートアップ、 研究機関などが開発している • IBM • QunaSys,大阪大学,NTT,富士通 • Amazon • Xanadu • Google • 理化学研究所など • Microsoft 12

13.

量子プログラミング環境 量子プログラミングの実行環境はいくつかあり、 目的によって選択が可能 1. Jupyter Notebook 2. スクリプト 3. GUI 13

14.

量子プログラミング環境 1. Jupyter Notebook • 可視化しやすい • 再現可能な結果が残る • 教材、チュートリアルで利用 • クラウドで実行環境を 提供するサービスがある • IBM Q • Amazon Braket →ライブラリがインストール済 • Google Colaboratory • Binder • … 14

15.
[beta]
量子プログラミング環境
2. スクリプト
• バックグラウンドでの
実行に向いている
•
•
•
•

繰り返し実行
長時間実行
実アプリケーションでの実行
…

random_sampling.py
from qiskit import QuantumCircuit, Aer, execute
circuit = QuantumCircuit(3, 3)
circuit.h([0, 1, 2])
circuit.measure([0, 1, 2], [0, 1, 2])
backend = Aer.get_backend('qasm_simulator')
job = execute(circuit, backend, shots=1000)
result = job.result()
print(result.get_counts(circuit))

> python random_sampling.py
{'011': 102, '000': 123, '111': 127, '010': 122, '101': 135, '001': 133, '110': 139, '100': 119}

15

16.

量子プログラミング環境 3. GUI • インタラクティブに実行 • 量子回路や実行結果の 可視化に向いている Qulacs Simulator(大阪大学が開発) https://qulacs-gui.github.io/qulacs-simulator/ →WebAssemblyを利用し、ブラウザ上でQulacsを実行 →実機を実行できるようにする予定 16

17.

量子プログラミングの実行デバイス 1. 実機 • 量子コンピュータの実際の動作を確認できる(ノイズなど) • クラウド公開されている量子コンピュータを利用 →IBMが2016年にクラウド公開して以降、クラウド・サービスが増加 • 共同利用になるケースが多い(実機は高価) 2. シミュレータ • 理論的な動作を確認できる • • • • 恣意的なノイズ 量子誤り訂正 長い計算 測定しなくても、量子状態を確認可能 • 厳密計算は~40量子ビットくらい • 自分のPCや、クラウド公開されているシミュレータを利用 17

18.

量子プログラミング・コンテスト 1. IBM Quantum Challenge • 毎年、春と秋に開催される、規模の大きいコンテスト • 今年の春は5/17~ • 過去の優勝者の中には日本の大学生も 2. Microsoft Q# Coding Contest 3. QHACK 4. Quantum Algorithm Grand Challenge • QunaSys主催のコンテスト。優勝賞金は$10,000 • 5/3~7/31まで開催中 など 18

19.

2. 一般公開されている実機の紹介 ※研究者や企業向けに限定公開された実機については、ここでは触れません 19

20.

量子コンピュータのクラウド提供者 • さまざまな企業からクラウド・サービスとして公開されている • さまざまな方式の量子コンピュータが公開されている • 超伝導、イオントラップ、光、、、 • 以下はその一部 20

21.

量子コンピュータの提供モデル ライブラリ クラウドサービス デバイス ユーザ デバイスを公開しているのは10~20社くらい? 21

22.

量子コンピュータのデバイス提供者 • クラウドのAPIと、デバイスを両方公開するケース • IBM • Rigetti •… 超伝導 超伝導 IBM 自社, AWS • デバイスのみ公開するケース • • • • IonQ Quantinuum Pascal … イオントラップ イオントラップ 中性原子 AWS, Azure, Google Azure, Google Azure, Google 22

23.

ハードウェアの実現方式 • 量子コンピュータを実現する方式はさまざま • それぞれ長所・短所があり、将来的に何が主流になるか不明 • 個人的には、、、 • 量子ビットの多い量子コンピュータを作っても、 ノイズが多い現状ではフルには計算に使えない • まだ登場していない方式が出てくるかもしれない • 古典コンピュータはCPU、メモリ、SSD、通信など、異なる技術を 組み合わせて構成されている(実用的なコンピュータは複雑) • さまざまな量子ビットが必要になるため、 長所を活用した複数の方式を併用するかもしれない • 量子コンピュータ開発はマラソン 短期的なニュースに振り回されすぎない方が良い 23

24.

3. 量子プログラミングのデモ 24

25.

量子コンピュータの活用領域 • 量子コンピュータで高速化可能な処理 • 高速な量子アルゴリズムが発見されている処理が高速化可能 • 「Quantum Algorithm Zoo全訳」 https://www.qmedia.jp/algorithm-zoo/ • 特に期待されている分野 • 量子化学計算(材料、創薬など) • 金融計算(リスク計算など) • 機械学習 25

26.

量子プログラミングのデモ(乱数生成) • 疑似乱数でなく、真の乱数を生成したい • アプリケーション例: 量子星占い(毎朝9時過ぎに更新) https://www.quantumcomputer.tokyo/horoscope.html 26

27.

量子プログラミングのデモ(乱数生成) • 実機を使い、4量子ビット(0~15)の乱数を1000個生成 • 0~11に星座を割り当てて、頻度が高い順にランキング ※星座の運行から算出している訳ではありません 量子星占いのソースコードは公開しています https://github.com/snuffkin/qctokyo 27

28.

量子プログラミングのデモ(構造のないデータの検索) • 構造がないデータの検索 (ソート等されていない) 例: 4種類のデータから 1個の正解を検索する(Python) target_list = ["a", "b", "c", "d"] index = target_list.index("b") • Grover検索 • (理論的には)2次の高速化。古典コンピュータと比べて、 「正解かどうかチェックする回数」の桁数が半分になる(イメージ) 例: 4種類のデータ(2量子ビット)から1個の正解を検索する(Grover検索) 事前準備 正解かチェック 正解率を高める データ量子ビット 補助量子ビット 量子ビット数に応じた回数分のループ(この例は1回) 28

29.

量子ソフトウェア勉強会の受講者を募集中 29

30.

量子コンピュータを作りたい人を募集しています • 大阪大学量子情報・量子生命研究センターは アプリケーションからハードウェアまで幅広く研究 • さまざまなレイヤの研究者が一緒に研究している 稀有な環境 • 量子コンピュータのクラウド開発・運用を行う人材→募集中 • デファクト・スタンダードなものを開発し、 実用的な量子コンピュータを目指しましょう! • 量子ソフトウェアコンソーシアムの参画企業として携わるのもOK 量子コンピュータを作りたい方、ぜひお声がけください 30