Исследования
«Удобство, когда оно нужно, и контроль, когда он необходим»: IBM вынесла подавление ошибок на сторону клиента через примитив Executor
5 октября 2026 года IBM Quantum опубликовала в блоге разбор directed execution — нового низкоуровневого режима исполнения схем, в котором маршрутизация, рандомизация и подавление ошибок описываются и выполняются на стороне клиента, а не прячутся на сервере. Основой модели стал новый примитив Executor: он обрабатывает шаблонную схему как манипулятор тензоров и рассчитан на семейства из 5 000 рандомизаций и больше без потери производительности. Существующие Sampler и Estimator теперь работают поверх Executor, а их логика подавления ошибок стала видимой и расширяемой.

Три эпохи исполнения и чёрный ящик
5 октября 2026 года IBM Quantum опубликовала материал Джесси Ю о directed execution в IBM Quantum Compute Service. Идея в том, что схема исполняется ровно так, как указано: клиент описывает, как именно схема должна быть преобразована и рандомизирована, а сервис эффективно готовит и запускает варианты.
История модели разбита на три этапа: с 2016 по 2022 год исполнение начиналось с backend.run, когда исследователи сами строили на клиенте большие семейства вариантов под twirling, рандомизацию и изучение шума и пересылали их по сети. С 2022 года примитивы Sampler и Estimator начали генерировать варианты на стороне сервера в среде Qiskit Runtime, которая теперь называется IBM Quantum Compute Service, — это дало производительность на масштабе, но превратило исполнение в чёрный ящик.
Первопричина проблемы осталась: подавление ошибок выполнялось скрытно на серверах IBM, и его нельзя было ни посмотреть, ни настроить, ни расширить. По словам IBM, тот же фреймворк стоит за недавними демонстрациями квантового преимущества через доверенные вычисления.
Boxes и annotations: как описывается намерение
Строительные блоки directed execution появились ещё в Qiskit SDK v2.0 и v2.1: boxes — инструкция BoxOp, группирующая операции схемы для последующей обработки, и annotations, помечающие эти группы директивами для транспилятора и последующих стадий стека. Среди заранее определённых аннотаций — Twirl для Pauli- и Clifford-твирлинга, InjectNoise для контролируемого вброса шума и ChangeBasis для управления поворотом кубитов в базисы и обратно.
Дальше в дело вступает открытая библиотека Samplomatic: она интерпретирует размеченную схему и превращает её в исполнимый план из двух частей. Первая — шаблонная схема, обычная параметрическая схема Qiskit, которая служит проверяемым чертежом для всех вариантов. Вторая — samplex, структурированный и тоже проверяемый рецепт рандомизации и классической постобработки, работающий по тензорной модели «тензоры на входе — тензоры рандомизированных значений на выходе». Поскольку обе части генерируются локально, поведение твирлинга и вброса шума можно изучить до отправки чего-либо на железо.
Примитив Executor
Исполняет план Executor — низкоуровневый движок, на котором построены остальные инструменты directed execution. Каждую шаблонную схему он трактует как манипулятор тензоров: на входе тензоры значений параметров, на выходе тензоры результатов, и это позволяет масштабироваться на большие семейства вариантов без ручной сборки.
Входной формат отличается от того, что принимают Sampler и Estimator: вместо списка PUB (Primitive Unified Blocs) Executor принимает QuantumProgram, который держит несколько элементов, и каждый элемент объединяет схему, её значения параметров и манипуляции, применяемые при исполнении. Программа прогоняется через shot loop в той же высокопроизводительной среде, которую IBM построила для первого поколения Sampler и Estimator, и выдерживает 5 000 рандомизаций и более. Поддерживается и broadcasting: свип по шкалам шума, сменам базиса или наборам параметров идёт по знакомым правилам NumPy в рамках одного задания.
Локальный режим с настоящим подавлением ошибок
Клиентские Sampler и Estimator вышли неделей раньше в составе qiskit-ibm-runtime 0.50.0 и не просто повторяют прежние примитивы: подавление ошибок в них можно изучать и настраивать, а локальный режим стал существенно способнее. В серверном Estimator запуск на локальном симуляторе полностью игнорировал опции устойчивости — подавление было чёрным ящиком, который нечего воспроизводить. Теперь быстрый пример выглядит так: Estimator из qiskit_ibm_runtime.executor_estimator на FakeKingston с resilience_level = 1 действительно применяет подавление ошибок уровня 1 (TREX) на симуляторе.
IBM предупреждает о пределе: FakeKingston моделирует 156-кубитное устройство, слишком большое для локального симулятора вектора состояний, поэтому для быстрых приблизительных проверок рекомендуется симуляция Клиффорда (стабилизаторная). Рядом в экосистеме стоят открытые пакеты: Qiskit Noise Learning для Pauli-Lindblad-изучения шума, которое тоже переехало на клиент и даёт видимость по регионам схемы, и Qiskit Mitigation с реализациями PEC, PEA, TREX и gate-folding ZNE, из которых собираются собственные конвейеры.
Пример: PEC с shaded lightcones
Показательный пример — конвейер, который раньше не собирался: probabilistic error cancellation, shaded lightcones, TREX и постселекция в одном проходе. Работа идёт в четыре шага: определить наблюдаемую и нужные базисы измерений; транспилировать схему и сгруппировать инструкции в размеченные boxes, посчитав границы shaded lightcones, чтобы понять, какие ошибки можно безопасно не подавлять; изучить шум на каждом уникальном слое, превратить границы в масштабы по ошибкам и собрать шаблонную схему с samplex; затем применить TREX и постселекцию к сырым результатам.
Итог по числам: shaded lightcones примерно в 3,4 раза срезали накладные расходы PEC при сопоставимой точности. Раньше, отмечает IBM, подавление ошибок уровня 1 игнорировалось на локальном симуляторе, а теперь ту же стратегию можно отладить локально до траты времени на QPU.
QEC уже сегодня и миграция с ИИ
Directed execution — не только про подавление ошибок: тот же клиентский контроль позволяет строить и изучать корректирующие коды на нынешнем железе. IBM упоминает недавнюю spacetime-митигацию логических ошибок, которая надстраивает PEC поверх постселектированного QEC, и пакет Qiskit Paulice для постселектированной квантовой коррекции ошибок. Есть и полноценные коды: в одном из исследований на IBM Quantum Nighthawk реализовали distance-5 поверхностные коды и улучшили долю логических ошибок на раунд до 2,8 раза, обойдя горстку плохо работающих компонентов.
Контроль доходит и ниже уровня схемы: через pulse-level доступ можно управлять таймингом гейтов, делать быстрые сбросы кубитов и считывать «мягкую» информацию измерений до классификации. Для перехода на новый стек IBM опубликовала первый официальный Qiskit AI skill — migrate-qiskit-ibm-runtime: версия 0.1.0 закрывает все миграционные действия от qiskit-ibm-runtime 0.1.0 до 0.50.0, включая изменения API IBM Quantum Compute Service, и умеет переносить код с V1 и серверных V2-примитивов.
Первоисточники
- IBM Quantum Blog — Jessie Yu, «Directed execution: same performance, more control» (5 октября 2026)
- IBM Quantum Documentation — Directed execution model (официальная документация IBM)
- IBM Quantum Documentation — Get started with Executor (официальная документация IBM)
- Qiskit — Samplomatic documentation (официальная документация Qiskit)