Перейти до основного вмісту

Вступ до Qiskit

Назва "Qiskit" є загальним терміном, що позначає колекцію програмного забезпечення для виконання програм на квантових комп'ютерах. Найважливішим серед цих програмних інструментів є відкритий Qiskit SDK та середовище виконання (доступне через Qiskit Runtime), за допомогою якого можна запускати робочі навантаження на квантових процесорах (QPU) IBM®. Разом з еволюцією квантових технологій розвивається і 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 тестується за допомогою понад 1000 тестів, розроблених провідними університетами, національними лабораторіями та дослідниками IBM. Набір тестів для цих перевірок під назвою Benchpress тепер доступний як пакет з відкритим кодом. Тепер ти можеш використовувати пакет Benchpress для власного аналізу продуктивності квантових SDK.

Qiskit Runtime

Qiskit Runtime — це хмарний сервіс для виконання квантових обчислень на апаратному забезпеченні IBM Quantum®. Пакет qiskit-ibm-runtime є клієнтом цього сервісу та наступником Qiskit IBM Provider. Сервіс Qiskit Runtime спрощує квантові обчислення та надає оптимальні реалізації примітивів Qiskit для апаратного забезпечення IBM Quantum. Щоб розпочати роботу з примітивами Qiskit Runtime, відвідай документацію.

Qiskit Runtime розроблено для використання додаткових класичних і квантових обчислювальних ресурсів, включаючи методи придушення та пом'якшення помилок, що дозволяє повертати результати вищої якості при виконанні квантових схем на квантових процесорах. Приклади включають динамічне розв'язання (dynamical decoupling) для придушення помилок, а також пом'якшення помилок зчитування та екстраполяцію нульового шуму (ZNE) для пом'якшення помилок. Дізнайся, як налаштовувати ці параметри на сторінці Налаштування пом'якшення помилок.

Qiskit Runtime також включає три типи режимів виконання для запуску квантової програми на апаратному забезпеченні IBM: Job, Session та Batch, кожен з яких має різні варіанти використання та наслідки для черги квантових завдань. Job — це одиничний запит до примітиву, який можна запустити з заданою кількістю вимірювань (shots). Sessions дозволяють ефективно виконувати кілька завдань в ітеративних робочих навантаженнях на квантових комп'ютерах. Batch-режим дозволяє подавати всі завдання одразу для паралельної обробки. Зауваж, що користувачі Open Plan не можуть подавати завдання в режимі session.

Для швидкого встановлення Qiskit Runtime виконай наступну команду:

pip install qiskit-ibm-runtime

Детальніша інформація про налаштування середовища розробки для побудови квантових програм міститься на сторінці встановлення.

Чи є Qiskit Runtime відкритим кодом?

Коротка відповідь: не весь. Програмне забезпечення сервісу Qiskit Runtime, яке обробляє технічні деталі запуску квантової програми на пристрої IBM Quantum (включаючи будь-яке пом'якшення та придушення помилок), не є відкритим кодом. Однак клієнт 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

Функції Qiskit (qiskit-ibm-catalog.QiskitFunctionsCatalog) — це абстрактні сервіси, призначені для прискорення пошуку алгоритмів і прототипування застосунків. Досліджуй Каталог функцій Qiskit, зокрема:

  • Функції схем: Сервіси, що включають транспіляцію, придушення помилок, пом'якшення помилок і методи подальшої обробки, які приймають абстрактні схеми і бажані вимірювальні спостережувані як вхідні дані. З функціями схем користувачі можуть відкривати нові алгоритми та застосунки, не маючи потреби управляти транспіляцією або продуктивністю квантового обладнання.
  • Функції застосунків: Сервіси, що включають цілі квантові робочі процеси — від відображення класичних задач на квантові, оптимізації для апаратного забезпечення, виконання на апаратному забезпеченні до подальшої обробки. Користувачі можуть прототипувати промислові застосунки з предметно-орієнтованими вхідними та вихідними даними.

Члени планів Premium Plan, Flex Plan та On-Prem (через IBM Quantum Platform API) можуть одразу отримати доступ до функцій від IBM або придбати ліцензії на функції від партнерів безпосередньо у цих партнерів.

Каталог можна встановити через pip:

pip install qiskit-ibm-catalog

Сервіс транспілятора Qiskit

Сервіс транспілятора Qiskit (назва пакету qiskit-ibm-transpiler) — це новий експериментальний сервіс, що надає можливості віддаленої транспіляції у хмарі для користувачів планів IBM Quantum Premium Plan, Flex Plan та On-Prem (через IBM Quantum Platform API). На додаток до локальних можливостей транспілятора Qiskit SDK, твої завдання з транспіляції можуть скористатися як хмарними ресурсами IBM Quantum, так і транспілювальними проходами на основі ШІ за допомогою цього сервісу. Щоб дізнатися більше про інтеграцію хмарної транспіляції у свій робочий процес 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 (Matrix-free Measurement Mitigation) — методу пом'якшення помилок вимірювання, що вирішує задачу виправлених імовірностей вимірювання за допомогою кроку зниження розмірності з подальшим або прямим LU-розкладанням, або передобумовленим ітеративним методом, що номінально збігається за O(1) кроків і може обчислюватися паралельно. Підтримується IBM Quantum.

Каталог проєктів можна знайти на сторінці екосистеми Qiskit, а також інформацію про те, як запропонувати власний проєкт.

Наступні кроки

Рекомендації
  • Дізнайся про бібліотеку схем та інструкцій, доступних у бібліотеці схем Qiskit.
  • Прочитай про транспілятор Qiskit та численні варіанти транспіляції у розділі Транспілятор.
  • Дізнайся, як використовувати примітиви Qiskit для спрощення квантового програмування.