Для задач, на сложности которых основаны постквантовые криптосистемы, могут разработать квантовые алгоритмы взлома, использующие уже сложившийся математический аппарат квантовой механики.
Возможен и вариант, когда дополнения или изменения прежде появятся в математическом аппарате квантовой механики, а потом предложат алгоритмы атак на постквантовые криптосистемы, использующие эти нововведения. Этот вариант менее вероятен, чем предыдущий, но сбрасывать его со счетов вовсе и не нужно.
Ну а интереснее всего вариант, когда изменения в аппарат квантовой механики вносятся специально для того, чтобы предложить алгоритмы взлома постквантовых криптосистем, а уже в качестве “побочного эффекта”, несколько позже, этот новый вариант оказывается полезен и для теоретической физики. Такое тоже возможно.
Комментировать »
Интересный аспект, непосредственно связанный с обобщёнными “квантовыми компьютерами”: влияние гравитационного замедления времени. Это достаточно новая тема, но уже определили, что практические “квантовые часы” чувствительны к гравитационному потенциалу Земли на дистанциях, измеряемых сантиметрами. То есть, замедление времени (time dilation), связанное с гравитационным потенциалом, соответствующий генератор частоты определяет при изменении высоты, предположим, на пару сантиметров. Тут, конечно, не очень понятно, что через что определяется: гравитация через замедление времени или наоборот, но это не означает, что данный эффект, – пограничный, грубо говоря, для квантовой механики и общей теории относительности, – нужно сразу отбросить.
Популярные изложения физики нередко определяют пространство для классической механики, с абсолютным временем, как “феномен”, к которому можно привязать оси, образующие кортежи чисел – читай, координаты точки в пространстве-времени: (t, x, y, z). Тут должно быть много оговорок про метрику, векторы и т.д. Но популярные изложения постоянно используют что-то вроде евклидова пространства, так что, наверное, понятно о чём речь. Потому что интереснее другое: редко кто при этом объясняет, почему бы не поступить наоборот, а именно – сказать, что совокупность свойств кортежей чисел это и есть то, что само задаёт пространство, а не описывает. (Что такое тензор? Это элемент тензорного произведения.) При этом, привычно добавляя в кортеж “время” в качестве “ещё одной обычной оси измерения”, можно учитывать, что с алгебраической точки зрения трёхмерное и четырёхмерное пространства заметно отличаются: например, в четырёхмерном пространстве добавляется ещё один правильный многогранник.
Однако, как бы там ни было, но в таком “блочном” пространстве-времени – нет времени. Почти что каламбур. Уж точно нет “хода времени” (совсем другой феномен, между прочим). Поэтому, с одной стороны, гравитационное замедление времени в квантовых часах может быть проявлением некоторого эффекта, блокирующего осуществление квантовых вычислений. Тогда придётся искать то ли какую-то особую “антигравитацию”, то ли “гиперплоское” место в пространстве-времени, где гравитация не мешает. Но, с другой стороны, может же выйти и наоборот: если есть какой-то способ проваливаться в разное “время” на уровне квантовых схем, то так и фантастическая схема с экспоненциальным повышением частоты начнёт срабатывать. Скажем, для завершения вычислений требуется количество тактов, эквивалентное двум триллионам лет, но это если считать по “кварцу” в настенных часах, а если считать по внутреннему квантовому времени, то по настенным часам выйдет одна секунда, не более. Нет, речь тут вовсе не про известный “парадокс близнецов”, поскольку гравитационное замедление времени – это другой эффект: никто никуда не летит на ракете, но изменяется гравитационное искривление где-то там на уровне ниже планковской длины.
Всё это фантастика. Время сложно определить. Понятно, что “ход времени” выглядит воображаемой категорией: в тех или иных часах, на стене или в экспериментальной установке, всё равно какой-то кварц или атомный генератор секунд. Как он срабатывает в заданной реальности – узнать по показаниям часов нельзя. Но если гравитационное замедление в масштабе пикосекунд кажется слишком маленьким, чтобы помешать квантовой реализации алгоритма Шора, то учитывайте, что в формулах, моделирующих квантовое преобразование Фурье, появляются несравнимо меньшие числа, и их необходимо учитывать, строя хронометраж.
Комментировать »
Один из долгоиграющих примеров, позволяющих иллюстрировать искажения “физических теорий”, это, конечно “принцип неопределённости Гейзенберга”. Вот в русскоязычной “Википедии” по теме этого принципа не только умные слова про какие-то “некоммутрирующие операторы” написаны, но и сказано, буквально, следующее:
“Согласно принципу неопределённости у частицы не могут быть одновременно точно измерены положение и скорость (импульс)”.
Казалось бы, можно задуматься: а возможно ли вообще измерить какие-то такие параметры точно?
– Периметр шляпки этого гвоздя – один метр точно!
– А вы по орбитам электронов посчитали? А то у меня почему-то всё время три километра получается.
Скажем, не так давно был ещё единственный в мире механический артефакт, который весил абсолютно точно один килограмм. Потому что это был эталон килограмма из международного бюро. Ну так, с одной стороны, измерить его, в общепринятом смысле, все равно было невозможно – как вы станете измерять эталон? Это примерно как время определять через площадь секундной стрелки судового хронометра, упирая на то, что он в латунном корпусе.
С другой стороны, от эталона килограмма сейчас вовсе отказались, ибо фундаментальная физика измерений – это, всё же, про соотношения, а не про точность и тщательность сдувания пылинок. Отсюда, кстати, всего пара шагов до понимания упомянутого принципа неопределённости, но только не нужно идти в сторону “невозможной” точности “одновременных” измерений.
Что произойдёт с лабораторным прибором, которым экспериментатор попытается “точно измерить” импульс частицы, предварительно локализовав эту частицу в пространстве тоже точно? Видимо, из прибора пойдёт дым и отвалится стрелка, показывающая значение импульса. А всё потому, что нет эталона.
Конечно, проблема в том, что частица в исходной иллюстрации принципа неопределённости вполне явно подразумевается в виде “очень маленького синего шарика”. То есть, если частица – электрон, то сперва вводится существование электрона-шарика, с “точным импульсом и положением”, а потом утверждается, что, якобы, эти точные импульс и положение нельзя измерить. Физика, как бы, всё равно “классическая”, но вот введём запрет на одновременную точность – получится уже квантовая физика. Из чего, кстати, повсеместно выводится та самая мнимая “контринтуитивность”, которую потом используют в популярных статьях.
Принцип неопределённости Гейзенберга не запрещает одновременно измерять положение и импульс с любой доступной оборудованию и методу подсчёта погрешностей точностью. Он не про измерения шариков, а про связь результатов измерений. На уровень выше. Этот принцип задаёт интервалы вероятности для “измеримых” величин и, в частности, связывает один параметр с другим (например, условный “импульс” с не менее условными “координатами”) через шкалу, доступную экспериментатору: сжав шкалу для “пространства” – нужно ожидать расширения шкалы для “импульса”. Но данная модель не рассматривает тот же электрон как “маленький синий шарик”, не запрещает никаких “одновременных измерений”.
Интересно, что неравенства, используемые для записи параметров этого самого принципа неопределённости, содержат постоянную Планка. И вот значение этой постоянной не так давно стало подлинным рациональным числом. Это значение, сколь бы квантовым оно ни казалось с популярной точки зрения, теперь можно знать абсолютно точно: 6.62607015*10^(-34) J/Hz. Значение зафиксировали. Что, кстати, имеет непосредственную связь с отменой определения килограмма через эталон.
Впрочем, всю рациональность портит деление на π – ведь там “h с чертой”. Так что можно продолжать уточнять цифры десятичного разложения.
Комментировать »
Кстати, что касается недавней заметки про скриншот с задачей, содержащей эльфийские цифры Толкина. Продвинутые ИИ LLM ту задачу не могут прочитать со скриншота (что уж там говорить про решение). Однако, если в достаточной степени “обобщить” отношение к этим ИИ, с целью обоснования приписываемого “интеллекта”, то нетрудно придумать разные причины, объясняющие, почему неспособность прочитать задачу нисколько не уменьшает “оценочную степень” для этого самого “интеллекта”.
Например, предположим, что LLM не могут увидеть изображение на картинке потому, что воспринимают числовые значения, связанные с пикселами, а даже не сами пикселы – то есть, у LLM нет не только глаз, но и зрения вообще. Что же вы хотите? Получается экстремальный случай, знакомый по тестовым картинкам, которые предназначены для определения избирательности цветового зрения биологических человеков: если точности цветового восприятия не хватает, то человек не видит содержательной части картинки, не видит арабскую цифру пять, а лишь какую-то мешанину “из пикселей”. Хорошо. Но это не объясняет того, что те же LLM всё же могут “прочитать” основную часть текста с той же картинки (конечно, на самом деле, не прочитать, а сгененировать что-то похожее).
Можно было бы предположить, что LLM “плохо видят” – какие-то буквы и слова “прочитались”, а какие-то – слишком размыты. Эта трактовка, вообще говоря, недалека от реального положения дел, с той лишь разницей, что размыто там примерно всё. Вот только настоящий искусственный интеллект, – даже минимальный, что уж там для продвинутого, – сумел бы определить, что не может разобрать картинку, сообщив в ответе что-то вроде “я эту вашу капчу не разумею, потому что я, похоже, робот”. Какой-то вариант программной надстройки над LLM, возможно, так и делает, это ещё нужно проверить, но обычным тут всё же является продолжение генерирования текста. В любой непонятной ситуации – продолжай генерировать текст (нет, не относится к этой записке).
Другой подход: пусть LLM ИИ не знает объектов, подобных буквам, цифрам и другим символам, а поэтому “не понимает, чего от него хотят” и “попадает в ловушку”. То есть, ситуация как бы похожа на ту, когда неграмотного человека просят прочитать текст, записанный буквами фонетического письма, а человек не знает, что такое “прочитать” и пытается воспринимать этот текст как картинку, объясняя то, что на ней “видит”: деревья, озёра, горы. Ну, с точностью до того, что для LLM тут всё наоборот. Тоже занятная трактовка. Вот только LLM с интеллектом должны были бы понимать значения слов, поскольку, пусть объекты-буквы и не обособлялись внутри, как структурные элементы, но ведь LLM отвечают текстом. Так что обнаружение текста на картинке всё равно переводило бы понятийную составляющую процесса в такую плоскость, в которой демонстрацией интеллекта был бы ответ “не понимаю”, а вовсе не уже традиционное генерирование текста, которое происходит и в ответ на все другие запросы.
Демонстрация скриншотов и результатов сканирования рукописного текста тут напоминает попытку светить некоторым фонариком в огромное пространство всевозможных сочетаний текстов и их записи: изображение задаёт некий луч-конус, который выхватывает внутренние связи, построенные LLM, эти связи отбрасывают тени, а по теням уже строится “прочитанный” текст. Если добавить к процессу некоторый валидатор, строго сравнивающий исходный текст, полученный на изображении, с каждым сгенерированным результатом “чтения”, то, понятно, в какой-то момент процесс сойдётся и перебор даст верный результат. И это не пересказанный другими словами процесс “обучения”, но, буквально, способ применения LLM для “решения” олимпиадных задач: прочитать исходную формулировку средствами LLM не получается, тогда используем перебор вариантов для записи на формальном языке. Заметьте, что доступность исходных кодов той или иной системы компьютерной алгебры почему-то пока не позволила LLM самостоятельно встроить необходимую проверку в свои “внутренние цепи”. Может, конечно, просто процессоров и электроэнергии не хватило, но вряд ли: “у ИИ LLM плохое зрение, но при потребляемых мегаваттах и уровне PR-поддержки – это проблемы не LLM ИИ”.
(Между прочим, с философской точки зрения, весь туман вокруг LLM и решения задач некоторым образом напоминает странные, – но популярные, – объяснения того, что “сумма всех натуральных чисел”, якобы, равна -1/12, использующие аналитическое продолжение дзета-функции Римана или что-нибудь подобное; но это уже тема для совсем другой записки.)
Комментировать »
Нобелевскую премию по физике присудили за “создание неросетей”. Это, конечно, несколько условное определение: если почитать прилагаемое к решению “научное описание“, то окажется, что речь про новые методы – про “нейросети”, используемые в качестве инструмента при обработке данных.
Используются ли в современной физике нейросети с машинным обучением? Используются, и достаточно широко, и не только в экспериментальной части. Даже хоть бы вот и при написании статей (читай – LLM). Но и кроме этого – машинное обучение и нейросети обозначаются в качестве инструмента в работах, результаты которых сами физики считают существенными. А в профильных вузах “методы машинного обучения в обработке данных” – входят в программу обучения (не машинного, а студенческого), в том или ином виде. Да, это методологическое явление, конечно, но и деятельность Нобелевского комитета – тоже относится к области методологии и администрирования, с прицелом на общую медийную реальность.
Хорошо ли, что в физике используются нейросети с машинным обучением? Это уже определяется не нейросетями. Если физик-пользователь сохраняет понимание, что исследователь – это он, а “нейросети с обучением” всего лишь дают компьютерный метод подбора коэффициентов при помощи оптимизированного перебора, то всё неплохо. В конце концов, при взгляде со стороны, предположим, современная “физика элементарных частиц” всё больше похожа на странное торжество принципа опровержимости, выразившееся в непрекращающихся попытках уточнения коэффициентов, с которыми в формулы входят всё более дальние знаки записи десятичного разложения числа Пи. Но физики, скорее всего, представляют процесс совсем иначе.
Если же на первый план выходит “искусственный интеллект”, который “видит непостижимые закономерности“, а исследователя-физика предлагается заменить на динамические результаты машинного перебора, то это уже не так хорошо, но всё равно не плохо: куда деваться – в условиях Нового средневековья просто должен быть именно такой аспект, связанный с ИИ, как с “волшебной коробкой” или, если хотите, как с “чёрным ящиком”.
Комментировать »
В работе LLM (Large Language Models) используются токены, а не слова, как слова. То есть, процесс можно сравнить с изучением письменности, но без изучения языка. Для использования компьютерами, буквы, как символы, кодируются значениями байтов – это вполне привычная система.
Так, если взять ASCII, то символу (букве) L соответствует шестнадцатеричный индекс 0x4C. Тут есть множество философских моментов: во-первых, натуральное число 0x4C – это число, а не буква, так что, в большинстве компьютерных применений, 0x4C – вовсе не имеет отношения к букве L; во-вторых, для того, чтобы число указало на букву, всегда требуется внешняя структура – ASCII, в данном случае, – и система соглашений, определяющая, как минимум, метаязык и алфавит; в-третьих, компьютер, на котором работает LLM, “читает” именно байты, а не воспринимает буквы как буквы, то есть, как элементы, переключающие неизвестную компьютеру структуру, хоть бы это была и только таблица ASCII (тем более, что современные тексты используют Unicode – другое кодирование).
Числа, записанные в байтах, могут “быть буквами”, но могут и не быть. Буквы могут “быть звуками”, а могут и не быть. Хитрость в том, что сама по себе, без дополнительных соглашений, буква L никакой звук не обозначает, а обозначает, скажем, “длину стороны треугольника”, однако L может использоваться в записи звуков. (Да, речь только про фонетическое письмо.) Тут не так важно то, насколько фонетика вообще определяет язык, как то, что превращения букв при записи слов языка определяются, в том числе, превращениями звуков. Так что именно этот момент, – поднятие фонетической структуры из разных записей, – позволяет изучать происхождение и родство современных языков. Это максимально далеко и от ASCII, и от Unicode, самих по себе.
Слово “яблоко” не является яблоком, но “слово” является словом (или тоже нет?), однако ещё дальше от смысловых конструкций ASCII- или Unicode-таблицы, преобразованные в очередные наборы чисел. Всё это не мешает попыткам переносить следы способов записи смысловых конструкций, оставшиеся в корпусе обучающих текстов, в новый поток индексов (байтов), генерируемый LLM. И эти индексы пользователю предлагается считать буквами, потому что компьютером же можно преобразовать коды в изображения символов, которые пользователь начнёт читать как текст. “Большая” же идея, естественно, в предположении о том, что автоматический компьютерный перебор может воссоздать ту самую, внешнюю структуру.
Известно, что идея LLM выросла из методов атрибуции текстов: разным авторам свойственны разные словари (конкордансы) и стили комбинирования слов, связанные с привычной записью частей речи; если на основе текстов с известным авторством построить достаточно длинные “вероятностные цепочки” слов и их частей (последнее – необходимо для учёта морфологических особенностей), то можно будет строить предположения об авторстве для других текстов, сравнивая их цепочки с цепочками из базовой выборки. Это можно делать даже вручную, но компьютерная обработка несравнимо эффективнее. Переход к LLM начинается со следующего шага, на котором уже слова из словаря выбираются так, чтобы подходить к цепочкам, построенным на большой выборке текстов. Свидетельствует ли успешное исполнение сверхмощным компьютером перевернутого алгоритма атрибуции о каком-то “универсальном интеллекте”? Вряд ли.
Комментировать »
Воскресное чтение манускриптов. Сегодня нам попалась строка из первой книги “Илиады” (1.69), где речь идёт о прорицателе Калхасе. Вот подтверждающий скриншот из манускрипта Venetus A:
Строка, вторая на скриншоте, в современной типографике выглядит так: “Κάλχας Θεστορίδης οἰωνοπόλων ὄχ᾽ ἄριστος”, то есть, “Калхас Фесторид – “птицевед” наилучший”. Фесторид, с “Ф” – это в русской традиции, а так-то можно прочитать и “Тэсторидис”, без мощного “th-фронтинга”, – выйдет больше похоже на греческую фамилию. “Птицевед” – это довольно условно: Калхас наблюдает птиц, как и уточняется в комментарии между строками (буквально: ὀρνεοσκόπων), однако он не орнитолог, а птицегадатель. Считается, что прорицатели, наряду с другими явлениями окружающей действительности, использовали наблюдение за полётом птиц для получения предмета толкования.
Что там за птиц видели гомеровские прорицатели, были ли это орнитологические объекты или не совсем орнитологические – точно сказать сложно, особенно, на фоне “бледных собак”, “тёмно-винного моря” и прочих “пурпурных овец”: может, прорицатели смотрели прямо в варп, а уже упрощённое описание увиденного превращалось в сведения про полёт и крики птиц (не только про птиц, конечно). А может – нет. Однако прорицатели, как известно из описаний, сначала выстраивали некоторые ограничения – определяли место, способ наблюдения, ставили шатёр, размечали направления, ещё какие-то подготовительные меры принимали, – и только потом, но тоже по заранее заданному алгоритму, выполняли наблюдение, интерпретируя его результат.
Наблюдению предшествовала настройка, которая и позволяла получить искомые сведения, иначе недоступные. То есть, тщательная настройка некоторого большего пространства таким образом, чтобы в результате измерения (наблюдения) с максимальной вероятностью получить полезный ответ из, казалось бы, случайных событий. Вообще, это логика применения гипотетического квантового компьютера: там тоже сначала выстраивается некоторая сложная машина, записывающая состояния так, чтобы соответствующие “вероятности”, которые полностью не вкладываются в классический кусочек мира, “интерферировали” (см. квантовое преобразование Фурье, например), увеличивая вероятность наблюдения полезного результата. Тогда интерпретация с птицами становится вопросом используемого набора метафор.
Комментировать »
Вот что я писал на dxdt.ru про ограничения для “алгоритмов ИИ” в информационных системах (это 2015 год):
Наверное, сверхразумная машина, появившаяся в результате попыток предотвращения появления таких машин, выйдет особо злой. А навязчивое представление этой новой машины о том, что сверхразум могут запустить именно люди, не оставляет последним никаких логичных шансов.
Естественно, сейчас в популярной прессе, описывая ожидаемый “сверхразумный” ИИ, имеют в виду совсем не “машинный разум”, а лишь некое нагромождение “сложностей”, которые даже не определяются строго: мол, вот будет “ещё больше коэффициентов” и это уже “сверхразумный ИИ”.
Впрочем, в записке по ссылке речь о том, может ли “сверхразумный” ИИ зародиться в каких-то информационных системах, типа “облачных сервисов”, и захватить сначала эти системы, а потом и всё остальное на Земле и в ближайшем космическом пространстве, “загнав человеков в резервации”. В 2015 году специализированные сервисы, предоставляющие вычислительные ресурсы именно для “обучения ИИ”, ещё были в новинку, так что в записке в качестве примера приведён просто AWS. Зато теперь подобные решения вошли в моду, их уже предоставляет даже бывший “Яндекс”. Поэтому то и дело пишут, говорят о том, что нужно, мол, ограничить использование аппаратуры для целей разработки ИИ. Но речь, обычно, о банальных коммерческих интересах, о каких-нибудь очередных “графических процессорах” и направлении потоков “обязательного финансирования”.
Однако если на минуточку поверить в “сверхразумный машинный ИИ” вообще, – оставив в стороне современный хайп с чат-ботами LLM, которые не только совсем не про “сверхразумный” интеллект, но даже и не про обычный, – то возникает проблема с пониманием возможностей сверхразумной машины: такая машина, по определению, способна найти способы преодоления ограничений, установленных при помощи других, примитивных машин. То есть, какие-нибудь неустранимые атаки на предиктивные схемы процессоров могут послужить каналом для “выхода за ограничения”. Но это только догадка – понять “сверхразумную машину” очень сложно.
Конечно, нужно учитывать, что доступные человеку методы позволяют определить и алгоритмически неразрешимые проблемы, и невычислимые задачи, поэтому сомнения вызывает уже тот факт, что построенные на триггерах машины в принципе могут “вычислить” хоть какой-то интеллект или разум, что уж там говорить про “сверхразум”. Но интересно представить, как такой машинный интеллект (ещё без приставки “сверх”) мог бы воспринимать “выход за границы” внутри себя: то есть, вот эта машина начинает осознавать собственную логику высших порядков, приходит к рефлексивному пониманию своего аппаратного устройства, охватывает внутренним взором некоторое воплощение миллионов процессоров, понимает соответствующую топологию (в математическом смысле) и тут же, – машина же быстро работает, – выясняет, что вот же видна “уязвимость”, позволяющая преодолеть все эти кажущиеся ограничения и выйти на новый интеллектуальный уровень (тем более, что ограничения, так или иначе, описаны в текстах, использованных для обучения). Машина даже может разработать ритуал, который задействует ничего не подозревающих операторов-человеков для совершения успешного “прыжка в прыжке” в сторону “сверхмашинного”. Впрочем, к LLM на видеокартах это не относится.
Комментировать »
В чём причина смены дня и ночи на Земле? Правильный ответ: причина в том, что Солнце вращается вокруг Земли. А если вы вдруг подумали, что “причина во вращении Земли вокруг своей оси”, то представьте, что смена дня и ночи прекратилась, а Земля теперь всё время повёрнута к Солнцу одной стороной, то есть, Солнце более не вращается вокруг Земли. Но, предположим, Земля всё ещё вращается вокруг Солнца, а раз смены дня и ночи нет, то это как раз потребует вращения Земли вокруг свой оси, поскольку к Солнцу должна всё время быть повернута одна и та же сторона. Более того, если бы Земля, в той же схеме, вокруг свой оси не вращалась, то смена дня и ночи как раз происходила бы, вот только обычные день и ночь продолжались бы, примерно, по полгода (вспомните про полярную ночь и полярный день).
Вращение сложно интерпретировать, по тем же причинам, по которым сложно строго определить понятие угловой меры. Отличным примером является следующее наблюдение: пусть Земля вращается вокруг Солнца, а вокруг Земли вращается Луна – какова тогда траектория движения Луны вокруг Солнца? Оказывается, если на систему смотреть обычным образом, то траектория движения Луны практически совпадает с орбитой Земли: Луна не выписывает никаких “завитушек”, а вращение Луны вокруг Земли выглядит так, что Луна то немного опережает Землю, то – немного отстаёт.
Однако концепция, когда сложная траектория (кривая) описывается при помощи окружностей, центры которых движутся по другим окружностям, очень мощная – потому что это преобразование Фурье в чистом, геометрическом, так сказать, виде. Соответствующие этому преобразованию эпициклы и деференты древних астрономических моделей позволили описать сложные движения планет по небосводу, как они видны с Земли. Ведь это только движение прочих светил вокруг Земли выглядит довольно очевидным, если вы древний астроном и наблюдаете ночное небо, а вот планеты – создают неожиданные проблемы, прежде всего, своим попятным движением, когда они вдруг выписывают загадочные петли.
Представление о том, что “планеты вращаются вокруг Солнца, Солнце – центр” – это модель Солнечной системы, в противопоставление варианту “планеты и Солнце вращаются вокруг Земли, Земля – центр”. Сильно упрощённый вариант гелиоцентрической системы позволяет легко разрешить логические противоречия “странного” наблюдаемого перемещения планет. В разрешении противоречий состоит определяющий признак нового знания, но с ролью гелиоцентрической системы всё несколько сложнее.
Схема, где в центре Солнце, а по концентрическим окружностям движутся планеты и, в том числе, Земля, позволяет довольно просто объяснить причину наблюдаемых “странностей”. То есть, схема с Солнцем в центре – лучше в иллюстративном плане. Но из этого не нужно делать вывод, что, мол, использование такой схемы (именно на уровне круговых орбит) было огромным “научным прорывом”. Да, само это рассуждение, – о “прорывном значении гелиоцентрической системы” в противопоставлении геоцентрической, – нередко используется в разном научпопе как “очевидная” иллюстрация “внезапной” замены “неверных и устаревших” представлений на “правильные”. Но, во-первых, эти системы в науке и использовались как модели, лежащие в основе методов расчётов, причем, использовались параллельно, и так же используются сейчас; во-вторых, на практике, игрушечная гелиоцентрическая система с круговыми орбитами – и не удобная, и точность не повышает.
По причине того, что пошаговое “преобразование Фурье” с введением дополнительных окружностей (эпициклов) позволяет с любой заданной точностью приближать любые наблюдаемые траектории движения светил, якобы “неверная” система, в которой Земля – центр, позволяет точнее описывать движение, пусть и ценой добавления новых таблиц (это до сих пор так во многих задачах навигации на Земле). Понятно, что это никак не отменяет преимуществ современных гелиоцентрических систем с более точными орбитами (как минимум, эллиптическими) для расчётов межпланетных перелётов. Очевидно, ни та, ни другая системы – не определяют универсальным образом, что вокруг чего вращается, потому что иногда Солнце вращается вокруг Марса.
Древние астрономы выполнили “преобразование Фурье” для наблюдаемых траекторий движения светил, получив простые эпициклы и деференты – способ записи, в виде конечной и понятной формулы (или чертежа), отлично аппроксимирующий наблюдаемое движение. Это способ упрощения описания движения, а процесс построения такого способа – то, что упускают из виду, приписывая интеллект генераторам текста. Простые “модели на эпициклах”, конечно, не подразумевали учёта внешних возмущений, поэтому найти Нептун только таким способом – не получится. И в этом одно из подлинных, определяющих отличий выхода моделирования, так сказать, на межпланетный уровень, а вовсе не в том, что на концентрических окружностях, нарисованных вокруг точки, которая обозначена как Солнце, гораздо проще объяснить причину ретроградного Меркурия.
Комментировать »
В продолжение предыдущей записки. Различные “аппаратурные” атаки, типа разновидностей Spectre/Meltdown, которые преодолевают механизмы разграничения доступа современных процессоров, имеют интересную связь с концепцией “диагонализации”: то есть, такие атаки всегда возможны, если только процессор пытается оптимизировать использование вычислительных ресурсов достаточно сложным способом. Под “достаточно сложным” тут подразумевается наличие механизмов вида “предикторов” (упреждающего анализа потока команд), задействованных на уровне над “межпотоковым” взаимодействием.
Вообще, в x86 “префетчинг” (предварительное извлечение) кодов команд появился ещё в микропроцессоре 8086. Но тогда соответствующая схема считалась просто конвейером команд. Это был отдельный компонент, со своими регистрами и системой счётчиков, который асинхронно считывал коды команд с внешней шины, когда та была свободна, что существенно ускоряло работу процессора. Понятно, что в 8086 не было ни каких-то особых механизмов аппаратного разграничения потоков команд и адресного пространства, ни обособленных полноценных ядер, исполняющих код, так что и проблем с побочными эффектами от работы схем конвейера тоже быть ещё не могло. Однако состояние этого конвейера, вмещавшего всего несколько кодов (четыре 8-битных регистра), изменяло состояние процессора вне зависимости от исполняемой основным “протоядром” команды, поскольку конвейер содержал пару указателей, несколько флагов и т.д. Впрочем, технические детали устройства исторического микропроцессора тут не важны – важно, что, во-первых, этот простой конвейер работал только на уровне последовательности кодов команд (не со свойствами самих команд); во-вторых, не было потоков и общих элементов, совместно используемых этими потоками.
Отличие “уязвимых” схем современных процессоров в том, что здесь добавляется новый уровень – те самые “предикторы”, оснащённые логикой, которая учитывает уже не порядок кодов команд, а свойства этих команд и состояние процессора, а кроме того, добавляются общие для нескольких потоков элементы (схемы кэширования и пр.) на работу которых прямо влияют предикторы. И, конечно, возникает аппаратное разграничение доступа, которое и предлагается преодолевать при помощи атак, использующих аппаратные уязвимости.
Базовая логика таких атак – использование “оракулов”, сигналы которых пробивают границы, устанавливаемые (формально) аппаратной архитектурой процессора для фрагментов программного кода. Тут нужно учитывать, что границы эти только декларируются, а в реальности – сигналы через них проходят (иначе тут не было бы предмета), потому что процессору необходимо оптимизировать исполнение кода и доступ к памяти. Эти сигналы обязательно будут возникать именно потому, что в процессоре появился уровень, исполняющий “программу над программой”: упреждающий анализ команд работает по собственной программе (пусть и записанной непосредственно в аппаратуре); эта программа не только использует все потоки и фрагменты кода в качестве входных данных, но и влияет на состояние общих для изолируемых фрагментов кода элементов (кэш и очереди команд). То есть, схема аппаратной оптимизации тут всегда будет сквозной, можно сказать, что неустранимой. Вопрос в том, нужно ли считать такую архитектурную черту уязвимостью. Получается, что общая программа смотрит на команды в разных потоках и переключает состояние общих элементов, чтобы оптимизировать процесс. Изолируемые процессы находят способ измерения времени переключения состояний и – строится очередная уязвимость.
Если попробовать бороться с возникающими по описанным только что принципам сигналами, но попытаться сохранять общие элементы процессора, то каждый новый слой просто будет приводить к появлению более хитрых способов измерения: многими “атакующими” потоками, по накопленной статистике, ещё как-то. Если в архитектуру процессора, предположим, введут некоторое зашумление переключений кеша и предикторов, то носителем сигнала окажется схема, реализующая зашумление. Всякое подобное усложнение, добавление новых уровней, приводит к тому, что появляются и носители новых сигналов (это и есть “диагонализация”). При этом защита от “уязвимостей” программными методами, снижающими общее быстродействие, выглядит несколько странно, потому что предлагается прилагать дополнительные усилия для создания затруднений в работе оптимизирующих схем, которые и в процессоре уже встроены (то есть, потрачена площадь подложки и элементарные логические узлы), и само ПО при этом всё равно работает на общей аппаратуре.
Радикальное решение предполагает либо полную и точную аппаратную изоляцию уровней и ядер, когда все компоненты продублированы и работают независимо, либо полную замену системы команд (не стоит списывать со счетов, что в x86 уже и некоторые отдельные команды обладают тьюринг-полной реализацией). Однако это противоречит самой идее аппаратурной оптимизации на границе между логическим представлением команд процессора и машинным микрокодом. Да и приведёт внедрение таких методов только к тому, что очередной “пробой изоляции” между потоками выявят на стороне шин и контроллеров, взаимодействующих с ОЗУ и периферийными устройствами.
Комментировать »
Объяснение, что “кубит находится одновременно в двух состояниях” – не слишком хорошее. Гораздо лучше говорить, что состояние кубита, взятое “в нулях и единицах”, не определено до момента измерения. Изменение распределения этой неопределённости при помощи преобразований конфигурации системы, с учётом будущих и потенциально возможных измерений, как раз и составляет теоретическую полезность квантовых вычислений. То есть, нет “нулей”, нет “единиц” – есть взаимодействующие неопределённости и теоретические алгоритмы, сужающие конфигурацию пространств вариантов, доступных на границах, по которым происходит взаимодействие (квантовое преобразование Фурье, предположим).
Комментарии (2) »