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

Робочий процес розробки

Термін Qiskit-патерн описує робочий процес розробки для розбиття предметно-специфічних задач на частини та контекстуалізації необхідних можливостей поетапно. Це забезпечує безперешкодну компонованість нових можливостей, розроблених дослідниками IBM Quantum® (та іншими), і відкриває майбутнє, в якому квантові обчислювальні задачі виконуватиме потужна гетерогенна (CPU/GPU/QPU) обчислювальна інфраструктура. Блоки або групи блоків виконують кроки патерну, а Qiskit SDK забезпечує важливий фундаментальний шар, підтримуваний іншими інструментами або сервісами, розробленими IBM Quantum або відкритою квантовою спільнотою. Qiskit-патерни дозволяють предметним експертам формулювати задачу та компонувати інструментарій (блоки), що реалізує Qiskit-патерн. Цей патерн можна виконувати локально, через хмарні сервіси або розгорнути з Qiskit Serverless.

Чотири кроки Qiskit-патерну виглядають так:

  • Відображення задачі на квантові Circuit та оператори
  • Оптимізація під цільове залізо
  • Виконання на цільовому залізі
  • Постобробка результатів

Кожен крок детально описано в розділах нижче.

Відображення задачі на квантові Circuit та оператори

Цей крок описує, як користувач починає з класичної задачі та з'ясовує, як відобразити її на квантовий комп'ютер. Наприклад, у таких застосунках, як хімія та квантове моделювання, цей крок зазвичай передбачає побудову квантового Circuit, що представляє гамільтоніан, який ти намагаєшся розв'язати. Під час цього кроку для певних задач може також бути бажаним заздалегідь задати відображення задачі на Qubit у решітці heavy-hex (або gross) заліза IBM®, якщо структура задачі дозволяє оптимізацію на ранньому етапі. Також варто вже тут подумати про те, яким буде результат конкретного алгоритму — у підготовці до наступного кроку виконання. Наприклад, якщо бажаний результат передбачає виведення кореляційних функцій за допомогою тестів Адамара, ти можеш підготуватись до використання Sampler; тоді як задання спостережуваних використовуватиме Estimator і може надати багато варіантів пом'якшення помилок.

Виходом цього кроку зазвичай є набір Circuit або квантових операторів, які можна оптимізувати під залізо на наступному кроці.

Оптимізація під цільове залізо

На цьому кроці ти береш абстрактні Circuit (або оператори), отримані на кроці відображення, і виконуєш над ними низку оптимізацій. Це може включати відображення маршруту та розкладки Circuit на фізичні Qubit заліза, перетворення до базисних Gate заліза та зменшення кількості операцій — все це спрямовано на підвищення ймовірності успіху на наступному кроці виконання. На цьому етапі також варто протестувати свої Circuit із симулятором перед виконанням на реальному залізі.

Під час цього кроку абстрактні Circuit мають бути транспільовані в Circuit архітектури набору інструкцій (ISA). ISA Circuit — це Circuit, що складається лише з Gate, зрозумілих цільовому залізу (базисні Gate), і будь-яких багатокубітних Gate, необхідних для дотримання обмежень зв'язності (coupling map). Тільки ISA Circuit можна запускати на залізі IBM через IBM Qiskit Runtime.

Виконання на цільовому залізі

Цей крок передбачає запуск твоїх Circuit на залізі й отримання виходів квантових обчислень. ISA Circuit, отримані на попередньому кроці, можна виконувати за допомогою примітиву Sampler або Estimator з Qiskit Runtime, ініціалізованого локально на твоєму комп'ютері або з кластера чи іншого гетерогенного обчислювального середовища. Їх можна виконувати в режимі Batch, який дозволяє паралельну транспіляцію для ефективності класичних обчислень, — або в режимі Session, який дозволяє ефективно реалізовувати ітеративні задачі без затримок у черзі. На цьому кроці також є можливість налаштувати певні техніки придушення та пом'якшення помилок, надані Qiskit Runtime.

Залежно від того, який примітив ти використовуєш — Sampler чи Estimator, — результат цього кроку буде різним. При використанні Sampler виходом будуть поімпульсні вимірювання у вигляді бітових рядків. При використанні Estimator виходом будуть очікувані значення спостережуваних, що відповідають фізичним величинам або функціям вартості.

Постобробка результатів

Цей фінальний крок передбачає об'єднання виходів попереднього кроку для отримання бажаного результату. Це може включати різноманітні кроки класичної обробки даних: візуалізацію результатів, техніки пом'якшення помилок зчитування, маргіналізацію квазіймовірнісних розподілів для отримання результатів на менших наборах Qubit або постселекцію за власними властивостями задачі, такими як повний спін, парність або збереження частинок шляхом усунення нефізичних спостережуваних.

У міру того, як галузь переходить від індивідуальної побудови Circuit до робочих процесів масштабу утиліт, гнучкість і простота, з якою Qiskit-патерни дозволяють користувачам компонувати різні кроки патерну, відкривають квантові обчислення для широкого спектру застосунків і технік для зручного використання науковцями у сфері квантових обчислень.