Представьте, что какой-то человек управляет некоторой сложной системой, например, электростанцией, об устройстве которой не имеет никакого представления, а также и не изучал никаких инструкций, однако у него имеется иной подход к предмету. Способ управления состоит в том, что этот человек нажимает какие-то произвольные кнопки на пульте, передвигает рычажки и крутит ручки там же, а кроме того, предположим, тыкает отвёрткой в разные разъёмы. Такой персонаж, например, встречается в видеоигре Fallout: New Vegas. “Похоже, ты вообще не понимаешь, что делаешь”, – говорят этому персонажу. На что он уверенно возражает: “Нет. Я точно понимаю, что именно я делаю. Просто, я не знаю, какой эффект это вызовет”. Тут важен уровень рефлексии – так, персонаж уверен, что выполняет осмысленные действия: вращает именно те ручки, которые планировал вращать, нажимает именно те кнопки, именно в том порядке, как и планировал. А что до эффектов воздействия – ну, что ж, эти эффекты он может наблюдать и делать свои выводы о ручках и рычажках на пульте: “каждый день выясняю что-то новое”. С одной стороны, данный метод персонажу представляется вполне научным (ну, так действительно можно подумать, за вычетом модели изучаемого явления и некоторых других важных деталей), с другой – присутствует чёткий, деятельный подход, состоящий в аккуратном “нажимании на кнопки”.
Для такого управления и понимания хорошо подходит выдача какой-нибудь LLM-системы искусственного интеллекта (ИИ), обученной на описаниях последовательностей взаимодействия с “кнопками-рычажками” на разных пультах, на текстах инструкций к разным “пультовым системам”. В ответ на предложение-запрос “Какие ручки на пульте крутить сегодня?” – ИИ выдаст инструкцию из разнообразных шагов. Если в инструкции встретятся упоминания кнопок, которых на реальном пульте нет, то можно переспросить: “На пульте нет фиолетовой кнопки. ИИ-GPT, а ты уверено, что нужно нажимать именно фиолетовую?”. LLM тут же исправится, не сомневайтесь. Подход ИИ, даже с учётом необходимости переспрашивания, не вызовет никаких особенных сомнений у вопрошающего, описанного в предыдущем абзаце, поскольку в точности укладывается в его привычную концепцию “понимания”. Он точно так же планировал, что нажмёт такую-то кнопку и покрутит такую-то ручку. Идея, что хорошо бы нажать фиолетовую кнопку, если бы такая кнопка была, – тоже могла рассматриваться. Так что ИИ LLM здесь не просто “отвечает мыслям”, но и помогает их сформулировать, выдав чёткие готовые ответы в виде перечня ручек, кнопок, а также параметров нажатий и вращений. Это “удобный компьютерный инструмент”, кроме того, он обучен на всех инструкциях, а поэтому “внутри у него может быть понимание устройства” той же электростанции, уровнем точно не хуже – ведь он тоже предлагает крутить ручки и нажимать кнопки.
Квалифицированный инженер строил бы нудные предположения, в стиле, что “для увеличения скорости вращения турбины нужно приоткрыть впускной тракт номер пять ещё на тридцать процентов и соответственно скорректировать параметры клапанов, ограничивающих давление; поэтому требуется выставить ручку впуска с пятнадцати процентов на сорок пять и переключить клапана при помощи кнопок в красном секторе”. После чего уже крутил бы ручки и нажимал кнопки. Но это совсем другой подход. К тому же, реализуется он всё равно через пульт, значение которого в Новом Средневековье возрастает многократно.
Занятная особенность состоит в том, что, на практике, выдачей LLM управляет провайдер сервиса ИИ. Нельзя исключать, что этот провайдер знает все подробности об устройстве электростанции даже лучше инженера, поэтому может, в нужный момент, выдать через интерфейс ИИ подходящий набор из нажатий кнопок и вращений ручек.
Комментарии (1) »
Суперпозиция на омонимах может быть развита вплоть до демонстратора важных онтологических принципов, стоящих за квантовыми вычислениями. Фраза “личинка заблокировала собачку в замке” содержит заметно более одного значения среди возможных. Однако, если сопроводить фразу “настроечным” текстом, значение схлопывается в конкретный вариант.
“Насекомые могут мешать работе механизма, бывает, что и личинка заблокировала собачку в замке”. Это вариант для жуковедов. Если же в “настроечном” тексте речь шла о домашних животных феодалов, то собачка вполне может заранее превратиться в маленькую собаку. Фактически, слова начального текста, взятые вместе с фактом интерпретации омонимов, проявляют структуру, на которой успешно строится и понимание “квантовой запутанности” с неравенствами Белла, и другие элементы популярной квантовой механики, которые, почему-то, едва ли не повсеместно спешат назвать “контринтуитивными”.
Если хотите, то упомянутая структура управляет ударением в омографе “замок”. (Тут ещё интересно то, как подобное теряется в LLM, – в “больших языковых моделях” ИИ, – но это отдельная тема.) Как можно этим же способом охватить и принципы квантовых вычислений? Часть уже должна быть понятна из суперпозиции “собачек”. На следующем шаге потребуется представление интерференции состояний. То есть, требуется добавить ещё омонимов, но не каких угодно, а таких, которые окажутся связаны с состояниями уже используемых в целевой фразе. Самый простой вариант – для того, чтобы “собачка” стала механическим элементом, можно использовать “ключ” и “треснул”: “треснул ключ, а личинка заблокировала собачку в замке” (и засов теперь не сдвинуть). Использование “ключа” вызвало интерференцию, резко снизив вероятность интерпретации слова “собачка” как обозначающего мелкое животное белого цвета.
Заметьте, что такая интерпретация всё ещё возможна в принципе, если немного расширить контекст. “Чтобы вновь запустить цирковую карусель, медведь доской треснул ключ, а личинка заблокировала собачку в замке” (круговорот диковин в шапито: гигантская личинка загоняет собачку в макет замка). Интерференция позволяет перегонять вероятность в нужном направлении, а в вычислениях такое должно работать потому, что превращение “собачки” в механическую деталь позволяет определить наличие “ключа” даже в том случае, когда начало фразы не приводится: если ударение в “замке” на последний слог, то где-то раньше стоял “ключ”, который “треснул”. То есть, если представить, что начало предложения может быть разным, то способ постановки ударения в “замке” позволяет определить, механическое там что-то было или нет. Обратное распространение значений. Впрочем, не сказано, кто же тогда предложение читает.
Это забавно. Однако, сколь бы странным подобное рассуждение ни показалось, именно структуры данного типа, существующие выше морфологии, позволяют строить осознаваемые (не всеми, но некоторыми) интерпретации квантовой механики, и даже планировать построение квантовых компьютеров. Но для LLM это недоступно.
Комментировать »
Как с максимальной точностью ответить на вопрос “Что ты сейчас читаешь?”, заданный в мессенджере? Можно ответить, что “читаю сообщение в мессенджере”. Но ведь можно же и ещё точнее: “Сейчас я читаю слово это”. И нажать Enter. Но и тут есть тонкость: слово “сейчас” стоит в самом начале, так что к моменту начала чтения слова “это” – “сейчас” уже устареет. Соответственно, максимально строгий вариант такой: “Я читаю последнее слово этого предложения сейчас”. Особенно продвинутые читатели спросят, почему же речь о слове, а не о последней букве, например. Очень просто: читать можно минимум слово, а отдельную букву читать нельзя (если, конечно, она не является словом). Этому есть много причин, основных две: во-первых, попробуйте прочитать “ъ” (твёрдый знак, а не сходная по начертанию газета или мнемонический знак, обозначающий некоторое сложное понятие); во-вторых, чтение, как процесс, определяется свойством сборки букв в слова (мы рассматриваем классическое фонетическое письмо, а не пиктограммы и специальные конструкции вроде трансцендентной алгебры). Так что разумно ограничиться словом “сейчас” в конце предложения. Без точки, это допустимо для чатика.
(Этот текст я как-то уже публиковал, но не здесь.)
Комментировать »
Предположим, что при измерениях около нуля Цельсия наш датчик и схемы преобразования электрических сигналов могут давать “погрешность” (в кавычках – потому что это здесь условный технический термин для конкретного измерения) до 0.3 градуса, по сравнению с реальной температурой измеряемой среды (тут ещё вопрос, какая именно температура измеряется и как определяется равновесие, но ладно). Что означают эти 0.3 градуса “погрешности”? Они означают, что когда температура в измеряемой датчиком точке 1.0 градус ровно (Цельсия, но это не важно), схемы датчика могут показать 1.1, 1.21, 1.3 – ещё что-то похожее. При этом, чтобы как-то попытаться снять кавычки с “погрешности”, нужно ещё учитывать, какая у нас доступна разрешающая способность после датчика – видим ли мы разницу между 1.2 и 1.21 близко к датчику или этот 0.1 уже шум от последующих элементов схемы (а может и ошибка в Excel, кто знает). Так что считаем, что наша “погрешность” – 0.3. Всё это, естественно, умеют учитывать так или иначе, но корректные алгоритмы вычислений с погрешностями измерений достаточно сложны (есть специальные методы, теории и разные подходы).
Однако попробуем упростить ситуацию. Для примера. Если привычным способом “считать на компьютере”, то можно пронаблюдать занимательные эффекты. Предположим, что у нас пять датчиков. В измерении “А” датчики показали следующие значения (пусть, всё градусы Цельсия): 1.3, 2.3, 2.3, 3.3, 3.3, (много одинаковых значений почему-то, подозрительно); среднее арифметическое для этих измерений равно 2.5; а в измерении “Б” данные получились такие: 1.3, 2.3, 2.3, 3.3, 3.1; среднее – 2.46. Средние показатели отличаются на 0.04. Попробуем так и записать: “средняя температура, между измерениями “А” и “Б”, упала на 0.04 градуса”. И тут не только неожиданно вылезла точность в сотых долях, которая, на минуточку, в семь с лишним раз, если так можно выразиться, “лучше” заявленной выше “погрешности” (0.3), но и реально измеряемая температура могла при этом вовсе не поменяться (а могла и поменяться). Так что при вычислениях нужно учитывать модель измерений. При этом точное измерение конкретно “температуры”, чтобы это ни значило, обычно связано с большими технологическими трудностями (дополнение: особенно, если это измерение выполнено 70 лет назад), которые в СМИ не попадают.
(Кстати, что касается СМИ: замечание про модели измерений особенно актуально и для машинного обучения, которое про соответствующие модели тут ничего учитывать не может.)
Комментарии (2) »
В канале Бориса Трушина попался скриншот вопроса на некотором телевизионном шоу: “Площади каких двух фигур ни при каких размерах не могут быть в точности равны?”; варианты ответов: “A) круга и квадрата; B) треугольника и ромба; C) трапеции и параллелограмма; D) прямоугольника и пятиугольника”. Вроде, это уже достаточно старая задача. С одной стороны, очевидно, что верного ответа среди вариантов нет, с другой стороны, не менее очевидно, что же имели в виду составители сценария и какой ответ назначен правильным: такое вот преломление “квадратуры круга”, видимо. Ну, а с третьей стороны, если рассматривать равенство площадей в смысле равносоставленности и снять некоторые подразумеваемые ограничения, то и вообще может возникнуть задача, известная как “Квадратура круга Тарского”, вместе с дополнительными трудностями в определении “верного ответа” через бесконечные процессы.
Комментировать »
Между прочим, слово “ашка” работает в качестве уменьшительного и для латинской буквы a, и для латинской буквы h. Такой вот получается “омонимический инвариант”, склеивающий две латинских буквы.
Комментировать »
Если при наборе термина “A-запись” использовать английскую раскладку (привычную), но ошибиться с выбором кнопки на клавиатуре по обозначению (кириллическая “А”), то относительно русской раскладки получится “F-запись”. Если раскладку не переключить, оставить русскую, но кнопку выбрать “обратную”, то получится “Ф-запись” (проверьте). Таким образом, данный термин содержит в себе некоторый хитрый антиомоглифический инвариант.
Комментировать »
Омоглифы – это символы, совпадающие по начертанию, но различные по значению (интерпретации). Например, Н, H и Η, а именно – заглавная кириллическая “н”, заглавная “h” английского алфавита и заглавная “η” греческого алфавита. Пришлось тут столкнуться с забавной “программной” интерпретацией данного явления. Пакет Gitea (это пакет для работы с исходным кодом в git, с веб-интерфейсом и прочими полезными функциями) при попытке посмотреть некий русскоязычный текстовый файл из репозитория на сервере – показывал мне в браузере предупреждение, что “This file contains ambiguous Unicode characters!” (“Этот файл содержит “неоднозначные” символы Unicode!”). И действительно, встроенный фильтр подсвечивал буквы вроде “a”, “T” и “о”, но не во всех случаях. Так, целиком подсвечивалось сочетание букв “То” из “То есть”. А в другом месте этого же текста подсвечивалась одинокая буква “а”, при помощи которой обозначался союз “а”.
Сперва показалось, что это действительно в текст прокрались “омоглифы”. Такое случается, особенно, когда используешь несколько раскладок клавиатуры: английская “C” прокрадывается и занимает место “С”, предположим. Однако попытка исправить эти буквы в исходном файле и отправить изменения к успеху не привела: выяснилось, что ничего-то там не меняется – буквы уже использованы кириллические, в файле всё записано верными буквами. Хитрость оказалась в том, что пакет Gitea, руководствуясь настройками “локали” в браузере (а у меня использовалась англоязычная), самостоятельно делал вывод, что данного пользователя могут ввести в заблуждение сочетания кириллических букв, похожие на английские слова, о чём и предупреждал. То есть, “То” в этом “То есть”, выглядит английским “to”, а “а” – неотличима от артикля. В общем, как говорится в тексте, содержащем исходную формулировку знаменитой, – но известной только специалистам, – проблемы Винни-Пуха: “зачем эта хта обязательно та, а жерка, как правило, эта?”. Кто бы мог подумать.
(Уточнение: под “словами” подразумеваются последовательности омоглифов, обособленные пробелами.)
Комментарии (2) »
На картинке ниже – фрагмент текста из книги “Изложение алгебры” (или, если хотите, “Трактат об алгебре”), Джона Валлиса: John Wallis, A TREATISE OF ALGEBRA, both historical and practical. Год издания, обратите внимание, 1685.
На первый взгляд, в тексте присутствуют “смайлики”, собранные из символов “;”, “:” и “)”. То есть, один “смайлик” – подмигивающий.
Естественно, это не “смайлики”, что очевидно из контекста. Такие сочетания символов – особенности старой типографики (и, возможно, синтаксиса): размещение знаков пунктуации внутри скобок подобным образом тогда являлось обычной практикой (и, кстати, обратите внимание на буквы и орфографию). В качестве дополнительной иллюстрации – “фотография” автора книги и титульный лист.
(Источник изображений: Google Books.)
Комментировать »
Сейчас популярна история с чат-ботом ChatGPT, который даёт пространные ответы на вопросы из самых разных областей. Мне доступ к данному сервису получить не удалось (там хотят слишком много реквизитов), но это не важно: понять, о чём речь, не так уж трудно по многочисленным цитатам. Всё это увлечение соответствует попыткам найти смысл непосредственно в тексте. Проблема в том, что текст, как набор символов с определённой структурой, тем не менее, самостоятельного смысла не несёт. Смысл образуется (или не образуется) после того, как результат прочтения текста вкладывается в некоторую большую структуру; и чтобы говорить об “интеллекте”, давать оценки, данная структура должна быть заметно мощнее конкретного текста. Это, впрочем, хорошо известное явление, про которое написано очень много и подробно. Несомненно, письменность очень важна не только для древних языков, но и для современных. Однако переход автоматического генератора текстов от фильтрации совсем примитивных конструкций к “наследованию” чуть более развитой “семантической” структуры, свойственной многим текстам по заданной теме, скорее свидетельствует об успешной оптимизации использования вычислительной аппаратуры с целью удивить пользователей Интернета, чем о чём-то ещё.
В советском мультфильме “Трое из Простоквашино” (1978 года) есть эпизод с Галчонком и потальоном. Почтальон Печкин стучится в дверь, но дома только специально обученная птичка – Галчонок, который на стук реагирует одной и той же фразой.
– Кто там? – спрашивает Галчонок. (Это единственная фраза, которую он знает на тот момент.)
– Это я, почтальон Печкин, принёс заметку про вашего мальчика, – отвечает Печкин. Ничего не происходит, поэтому почтальон стучит снова.
– Кто там? – спрашивает Галчонок.
– Это я, почтальон Печкин, принёс заметку про вашего мальчика, – отвечает Печкин.
Цикл “запрос-ответ-пояснение” повторяется многократно. В какой-то момент Галчонок замечает муху на оконной раме и клюёт её, производя тем самым стук.
– Кто там? – спрашивает, вместо Галчонка, заскучавший Печкин.
– Это я. Почтальон Печкин. Принёс заметку. Про вашего мальчика, – будто телетайпом отбивает ответ Галчонок.
И тут столкновение могучих интеллектов оканчивается поражением Печкина: эмоционально потрясённый, почтальон теряет сознание.
Комментарии (3) »
(Заметка первоначально опубликована в Facebook, 19/05/2020.) Я вот так устроил, что один сервис, проверяющий TLS, использует специально сконструированное сообщение ClientHello TLS 1.3 (см. скриншот) с посланиями внутри. Небольшая хитрость состоит в том, что там не только поля SessionID и ClientRandom с сообщениями, но и ключ для Диффи-Хеллмана (ECDH) на кривой P-256 – с посланием. Ключ – это два числа, но они должны задавать точку кривой, и хорошие реализации TLS проверяют, что ключ принадлежит кривой. Конечно, вычисление второй координаты Y по известной X-координате – никакой проблемы не составляет, но пришлось урезать пару символов, так как число приводится по порядку базового поля. У тех, кто знаком с ECDH, сразу возникнет вопрос – решил ли я попутно задачу дискретного логарифмирования для P-256? Но нет (а если бы решил, то сообщил бы об этом более занятным способом). Дело в том, что реально в этом сканере общий секрет не нужен, поэтому ответный ключ сервера просто игнорируется. (Конечно, вряд ли кто-то ещё это всё видит в трафике. Но при отладке – помогает.)

Комментировать »