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

Иногда, деятельности корпораций на данном направлении мешают пчёлы. Редкие пчёлы. Это звучит загадочно. Например, как пишет Ars Technica, именно редкие, охраняемые пчёлы нарушают планы Meta/Facebook по закупке на корм ИИ электроэнергии сразу вместе с атомной электростанцией: колонии пчёл обнаружились в районе, предлагаемом для строительства дата-центра. Чтобы не тревожить насекомых – от строительства могут и отказаться. Так написано.

Вообще, с точки зрения настоящей экономики, для масштабов Meta/Facebook – убытки или прибыли, как минимум, одинаково хороши, отличаются только знаком. Убытки могут быть и сильно лучше – нужно смотреть по ситуации. Тут многое похоже на знаменитые “электроны” и “дырки”: казалось бы – если у вас “дыр(к)а в бюджете”, то это плохо; однако, оказавшись в умелых руках, финансовые “дырки”, в сочетании с не менее финансовыми “электронами”, позволяют построить такой финансовый “полупроводник”, который усилит потоки в сотни раз, пустив их строго в нужном направлении. Конечно, растревоженный рой редких пчёл – весьма опасен уже и сам по себе, а ещё больше проблем могут доставить “экологические угрозы”. Это всё известно, но далеко не всегда мешает корпоративной работе: бульдозер зонтиком не остановишь. Так что пока не понятно – является ли данная история с пчёлами отголоском поиска хорошей причины для отмены контрактов: с перспективами ИИ-датацентров не всё так уж строго определено – может, лучше сразу взять станцию побольше.



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

Языки программирования на GitHub, рейтинг 2024 года: всех обогнал Python, что и понятно – первая же главная тенденция, упомянутая в отчёте GitHub, – рост активности по разработке AI/ИИ. Я GitHub, в смысле публикации результатов, практически не использую (кроме того, конечно, что это типовой источник исходных кодов и других весьма полезных данных), а вот языки программирования – использую. Python, который с первого места рейтинга, – использую регулярно, но по чуть-чуть: в основном, потому что это входной язык SAGE (система компьютерной алгебры), но и потому, что весьма удобно написать какой-то быстрый демонстрационный скрипт, иллюстрирующий работу с тем или иным API.

На втором месте рейтинга – JavaScript. Постоянно теперь использую, так как он среди основных языков в паре проектов, к которым я имею непосредственное отношение.

Третье место – TypeScript. Не использую, однако специфический код, хоть и редко, но попадается.

Четвёртое место – Java. Очень давно не использую. Однако с кодом на Java сталкиваюсь не так редко, как хотелось бы.

Пятое место – C#. Очень и очень давно не использую, не попадается.

Шестое место – C++. Иногда использую, в том числе, всякие “варианты” для Arduino и др. Код попадается постоянно. Вообще, я согласен с известным мнением, что основной недостаток “плюсов”, как явления, в том, что никто их реально не знает (буквально).

Седьмое место – PHP. Иногда использую: например, dxdt.ru работает на WordPress, а это PHP.

Восьмое место – Shell. Что бы это ни значило, однако большие bash-скрипты – и пишу, и использую постоянно.

Девятое место – C. Регулярно использую (см. комментарий к шестому пункту выше). Постоянно требуется смотреть в код на C. Для криптографических инструментов, системных сервисов – всё ещё основной язык подлинной документации (а не “руководства пользователя”).

Десятое место – Go. Сейчас у меня это основной используемый язык, он был бы на первом месте, но в рейтинге GitHub – почему-то на десятом.

Perl не попал в десятку. Шутка. Ну, то есть, действительно не попал, а я иногда использую, но гораздо реже, чем разные ассемблеры. Впрочем, Rust в десятку тоже не попал (пока так и не использую, но код иногда читать приходится).

Кстати, о языках: несмотря на название (GitHub), в том же рейтинге самый большой прирост разработчиков на данной платформе указан для Великобритании.



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


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

Как технологии “уровня приложений” помогают что-то узнавать про базовый уровень Интернета, то есть, про IP? Вот свежий пример того, как именно: на стороне веб-серверов поддержка постквантовых криптосистем в TLS есть у Cloudflare; соответственно, увидев на уровне веба для каких-то IP-адресов поддержку X25519Kyber768, можно предположить, что за этими IP-адресами скрываются системы Cloudflare, пусть адреса напрямую за Cloudflare и не записаны; сделав же такое предположение – можно подтвердить (или опровергнуть) его другими способами, скажем, через анонсы BGP и т.д. Полезный инструмент.

Вообще, что касается ветки “опровергнуть”: конечно, тот же Kyber768 есть, скажем, и у меня на тестовом сервере, который не за Cloudflare (но, кстати, их низкоуровневую библиотеку c Kyber и ML-KEM я всё же использую, так что влияние есть и тут); раз есть и где-то ещё поддержка, то можно и ошибиться. Можно, но тогда, скорее всего, там окажется Google – обособленных узлов, реализующих новшества, крайне мало, их количество начинает расти только тогда, когда поддержка появляется в распространённых линейках веб-серверов (Apache, nginx и др.). Но всё та же компания Cloudflare выступает тут локомотивом: ничего не поделать, поскольку именно наличие собственной полноценной разработки на всех базовых уровнях только и позволяет говорить что-то о практическом владении технологией. К сожалению, данный момент сейчас почти повсеместно замылен: факт прикручиваения “готового движка” теперь нередко является мерой “освоения технологии” (хорошо, что хоть не прикручивания “шильдика”).

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



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

На сайте ТЦИ опубликована моя статья «Постквантовые криптосистемы в TLS и не только». Там про ML-KEM и вес ключей, а также о сертификатах и, – немного, – о квантовых вычислениях. Цитата:

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



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

Поскольку браузеры, – в том числе, самый свежий Firefox, – перешли с Kyber768 на ML-KEM, я добавил на свой тестовый сервер TLS поддержку X25519MLKEM768 (не удаляя “гибриды” с Kyber768). Проверить можно при помощи новых версий браузеров Chrome и Firefox.

Кстати, немного занимательных элементов. В процессе развития постквантовой криптографии в TLS уже успели поменять “порядок байтов”. Так, в новых версиях представлений гибридных ключей – разная конкатенация массивов: в “старом” X25519Kyber768, если смотреть в сетевом порядке (так сказать, слева направо, что, конечно, математически неверно), сначала идёт ключ X25519, а потом – Kyber768; в “новом” X25519MLKEM – наоборот, сначала данные ML-KEM, а потом – X25519.

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



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

Кстати, что касается недавней заметки про скриншот с задачей, содержащей эльфийские цифры Толкина. Продвинутые ИИ LLM ту задачу не могут прочитать со скриншота (что уж там говорить про решение). Однако, если в достаточной степени “обобщить” отношение к этим ИИ, с целью обоснования приписываемого “интеллекта”, то нетрудно придумать разные причины, объясняющие, почему неспособность прочитать задачу нисколько не уменьшает “оценочную степень” для этого самого “интеллекта”.

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

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

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

Демонстрация скриншотов и результатов сканирования рукописного текста тут напоминает попытку светить некоторым фонариком в огромное пространство всевозможных сочетаний текстов и их записи: изображение задаёт некий луч-конус, который выхватывает внутренние связи, построенные LLM, эти связи отбрасывают тени, а по теням уже строится “прочитанный” текст. Если добавить к процессу некоторый валидатор, строго сравнивающий исходный текст, полученный на изображении, с каждым сгенерированным результатом “чтения”, то, понятно, в какой-то момент процесс сойдётся и перебор даст верный результат. И это не пересказанный другими словами процесс “обучения”, но, буквально, способ применения LLM для “решения” олимпиадных задач: прочитать исходную формулировку средствами LLM не получается, тогда используем перебор вариантов для записи на формальном языке. Заметьте, что доступность исходных кодов той или иной системы компьютерной алгебры почему-то пока не позволила LLM самостоятельно встроить необходимую проверку в свои “внутренние цепи”. Может, конечно, просто процессоров и электроэнергии не хватило, но вряд ли: “у ИИ LLM плохое зрение, но при потребляемых мегаваттах и уровне PR-поддержки – это проблемы не LLM ИИ”.

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



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

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

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



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

На замену GPS/GNSS в авиации уже предлагают использовать “прочие”, сопутствующие, радиосигналы, в том числе, GSM, и, – что не совсем обычно, – сигналы разных других спутниковых систем (то есть, не GNSS): статья The Register. В качестве исследовательской платформы в статье по ссылке выбран шар-метеозонд, снабжённый радиоприёмным оборудованием.

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

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

В исходной статье рассказано об использовании спутниковых сигналов, не относящихся к GNSS: спутников, излучающих подходящие сигналы, сейчас много, – взять, хотя бы, Starlink, – но это уже не совсем замена GNSS, как подхода. Всё же, чтобы обеспечить обычную гражданскую воздушную навигацию без привязки к GPS и прочим GNSS, не нужно искать “побочные” сигналы, ни с земли, ни из космоса, а нужно бы снова построить специальную сеть наземных опорных передатчиков именно для этой задачи (такие проекты есть). А так-то – можно и по телевизионным сигналам и FM-радиостанциям определять положение, но “паразитные” навигационные системы – это несколько другая тема, не про гражданскую авиацию (хотя, времена меняются, так что нельзя исключать ни то, что самолёты полетят “по телевизору”, ни то, что соответствующие сигналы в какой-то момент исчезнут из эфира, следом за сигналами спутниковыми).

Кстати, я недавно достаточно подробно описывал различные методы “геолокации по радиосигналам” в отдельной записке.



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

Занятная задача про эльфов Толкина, цифры и системы счисления попалась в канале Бориса Трушина. Условие дано в виде скриншота (подсказок в этой записке нет – смело читайте, а ответы как-нибудь потом опубликую (update 24/10/24: верное решение дал Nataraj в комментариях)):

Screenshot, Numerals and digits

Скриншот тут необходим потому, что Unicode не справится. Точнее – не справятся установленные шрифты: как раз тот случай, когда использование Unicode выглядит весьма разумным (не то что в IDN), но не все мыслимые эльфийские цифры внесены в официальные таблицы и типовые шрифты.

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



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

Очередная атака “про Spectre”, позволяющая, в частности, читать память произвольных процессов в Linux, и на Intel, и на AMD. Пусть в этот раз речь в публикации не про новые аппаратные особенности, а про исправления в старых особенностях, но я всё же сошлюсь на свою записку о неустранимости подобных дефектов аппаратуры.

(Подробная статья на OpenNET.)



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