Журнал / польза

Как машинное обучение помогает в работе квантовых компьютеров

Квантовые компьютеры уже существуют, но пока ещё слишком громоздкие и мало что умеют. В отличие от классических, квантовые компьютеры «шумят»: при вычислениях в них накапливается много ошибок. Чтобы исправить эти ошибки, большинство алгоритмов, так называемых квантовых цепочек, можно просимулировать классически. Выпускник ШАДа Ярослав Золотарёв рассказывает о том, как это происходит

Зачем нужны квантовые компьютеры

Знаменитый закон Мура гласит: каждые два года мощность компьютеров возрастает вдвое. Более точно — количество транзисторов, размещаемых на кристалле интегральной схемы, удваивается каждые 24 месяца. В последние 50 лет человечеству удавалось создавать всё более мелкие вычислительные элементы. Однако сейчас размеры транзисторов составляют порядка нанометра — и если уменьшить их ещё в десять раз, придётся создавать вычислительные элементы величиной с атом. Считается, что при нынешнем уровне технологий создание настолько маленького «железа» физически невозможно.

Поэтому разработчики задумались не об увеличении числа минимальных вычислительных единиц, а об увеличении информации. Квантовые состояния позволяют это делать: имея меньшее количество кубитов (это наименьшая единица информации в квантовом компьютере, аналог бита в классическом), можно закодировать гораздо больше. Другими словами, разница заключается в том, что в классическом компьютере для кодирования определённой информации требуется 2^n бит, а в квантовом — n кубит. Квантовые эффекты — способ извлечь больше информации из малого числа вычислительных элементов.

Как устроены квантовые компьютеры

Когда наблюдается один кубит, у него всего два состояния, которые происходят одновременно с разными вероятностями — это явление называют суперпозицией. Однако в конце эксперимента, при проведении измерений, система «сваливается» либо в одно, либо в другое состояние.

Когда наблюдается n кубит, можно одной операцией повлиять на суперпозицию сразу 2^n состояний. И вычисления происходят гораздо быстрее, чем если бы система находилась либо строго в одном, либо в другом состоянии, как в классическом компьютере.

В алгоритмах на квантовых компьютерах физика не страшнее уровня второго курса. Если, конечно, не лезть в квантовое «железо» и не пытаться понять, как всё это устроено.

Квантовые компьютеры — отличное место, чтобы плавно переориентироваться с физики на программирование и в то же время создавать уникальный продукт, который обычные программисты делать не могут. А ещё развивать науку, что само по себе ценно.

Ярослав Золотарёв, выпускник ШАДа

Преимущество квантовых компьютеров следует из свойств кубитов, которых нет у битов: в конкретный момент они находятся не в одном состоянии, а в разных — со своими вероятностями.

У этого свойства есть и недостатки: невозможно в произвольный момент узнать, что происходит в вычислениях. При измерении все квантовые эффекты теряются, поэтому его производят только в конце вычислений.

Но не всё так радужно

Квантовые компьютеры подвержены явлению декогеренции — они сильно «шумят». Все минимальные элементы, из которых построена квантовая схема, работают неидеально, с той или иной степенью погрешности. Из-за большой сложности квантового компьютера малейшая нестабильность приводит к ошибкам в вычислениях.

В классическом компьютере подобную ошибку можно представить так: есть последовательность нулей и единиц, некоторые из единиц ошибочно стали нулями, а нули — единицами. В квантовом компьютере же речь идёт о вероятностях, поэтому не нужно переворачивать значение бита — даже небольшой сдвиг в вероятностях может испортить эксперимент.

При этом дебажить кубиты сложно: нельзя провести измерение системы в произвольный момент, поскольку это не позволит алгоритму использовать квантовые свойства. Если вставить оператор измерения, например, в середину, схема уже не будет работать так, как работала изначально.

Сложность моей работы в том, что нужно, ничего не измеряя в процессе вычислений, узнать, где ошибка. По тем ошибкам, что появились в конце вычислений, нужно понять, в каких конкретно модулях квантового компьютера (или, как говорят, в квантовых гейтах) была ошибка.

Ярослав Золотарёв, выпускник ШАДа

Как машинное обучение помогает работать с шумами

Борьба с шумами — это работа, которая ближе к научной деятельности, чем к традиционному программированию. И эту задачу можно решать методами машинного обучения.

Правда, машинное обучение пока что применимо только к классическим вычислениям. Оно всегда основано на градиенте, а он не течёт через квантовый компьютер. Поэтому каждый раз, когда речь заходит о применении ML с квантовыми компьютерами, стоит понимать, что для дебаггинга мы запускаем симуляцию квантового компьютера внутри классического.

Конечно, не каждую квантовую цепочку можно просимулировать классически, поэтому работа идёт с тем подмножеством цепочек, что могут быть запущены на классическом компьютере. Во время симуляции можно выставлять разные параметры шума. После мы подбираем такие параметры шума внутри симуляции, чтобы классический компьютер выдавал такие же результаты, как и квантовый.

В результате удаётся выяснить, какие модули квантового компьютера и как допускают ошибки, какой у них шум. Дальше с этим работают инженеры, которые создают «железо» квантовых компьютеров.

Если все алгоритмы в симуляции отработали так же, как квантовый компьютер, это значит, что симуляция хорошо приближена к реальности.

Симуляция работает на классическом компьютере, и про неё известно всё. Известны параметры каждой квантовой части, из которых состоит схема, состояние системы в любой момент. В квантовых схемах установлены начальное и конечное состояния. Всё, что внутри, — это чёрный ящик, проникнуть туда нельзя. Это проблема. Это похоже на дебаггинг кода, только такой, когда нет возможности построчно смотреть в код. Но в симуляции это возможно.

Задача симуляции — локализовать, где система шумит, понять, какие её элементы работают неправильно.

В общем, алгоритм выявления шума на классическом компьютере выглядит так:

  • Результат работы квантового компьютера недетерминирован, поэтому нужно померить его достаточное количество раз, чтобы получить распределение.
  • Известен параметр шума, его вводят в симуляцию на классическом компьютере.
  • Цепочка квантов прогоняется через классический компьютер.
  • Мы сравниваем полученное на классическом компьютере распределение с распределением результатов работы алгоритма, полученных из квантового компьютера.
  • И в конце считаем loss и градиент по изначальным параметрам шума.

Результат работы симуляции — известные параметры шума на каждом элементе квантовой системы. Более того, симуляция никак не затрагивает квантовую систему, не мешает работе квантового компьютера, от него требуются только результаты экспериментов.