Перейти до основного вмісту
Цей проєкт у бета-версії. Знайшов(-ла) помилку? Відкрити issue на GitHub. Є запитання чи ідея? Запитати в Discussions — будемо раді твоєму відгуку!
Яка якість перекладу на цій сторінці?

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

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

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

  • Відображення задачі на квантові схеми та оператори

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

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

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

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

Відображення задачі на квантові схеми та оператори​

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

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

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

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

Під час цього кроку абстрактні схеми мають бути транспільовані в ISA-схеми (Instruction Set Architecture). ISA-схема — це схема, що складається лише з вентилів, зрозумілих цільовому залізу (базисні вентилі), і будь-яких багатокубітних вентилів, необхідних для дотримання обмежень зв'язності (coupling map). Тільки ISA-схеми можна запускати на залізі IBM через IBM Quantum Compute Service.

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

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

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

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

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

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