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

Направлена модель виконання (бета)

Бета-реліз

Усі компоненти направленої моделі виконання наразі перебувають у бета-версії та можуть бути нестабільними. Тебе запрошують протестувати їх і надати відгук, відкривши задачу в репозиторіях GitHub Samplomatic або Qiskit Runtime.

Примітивні інтерфейси Sampler і Estimator надають абстракцію вищого рівня для розробників алгоритмів, щоб зосередитися більше на інноваціях і менше на перетворенні даних. Проте вони менш придатні для вчених у галузі квантової інформації, яким потрібен більший контроль і гнучкість для їхніх експериментів на рівні корисності. Направлена модель виконання, яка наразі перебуває у бета-релізі, задовольняє цю потребу. Ця модель виконання надає інструменти для фіксування проектних намірів на стороні клієнта та переносить затратне генерування варіантів Circuit на сторону сервера, щоб ти міг точно налаштовувати пом'якшення помилок та інші техніки без втрати продуктивності. Ця явна та компонувальна модель спрощує експериментування з новими техніками, відтворення результатів і обмін методами.

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

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

Одна з головних цілей направленої моделі виконання — надати модульний спосіб застосування методів пом'якшення помилок. Наприклад, ти можеш визначити, які шари в Circuit потрібно пом'якшити, або налаштувати рівні шуму, що впроваджуються в Circuit.

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

  1. Групуй інструкції в блоки та застосовуй до них анотації. Анотації фіксують задумане перетворення без фактичного генерування варіантів Circuit.

  2. Вивчи моделі шуму унікальних шарів, якщо потрібно, за допомогою нового NoiseLearnerV3.

  3. Побудуй шаблонний Circuit і samplex з блочного Circuit.

  4. Запусти шаблонний Circuit і samplex з примітивом Executor, який генеруватиме та виконуватиме варіанти Circuit відповідно до інструкцій.

  5. Виконай постобробку результатів виконання. Наприклад, ти можеш застосувати постселекцію або екстраполювати пом'якшені значення очікування з результатів виконання.

Інструменти для направленої моделі виконання

Наступні інструменти можна використовувати разом для реалізації техніки пом'якшення помилок у направленій моделі виконання.

Samplomatic

Samplomatic — це нова бібліотека з відкритим кодом, що підтримує налаштовані рандомізації вибірки. Вона використовує конструкцію box для роботи з колекціями операцій Circuit, які слід розглядати як такі, що мають стабільний контекст шуму, і використовує анотації на блоках, щоб дозволити тобі оголошувати та налаштовувати наміри. Наприклад, ти можеш розбити свій Circuit на блоки, додати до кожного блоку анотацію twirl-деформації та вказати, яку групу twirl-деформації використовувати, як показано на наступному малюнку:

Приклад використання блоків і анотацій twirl-деформації

Circuit з анотованими блоками можна використати для генерування шаблонного Circuit і samplex. Вихідний шаблонний Circuit — це параметризований Circuit, який буде виконано без подальших змін (крім присвоєння різних значень параметрів). Samplex, який є основним типом бібліотеки Samplomatic, представляє параметричний розподіл імовірностей за параметрами шаблонного Circuit та іншими полями з масивними значеннями. Ці поля можна використовувати для постобробки даних, зібраних під час виконання прив'язаного шаблонного Circuit. Іншими словами, пара шаблонного Circuit і samplex точно вказує примітиву Executor (описаному нижче), які параметри генерувати та які прив'язані Circuit запускати. Оскільки ці дві конструкції створюються на стороні клієнта, ти можеш виконати локальну перевірку та вибірку, щоб перевірити результати перед відправкою на виконання на залізі.

Щоб спростити процес генерування анотованих блоків, бібліотека Samplomatic також надає транспілятор-паси, що автоматично групують інструкції Circuit в анотовані блоки на основі стратегій, які ти надаєш.

Щоб дізнатися більше про Samplomatic, відвідай документацію guides і API reference. Надсилай відгуки та повідомляй про помилки в його репозиторії GitHub.

Примітив Executor

Executor — це новий примітив Qiskit Runtime, що приймає пару шаблонного Circuit і samplex як вхідні дані, генерує та прив'язує значення параметрів відповідно до samplex, виконує прив'язані Circuit на залізі та повертає результати виконання і метадані. Він дотримується директив вхідної пари та не приймає жодних неявних рішень за тебе, завдяки чому процес є прозорим і водночас ефективним.

Щоб отримати доступ до Executor, встанови гілку executor_preview з qiskit-ibm-runtime:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

Вхідні та вихідні дані примітива Executor суттєво відрізняються від даних Sampler і Estimator. Зверни увагу на API reference Executor для отримання додаткової інформації. Крім того, посібник швидкого старту Executor містить огляд і приклади коду.

NoiseLearnerV3

Подібно до поточного NoiseLearner, ця допоміжна програма Qiskit Runtime повертає розріджену модель шуму Паулі-Ліндблада, що використовується в багатьох методах пом'якшення помилок, включно з PEC, PEA та PNA. В оригінальному NoiseLearner ти передаєш список Circuit, і програма розбиває Circuit на шари та повертає модель шуму для кожного унікального шару. NoiseLearnerV3, натомість, надає тобі контроль над тим, як розбивати свої Circuit на частини, і програма просто приймає список блочних інструкцій Circuit (наприклад, унікальних шарів) як вхідні дані.

NoiseLearnerV3 також підтримує навчання шуму вимірювань. Для кожного набору інструкцій у вхідному списку він запускає протокол навчання Паулі-Ліндблада, якщо набір містить одно- та двокубітні Gate, і протокол TREX, якщо набір містить вимірювання. Щоб отримати доступ до NoiseLearnerV3, встанови гілку executor_preview з qiskit-ibm-runtime:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

Щоб дізнатися більше про NoiseLearnerV3, зверни увагу на його документацію API reference.

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

Рекомендації