Русский
Русский
English
Статистика
Реклама

Qiskit

Учимся квантовому программированию на Python с помощью примеров. Доклад Яндекса

09.07.2020 14:06:35 | Автор: admin
Сегодня любой желающий может воспользоваться методами квантового программирования, написать простой код на Python и запустить его на реальном квантовом вычислителе. Ришат Ибрагимов rishat_ibrahimov разобрал основы квантовых вычислений на примерах с кодом, показал, как запускать программы на локальном симуляторе и удаленном квантовом компьютере.


Всем привет, меня зовут Ришат. Я почти три года работаю над качеством поиска Яндекса. Но поговорить сегодня хочу не о работе, а о том, чем я занимаюсь в свободное время. Занимаюсь я квантовой информатикой, а на самом деле самыми разными моделями вычислений, в том числе квантовыми.

Квантовая информатика это сейчас достаточно интересная область. Туда много сил вкладывается, много всего сделано. В докладе я постараюсь заинтересовать кого-то из вас. Может быть, среди вас есть крутой ML-инженер, который захочет заниматься квантовым машинным обучением, или просто сильный алгоритмист, который сможет вложить свои силы в это направление. Будет здорово, потому что будущее скоро наступит.

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

От вас я жду, что вы совсем немножко помните алгебру, помните, что такое вектор и как умножить вектор на матрицу.



Как будет построен мой доклад? Сначала мы поговорим немного об истории, о том, откуда все взялось, чтобы уверенно смотреть в будущее. Потом посмотрим, где это можно применять, какое сейчас состояние, можно ли прямо сейчас что-то делать руками. Мы напишем первую программу на Python, которую можно будет запустить на квантовом компьютере. И потом в качестве бонуса я вам покажу несколько примеров алгоритмов, в которых квантовые вычисления помогают добиться несравненно лучшей производительности по сравнению с классическими.



С чего все началось? Вот с этого молодого человека. Это Алан Тьюринг, его можно смело назвать отцом информатики или компьютерных наук, того, за счет чего мы все сейчас живем, зарабатываем деньги. В 30-х Тьюринг придумал модель вычислений, которую мы бы сейчас назвали программируемый компьютер. А вот этого человека кто-нибудь узнает?



Уже сложнее. Его фамилия очень часто идет рядом с фамилией Тьюринга. Это Алонзо Чёрч, он тоже занимался проблемами вычислимости, и даже немножко раньше Тьюринга придумывал свои модели вычислений. Но более популярными стали работы Тьюринга. И вообще, Чёрч в какой-то момент был научным руководителем Тьюринга. Взятые вместе, их фамилии обычно связывают вот с этим тезисом.

Тезис Чёрча-Тьюринга говорит: любой процесс может быть эффективно смоделирован на машине Тьюринга. Это конец 30-х начало 40-х, и все очень хорошо. Примерно 30 лет всё очень хорошо, пока не появились вот эти два человека. Кто-нибудь их знает?



Это уже 70-е, совсем близко к современности. Их фамилии часто встречаются в курсах криптографии. Это Роберт Соловей и Фолькер Штрассен. Эти два человека знамениты тем, что они придумали вероятностный алгоритм проверки числа на простоту, тест Соловея-Штрассена.

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

Пришлось сделать быстрофикс и сказать, что любой процесс можно смоделировать на вероятностной машине Тьюринга. Это уже не очень круто, наверняка у кого-то из вас в груди тоже защемило. Вы подумали: как же так? Сейчас мы говорим вероятностный, через десять лет откроют еще что-нибудь, придется еще что-нибудь править. Это не очень приятно. Но мы с вами, конечно, не одни такие.



Был еще один молодой человек Дэвид Дойч. И он тоже задавался вопросом: как же так? Как же жить? Он физик по образованию, всю жизнь посвятил физике. И решил заняться этой проблемой именно с точки зрения физики. Он сказал: давайте попробуем обосновать, получить какой-нибудь такой, чтобы сама природа нам говорила о том, что это именно так. А природа уже тогда говорила (и мы до сих пор считаем), что она квантово-механическая. Поэтому мы начали искать ответ в квантовой механике. И именно с Дэвида Дойча, с его первых алгоритмов, началась квантовая информатика.

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

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

Например, у нас в институте есть целое отделение, которое занимается квантовой информатикой. Там есть и математики, и физики. Физики сейчас очень плотно занимаются проблемой долгосрочного хранения квантовой информации. Это очень похоже на наши жесткие диски, но хочется, чтобы там хранилась квантовая информация.



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

Второй и очень большой раздел, которому сейчас посвящено много сил, квантовое машинное обучение. Есть очень большая надежда, что квантовые вычисления помогут ускорить сами процессы обучения и усовершенствовать алгоритмы. Тут очень много работы. Сейчас, например, наша квантовая группа работает вместе с одним ученым из Китая. Он очень сильный ML-инженер, а мы немного с квантовым уклоном, пытаемся что-то вместе придумать.

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

Но квантового компьютера у нас нет. К сожалению, мы не можем прийти домой и так же просто, как мы программируем на Python, запустить программы.

Что делать? О том, что делать, я думал еще на третьем курсе, когда писал свою первую курсовую работу. Я писал эмулятор квантовых вычислений. Конечно, все пишут эмуляторы и все ими как-то пользуются. На четвертом курсе я писал эмулятор, который имитирует помехи, шумы и всякое прочее. А потом мне надоело.

Я попробовал поискать в поисковике и понял, что эмуляторов много. Здесь несколько ссылок, они достаточно простые и интересные:


Но я хочу остановиться на qiskit. Он особенный, выделяется из всех. Чем?



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



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

Конечно, он специальным образом компилирует туда команды и все прочее. Как это вообще работает? Для общего доступа есть несколько инсталляций такого компьютера. Один из них 5-кубитный, есть 15-кубитный, 16-кубитный, нам доступны даже 20 кубит. Это примерно как 20 бит обычной, классической информации, но уже что-то.

Тут наверняка многие из вас думают: все, хочу! Но придется немного вспомнить математику. Немного алгебры, но совсем чуть-чуть, как я и обещал.

Чтобы начать программировать на квантовом компьютере, нужно понять, что вообще такое кубит. Это просто вектор в двумерном векторном пространстве. Но раз уж мы говорим о векторных пространствах, в них есть базис.



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

$[\frac{1}{0}]$

и

$[\frac{0}{1}]$

. И есть стандартное обозначение в нотации Дирака, вот в таких угловых скобочках.

То есть, чтобы вы не путались, сокращать я дальше буду так.



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



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

Можно не обращать внимания на картинку, это просто способ визуализации для привлечения внимания.

Про кубиты поговорили. Самое главное, что кубит это вектор. Вектор в комплексном векторном пространстве. Что с ним можно делать?



Первое, что мы привыкли делать, попробовать посчитать значение нашей переменной, например, в Python. Мы хотим прочитать, в каком состоянии находится кубит. Но мы никогда не узнаем точные значение и .

Если мы попробуем посмотреть на кубит, прочитать, то мы получим или нолик, или единичку с соответствующими вероятностями. Вероятности это просто проекции на соответствующие базисные вектора.

Второе, что мы можем делать, например, склонировать кубит. Мы такое называем присваиванием одной переменной другой. В квантовом мире так делать нельзя, к сожалению.



Операции присваивания нет, и это очень связано с тем, о чем я говорил только что: мы даже не сможем посмотреть точное значение. Это фундаментальный результат. Доказывается он очень просто: буквально две строчки сравнений, от противного.



Есть кубит, который мы не можем прочитать, не можем склонировать. Что можно вообще делать?

Кубит это вектор. Вектор можно взять и покрутить по сфере вокруг. Чтобы покрутить, можно придумать матрицу, которая это вращение делает. Все операции над кубитами это матрицы. Они называются унитарными.

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

Посмотрим, какие операции могут быть. То, к чему мы привыкли в классическом случае. Есть нолик, можно превратить его в единичку и наоборот.



Это оператор отрицания, он очень простой. Записывается вот такой матричкой. Если мы попробуем перемножить, получим ровно то, что хотим.



У меня тут даже нарисовано. Ничего сложного. У оператора отрицания есть стандартная запись, оператор X. Если подумать, это просто вращение вокруг одной из осей. И есть операторы Y и Z, вращение вокруг других осей, но это сейчас не так важно.

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

Но мы в квантовой информатике, конечно, очень редко пишем на Python. Чаще мы пользуемся схемами.



Схема обычно выглядит так. Горизонтальные линии это просто значения кубит. У меня тут их нарисовано пять. А в блоке операция, которую мы будем делать.

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



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



Такую штуку можно написать на Python с помощью библиотечки qiskit. Давайте по строчкам посмотрим, что здесь происходит. Сначала мы заводим квантовый регистр. Я здесь завожу его из одного кубита. И классический регистр. Классический регистр нужен, чтобы куда-то записать результат измерения. То есть я с квантовым регистром делаю преобразования, результат получаю классический нолик или единичку. И потом создаю свою схему, в которой есть этот квантовый классический кубит. Я просто говорю: давайте измерим кубит q в C. Запустим все это дело, и все будет хорошо. Но внимательный читатель увидит: здесь написано, что у меня backend это локальный эмулятор.



То же самое можно сделать и с IBM Q, но здесь чуть больше кода. Здесь всякая лапша по поводу того, чтобы выбрать девайс, который нам побыстрее ответит, токены какие-то передать, вот это все. Но ничего хитрого нет.



То же самое можно сделать с оператором отрицания. Это оператор X, как я сказал. На схеме выглядит точно также, запустим то же самое.



Теперь с вероятностью единичка получим единичку, как и планировали. Никакой магии.



Код такой же. Просто здесь я еще применяю оператор X к кубиту q.

Хорошо, попробуем пойти дальше.



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

Можно провести аналогию, что это такое квантовое подбрасывание монетки. Мы скажем, что окей, с вероятностью получим нолик и единичку. Матричка выглядит вот так.



Легко проверить, но мы, конечно, не будем. Нарисуем схему. Оператор H в честь Адамара.



Замерим и получим примерно то, что ожидаем. Примерно с вероятностью , нолик и единичка. Чуть больше, чуть меньше, но так уж получается.

Вот код на Python, просто чтобы был, мы же на конференции про Python.



Есть такая суперпозиция. К ней применяем оператор Адамара и замеряем.

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



Два раза подряд применим оператора Адамара и всегда получим нолик.



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

Итак, с одним кубитом можно что-то делать. Можно крутить, вертеть и измерять. Давайте попробуем добавить побольше кубит. Что мы привыкли делать в классическом мире? Брать и выполнять простые логические операции, или и и.



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

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



Если бы мы писали на Python, это выглядело бы так. Если в первом кубите единичка, давайте инвертировать второй кубит. Это не матричка, это то, как выглядит оператор. Но в принципе то, что я сказал, тут и написано. Там, где в первом кубите единичка, второй инвертируется.



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



Эту штуку можно даже запрограммировать. Никакого rocket science. Нужно просто взять, создать схему с двумя кубитами, с двумя классическими, и сделать, только не CNOT, а CX, контролируемое отрицание.

Отрицание было оператором X, поэтому в принципе все логично. И можно нарисовать схему. Схема такая.



То есть контролируемое отрицание это такой плюсик на кубите, который мы хотим менять. И точечка, которая является контрольной. Здесь, если кубит в единичке, то второй будем менять.



Тут я специально первый сначала инвертирую, чтобы он был единичкой, и потом замеряю оба и получаю результат |11. Все как мы и предполагали.

Но теперь самое время использовать все наши знания вместе.



Возьмем и все три или четыре оператора, которые мы знаем, залепим в одну схему. То есть мы к первому оператору применим оператор Адамара. Второй инвертируем, потом все вместе, сделаем контролируемое отрицание и измерим.

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



Если мы к первому кубиту применяем оператора Адамара, а ко второму отрицание, то получим такую суперпозицию. Я не хочу сейчас тратить время на проверку, это можно легко перемножить. Но позиция очень интересная. Во-первых, она очень похожа на равномерную, а, во-вторых, теперь это состояние называется запутанным, если еще взять контролируемое отрицание.



Состояние запутанное. А все почему? Попробуем произвести измерение. Смотрите, если я измеряю первый кубит и он у меня в состоянии ноль, я тогда могу сказать, что второй кубит обязательно в состоянии один.

То есть если я сделаю такое преобразование своими кубитами, один кубит отдам своему другу, он улетит в Нью-Йорк, а я второй кубит измерю у себя, я буду точно знать, в каком состоянии его кубит. Это называется эффектом квантовой запутанности или квантовой связанности. И это основной механизм, с помощью которого квантовые вычисления работают. Он изменится, они связаны очень жестко, и во время измерения мы можем получить только |00 или |11.

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



Рассеянность заключалась в том, что он все время носил разные носки. И коллеги над ним шутили: если он заходит в комнату одной ногой и мы видим, что носок розовый, то можем точно сказать, что второй носок не розовый. Такие дела.



Если мы эту штуку запустим, получим ровно то, что хотим. Здесь уже совсем смешно получилось. Вероятность ровно 0,5, но это совпадение.



Если мы будем честно запускать на квантовом компьютере, получим вот такую картину. Вроде бы мы говорим: никогда не может получиться состояние |00 и никогда не может получиться состояние |11. Но оно все-таки получается: текущее состояние техники таково, что там есть шумы, которые не всегда можно легко подавить. И с этим борются.

Но если вы вспомните классическую информатику, там то же самое: коды, исправляющие ошибки и все такое. Просто кубит пока слишком мало, чтобы тратить дополнительные биты на исправление ошибок.

Теперь, как я и обещал, несколько примеров алгоритмов. Но это будут просто голословные примеры без разборов алгоритмов, чтобы вы посмотрели, подумали, заинтересовались.



Первый алгоритм как раз связан с Дойчем, о котором мы говорили вначале. Это алгоритм Дойча-Йожи. И он делает следующее. Представьте, что у нас есть булева функция от n переменных. И мы точно знаем, что она или константная, или сбалансированная. Сбалансированная значит, ровно на половине аргументов она равна нулю, а на другой половине единичке. Попробуем классически проверить, константна она или нет.

Для этого нам нужно проверить хотя бы половину всех возможных вариантов: 2n1+1 вариант. Квантовый алгоритм позволяет это сделать за n обращений к самой функции, за n вычислений самой функции. Это экспоненциально меньшее количество обращений.

Второй пример, наверное, хорошо всем известен, из-за него говорят, что квантовые компьютеры сломают всю криптографию: мы можем квантово очень быстро факторизовать числа.



Здесь приведены оценки сложности, и есть просто фантастический пример. В 2011 году на реальном компьютере факторизовали число 15. Потребовалось семь кубит.



Но не все так страшно. На случай, если квантовые компьютеры достигнут уровня, при котором можно ломать RSA, уже есть постквантовая криптография. Она построена на обучении с ошибками. Это когда в задачи вносится небольшая погрешность так, чтобы найти ответ было очень сложно. Обычно это какие-то уравнения или система уравнений. Вот пример алгоритма. Кто захочет, может почитать подробнее.

Самое интересное: на этой штуке основан алгоритм New Hope, новая надежда всея человечества. В 2016 году в Chrome была включена поддержка этого алгоритма. Здесь есть ссылочка на блог. Это не я придумал, все на самом деле есть. Будущее уже здесь.

В конце немножко ссылок:


На этом более-менее все. Я хочу только добавить, что примерно 50 лет назад, когда Дойч начал заниматься квантовой информатикой, компьютеры были большие. Их делало несколько компаний. Они были размером со шкаф. А сейчас примерно те же компании делают большие квантовые компьютеры. И что будет через 50 лет мы, конечно, не знаем.

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

Программирование квантовых компьютеров джентльменский набор издательства Питер

30.09.2020 08:10:03 | Автор: admin

Мы очень стараемся отслеживать тренды ещё на этапе их формирования и готовить для русскоязычных читателей наиболее актуальные книги. Сегодня я покажу, как это происходит. Для примера возьму довольно необычную тему программирование квантовых компьютеров.

Эта история началась 4 года назад, и теперь, в конце 2020-го, у нас уже сформирован небольшой, но весьма доступный и актуальный портфель.

В 2016 году к нам в издательство от зарубежных коллег пришла очень занимательная книга: The Future X Network: A Bell Labs Perspective. Если вы раньше не слышали о Лаборатории Белла обязательно поинтересуйтесь. Весьма незаурядная организация!

К сожалению, на русском языке она издана так и не была. И всё же мы её внимательно изучили. Это не абстрактная футурология, а очень серьёзное исследование с прогнозами до 2025 года, которые глупо игнорировать. Более того, проверяя сейчас, спустя 5 лет после составления этих прогнозов (книгу писали в 2015-м, ещё до того как их купила Nokia), соответствие их действительности очень впечатляет.

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

С этими мыслями и чувствами мы начали искать.

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

Наконец ближе к концу 2018 года желания сошлись с возможностями. Мы нашли и приняли в план издательства нашу первую книгу из этого портфеля: "Квантовые вычисления для настоящих айтишников".

Почти год прошёл от принятия решения до постановки книги на полки розничных и виртуальных магазинов.

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

В качестве нашей утренней звезды выступила книга от The MIT press, впоследствии ставшая бестселлером на Amazon. К слову, мы приняли книгу к изданию почти за полгода до её релиза на Западе.

Дальше случилось неожиданное!

На CES 2019 был представлен Первый коммерческий квантовый компьютер - IBM. То есть мы, конечно, предполагали, что IBM будет активно работать в этом направлении. Однако их успехи превзошли наши ожидания.

Но что важнее мы получили сигнал о том, что следует заняться книгами не только по теории, но и по практике программирования квантовых компьютеров. И, не дожидаясь перитонита издания первой книги, было решено перейти от прощупывания темы сразу к формированию линейки литературы.

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

Нам было понятно, что IBM становится лидером квантовой гонки. У них достаточно опыта, ресурсов, клиентов и решимости для того, чтобы сделать из новейшей технологии настоящую индустрию. Ну и ещё удалось выудить из их научных публикаций и буклетов-гайдов для бизнеса интересную и убедительную информацию о ближайших планах/достижениях. Из всего следовало, что по крайней мере в ближайшее десятилетие именно их стек технологий будет стандартом продакшена. Конечно в тех пределах, в которых можно говорить о продакшене столь молодой технологии.

"Разработка с использованием квантовых компьютеров" подойдёт для разработчиков, уже владеющих хотя бы базовыми знаниями в CS и основами языка Python. Книга предназначена для формирования навыков работы как с симулятором, так и с настоящим квантовым компьютером, к которому безвозмездно даёт доступ IBM. Автор учит нас пользоваться специальным фреймворком от IBM (пишем код на Python, фреймворк сам транслирует его в команды для железа и оптимизирует их), а также предлагает минимальный необходимый набор теории. Есть и несколько небольших учебных проектов, в которых наглядно реализован особый подход к решению задач, с использованием преимуществ квантовых вычислений. В общем, идеальный вариант для тех, кто любит сначала поиграть, покрутить и лишь потом решать, сколько тратить времени на углубленное изучение.

Эту книгу мы успели выпустить вовремя, в этом же месяце прошёл CES 2020, IBM и первое настоящее коммерческое применение нового квантового компьютера. Прошёл и полностью подтвердил все предположения и заявления, которыми мы руководствовались.

Научного редактора для этого издания я нашёл на Хабре (Михаил Коробко akaShkaff). Наверняка многие из вас читали его увлекательные посты о гравитационной астрономии и квантовых технологиях, благодаря которым она (астрономия) стала возможна.

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

Третьей книгой в нашем портфеле стала "Программирование квантовых компьютеров. Базовые алгоритмы и примеры кода".

Как понятно из названия, это нечто среднее между предыдущими двумя. С одной стороны, мы изучаем что-то довольно фундаментальное алгоритмы. Хотя и гораздо более динамичное, чем сами основы квантовой физики и квантовых вычислений, которые обсуждали в "Квантовых вычислениях для настоящих айтишников". Практические задачи перед квантовыми компьютерами только начинают ставить, и ансамбль алгоритмов ещё долго будет пополняться. Что не мешает приступить к изучению уже созданных, а возможно, и внести собственный вклад и предложить алгоритм сообществу.

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

Автор выбрал в качестве основной инфраструктуру Microsoft второго, на наш взгляд, игрока этой гонки. Публичные инструменты, тот же Q#, они начали развивать раньше IBM, он даже замечен в профильных российских программах подготовки магистров. Таким образом, это решение использовать наработки Microsoft не идеологическое, а вполне прагматичное. Тем не менее, это не книга с игрой в одни высокотехнологичные ворота. Например, вот так автор соединяет квантовую физику, железо, софт и теорию программирования:

Если вы хотите освоить телепортацию, лучше всего опробовать ее в деле. Учтите, что на протяжении всей человеческой истории до момента написания книги лишь несколько тысяч людей выполняло физическую телепортацию какого-либо рода, так что даже выполнение следующего кода ставит вас в число первопроходцев. Для данного примера вместо системы моделирования мы воспользуемся реальным пятикубитным QPU компании IBM (рис. 4.1). Вы сможете скопировать пример кода из листинга 4.1 на сайт IBM Q Experience, щелкнуть на кнопке и убедиться в том, что телепортация прошла успешно.

Рис. 4.1. Микросхема IBM очень мала, так что перемещение кубита будет довольно коротким; на иллюстрации и схеме выделены части QPU, между которыми будет происходить телепортацияРис. 4.1. Микросхема IBM очень мала, так что перемещение кубита будет довольно коротким; на иллюстрации и схеме выделены части QPU, между которыми будет происходить телепортация

Для программирования IBM Q Experience можно использовать OpenQASM и Qiskit. Обратите внимание: в листинге 4.1 содержится не код JavaScript, предназначенный для выполнения в QCEngine, а код OpenQASM, предназначенный для выполнения в облачном интерфейсе IBM (рис. 4.2). Выполнение этого кода позволит вам не смоделировать, а реально выполнить телепортацию кубита в исследовательском центре IBM в Йорктаун Хайтс (Нью-Йорк). Мы подробно опишем, как это делается. Подробное рассмотрение этого кода также поможет вам точно понять, как работает квантовая телепортация.

Пример кода

Этот пример можно выполнить онлайн по адресу http://oreilly-qc.github. io?p=4-1.

Листинг 4.1. Телепортация с проверкой

include "qelib1.inc";qreg q[5]; creg c[5];// Шаг 1: создать запутанную пару h q[2]; cx q[2],q[4]; barrier q[0],q[1],q[2],q[3],q[4];// Шаг 2: подготовить данные x q[0]; h q[0]; t q[0]; barrier q[0],q[1],q[2],q[3],q[4];// Шаг 3: отправить h q[0]; h q[2]; cx q[2],q[0];h q[2]; measure q[0] -> c[0]; measure q[2] -> c[2]; barrier q[3],q[4];// Шаг 4: получить x q[4]; z q[4]; barrier q[3],q[4];// Шаг 5: проверить tdg q[4]; h q[4]; x q[4]; measure q[4] -> c[4];

Научным редактором книги выступил уже известный вам Михаил Коробко akaShkaff

И теперь краткий анонс четвёртой, ещё находящейся в производстве книги "Танец с кубитами. Как на самом деле работают квантовые вычисления".

Автор Роберт Сатор (привет TENET, привет Нолан!), вице-президент направления IBM по квантовым компьютерам.

CV автора

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

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

Очень нужное и долгожданное пополнение в корпусе литературы по квантовым вычислениям. Свежая, провокационная и глубоко продуманная, с разделами об основных математических инструментах, которые доступны каждому. Настоятельно рекомендую!

Ilyas Khan, CEO, Cambridge Quantum Computing

Подробнее о книге вы сможете прочитать в нашем блоге в период предзаказа/старта продаж. К сожалению, точной даты я сейчас назвать не могу, сориентирую на начало 2021 года. Советую подписаться на наш блог и/или почтовую рассылку, чтобы не пропустить!

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

Резюмируем. Примерно таким образом в издательстве "Питер" мы работаем над тем, чтобы наши читатели получал доступ к сливкам компьютерной литературы. Конечно, не получится избавиться от некоторого лага с англоязычным миром. Однако мы работаем на опережение, отсматриваем книги зачастую ещё на этапе концепции от западных издательств и вместо вас сортируем сотни книг, вылавливая лучшее! Могу уверенно сказать, что среди локальных (национальных) книжных рынков русскоязычный читатель от IT получает самый широкий и актуальный выбор.

Подробнее..

Пять лет назад мы разместили первый квантовый компьютер в облаке. Рассказываем, как это было

02.06.2021 20:09:34 | Автор: admin
До 2016 года получить доступ к квантовым устройствам было непросто. Теоретикам квантовых вычислений приходилось убеждать исследователей аппаратных средств в необходимости проводить эксперименты на специализированных квантовых процессорах.

image alt

В конце 2015 года руководители рабочей группы почетный сотрудник и вице-президент IBM Джей Гамбетта (Jay Gambetta) и Джерри Чоу (Jerry Chow), ныне директор по разработке аппаратной части квантовых систем, заручившись поддержкой со стороны научного сообщества, предложили разместить квантовый процессор в облаке. Чтобы выйти на этот качественно новый этап, потребовались месяцы совместной работы представителей с нескольких континентов, направленные на развитие глобальной экосистемы квантовых вычислений.

Так, в рабочую группу для разработки ядра платформы и пользовательского интерфейса был приглашен эксперт по облачному ПО Исмаэль Фаро (Ismael Faro). К группе также присоединился сторонний дизайнер Карл де Торрес (Carl De Torres), который работал над внешним видом приложения. Рабочая группа хотела сделать акцент на устройстве с пятью кубитами. Математические операции, называемые квантовыми вентилями, связывали кубиты в квантовые схемы. Диаграммы, отображающие схемы и вентили, выглядели так же, как музыкальные ноты на нотном стане. Поэтому команда хотела получить интерфейс, который бы позволял интуитивно сочинять такие схемы. За пару выходных дней Фаро, прежде не имевший опыт работы с квантовыми устройствами, подготовил прототип веб-страницы и приложения и это оказалось именно тем, что хотела рабочая группа.


Макет концепции платформы IBM Quantum Experience, созданный в январе 2016 года (Фото: Исмаэль Фаро)

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

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

Квантовые вычисления выходят в Интернет


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


Ученый-исследователь отдела квантовых вычислений IBM Антонио Корколес работает на планшете в квантовой лаборатории IBM рядом с открытым криогенным холодильником

Научный сотрудник Антонио Корколес (Antonio Crcoles) участвовал в калибровке устройств, чтобы кубиты правильно реагировали на входные воздействия и достаточно долго сохраняли заданные значения для выполнения вычислений. Его группа оптимизировала конфигурации криогенной проводки для достижения наилучшего периода когерентности кубитов и скорости работы вентилей.

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

Система IBM Quantum Experience (теперь называется IBM Quantum) заработала 4 мая 2016 года. Ручеек быстро превратился в бурный поток: в первую неделю для работы с IBM Quantum Experience зарегистрировалось 7 тыс. пользователей, а к концу второй их число превысило 17 тыс.


Компоновка устройства IBM с пятью сверхпроводящими кубитами (Фото: IBM)

Пожалуй, самые важные уроки были усвоены за первые несколько месяцев после запуска. Группа анализировала сотни отзывов пользователей и отслеживала собственные исправления, чтобы сделать работу удобнее и систематизировать процесс для ввода в продуктив еще большего числа квантовых устройств. Пока сотрудники, используя канал Slack, исправляли отдельные ошибки по индивидуальным запросам, велась работа над активным поиском более долговременных исправлений. Это было нужно для того, чтобы рабочая группа могла вернуться к разработке нового оборудования, а не выступать в роли службы технической поддержки для растущего парка процессоров.

Я считаю, что первоначальный запуск сыграл крайне важную роль, говорит Корколес. Но масштабы работы, которую мы проделали сейчас, поразительны. Мы вывели в облако десятки устройств и предоставили доступ к ним разработчикам по всему миру, часто на условиях свободного использования.

В IBM научились создавать стабильные квантовые устройства, выводить их в онлайн и автоматизировать некоторые из важнейших экспериментов, в том числе связанные с калибровкой устройств. Если честно, для того чтобы разместить квантовый компьютер в облаке, нам потребовалось полностью перестроить мышление, поясняет Джей Гамбетта, почетный сотрудник и вице-президент IBM по квантовым вычислениям. Мы рассматриваем такие устройства не как объекты лабораторных экспериментов, а как системы.

Факты и цифры


Система облачного доступа к квантовым компьютерам IBM Quantum Experience поддерживает целый ряд квантовых систем, доступ к которым с помощью IBM Quantum Composer, IBM Quantum Lab и Qiskit получили исследователи, компании и активное сообщество Open Source разработчиков.

Сегодня на платформе IBM Quantum зарегистрировано более 325 тыс. пользователей. Каждый день тысячи разработчиков запускают на квантовых компьютерах IBM не менее двух миллиардов квантовых схем, и теперь им в этом помогает открытый набор средств разработки ПО Qiskit.

  • Количество зарегистрированных пользователей: > 325 тыс.
  • Количество скачиваний Qiskit: > 650 тыс.
  • Количество научных статей, опубликованных благодаря использованию IBM Quantum: > 700
  • Количество организаций в коммерческой сети IBM Quantum Network: > 140
  • Количество выполняемых квантовых схем: > 2 млрд в день

Смотрите оригинальный материал на английском с дополнительными деталями, а также слушайте подкаст с участием российского победителя конкурса Quantum Challenge.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru