blueqat news
量子コンピュータ関連銘柄 更新: 10/12 14:30(日本時間)
%は前日比・グラフは直近10営業日の推移 — 株価とニュースの突き合わせ / 業界の関係図
寄稿 ソフトウェア開発

量子コンピュータのクラウドをAIに作らせたら3分37秒だった―誰でも作れます

要約

量子コンピュータを買っても、そのままでは人に貸せません。使う人が書いたプログラムを、その機械が分かる言葉に直す係が要るためです。生成AIに作らせたところ、3分37秒・354行で動きました。必要なのは5つの係で、難しいのは2つだけです。図を使って、何がどう動いているかと、どういう順番で作るべきかを説明します。

量子コンピュータを買いました。せっかくなので、社外の研究者やお客さんにも使ってもらいたい。

そう思ったとき、機械のほかに何が要るのでしょうか。

生成AIに作らせてみました。かかったのは3分37秒です。

最初のファイルを置いたのが3時15分13秒、動かして正しい答えが出たのが3時18分50秒。できたのは354行のプログラム1本で、この記事に出てくる数字は、すべてそれを動かして出たものです。

昔なら専門書を何冊も読んで、数か月かかっていた部分です。それがこの時間で動くようになりました。この記事は、その中身を全部お見せするものです。

まず、使う人から見た流れ

使う側はとても簡単です。

  1. 自分のパソコンでプログラムを書く
  2. 送る
  3. 待つ
  4. 答えが返ってくる

インターネットの買いものと変わりません。難しいのは、送られてきたものを受け取る側です。

間に5つの係が入る

量子コンピュータを人に貸すしくみ。使う人が送ったプログラムは、受付・翻訳・確認・順番待ちを通って量子コンピュータで計算され、結果返しの係が答えを返す。
量子コンピュータを人に貸すしくみ。使う人が送ったプログラムは、受付・翻訳・確認・順番待ちを通って量子コンピュータで計算され、結果返しの係が答えを返す。

送られてきたプログラムは、そのままでは動きません。間に5つの係が入ります。

係何をするか
① 受付誰からの依頼か確かめる
② 翻訳この機械が分かる言葉に直す
③ 確認直したあとも同じ計算か確かめる
④ 順番待ち機械が空くまで並べる
⑤ 結果返し答えを返す

このうち3つは、ふつうのネットサービスと同じです。①受付は買いものサイトのログイン、④順番待ちは注文の行列、⑤結果返しは配送通知と、やっていることは変わりません。作れる人はたくさんいます。

難しいのは②翻訳と③確認の2つだけ。ここが量子コンピュータ特有です。

なぜ翻訳が要るのか

量子コンピュータは、機種によって使える命令が違います。教科書に載っている命令が、実際の機械には無いということが普通に起こります。

無い命令は、その機械が持っている命令を組み合わせて表し直します。これが翻訳です。

どのくらい変わるか、実際に見てみます。いちばん基本的なプログラムを送ったときの記録です。

使う人が書いた命令 : 2個
機械に送られた命令 : 22個

2個が22個になりました。11倍です。使う人はこのことを知らなくて構いません。翻訳の係が黙ってやります。

いちばん大事なのは、実は「確認」

ここがこの記事でいちばん伝えたいところです。

量子コンピュータのプログラムは、まちがっていてもエラーが出ません。

ふつうのプログラムなら、まちがえれば止まるか、明らかにおかしな数字が出ます。量子コンピュータはそうなりません。最後まで動いて、それらしい答えを返します。

実際に試しました。正しく翻訳したプログラムに、余計な命令をたった1つだけ足して動かしてみます。

正しい回路とこわれた回路の結果。どちらもそれらしい数字が並び、見分けがつかない。
正しい回路とこわれた回路の結果。どちらもそれらしい数字が並び、見分けがつかない。

左が正しい答え、右がまちがった答えです。どちらも「それらしい」数字が並んでいます。エラーは出ません。

このプログラムは、本当は「00」か「11」のどちらかしか出ないはずのものです。まちがったほうは「01」と「10」しか出ていません。正解を知らなければ、どちらが正しいか分かりません。

人に貸すなら、これは大問題です。使った人はまちがった答えを受け取って、気づかないまま研究や仕事に使ってしまいます。

確認の係は、ちゃんと止めた

では、確認の係はこれを見つけられるのか。同じこわれたプログラムを通してみます。

正しい翻訳  : 一致した   ずれ 0.0000000000000005
こわれた翻訳 : 一致しない ずれ 1

止まりました。正しいほうは、小数点以下15桁まで0が並ぶ、計算の誤差の水準で一致しています。こわれたほうは「ずれ1」とはっきり出ました。

だから、作る順番が決まります。

翻訳を作るより先に、確認を作る。確認を通らないものは返さない。これを最初に決めておかないと、あとから足すのはとても大変です。

確認には時間がかかる。だから2種類用意する

ただ、確認には時間がかかります。しかも、扱う数が増えるほど急に重くなります。実際に測りました。

大きさきっちり確かめるざっくり確かめる
小(4)0.006秒0.010秒
中(6)0.019秒0.011秒
大(8)0.273秒0.029秒

小さいうちはきっちり確かめたほうが速いのですが、大きくなると逆転して9倍の差がつきます。

そこで、確認の方法を2つ用意しました。「ざっくり」のほうは、でたらめな入力をいくつも試して、翻訳の前と後で同じ答えが返るかを見るやり方です。

ただしこちらは、「まちがいが見つからなかった」というだけで、証明ではありません。だから、どちらの方法で確かめたかを答えと一緒に必ず書いて返すようにしました。

安全のために止めていること

外の人に使ってもらう以上、守らなければいけない場所があります。実際に試して、全部止まることを確かめました。

知らない人は入れない

鍵がない       → お断り
でたらめな鍵   → お断り

変なものを送られても実行しない

知らない命令       → お断り
存在しない番号     → お断り
大きすぎるプログラム → お断り
多すぎる計算回数   → お断り

送られてきたものをそのまま動かすのではなく、あらかじめ決めた命令だけを通します。それ以外は、どんな形で来ても受け付けません。

他人の答えは見せない

別の人が他人の受付番号を指定 → 「そんな番号はありません」

「見る資格がありません」ではなく「ありません」と答えます。そういう番号が存在すること自体を教えないためです。

記録を残す

03:18:50  田中研究室  受付   2個の命令
03:18:50  田中研究室  確認   きっちり確認 0.001秒  2個→22個
03:18:50  田中研究室  完了   0.054秒

誰がいつ何を送って、どう確かめられて、どれだけかかったか。あとで問題が起きたときに追えます。

作っていて、あぶない失敗をしました

正直に書いておきます。作業中に、確認の係が何も見ていない状態になる失敗をしました。

確認の係は「合っていたかどうか」と「どれだけずれていたか」の2つを返します。私はこれを受け取りそこねて、中身を見ずに「返事があった=合格」として扱っていました。まちがっていても通ってしまう状態です。

動かして確かめている途中で気づいて直しました。ですが、これは動かしてみなければ絶対に分からない種類の失敗です。

誰でも作れます。ただし順番だけは守ってください

ここまで読んで、難しそうに見えたでしょうか。実際にやったことは、こうです。

  1. 「量子コンピュータをクラウドで貸すのに何が要るか」を生成AIに聞く
  2. 出てきた5つの係を、1つずつ作らせる
  3. 動かす
  4. まちがっていたら直させる

特別な知識は使っていません。専門書も読んでいません。3分37秒というのは、この1から4を回した時間です。

ただし、順番だけは守ってください。

生成AIに「量子コンピュータのクラウドを作って」と頼むと、たいてい受付や順番待ちから作り始めます。動くものが早く見えるからです。ですが、そこから作ると確認の係が最後まで残り、たいてい省かれます。

省いた仕組みは、動いているように見えます。答えも返ってきます。それが正しいかどうかだけが分からないという状態になります。

この記事で「確認を先に作る」と繰り返してきたのは、そのためです。作る速さが上がったぶん、順番を間違えたときに気づきにくくなりました。

私自身、確認の係が何も見ていない状態のまま先に進みかけました。動かして初めて気づいています。速く作れることと、正しく作れることは別です。

まとめ

作る順番は、こうなります。

  1. 確認の係から作る(翻訳より先)
  2. 翻訳の係を作り、確認に通す
  3. 変なものを実行しないようにする
  4. 受付・順番待ち・結果返しを作る(ここは速い)
  5. 記録を残す

1と2が山場で、そこを越えれば残りはふつうの技術で組めます。

以前は、この1と2に専門書と長い経験が要りました。いまは3分37秒です。まず動くものを作って、確認の係にまちがいを見つけさせながら進められます。

思いつく仕事は生成AIに、正しいか確かめる仕事は機械に。この2つを分けておけば、専門家でなくても手が出せます。逆に、分けないまま速く作ると、まちがいに気づけない仕組みができあがります。

量子コンピュータを買ったものの、その先で止まっている方に、道すじとして届けば幸いです。


*この記事の実行結果と測定値は、すべて当サイトが実際に組んだプログラムの出力です。計算はシミュレータで行っており、実際の量子コンピュータへ送るしくみは、あえて作っていません。翻訳と確認の中心部分には blueqat 量子開発チームが作った道具を使っています。*

寄稿は筆者個人の見解です。編集部の見解ではありません。 この媒体はblueqat株式会社が運営しています。

続きはメールでも受け取れます

新着記事のまとめを、毎日・週1回・月1回から選んでお届けします。 対談と教えて先生の続きも読めるようになります。登録も閲覧も無料です。

ログインしてメール配信を設定