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

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アドオン

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

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プリミティブの使い方を確認しましょう。