Между прочим, один из простых примеров того, что для успешной сегментации интернетов требуется техническая централизация – это установка внешних сервисов капчи (обычно, от Google) на сайты интернет-магазинов, в том числе, крупных магазинов Рунета, как бы для “защиты” формы логина. То есть, администраторы, вероятно, полагают, что “защитили форму от ботов”, но на самом-то деле – они предоставили внешнему провайдеру, тому же Google, возможность единолично решать, какие пользователи могут заходить на сайт этого магазина, а какие – не могут. То есть, передали центральному сервису, который магазином никак не контролируется и действует в своих интересах, возможность сегментировать пользователей этого магазина.



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

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



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

Чем хороша именно “прочность шампанского” в вопросах для ИИ LLM? Тем, что “прочность” – это ещё и “крепкость”, а “крепкость” – это почти “крепость”, а “крепость” – это и замок, как строение, и характеристика алкогольных напитков. При этом “прочность” – применимо к хлопку (к ткани).

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



Комментарии (1) »

Кстати, ещё немного про Go (Golang). Одна из самых странных особенностей Go – это использование комментариев для управления компиляцией. Например, вот такая директива:

// +build !amd64

– это “обычный” комментарий в исходном коде, но его читает препроцессор и использует указание +build для того, чтобы определить платформу (всё, что не amd64; скажем, так сделано у меня в исходниках ассемблерной реализации “Кузнечика”; современный вариант: “//go:build“). Идея снабдить комментарии двойным дном – довольно богатая, в лингвистическом, так сказать, смысле.

Формально, “// +build !amd64” – это, действительно, комментарий. То есть, здесь обозначено, что строка не относится к, собственно, исходному коду. Это верно. А то, что там потом будет копаться препроцессор – ну так, как бы, и в комментариях бывает написано, что “данная функция нужна только для 8-битной конфигурации, поэтому здесь вызов спрятан в комментарий”. Неявно предполагается, что роль препроцессора играет непосредственно разработчик, а в случае “+build” в Golang – просто этот процесс автоматизируется. Это, конечно, не какой-то там особенный и исключительный случай использования комментариев: вспомните что-нибудь типа “#!/usr/bin/perl”. Тем не менее, ситуация, когда содержание комментария непосредственно влияет на процесс сборки, всё же выглядит необычно.

Вместе с Golang идёт собственный (псевдо)ассемблер. Это очень удобно в специальных случаях. Например, я использую этот ассемблер для реализации криптографических примитивов (и не только: при всём качестве компиляторов, некоторые задачи поиска и обработки данных могут работать существенно быстрее, если самостоятельно реализовать их с упором на особенности конкретной аппаратуры). Так вот, ассемблер в Go тоже необычный. Там своеобразные синтаксис и семантика. Например, “перевёрнутое” отношение операндов: MOV R1, R2 – пишет из R1 в R2, то есть, слева направо. Это вопрос соглашения, бывает разный подход, но естественным вариантом всё же представляется наоборот – R2 в R1, справа налево.

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

Например, на arm64 go-ассемблерное “ADD $8, RSP, R2” соответствует оригинальному “ADD X2, SP, #0x8”. RSP превращается в SP потому, что ассемблер Go использует псевдорегистры, среди которых есть SP (и не только), поэтому совпадающие по названию аппаратные регистры переименованы. Псевдо-SP – это, как бы, указатель стека, но с хитростями: псевдо-SP может иногда совпадать по значению с аппаратным SP, в частности, если на подходящей платформе указана нулевая длина “собственного” стека ассемблерной процедуры (но это детали). При этом, ссылки с использованием смещения от значения псевдорегистра SP должны (это прямо строгое требование Go) оформляться с символьными именами, вот так: len-8(SP), где “минус” это не совсем вычитание, а len – это даже не “синтаксический сахар”, но что-то вроде комментария наоборот, поскольку никакой языковой интерпретации len здесь не имеет, ничего из len не вычитается, да и вовсе не обязательно, чтобы эта строка совпадала с именем аргумента в определении прототипа функции или ещё с чем-то совпадала (или не совпадала). Но если не указать произвольный символьный префикс – компилятор выдаст ошибку. Этому, естественно, имеется историческое объяснение, которое называется Plan 9.

Отрицательные и положительные смещения для SP – тоже отдельная забавная история: если SP совпадает с аппаратным регистром по семантике, – что задаётся правилами определения процедуры и входа в процедуру, – то, на некоторых платформах, можно использовать привычные положительные смещения, вот так: len+8(SP), однако где-то в документации написано (попробуйте найти), что “при ручном кодировании” необходимо использовать (только) “отрицательные смещения”. Да. Ну или наоборот, потому что лучшей документацией тут оказывается исходный код – как самого Golang, так и генерируемый компилятором.



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

Воскресное чтение манускриптов. Точнее – иллюстрация с пальмами и антилопой из “Христианской топографии” Козьмы Индикоплова, в варианте из Апостольской библиотеки Ватикана, датируемом девятым веком (н.э).

Picture of palm trees and antelope

Подпись к иллюстрации утверждает следующее:

ΤΑΥΤΑ ΕΙϹΙ ΤΑ ΛΕΓΟΜΕΝΑ ΜΟΖΑ
ΟΙ ΦΥΝΙΚΕϹ ΟΙ ΪΝΔΗΚΙΝΟΙ

В переводе: “Это что называют “моза” – финиковые пальмы индийские”. Почему-то в русскоязычной “Википедии” пальмы с этой иллюстрации названы “двумя банановыми деревьями“. “Моза” – созвучно арабскому или персидскому названию банана, но пальмы на картинке выглядят так, как если бы иллюстратор из девятого века хотел изобразить именно финиковые (хоть значение слова и можно толковать как “просто пальма”).



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

В Кембриджском словаре словом 2023 года назвали hallucinate, а в Институте Пушкина – тоже выбрали слово года из области ИИ, однако вариант максимально прозаичный: “нейросеть”. (Сайт института хоть и размещается в оригинальном домене верхнего уровня, но устроен несколько странно: непонятно, как можно сослаться на страницу с конкретным сообщением, поэтому будет ссылка на главную страницу.)



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

Сервис “Метасловарь” на новом сайте gramota.ru выдаёт несколько неожиданные, но занимательные, результаты. В прошлый раз в ответ на запрос “ключом” сайт выдал “крючок”. Однако если спросить “крючком“, то в ответе уже будет “крючок” и “клочок”. Если вы думаете, что словарь должен работать только в именительном падеже, да в единственном числе, то это не так для некоторого метасловаря, результаты которого являются центральным элементом страницы, а сам метасловарь настроен по умолчанию на обработку запросов “общего поиска”. И, всё же, вывод словарной статьи про “ключ”, в ответ на запрос “ключом”, выглядит несколько более полезным, чем “крючок”.

Посмотрим другие варианты. Запрос “книги” – выводит “книгу” и “книжку”; “стены” – “стенку”. Чрезвычайно сложный вариант “донья” – выдаёт словарную статью про донью из Испании; заметьте, что “донья” – это ещё и множественное число для “дно”, что, впрочем, соответствует едва ли не запредельному (“рутовому”) уровню владения русским языком, даже для образованных носителей (о “доньях”, конечно, на “Грамоте” всё написано). Запрос “дома” – возвращает “дог”, “дож”, но и “домик”. А вот “крабы” приводят к выводу слов “кран”, “краб” и “крабб”, что занятно, поскольку в ответ на “краном” метасловарь выдаёт только “рань” и, – вспоминайте про расстояние Левенштейна, – “каноэ”.



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

Если на новом сайте Gramota.ru ввести в поиск слово “ключом”, то, видимо, сработает некий “метасловарь”, который выдаст слово “крючок”, что, конечно, не очень удобно, но зато очень модно, очень на уровне ИИ – см. скриншот.

gramota.ru screen

(При этом озвучка омографов пока не работает.)



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

Воскресное чтение манускриптов. Kubernetes (который K8s для контейнеров) происходит от древнегреческого κυβερνήτης – тот, кто непосредственно управляет кораблём при помощи руля, кормчий. Однако на русском это же слово используется и напрямую, но в другом значении – “губернатор”, в английском варианте искажений чуть больше: governor. От κυβερνήτης происходит и “кибернетика”, потому что принцип управления кораблём при помощи рулевого весла соответствует одной из древнейших искусственных систем управления с обратной связью (так определено у Винера).

В “Илиаде” именно κυβερνήτης встречается один раз (и ещё один раз – “кормчие”, во множественном числе; в “Одиссее” – чаще). Вот на скриншоте ниже пример “кормчего” из “Илиады”: это манускрипт Venetus A десятого века (библиотека Марчиана).

Manuscript screen

Как обычно, запись выглядит непривычно (κυβερνήτης выделено). Всё потому, что начертания букв не соответствуют современным. Например, здесь β больше похожа на современную русскую рукописную строчную “и”, но другие буквы узнать несколько проще.

Если на скриншоте взять сроку выше и строку ниже строки с “кубернетесом”, то это будут строки 315-317 из книги (песни) 23 “Илиады”. Контекст: советы Антилоху к спортивным состязаниям. Вот соответствующая часть текста с подстрочным переводом (в котором важно слово “тёмному”):

μήτι τοι δρυτόμος μέγ᾽ ἀμείνων ἠὲ βίηφι:
(уменьем ведь плотник [действует] много лучше чем силой)
μήτι δ᾽ αὖτε κυβερνήτης ἐνὶ οἴνοπι πόντῳ
(уменьем же снова кормчий по тёмному* морю)
νῆα θοὴν ἰθύνει ἐρεχθομένην ἀνέμοισι
(корабль вёрткий направляет, сбиваемый ветрами)

*) οἴνοπι – “тёмному”; вообще, должно бы означать, что “тёмно-винному”; то есть, цвет явно сравнивается с цветом вина; ну или какой-то подобный цвет, точнее сказать трудно. Дело в том, что с цветопередачей в гомеровских текстах проблема – там неожиданным образом “повёрнута” цветность и переставлен “баланс белого”. В переводах это явление практически не сохраняется, потому что переводчику нужно привести текст к понятийной основе целевого языка, однако проблема касается не только “бледных собак” и, предположим, “пурпурных овец”: так, Гомер вообще не называет море синим или голубым, но часто сравнивает по цвету с вином. Вот точно как в рассматриваемом “кубернетическом” фрагменте (но можно вспомнить и старую интернет-историю про цвет платья на фотографии). Так или иначе, но основной цвет для логотипа Kubernetes явно выбран неправильно.



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

Control desk. Credits: DodgertonSkillhause, morguefile.comПредставьте, что какой-то человек управляет некоторой сложной системой, например, электростанцией, об устройстве которой не имеет никакого представления, а также и не изучал никаких инструкций, однако у него имеется иной подход к предмету. Способ управления состоит в том, что этот человек нажимает какие-то произвольные кнопки на пульте, передвигает рычажки и крутит ручки там же, а кроме того, предположим, тыкает отвёрткой в разные разъёмы. Такой персонаж, например, встречается в видеоигре Fallout: New Vegas. “Похоже, ты вообще не понимаешь, что делаешь”, – говорят этому персонажу. На что он уверенно возражает: “Нет. Я точно понимаю, что именно я делаю. Просто, я не знаю, какой эффект это вызовет”. Тут важен уровень рефлексии – так, персонаж уверен, что выполняет осмысленные действия: вращает именно те ручки, которые планировал вращать, нажимает именно те кнопки, именно в том порядке, как и планировал. А что до эффектов воздействия – ну, что ж, эти эффекты он может наблюдать и делать свои выводы о ручках и рычажках на пульте: “каждый день выясняю что-то новое”. С одной стороны, данный метод персонажу представляется вполне научным (ну, так действительно можно подумать, за вычетом модели изучаемого явления и некоторых других важных деталей), с другой – присутствует чёткий, деятельный подход, состоящий в аккуратном “нажимании на кнопки”.

Для такого управления и понимания хорошо подходит выдача какой-нибудь LLM-системы искусственного интеллекта (ИИ), обученной на описаниях последовательностей взаимодействия с “кнопками-рычажками” на разных пультах, на текстах инструкций к разным “пультовым системам”. В ответ на предложение-запрос “Какие ручки на пульте крутить сегодня?” – ИИ выдаст инструкцию из разнообразных шагов. Если в инструкции встретятся упоминания кнопок, которых на реальном пульте нет, то можно переспросить: “На пульте нет фиолетовой кнопки. ИИ-GPT, а ты уверено, что нужно нажимать именно фиолетовую?”. LLM тут же исправится, не сомневайтесь. Подход ИИ, даже с учётом необходимости переспрашивания, не вызовет никаких особенных сомнений у вопрошающего, описанного в предыдущем абзаце, поскольку в точности укладывается в его привычную концепцию “понимания”. Он точно так же планировал, что нажмёт такую-то кнопку и покрутит такую-то ручку. Идея, что хорошо бы нажать фиолетовую кнопку, если бы такая кнопка была, – тоже могла рассматриваться. Так что ИИ LLM здесь не просто “отвечает мыслям”, но и помогает их сформулировать, выдав чёткие готовые ответы в виде перечня ручек, кнопок, а также параметров нажатий и вращений. Это “удобный компьютерный инструмент”, кроме того, он обучен на всех инструкциях, а поэтому “внутри у него может быть понимание устройства” той же электростанции, уровнем точно не хуже – ведь он тоже предлагает крутить ручки и нажимать кнопки.

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

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



Комментарии (1) »

На новой версии сайта Gramota.ru вообще много непонятного, но отдельный интерес представляет то, что для омографов, похоже, нет “озвучки” – сервер возвращает код 404. Например, “замок“, “хлопок” – звукозаписи нет. Но для многих редких слов, – скажем, “надысь“, “шлафрок“, “фуражир“, – есть звукозапись. Возможно, причина в том, что для генерирования “озвучки” использован простой синтезатор речи, а у синтезаторов – бывает проблема с “наведённой омонимией”, то есть, с расстановкой ударений в таких случаях.



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