Апрель

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

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

В последнее время всё время хочется спать. То ли седативный эффект от антигистаминных, то ли общий упадок сил на фоне субфебрилитета. Хочется спать, а ещё — есть. Вся еда имеет странный привкус, надеюсь это из-за простуды. Я почти уже привык, хотя в таком состоянии всего несколько дней.

Не дай бог съем что-нибудь несвежее, подумав, что странный вкус мне просто кажется, и ко всем «радостям» добавится ещё одна.

Ну ничего, ничего… ещё одну ночь простоять, да день продержаться — и выходные! Может отосплюсь и приду в норму.

6 комментариев

«Виола»: тег TB

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

Для этого я использую свой любимый полигон — браузер «Виола». Я подыскал несколько несложных задач из разряда «найти бы место, а поправить можно за полчаса», то есть такие, где важно понять, где поправить; сама правка сложной не выглядит.

Сравнение HTML-кода и его отображения: тег сохраняет пробелы и переносы, а теги и формируют курсив и жирный шрифт соответственно.

Одна из задач — дописать нестандартный тег TB, который автор так и не завершил. Судя по иллюстрациям в его недописанной книге о браузере, этот тег предназначался для разрыва таблицы: на рисунке он стоит между строкой «HTML Source / Output» и последующими. Вероятнее всего, TB расшифровывается как Table Bar.

Модель «Композер 2.0» справилась с задачей, в принципе, на «отлично» — лучше и желать нельзя. Моментально нашла место и поправила всё как надо с первой попытки. Я-то её считал совсем негодной, но нет, надо увеличить сложность задачи, посмотрим, где предел.

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

2 комментария

ИИ: сингулярность

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

Бородатый мужчина в оранжевом жилете нажимает кнопку на устройстве, подключённом к зелёному голографическому силуэту; облачко: «Перезагружаю полигональную сетку. ПЫК! ПЫК!
Это кадр со мной из свежего комикса «Кибердянска»

Пошёл уже второй месяц использования, и я ошибался только в одном — это недёшево. Я привык к другим ценам. В день легко можно израсходовать больше ста долларов только на одном агенте. В рамках проверки рабочих гипотез это очень дёшево, но для хобби пока дороговато. Цены, уверен, будут падать, а пока я учусь комбинировать нейросети разных уровней.

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

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

С нетерпением жду появления ещё более способных нейросетей. Компания «Антропик» уже что-то там анонсировала очень крутое, но пока это не в публичном доступе.

Чувствую, уже очень скоро вся отрасль перейдёт от кодирования к летсплеям по написанию кода. Бывает, я с большим интересом наблюдаю, как модель размышляет, — чаще всего для того, чтобы не прозевать момент, когда она свернёт не туда и потратит мои токены и время впустую, но иногда это прям затягивает. Осталось только придумать для этого видеоформат.

20 комментариев

Новый аккаунт «Гугла»

Дочка попросила установить на планшет приложение для рисования, но вот беда — у неё уже довольно старенький планшет «Хуавей», а приложение требует сервисы «Гугла». Я попробовал установить его через «GBox», которым когда-то пользовался, но не получилось: рисовалка скачивается, но не устанавливается.

На «Реддите» порекомендовали попробовать приложение «Aurora». Но тут тоже возникла проблема: нужен гугловский аккаунт, а ни в один из двух дочкиных в «Ауроре» войти не удалось — приложение просто пишет, что произошла ошибка. Думаю это из-за того, что это детские аккаунты, с ними постоянно какие-то проблемы возникают.

Решил завести новый аккаунт, раньше это было несложно, но теперь, похоже, с этим тоже проблема. При регистрации надо указать номер телефона, но на наши российские номера «Гугл» слать смс оказался — пишет «произошла ошибка».

Скриншот чата с ботом Email Fast: аренда номеров Лаоса и Нигерии для Google, ожидание SMS, отмена номера, возврат денег на баланс.

Попробовал купить виртуальные номера в одном из сервисов, но они там, похоже, уже затёрты до дыр. Перебирал их, наверное, полчаса: почти на каждый «Гугл» отвечал, что на этот номер уже было слишком много регистраций. Парочка номеров подошла, но смски я так и не дождался.

В итоге сработал такой вариант: я зарегистрировал ящик в браузере на ноутбуке. Почему-то в этом случае мне предложили альтернативный способ — выслать код по смс на какой-то российский номер, после чего ящик успешно создался.

К сожалению с планшета войти в этот аккаунт не удалось: «Гугл» упорно отвергал только что указанный номер.

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

8 комментариев

Увидеть магнитные поля

Купил дочке на интернет-базаре игрушку. Одноразовая, но забавная: визуализатор магнитных полей. Стоит около 200 рублей. По размеру — примерно с банковскую карточку.

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

На фотографии визуализатор лежит на съёмной ручке от индукционной плиты — она магнитная, и поле этого магнита хорошо видно.

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

2 комментария

ИИ: распознавание рукописного текста

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

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

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

Поэтому я как-то пропустил, что небольшая по нынешним временам сетка — «Квен 3.5» с 35 миллиардами параметров, квантованных до FP8, — оказывается, прекрасно распознаёт русский рукописный текст. Я просто не изучал, на что способны современные мультимодальные нейросети!

Я-то думал, что весь нейросеточный мир, помешанный на английском и говорящий в основном на китайском, с рукописным русским научится справляться ещё не скоро.

В общем, я глазам не поверил, когда мы попробовали вышеупомянутым «Квеном» распознать текст на фотографии: распозналось всё идеально, причём сеть ещё и ошибки поправила (правда, не уверен, что это хорошо). Понимаю, это не самый непонятный почерк, но этот листок — наш первый эксперимент.

Потом мы ещё много экспериментировали, но сказать, что я читаю рукописный текст значительно лучше нейросети, значило бы соврать. Мне иногда помогает более широкий контекст: например, я знаю татарские имена, а «Квену» они плохо знакомы, и он может их перевирать, если они написаны не очень разборчиво.

В общем-то удивительно, что нейросеть, которую можно запустить даже на некоторых современных ноутбуках, уверенно читает даже слово «шиншилла», записанное рукописным письмом.

Заявление от Филипповой Л.С. о снятии 125 854 руб. со счёта несовершеннолетнего Иванова М.Ю. на ремонт квартиры.
Данные не реальные, этот текст написала от балды одна из наших сотрудниц, но я всё равно на всякий случая закрасил некоторые данные

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

Один из читателей в моём телеграмном канале написал, что у него с текстом справилась сеть «Гемма4» на смартфоне.

Скриншот чата с ИИ-моделью qwen3.5-35b-a3b: распознан текст заявления о закрытии счёта несовершеннолетнего в Сбербанке Казани, адрес — ул. А. Кутуя, кв. 50, сумма 125 854 руб.

9 комментариев

Книги: «Кольцо обратного времени»

Заключительная книга трилогии «Люди как боги» Снегова что-то туго идёт. Написано как будто с той же фантазией, но как-то вымучено, поэтому и себя приходится заставлять. Я бы бросил, но хочется узнать чем всё-таки дело кончится.

Эта книжка — пока сплошное разочарование. Я только недавно похвалил серию, что в ней нет, ну знаете, этих нелепых описаний компьютеров из книг прошлого века — когда межзвёздные перелёты соседствуют с перфокартами, так буквально на следующий день натыкаюсь:

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

Окошко вычислительной машинки, цифры? Да и клавиши через пять веков от нашего времени? Это что, программируемый калькулятор?

А медицина будущего?

Ангелу прописали все виды лечения и все роды лекарств, от радиационных душей до слабительного и банок, но было ясно, что дни его сочтены.

У этого создания очень специфичное органическое поражение тканей, связанное с попаданием в пространство с изменённой топологией, а ему — слабительное и банки? Что?

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

2 комментария

ИИ: собрано на коленке

Может, видели такую штуку, как «навесной монтаж» — когда люди собирают схемы не на печатной плате, а напаивают их одну на другую в воздухе? Я такое в детстве делал часто: много паял, а когда надо что-то быстро протестировать — ни времени, ни смысла делать печатную плату и паять на неё нет.

Я последние несколько дней занимаюсь похожей штукой. Ну или мне кажется, что это примерно одно и то же.

Скриншот чата с ИИ-агентом: обсуждение запуска GPU-задач, мониторинг процессов и метрик моделей на разных хостах, включая RTX 6000 и H100.

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

В проверке гипотез мне помогает курсор и куча оборудования — я оккупировал под свои цели три ускорителя H100 и три RTX 6000 Pro. Благо вечерами нагрузки никакой, а часть из этого оборудования вообще пока простаивает. Чтобы видеть куда и какие эксперименты пускать, я написал себе дашборд. При помощи тех же нейросетей, разумеется.

На скриншоте видно плохо, потому что дашборд с панелью «Курсора» выведены на 6К-монитор, поэтому немного расскажу. На дашборде я вижу текущее оборудование, включая ЦПУ, где кое-какие эксперименты тоже можно ставить — на одной из машин 190 ядер, а под оборудованием — текущие эксперименты и цифры по ним.

Всё обновляется в реальном времени.

Если прокрутить ниже, будет ещё один блок экспериментов, план запусков и блок, написанный «Квеном 3.5-35» в виде отчёта научного руководителя эксперимента. Кстати, краткие описания к запускам в таблице оборудования тоже генерируются им на лету.

А теперь пара выводов.

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

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

4 комментария

ИИ: а где же «коленка»?

Один из бывших коллег, который следит за моими перипетиями в отношении нейросетей, прочитав прошлую заметку с заголовком «Собрано на коленке», совершенно закономерно спросил меня: а что, собственно, у меня там на коленке собрано-то?

Я перечитал — и оказалось, что из-за усталости я совершенно упустил из виду, что не посвятил «коленке» ни полабзаца.

Скриншот интерфейса с логами, таблицами процессов и метриками сравнения PHP и Python (точность, F1-score), включая детали экспериментов.

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

То есть он вполне «собран на коленке».

Но ещё более наколеночно устроен деплой, то есть развёртывание новых гипотез на подключённых мощностях. По сути, это россыпь документации плюс шелл-скрипты, срабатывающие на хуки при коммите. Всё, опять же, написано вайбкодингом, в основном, тремя сетями: всё простое я поручал «Композеру 2», сложнее — «Кодексу 5.3», ещё сложнее — «ГПТ 5.4».

Почему я не стал использовать что-то готовое? А зачем? Надо было быстро, у меня не было времени сравнивать решения, выбирать лучшее под задачу (машины доступны только по ssh, друг друга не видят, перекачивать информацию можно только через мой ноубук), но главное — разбираться, если возникнут проблемы.

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

Кстати, вот ещё вывод, в добавление к тому, что я писал в прошлый раз: иногда надо давать ИИ приказы! Это не вполне очевидно.

Например, когда я давал указание занять GPU0 на одной из машин, нейросеть могла сделать то, чего я не ожидал. Например, увидев, что память там почти занята, поставить задачу в цикл ожидания освобождения памяти. Мне это не нужно — я понимал, что задача поместится, и ставил её туда сознательно.

Реальный случай, кстати. И таких примеров у меня было несколько.

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

6 комментариев

Xiaomi UltraThin Magnetic Power Bank

Мы в конце мая в отпуск собрались, времени ещё предостаточно, но начинаем потихоньку вспоминать и докупать то, что нам с собой надо взять в поездку. Жена вспомнила, что у нас все внешние аккумуляторы уже сильно потеряли в ёмкости и надо бы приобрести новые.

А я тут как раз у какого-то техноблогера видел тонкие и лёгкие аккумуляторы от компании «Сяоми» — я заинтересовался, но брать не стал, потому что и не знал, что нам надо.

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

Два чёрных внешних аккумулятора Xiaomi с логотипом «mi» лежат на белой поверхности, между ними — спичка для сравнения размеров.

Я из-за размера подумал, что это аккумулятор нового вида — кремний-углеродный, но нигде не нашёл этому подтверждения и уже было расстроился. Но оказалось — зря: один из читателей на немецком сайте «Сяоми» вычитал, что это действительно так — он кремний-углеродный!

18 комментариев

«Борьба за всеобщую грамотность»

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

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

Кроме книг я взял ещё коробочку со слюдой из одного из кабинетов — показать дочке, что это такое, и одну из киноплёнок для своего давнего приятеля, которого знаю сто лет. Он киномеханик, поэтому я ему взял киноплёнку «Борьба за всеобщую грамотность» 1947 года.

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

Ржавая металлическая катушка с этикеткой: «ГОСКИНО СССР, СИБИРСКАЯ КИНОКОПИРОВАЛЬНАЯ ФАБРИКА, КОПИРФИЛЬМ, Культурная революция в СССР, Кинофрагмент № 1, БОРЬБА ЗА ВСЕОБЩУЮ…
Ржавая металлическая катушка с этикеткой: «КОПИРФИЛЬМ», «Культурная революция в СССР», «Кинофрагмент № 1», «Борьба за всеобщую грамотность», дата 1947.
Два металлических кинопроекционных барабана: один сплошной, другой с шестью вырезами, лежат на серой ворсистой ткани.

Оставить комментарий

Развернуть видео

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

Его надо выполнять в консоли браузера, которая вызывается через «Инструменты разработчика».

document.querySelectorAll('*,iframe').forEach(e=>(e?.shadowRoot||e).
querySelectorAll('video').forEach(v=>v.style.transform = 'scaleX(-1)'))

Оставить комментарий

Мир в бутылке

В конце 90-х был относительно популярен класс программ, который сейчас, кажется не встретишь. Не уверен, что у него есть какое-то официальное название, но чтобы как-то его называть, назову его «виртуальные компаньоны».

При запуске такие программы чаще всего отображали какое-то интерактивное животное — котёнка, который прыгал по вашим окнам или тараканов, которые прятались за ними.

Не то, чтобы я по таким приколам скучал, но время от времени их вспоминаю, непонятно почему. Даже была мысль попробовать написать что-то своё. Но своими руками написать что-то подобное я не сподобился, зато, когда на днях вышла сеть «Опус 4.7», я решил попробовать посмотреть на неё именно на такой задаче.

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

В процессе написания идея модифицировалась — персонажи поселились на полоске внизу страницы, у них появились враги и некоторая специализация. Всё это полностью сделано «Опусом», я только направлял, тестировал и давал идеи.

Технически всё упаковано в одну картинку (так оказалось эффективнее) из которой читается и код, и спрайты, и вероятности перехода между состояниями для цепей Маркова.

Пиксельная сцена: зелёное поле с тропинкой, персонажами, сундуками, прудом и знаком с символами.

Оставить комментарий

Мир в бутылке: сжатие в картинку

Вчера я писал, что код и вероятности перехода в цепях Маркова упакованы в картинку, но не объяснил что это и для чего сделано.

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

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

Скриншот консоли: вывод сборки проекта bolklet, показывающий размеры файлов (JS, модель, спрайты), выбор формата PNG/RGB как оптимального и итоговое сжатие изображения на 89%.
Процесс сжатия в картинку — выбираем формат, который сжимает эффективнее

Сжатие при этом реализовывать в ДжаваСкрипте не нужно — браузер за нас распаковывается картинку, а мы её просто попиксельно читаем.

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

Оставить комментарий

Мир в бутылке: а где лошадка?

Пока программировал свой «Мир в бутылке», пришли жена и дочка и, как фанатки лошадей, потребовали ввести в игру лошадку. Я согласился с условием, что дочка нарисует прототип и хоть немного продумает механику — как именно лошадка будет себя вести.

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

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

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

Оставить комментарий

Мир в бутылке: гидра и ведьма

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

Пиксельная сцена: персонажи на зелёном поле с тропой, сундуком, пещерой, надписью «HELP!» и водяным знаком Bolkleis.dev.
Мир в текущем его виде: появился «босс» — гидра

Эта гидра — то, что называется «боссом», то есть сильный монстр, для убийства которого требуются усилия большинства персонажей. Гидра сильно спутала мне карты, так как, по сути, все мои персонажи — одиночки. Да, они могут подлечивать друг друга и воскрешать, но основной алгоритм у них написан так, чтобы зачищать свою окрестность от врагов и не умирать.

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

Не бог весть какая стратегия, но я до сих пор с ней бьюсь. Пришлось выделить поведенческий код в отдельный модуль и проводить симуляции на тысячах прогонов, чтобы отладить логику. Так удалось отладить поведение лекаря (я в разговоре с ИИ называю её «девочка»), а вот ведьма пока далека от идеала.

Скриншот терминала с результатами симуляции: успех BASELINE 36%, FIX:girl-range only 39,9%, FIX:girl-range+route 99,9%; ниже — анализ ошибок и комментарий про ведьму и гидру.
Процесс общения с «Курсором» по поводу изолированной симуляции поведения персонажей

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

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

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

Я как-то не думал, что это займёт столько времени, но планирую экспериментировать до успеха.

Оставить комментарий

ИИ: Claude Mythos и поиск уязвимостей

Я давно предсказывал, а месяц назад даже об этом написал, что нейросети в этом году побьют все прежние рекорды по поиску уязвимостей. Прогноз уже начинает сбываться: компания «Антропик» не стала публиковать свою модель следующего поколения «Мифос», потому что она исключительно хороша в поиске уязвимостей.

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

Я сразу заподозрил в этом заявлении изрядную долю маркетинга и оказался прав: как показало исследование, изрядную часть уязвимостей, которые раскрыли, нашли также и модели предыдущего поколения. Тем не менее я охотно верю, что «Мифос» сильнее «Опуса», просто не думаю, что настолько, насколько это хотят показать.

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

Оставить комментарий

Мир в бутылке: поведение ведьмы

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

Обидно, досадно, но ладно. Там было пространство для манёвра, но слишком медленно тренируется. Чтобы ускорить, нужно переписывать весь игровой мир на какой-нибудь фреймворк для ускорения через видеокарту, а это долго даже с нейросетками. Да и качество такого переноса потом не проверишь.

Решил пойти другим путём — попробовать «дерево решений», оно легче в обучении и его проще потом разбирать. Это помогло — эксперименты пошли бойчее, и я довольно быстро увеличил метрику с 1,715601 до 1,933353, что довольно много на самом деле. Метрика там по простенькой формуле учитывает результативность кампании — удалось ли убить гидру и сколько народу выжило.

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

Дерево решений Witch Policy Tree с узлами условий и цветными листьями действий (stay, deposit, revive_danger). Пиксельный маг в углу.
Визуализированное дерево решений эксперимента №2 (в данный моменту у меня кончается эксперимент №4)

Оставить комментарий

Я в Кибердянске

А я тут, оказывается, кое-что забыл показать, в телеграмном канале опубликовал, а тут — нет. Вышел очередной комикс «Кибердянска», но с моим участием:

Комикс «Кибердянск»: хакеры чинят бабок на скамейке как баги в игре, но те оказываются реальными людьми, а не NPC.

Оставить комментарий

Инженерное меню в мониторе Kuycon

Искал, как обновить прошивку своего нового монитора «Куйкон», и случайно нашёл инженерное меню. Нужно зажать клавишу «≡» на пульте до его появления.

Большинство опций понятны — настройка соотношения цветов при разных точках белого, уровень подсветки, отключение показа логотипа. Термин «Burn-In» я погуглил — это защита от выгорания.

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

Добавлено: один из читателей расшифровал — «Default Language» («язык по умолчанию»).

Синий экран настроек панели AUO M315WAN01: цветовые профили (9300–User), подсветка (MAX 152, MID 90, MIN 52), язык RUSSIAN, Burn-In ON, LOGO OFF, время работы 97H 50M.

2 комментария

Кафе: второй зал

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

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

На красном столе у окна: тарелка с бургерами в бумаге, розовая кружка и фарфоровая фигурка лебедя с малиной.

5 комментариев

Мир в бутылке: графика

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

Первых персонажей для будущего перформанса я нарисовал в «ЧатеГПТ 5.4». На вход дал несложный промпт, что-то типа такого:

нарисуй 10 характерных персонажей-человечков в пиксельном стиле маленького размера. референс в картинке

В качестве референса был приложен первый попавшийся скрин из какой-то бродилки времён ДОСа и, если честно, я не ожидал, что результат мне понравится настолько, что, по сути, определит всех будущих персонажей:

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

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

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

Травку, камешки, насекомых и игровые предметы мне рисовал уже «Опус». С мелкими предметами он справился хорошо, а с теми, что покрупнее, — хуже. В итоге котёл, костёр, сундук и так далее я снова попросил нарисовать «ЧатГПТ». На мой взгляд, он их нарисовал слишком детализированно:

Пиксельные иконки: кувшин, закрытый и открытый сундук, надгробие, костёр, котёл, мишень, чучело и пень на белом фоне.

Поскольку их надо было сделать сильно меньше, «Опус» перерисовал новую версию «по мотивам». В итоге качество меня устроило. Текущий вариант лучше, чем было раньше, но выглядит менее натурально, чем то, что нарисовал «ЧатГПТ». В силу того, что я придерживаюсь ретро-стиля, как будто бы нужный баланс достигнут.

Гидру я рисовал в «Нанобанане 2», приложив как референс картинки персонажей. Текущий результат получился примерно с четвёртой или пятой попытки и, если честно, не кажется мне идеальным, но мне больше хотелось проектировать мир, а не возиться с графикой настолько долго.

Претензия всё та же: по сравнению с персонажами гидра чересчур детализирована.

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

Что делать дальше я пока не решил. Либо доделаю этот мир — там осталась ещё одна нереализованная задумка, либо перейду на другую платформу (кое-что заказал на «Авито») и спроектирую что-то там (идеи, опять же, есть).

4 комментария

Краеведение: что под штукатуркой?

Вот непонятно, как это вообще работает. Я уже 15 лет работаю в «Айти-парке», с того самого дня, как переехал из Москвы обратно в Казань. Все 15 лет я хожу мимо стены, что на фотографии, пусть не каждый день, но достаточно часто.

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

Что там было в тот год, когда я переехал, неизвестно. Годом позже, в 2012 году, на нечёткой фотографии «Яндекс.Карт» видна вмятина, как будто Халк легонько ткнул мизинцем. Вряд ли она заинтересовала бы меня и сейчас. Но в 2016 году на «Гугл.Картах» уже едва-едва виден лёгкий контур. Качество съёмки там не очень, возможно, в жизни он был заметнее.

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

Поспрашивал знакомых краеведов, но никто не знает, что там. Я думаю, что там какая-то табличка: на здании рядом одна есть, 18 века, если мне не изменяет память.

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

Белая стена здания с трещинами и следом от удалённой таблички, у основания — серая облицовка и трава; справа видна дорога, ворота и здание с голубой крышей.

14 комментариев

Кощей

Читал тут русские берестяные грамоты и наткнулся на одну, где упоминается имя или прозвище «Кощей». Таких грамот нашлось три штуки, и, наверное, есть ещё.

Я как-то вне контекста сказок это слово не встречал, даже залез в «Википедию». Раньше как-то не приходило в голову почитать что-нибудь про сказочного Кощея. Узнал много нового. У него, оказывается, ещё и отчество было — Трипетович, да ещё и возлюбленная, которую в одной из былин украл у него Иван Годинович. Впрочем, не исключено, что тут склеились два разных персонажа.

Интересно всё же — сказочный Кощей получил имя по существовавшему когда-то имени или всё-таки сначала так назвали персонажа, а уже потом его имя стало прозвищем? Теперь уж и не узнать.

Фрагмент берестяной грамоты с древнерусским текстом, написанным чернилами; верхняя строка выделена жёлтым маркером, видны повреждения и дыра в центре.
«Челобитье от Кощея и от испольщиков. У кого есть кони, и те плохи, а у иных [вовсе] нет. Чем, господин, пожалуешь крестьян? А рожь, господин, велишь мне молотить — как укажешь?» (или: «так это, как укажешь»)

4 комментария

Задняя часть Афины

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

Сразу вспомнилось, как в советские годы мы из экономии не клеили обои за «стенкой» — мебельным гарнитуром в зале. Её всё равно невозможно было поставить куда-нибудь ещё, поэтому она всегда стояла на одном месте и смысла клеить за ней обои не было, в общем-то, никакого.

Каменная статуя лежащей фигуры с драпировкой, частично разрушенная, находится в археологическом раскопе среди грунтовых стен и камней.
Задняя сторона свеженайденной Афины; детализация увеличена сетью «Джи-Пи-Ти Имейдж 2»

6 комментариев

Мурчащий котик

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

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

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

У жены я не спросил, но подозреваю, что и она тоже — мы 19 лет вместе и я её ни разу не заставал за сборкой робота.

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

Белая 3D-модель лежащей кошки с видимыми слоями печати, на шее которой надет черный браслет с надписью «DIN» и оранжевыми полосками, на деревянном полу.

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

Китайская хреновинка оказалась глуховатой, поэтому мурчание пришлось записывать с «Алисы», выведенной на максимальную громкость. По громкости получилось нормально, а по качеству — терпимо. Но когда я вынул хреновинку из корпуса и начал запихивать в кота по частям, оказалось, что криворукие сборщики паяли не припоем, а своими соплями — провода начали просто отламываться от места пайки.

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

Пришлось расчехлять купленный когда-то паяльник. Паяльник при включении показал слово «CONFIG» и включаться отказался. Я подумал, что он, наверное, сломался и расстроился.

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

Выручила инструкция: пока читал, как обновить паяльник, увидел, что «CONFIG» означает всего-навсего, что ему не подходит блок питания, — он питается по ЮСБ, и я его воткнул в первый попавшийся блок, который нашёлся в ящике стола.

После «починки» я воспрял духом и работа пошла побыстрее. Быстро перепаял отвалившиеся провода (помогла привычка фотографировать всё, что я разбираю) и заодно вывел кнопку запуска мурчания коту на холку. Это место я накрыл картонной полоской, чтобы увеличить площадь нажатия.

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

10 комментариев

Есенин

Никогда не любил и не понимал стихи Есенина, мне всегда больше нравился Маяковский. Впрочем, кроме Маяковского меня вообще мало какие стихи привлекают — в этом смысле я однолюб. Впрочем, я давно догадывался, что дело в подаче. Наверное с тех пор, как услышал стихи Олеси Балтусовой в её собственном исполнении. Мы дружим больше 20 лет, но я до сих пор не воспринимаю её стихов в виде текста.

Как-то в машине услышал песню «Заметался пожар голубой» в исполнении Легенары, сначала не понравилось, я даже не дослушал. Потом она попалась ещё и ещё, я особо-то и внимания не обратил — был в своих мыслях. Возможно поэтому песня пробила какие-то мои внутренние фильтры и я вдруг её даже полюбил.

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

В общем, в восприятии стихов я очень нуждаюсь в помощи исполнителя.

Наверняка это очень примитивно — не уметь видеть стихотворную красоту самостоятельно, но что делать, пока не научился. Собственно, целенаправленного я для этого делал очень мало, нет сильной потребности, что ли…

Портрет молодого блондина в коричневом пиджаке на фоне осеннего пейзажа с рекой, городом и православным храмом с голубыми куполами.
Портрет Сергея Есенина нарисованный «Джи-Пи-Ти Имейдж 2»

18 комментариев

Книги: «Возвращение Синей Бороды»

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

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

Не скажу, что мне каждый раз приходилось делать над собой усилие: некоторые его вещи давались мне легче, другие труднее, но ни через одну я не продирался так, как через текст его свежей книги «Возвращение Синей Бороды». Тут я окончательно завяз. Примерно на половине я сообразил, что мне совершенно не хочется её дочитывать.

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

5 комментариев

Книга с Некрасова

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

Зашли в дом на Некрасова, куда меня приглашали когда-то осмотреть чердак перед расселением. Сейчас он совершенно брошен и медленно разрушается. Внутри следы бытования бомжей, которые, похоже, перестали уже там бывать из-за опасности обрушения — в месте их ночёвки провалилось перекрытие и рухнула одна стена.

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

Мне достался первый томик «Химии жизни» 1923 года в отличном состоянии. Книжка редкая — тираж всего 3000 экземпляров, но вряд ли востребованная — думаю за сто с лишним лет её научная ценность упала ниже нуля.

Интересно, что её автор биохимик Владимир Сергеевич Садиков был в 1942-м году эвакуирован из Ленинграда к нам в Казань, где вскоре и скончался. Как знать, может эту книжку он привёз с собой.

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

Старинная книга с мраморным переплётом и чёрным корешком, на обложке — пустая этикетка, лежит на светло-сером фоне.
Титульный лист книги «Химия жизни», выпуск первый, «Принципы жизненного процесса», профессора В. С. Садикова, Петроград, 1923 г.

4 комментария

← сюда туда →