メインコンテンツへスキップ

Qiskit入門

「Qiskit」という名前は、量子コンピューター上でプログラムを実行するためのソフトウェア集合を指す総称です。これらのソフトウェアツールの中で最も注目すべきものは、オープンソースのQiskit SDKと、IBM®の量子処理ユニット(QPU)上でワークロードを実行できるランタイム環境(Qiskit Runtimeを使用してアクセス)です。量子技術の進化とともに、Qiskitも発展し続け、この量子ソフトウェアのコアコレクションを拡張する新しい機能が毎年リリースされています。

さらに、多くのオープンソースプロジェクトがより広いQiskitエコシステムの一部となっています。これらのソフトウェアツールはQiskit自体の一部ではありませんが、Qiskitと連携して有益な追加機能を提供します。

IBMは量子コンピューティングの責任ある開発に取り組んでいます。責任ある量子コンピューティングのトピックで、詳細と私たちの責任ある量子の原則をご確認ください。

Qiskit SDK

Qiskit SDK(パッケージ名 qiskit)は、拡張された(静的、動的、スケジュール済みの)量子回路、演算子、およびプリミティブのレベルで量子コンピューターを扱うためのオープンソースSDKです。このライブラリはQiskitのコアコンポーネントであり、量子計算のための最も広範なツール群を備えたQiskit名下最大のパッケージで、他の多くのコンポーネントがこれと連携しています。

Qiskit SDKの最も有用な機能の一部を以下に示します。

  • 回路構築ツール (qiskit.circuit) - レジスタ、回路、命令、ゲート、パラメーター、制御フローオブジェクトの初期化と操作に使用します。

  • 回路ライブラリ (qiskit.circuit.library) - 回路ベースの量子計算における重要な構成要素となる、幅広い回路、命令、ゲートを提供します。

  • 量子情報ライブラリ (qiskit.quantum_info) - 量子状態、演算子、チャンネルを正確な計算(サンプリングノイズなし)で扱うためのツールキットです。このモジュールを使用して、入力オブザーバブルを指定し、プリミティブクエリの出力の忠実度を分析します。

  • トランスパイラー (qiskit.transpiler) - 特定のデバイストポロジーに合わせて量子回路を変換・適応させ、実際の量子処理ユニット(QPU)上での実行のために最適化します。

  • プリミティブ (qiskit.primitives) - SamplerおよびEstimatorプリミティブの基本定義とリファレンス実装を含むモジュールです。異なる量子ハードウェアプロバイダーはこれを基に独自の実装を派生させることができます。Qiskit Runtimeプリミティブの詳細についてはドキュメントをご覧ください。

インストール

Qiskit SDKのインストールに関する詳しい説明はインストールページをご覧ください。今すぐインストールする場合は、次のコマンドを実行してください。

pip install qiskit

ベンチマーキングとBenchpressパッケージ

ベンチマーキングは、開発ワークフローのさまざまな段階にわたって量子ソフトウェアの相対的なパフォーマンスを比較するために重要です。量子ソフトウェアのベンチマーキングテストでは、例えば回路の構築、操作、トランスパイルの速度と品質を調べます。IBM Quantumは可能な限り最高のパフォーマンスを持つSDKを提供することに取り組んでおり、そのためQiskit SDKは、主要大学、国立研究所、およびIBMの研究者が開発した1,000以上のテストを使用してベンチマーキングされています。これらのテストに使用されるベンチマーキングスイート「Benchpress」がオープンソースパッケージとして公開されました。BenchpressパッケージをQiskit SDK性能の独自分析に活用できます。

Qiskit Runtime

Qiskit Runtimeは、IBM Quantum®ハードウェア上で量子計算を実行するためのクラウドベースのサービスです。qiskit-ibm-runtimeパッケージはそのサービスのクライアントであり、Qiskit IBM Providerの後継です。Qiskit Runtimeサービスは量子計算を効率化し、IBM Quantumハードウェア向けにQiskitプリミティブの最適な実装を提供します。Qiskit Runtimeプリミティブを使い始めるには、ドキュメントをご覧ください。

Qiskit Runtimeは、エラー抑制やエラー緩和などの手法を含む追加の古典的・量子的計算リソースを使用して、量子プロセッサー上での量子回路実行からより高品質な結果を返すよう設計されています。具体例としては、エラー抑制のためのダイナミカルデカップリング、エラー緩和のための読み出し緩和およびゼロノイズ外挿(ZNE)が挙げられます。これらのオプションの設定方法については、エラー緩和の設定ページをご覧ください。

Qiskit Runtimeには、IBMハードウェア上で量子プログラムを実行するための3種類の実行モードも含まれています。JobSession、および Batchは、それぞれ異なるユースケースと量子ジョブキューへの影響を持ちます。Jobは指定されたショット数で実行できるプリミティブへの単一クエリです。Sessionを使用すると、量子コンピューター上の反復ワークロードで複数のジョブを効率的に実行できます。Batchモードでは、すべてのジョブを一度に送信して並列処理できます。なお、Open Planユーザーはセッションジョブを送信できません。

Qiskit Runtimeをすぐにインストールするには、次のコマンドを実行してください。

pip install qiskit-ibm-runtime

量子プログラムを構築するための開発環境の設定に関する詳細は、インストールページをご覧ください。

Qiskit Runtimeはオープンソースですか?

簡単に言えば、すべてではありません。量子プログラムをIBM Quantumデバイス上で実行するための技術的な詳細を処理するQiskit Runtimeサービスのソフトウェア(エラー緩和や抑制を含む)はオープンソースではありません。ただし、Qiskit Runtimeクライアント(ユーザーがQiskit Runtimeサービスにアクセスするためのインターフェース)、サーバー側で実行されるQiskit SDK、およびエラー緩和に使用される一部のソフトウェアはオープンソースです。Qiskitのオープンソース活動に参加するには、GitHubオーガニゼーション github.com/Qiskit および github.com/Qiskit-Extensions をご覧ください。

Qiskit Serverless

ユーティリティスケールの量子アプリケーションを作成するには、一般的にさまざまな計算リソース要件が必要です。Qiskit Serverless(qiskit-ibm-catalog.QiskitServerless)は、量子・古典リソースをまたいでワークロードを実行するためのシンプルなインターフェースを提供します。これには、IBM Quantum Platformへのプログラムのデプロイやリモートでのワークロード実行、マルチクラウドや量子中心のスーパーコンピューティングユースケース向けの簡単なリソース管理が含まれます。このツール集合の使用方法については、Qiskit Serverlessドキュメントでさらに詳しい情報をご覧ください。

  • 前処理や後処理などの古典的タスクの並列化
  • ラップトップの電源が切れていても、クラウドで長時間実行ワークロードを持続
  • クラウドへの再利用可能なプログラムのデプロイ

Qiskit Serverlessをすぐに使い始めるには、pipでインストールしてください。

pip install qiskit_serverless

Qiskit Functions

Qiskit Functions(qiskit-ibm-catalog.QiskitFunctionsCatalog)は、アルゴリズム発見とアプリケーションプロトタイピングを加速するために設計された抽象化サービスです。Qiskit Functionsカタログを探索してみましょう。

  • 回路関数:抽象回路と希望する測定オブザーバブルを入力として受け取り、トランスパイル、エラー抑制、エラー緩和、後処理技術を含むサービスです。回路関数を使用することで、ユーザーはトランスパイルや量子ハードウェアのパフォーマンスを管理することなく、新しいアルゴリズムやアプリケーションを発見できます。
  • アプリケーション関数:古典から量子へのマッピング、ハードウェアへの最適化、ハードウェア上での実行、後処理まで、量子ワークフロー全体を含むサービスです。ユーザーはドメインに馴染みのある入出力で産業アプリケーションをプロトタイプ化できます。

Premium Plan、Flex Plan、およびOn-Prem(IBM Quantum Platform API経由)Planのメンバーは、IBM提供の関数にすぐにアクセスしたり、パートナー提供の関数のライセンスをそのパートナーから直接購入したりできます。

カタログはpipでインストールできます。

pip install qiskit-ibm-catalog

Qiskit Transpiler Service

Qiskit Transpiler Service(パッケージ名 qiskit-ibm-transpiler)は、IBM Quantum Premium Plan、Flex Plan、およびOn-Prem(IBM Quantum Platform API経由)Planユーザーに対してクラウド上でリモートトランスパイル機能を提供する新しい実験的サービスです。ローカルのQiskit SDKトランスパイラー機能に加えて、このサービスを使用することでIBM QuantumクラウドリソースとAI搭載のトランスパイラーパスの両方からトランスパイルタスクが恩恵を受けられます。クラウドベースのトランスパイルをQiskitワークフローに統合する方法の詳細については、ドキュメントをご覧ください。

トランスパイラーサービスはpipでインストールできます。

pip install qiskit-ibm-transpiler

Qiskitアドオン

Qiskitアドオンは、ユーティリティスケールのアルゴリズム発見のための研究機能のコレクションです。これらの機能は、量子アルゴリズムを作成・実行するためのQiskitの高性能な基盤ツールを土台としています。アドオンはワークフローに組み込んで新しい量子アルゴリズムをスケールまたは設計するためのモジュール型ソフトウェアコンポーネントです。利用可能なQiskitアドオンのセットとその使い始め方については、ドキュメントをご覧ください。

関心のある研究機能によって複数のアドオンがあります。それぞれpipでインストールできます。

サンプルベース量子対角化(SQD)

pip install qiskit-addon-sqd

近似量子コンパイル(AQC)

pip install qiskit-addon-aqc-tensor[quimb-jax]

演算子逆伝播(OBP)

pip install qiskit-addon-obp

多積公式(MPF)

pip install qiskit-addon-mpf

Qiskitエコシステム

Qiskitの枠を超えて、「Qiskit」の名を冠しながらもQiskit自体の一部ではない多くのオープンソースプロジェクトが存在します。これらはQiskitと連携して、コアQiskitワークフローを補完する有益な追加機能を提供します。これらのプロジェクトの一部はIBM Quantumチームによって維持されており、他のものはより広いオープンソースコミュニティによってサポートされています。Qiskit SDKは、開発者がその機能を拡張するこのようなプロジェクトを容易に作成できるよう、モジュール式で拡張可能な設計になっています。

Qiskitエコシステムで人気のプロジェクトの一部を以下に示します。

  • Qiskit Aer (qiskit-aer) - 現実的なノイズモデルを持つ量子コンピューティングシミュレーター用パッケージです。複数の異なるシミュレーション手法を使用して、ノイズありまたはなしで量子回路を実行するためのインターフェースを提供します。IBM Quantumによって管理されています。
  • qBraid SDK (qbraid) - 量子ソフトウェアとハードウェアプロバイダーの両方に対応したプラットフォーム非依存の量子ランタイムフレームワークで、プログラム仕様の定義からジョブ送信、結果の後処理・可視化に至るまで、量子ジョブのライフサイクル全体の管理を効率化するよう設計されています。qBraidによって管理されています。
  • mthree mthree - M3(行列フリー測定緩和)を実装するためのパッケージです。次元削減ステップの後、直接LU分解またはO(1)ステップで収束する前処理反復法を使用して修正された測定確率を解き、並列計算も可能な測定緩和技術です。IBM Quantumによって管理されています。

プロジェクトのカタログはQiskitエコシステムページで見つけることができます。また、自分のプロジェクトを推薦する方法についての情報も掲載されています。

次のステップ

おすすめ
  • Qiskit 回路ライブラリで利用可能な回路と命令のライブラリについて学びましょう。
  • トランスパイラーセクションで、Qiskitトランスパイラーとトランスパイルの多くのオプションについて読みましょう。
  • 量子プログラミングを効率化するためのQiskitプリミティブの使い方を確認しましょう。