Skip to content

Instantly share code, notes, and snippets.

@hariby
Last active June 18, 2021 01:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hariby/d7dc2acf5c61c84c560c9b59430a2ef1 to your computer and use it in GitHub Desktop.
Save hariby/d7dc2acf5c61c84c560c9b59430a2ef1 to your computer and use it in GitHub Desktop.

Amazon Braket を使った量子機械学習入門 1

2021-06-18

Time Table

前半 (講義)

  • AWS と Amazon Braket について (30 min)

後半 (ハンズオン)

ハンズオン手順

対応しているブラウザは「AWS マネジメントコンソールでサポートされているブラウザはどれですか?」を確認して下さい。

ログイン・セットアップ

以下の3つの情報が事前に配布されます。

  • ログイン URL
    • https://XXXXXXXXXXXX.signin.aws.amazon.com/console (XXXXXXXXXXXX は AWS Account ID (12桁の数字))
  • IAM ユーザー名
    • WorkshopUser-i (i = 0, ..., 29)
  • パスワード
    • ランダム文字列

ログイン URL を開き、ユーザー名とパスワードを入力して「サインイン」ボタンを押します。初回ログイン時にはパスワードリセットが求められます。来週も必要になるので忘れないよう記憶しておいて下さい。 忘れた場合は管理者に連絡して下さい。

リージョンは、US の2つを利用します。参加者ごとの割り振りは以下です。ログイン後にこのリンクを開くと Amazon Braket のページに移動します。

Amazon Braket セットアップ

Devices ページでは Amazon Braket で利用可能な Quantum Processing Units (QPUs), シミュレータ一覧が見れます。それぞれの詳細をクリックすると、トポロジーやキャリブレーションの情報が確認できます。

Notebooks ページを開き、作業環境となる Amazon Braket Notebook を作成します。

Notebook 作成手順:

  1. 右上の Create notebook instance ボタンを押す。
  2. "Notebook instance settings" > "Notebook instance name" に amazon-braket- workshop-<名前> (e.g. amazon-braket- workshop-hariby) と入力。
  3. "Permissions and encryption" > "Existing IAM role" で AmazonBraketServiceSageMakerNotebookRole-ForBraketWorkshop を選択。
  4. 右下の Create notebook instance ボタンを押して数分待つ。

Amazon S3 バケットの指定について

マネージドシミュレータや QPU で計算を実行する際は、結果の保存先 (Amazon S3 のバケット名と prefix) を指定する必要があります。バケット名は事前に配布されたものを指定して下さい。プレフィックスは任意ですが、自分の名前を付けておくと後々探しやすいので便利です:

  • バケット名 (my_bucket)
    • amazon-braket-XXXXXXXX
  • プレフィックス (my_prefix)
    • "自分の名前/それぞれのノートブック" が分かるように付けておくと後で識別しやすい (例: hariby/getting-started/1, hariby/pennylane/0, hariby/pennylane/1)

それを Jupyter Notebook 上で以下のように記述します:

my_bucket = "amazon-braket-XXXXXXXX 
my_prefix = "hariby/getting-started/1" 
s3_folder = (my_bucket, my_prefix)

Amazon Braket SDK を使った量子回路の扱い方

それぞれの Jupyter Notebook を使って説明します。

PennyLane を使った量子機械学習導入 (勾配法)

PennyLane は量子コンピュータの微分可能プログラミングのための Python ライブラリです。

後片付け

AWS マネージメントコンソールに戻り、Notebook インスタンスを選び、右上の Actions > Stop を押して、Status が Stopped にした状態で来週の講義まで置いておいて下さい。

(補足説明) もう少し自分で試したい方は、他の example を試した上で Stopped にしてください。来週の講義が始まる5分ほど前に、Actions > Start を選び InService にしておくとスムーズに実機での実行が開始できます。

その他

Amazon Braket のコストについて

Amazon Braket の料金 は、 Notebook, Simulator, QPU それぞれで設定されています。

Notebook に関しては、裏で使われている Amazon SageMaker Notebook の料金に従います。デフォルトだと ml.t3.medium (2 vCPU, 4 GiB Memory) のインスタンスで立ち上がり、単価は $0.05 / hour です (これが実際に立ち上げた秒数ぶん AWS アカウントに請求されます)。

シミュレーションは、SV1, DM1, TN1 それぞれ $0.075 / minute, $0.075 / minute, $0.275 / minute で、これも秒課金で請求されます。

QPU ハードウェアは、それぞれの QPU family ごとに値段が決まっています。1回の計算 (量子回路) を投げるごとにかかる Per-task price と、その中で何回測定するかで決まる Per-shot price の和が実際の料金になります。

Hardware Provider QPU family Per-task price Per-shot price
D-Wave 2000Q / Advantage $0.30000 $0.00019
IonQ IonQ device $0.30000 $0.01000
Rigetti Aspen-9 $0.30000 $0.00035

例: Rigetti Aspen-9 で 1000 shot のタスクをひとつ投げると、0.3 + 1000 * 0.00035 = $0.65 かかります。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment