«МК-Про»: далеко ли до «отлично»?
В моей работе над проектом ретроконсоли
Поэтому высвободившееся внимание я направил на проект «
Этот проект родился в ответ на вопрос Ивана Чернякова, заданный в недавно вышедшем документальном фильме, при создании которого я выступал консультантом: не знаю ли я такой задачи, с которой не смогли бы справиться программирующие нейросети.
Со временем, у меня сложится такой критерий того насколько нейросеть хорошо решила эту задачу — насколько близко мы приблизились к оптимизированной версии игры «Пещера сокровищ» в варианте Сергея Анварова «
На настоящий момент разница составляет 34 байта или 25%, я попросил нейросеть нарисовать для наглядности график. Планирую сегодня запустить свежевышедшую на днях сеть
Добавлено позднее: в итоге сеть мне сначала довела почти до 105 байт, а потом откатила часть прогресса, сделанного другими сетями и теперь программа у нас занимает 154 байта. Причина — оптимизации слишком заточены под конкретную программу, что противоречит задаче.
Нанял тренера
Я тут
«Выбрал по лайкам», что называется. «Ютуб», поскольку я часто смотрю
Пока он только следит за тем, что я ем: каждый день фотографирую еду, и вот уже заканчивается вторая неделя. Упражнений пока не было, но я уже начал худеть — почти два килограмма скинул на стыде. Думаю съесть
Моего тренера мы с женой зовём Буськой. Как его на самом деле зовут, я и не знаю. Буськой — потому что в конце почти каждого своего ролика он говорит: «Понял? Ай, молодец, держи буську».
Вот вам моя свежая фотография, в сложные моменты своей жизни я весил и на 15 килограмм больше, чем сейчас.
ИИ: локальное ревью кода
Подключил локальный
Считаю, что польза уже есть, но надо продолжать его улучшать.
«МК61s»: распробовал «Фейбл 5»
Самая сложная задача, которую пришлось решать для ретроконсоли «MK61s», — это монтирование её как диска. В прежней прошивке программы были зашиты внутрь, и пользовательского способа сохранить туда новые программы не существовало. Я подумал, что раз есть
Перебрав в голове все варианты, я решил делать эмуляцию FAT12. Напрямую она не подходила: не очень хорошо ложится
Этот путь тоже не был безоблачным, проблем хватало. Система, к которой подключён такой диск, не пишет файлы последовательно, то есть там нет команд вроде: «мы начали писать вот такой файл, вот его полное упорядоченное содержимое, а вот и конец». Система пишет кусками, причём это могут быть куски разных файлов вперемешку. Их нужно получить в буфер, а по окончании аккуратно разобрать на файлы, найдя там же метаинформацию, из которой можно получить имя файла. Нетривиальная задача, на самом деле.
Я написал
В итоге, я открыл сеть «Фейбл 5», описал ей проблему и она задумалась минут на двадцать, после чего начала неспешно писать код, в котором проблема была исправлена. Без отладки, без тестов, без диагностики. Задачу я ставил в минимальной формулировке, почти буквально «пять файлов копирую, оно падает», а «Фейбл» разобрала весь код, увидела проблему и решила, даже ни разу ничего не запустив.
Что я хотел сказать этой историей — человек так не сможет.
Статья в газете о папе
Папа почти всю жизнь проработал в «Иркеннефти» — сейчас уже не существующим подразделении «Татнефти». В последней должности там он был начальником технического отдела. В его ведении была служба АСУП, которая занималась автоматизацией производства.
Недавно бывший руководитель этой службы разгребал дома архивы и нашёл заметку в газете «Нефтяник Татарстана» №79 (825) за 1998 год, про большой проект по автоматизации, в котором принимал участие и мой папа. Я решил статью вырезать и положить себе на сайт, чтобы она сохранилась.
Документалка об «Электронике МК-61»
Иван Черняков, автор совершенно шикарных документальных фильмов про айти, наконец выпустил новую работу — «
Было очень интересно заглянуть за кулисы документального кино такого уровня: увидеть, как из разрозненных фактов выстраивается сюжет, который потом нещадно режется ради динамики; как появляются первые скетчи, затем ещё не смонтированные черновики; как появляется графика, выравнивается и перезаписывается звук и так далее. Было очень интересно в этом участвовать, хотя и тяжело просматривать по большей части один и тот же материал раз за разом.
За этот опыт я очень благодарен Ивану.
Хотя в прошлом я и сам немало занимался исследованиями — пусть и не столь масштабными — и хорошо знаю, что на сбор фактов для одного абзаца текста порой могут уйти дни, я всё равно не ожидал, что работа над фильмом окажется настолько долгой и кропотливой. За видимой лёгкостью, с которой Иван выпускает свои фильмы, стоит огромный объём невидимого труда целой команды людей.
Фильм уже неделю как был готов — оставалось дождаться только рекламодателя. Результат мне так понравился, что я буквально дождаться не мог момента, когда смогу разослать его всем. С особым удовольствием отправил ссылку ребятам из чата о ретроконсоли «MK61s». Надеюсь, им это согреет душу!
«МК-61s»: русские буквы
Вчера я писал, что сделал ретроконсоли «
Как же делается русификация? Секрет в том, что в позициях от нуля до семи стоят символы, которые можно определять самостоятельно. Пришлось написать упаковщик, который, выводя на экран русские символы, на самом деле заменяет их латиницей, а те буквы, которые есть только в русском, распихивает по восьми символам, которые можно рисовать самостоятельно. Если позиций не хватает, пытается минимально изуродовать вывод, заменяя «Ч» на «4» и «У» на «Y».
Пока работает идеально, глюков не было — во тех фразах, что используются в интерфейсе, восьми дополнительных символов хватает, а пользователь русские символы ввести не может — для этого нет никаких средств.
Доработка «МК-61s»
Программировать всякие железки — увлекательнейшее занятие. За ночь и утро я её русифицировал (решив проблему распихивания русских букв на восьми программируемым знакоместам), выделил слой примитивов работы с экраном, что позволило объединить две прошивки в одну, добавил интепретаторы двух языков (Бейсик и Фокал), сделал файловую систему с монтированием этой системы на компьютере и ещё многое другое.
Бейсик планировали сделать в сообществе и я его прикрутил строго по техзаданию, но мне не понравился режим ввода букв — на клавиатуре калькулятора нет способа ввода алфавита, не нужно было, поэтому в Бейсике предлагалось нанести на клавиатуру ещё один слой клавиш со своей уникальной раскладкой.
Запомнить это тяжело, поэтому я и реализовал Фокал. Не совсем чистый, его диалект. В Фокале каждое ключевое слово начинается на свою собственную букву. Их вообще можно не дописывать, а так и оставить однобуквенными — Фокал их и в такой форме понимает.
В «
Я попробовал, так гораздо проще набирать программы. Мне кажется, что от Бейсика надо избавиться и, если уж хочется иметь в этой консоли
Ретроконсоль «МК-61s»
Мне довольно быстро дошла посылка с собранной ретроконсолью «
Ещё не успел как следует разобраться, только включил: правильно догадался, что за включение отвечает рычажок справа. Надо будет хотя бы инструкцию почитать, а то я пока даже не знаю, как к нему подступиться.
Пока интересует, как в него заливать свежую прошивку, что делает рычажок сверху и почему у него два
Дополнено: немножко разобрался, но вопросов стало только больше. Для работы с прошивкой предназначен разъём слева, устройство надо перевести в режим DFU через меню. Но, самое главное, — дата прошивки 10 мая 2026 года, а репозиторий устройства не обновлялся уже восемь месяцев. Вопрос — где же идёт работа?
Да и размеры не совпадают. Я слил прошивку с устройства, она там занимает около 80КБ, тогда как, если собрать прошивку из репозитория, она займёт около 60. Ничего не понимаю.
Кирпич «XW»? «MX»?
Те, кто давно меня читает, знают, что я облазил всю историческую Казань в поисках старинных клейм на кирпичах.
Со временем незнакомых мне казанский кирпичный клейм не осталось, но иногда судьба подбрасывает
Завтраки в кафе
Давно всё никак не мог дойти до кафе, глянуть, как там дела. Сегодня наконец добрался, а там уже и весь персонал успел смениться. Заехал пообедать — повезло застать завтраки. Ребята недавно ввели их в меню: они там до 14⁰⁰, давно хотел попробовать. Вкуснотища!
Ещё появились новые десерты с лесной земляникой. Жаль, поздно увидел: переедать не хотелось. Попробую завтра съездить, может, ещё застану.
Прибыли кафе мне пока не приносит, но по нынешним временам уже хорошо, что работает не в убыток. Расширились, я считаю, мы очень вовремя. Людей в кафе стало больше, хотя загруженным его теперь не назовёшь. Но осенью, надеюсь, это сыграет нам на руку: раньше посадочных мест было всего ничего, и половина — на улице, в итоге в холод или дождь посещаемость была низкой — сидеть было негде.
ИИ: что в имени тебе моём?
Вижу, что многие сравнивают нейросети между собой без особого понимания, как они устроены и чем реально отличаются. Хочу немного прояснить этот вопрос.
Начнём с открытых моделей, там есть о чём рассказать.
Кстати, важно понимать: даже самые сильные открытые модели пока заметно уступают ведущим коммерческим решениям. Поэтому что бы вы ни развернули локально, это не даст помощника того же уровня, что доступен в платных облачных сервисах.
Открытые модели обычно называются так, что по названию уже примерно понятно, чего от них ждать.
Например: Qwen3.6-35B-A3B.
Qwen — это семейство моделей. Если пользоваться простой метафорой, это как «школа», в которой модель училась. У «школы» «Квен» хорошая репутация: из этого семейства выходило много сильных моделей, поэтому есть основания ожидать, что модель будет достаточно умной.
3.6 — это поколение или версия модели. Обычно более новая версия означает, что разработчики улучшили архитектуру, обучение, данные, дообучение и поведение модели. То есть обновили в своей «школе» методику преподавания и учебники.
35B — это общий размер модели: примерно 35 миллиардов параметров. Упрощённо параметры можно сравнить с «объёмом мозга», в которых хранится опыт модели. Чем параметров больше, тем потенциально больше знаний и способностей может поместиться в модель, но размер — не единственный показатель ума. Иногда более новая и лучше обученная модель меньшего размера работает лучше, чем старая модель большего размера.
A3B означает, что модель относится к типу MoE — «mixture of experts», «смесь экспертов». У неё всего около 35 миллиардов параметров, но при ответе на каждый отдельный токен активируется только примерно 3 миллиарда. Если говорить совсем грубо, модель не задействует весь «мозг» сразу, а выбирает нужные участки под конкретный шаг ответа. Поэтому такие модели часто быстрее и дешевле в работе, чем плотные модели похожего общего размера.
Плотные модели — те, у которых задействуется сразу весь «мозг».
При этом MoE-модель не обязательно глупее плотной модели. Плотные модели используют все параметры на каждом шаге и иногда дают более стабильное качество, но обычно требуют больше ресурсов и отвечают медленнее при том же общем размере.
Если в названии дальше есть приписки вроде FP4, FP8, Q4_K_M, GPTQ, AWQ и похожие, это обычно говорит о формате хранения весов или о квантовании. Модель сжали или перевели в более экономный числовой формат, чтобы она занимала меньше памяти и быстрее запускалась на доступном железе.
Это означает, что «знания» модели обо всём менее точные. Хорошее квантирование мало сказывается на модели, но бесследно не проходит.
У коммерческих моделей всё сложнее, характеристики в названии не пишут, обычно там только версия модели. Например, у «Антропика» пишется название и версия.
Название указывает на размер, а версия — на «версию методики обучения». Самая умная и большая на сегодняшний момент — «Фейбл 5», менее умная — «Опус 4.8» и самая простая — «Соннет 5».
Конечно, когда платишь деньги за использование модели, стараешься исполнителя подобрать под задачу, всё как в обычной работе, поэтому всегда использовать самую умную из платных моделей, вроде бы, логичнее всего, но на практике всё упирается в стоимость эксплуатации.
Книги: «Толкователи» Урсулы Ле Гуин
Недавно открыл для себя писательницу Урсулу Ле Гуин. До сих пор недоумеваю, каким образом она прошла мимо меня: обычно такие крупные имена я не пропускаю. Её книги мне очень понравились: прочитал уже десяток, читались легко и быстро. Но на одиннадцатой — «Толкователях» —
Вроде и книга нравится,
О разном
Раз дочка в Лениногорске счастливо проводит время с бабушкой и дедушкой и нет надобности
Всё вожусь с языком «
Теперь ко мне едет уже собранный «
Говорят нам на днях должны вернуть нейросеть «Фейбл 5», на которую американское правительство наложило запрет. Сам я её погонять успел мало, но те, кто успел, говорят, что она программирует уже на уровне синьора. Ну проверим, у меня задача для неё есть — довести
В то, что она хотя бы дотянет до этого уровня я не верю, но любопытно посмотреть насколько близко подойдёт, так как доступные сейчас сети уже упёрлись в свой потолок.
Поставил себе и родителям
«МК-Про»: два регистра в одном
В оптимизаторе
Сейчас я реализую многоходовую оптимизацию, и у меня трудятся сразу несколько агентов, чтобы её запрограммировать.
Первая часть уже, в принципе, давно готова: идея в том, чтобы хранить в одном регистре сразу два значения. Тут можно придумать несколько способов, но самый простой — следующий.
Идея в том, что два целых числа с известными диапазонами можно упаковать в одно число: одно — в целую часть, другое — в дробную. Тогда извлечь их можно операциями нахождения целой части (
В эталонной программе, о которой идёт речь, все регистры заняты под завязку, и эта оптимизация должна работать в связке с другой: в дробной части будет храниться счётчик, а в целой — опорное число для адреса перехода, которое, например, будет менять знак в зависимости от условия. Сам адрес считается по подобранной формуле.
Опорное число и формула подбираются в зависимости от того, где реально оказались в памяти подпрограммы, к которым надо перейти, и это не проблема. Хотя сеть убеждала меня, что опорное число придётся подобрать вручную, я подсказал ей идею простого решателя, и он, судя по тестам, работает.
Вчера я остановился на том, что решатель должен перебирать функции, в том числе тригонометрические: именно они обычно дают самый толковый результат.
В общем, зарядил я «Кодекс», чтобы он покопался в микрокоде калькулятора и алгоритмически повторил код, реализующий тригонометрию в Си++. Цель была обозначена, на мой взгляд, очень чётко. Но не зря я говорю, что нейросеть иногда похожа на джина, который всё, что можно понять двояко, вывернет вам во вред.
Когда я уходил спать, всё работало как часы — нейросеть копалась в ПЗУ калькулятора, сравнивала реализацию с эталоном, разбиралась почему ошибки. Утром я первым делом полез в этот код, чтобы посмотреть что получилось. А там…
А там, как говорят поляки «wygląda jak gówno, a smakuje jeszcze lepiej» — «выглядит как говно, а на вкус ещё лучше». Пятьдесят тысяч строк отвратительного лапшекода, сгенерированного программно из ПЗУ
Сеть
Воздухан
Из недавно вошедших в язык слов очень нравится слово «воздухан» («балабол»). Мне кажется это хорошая тенденция, когда язык изобретает слова внутри себя, а не берёт то же самое слово, только в переводе на другой язык (особенно тупо вышло с выражением «ред флаг», которое уже есть в языке как «красный флаг» и означает ровно то же самое).
«МК-Про»: переписано на Си++
Сегодня наконец закончился процесс переноса кода
Производительность трансляции улучшилась в среднем в 2,5 раза. Есть один регресс у одной короткой программы, которая выполняются до 50 миллисекунд, но это, скорее всего, погрешность: не исключено, что в этот момент в фоне стартовало
За восемь дней было переписано 122 тысячи строк, которые превратились в 145,5 тысяч строк на C++.
Привезли дочку в Лениногорск
Вчера вечером после работы мы всей семьёй повезли дочку в Лениногорск — поехали мы, собака и улитки; только кот остался дома. В прошлом году мы приехали сразу в начале каникул, а в этот раз сначала был отпуск, потом дочка запланировала сходить на день рождения к подруге, поэтому всё сдвинулось.
Благодаря платной дороге ездить стало гораздо проще — теперь дорога занимает около трёх часов. А когда я переехал в Казань, даже моста через Чистополь ещё не было, не говоря уже о платной дороге. Приходилось ехать через Набережные Челны, и в один конец мы добирались больше шести часов.
Дочка очень ждала этой поездки, планировала чем будет заниматься — собирала рецепты, чтобы
Погода неожиданно испортилась: конец июня, а на дворе +10, дождь и пасмурно, как осенью. Вчера мы едва проскочили мимо ливня, но в Лениногорске непогода всё равно нас поймала: хоть это был и не ливень, но немного покапало. Если верить прогнозу, так будет до конца недели, что же за лето такое?
В понедельник на работу, но ещё не решили когда поедем. Вероятнее всего завтра, чтобы отдохнуть, но колеблемся — может выехать сегодня, а завтра отдохнуть уже дома. Посмотрим по настроению.
«Земной дракон»
Разбирал на днях папку со всяким скачанным барахлом и обнаружил две отсканированные страницы
Германская Восточная Африка — это, вероятно, территория современной Танзании. В те времена там была немецкая колония и в этом регионе постоянно проводят раскопки. Интересно, что художник изобразил «земного», то есть наземного, «дракона» вместе с древним человеком — если я правильно рассмотрел фигурку под динозавром.
Думаю, в те времена ещё знали, что люди разминулись с такими «драконами» на шестьдесят с лишним миллионов лет. Хотя, возможно, человек на рисунке приведён просто для масштаба.
Но многие мои современники тоже уверены, что динозавры и люди довольно долго жили бок о бок. Когда дочка интересовалась динозаврами, я иногда разговаривал на эту тему со случайными людьми — и был очень удивлён, насколько распространено такое мнение.
Самым частым аргументом, насколько я помню, был вопрос: «А откуда тогда,
Возможно, оттуда же, откуда появились легенды о подземном звере Индрике: люди вполне могли находить скелеты, там где обнажаются геологические слои — на склонах берегов рек, например.
Иншааллах
В последнее время
Вот и сегодня вечером досматривал ролик, который мне попался ещё утром за завтраком: там турок, итальянец, француженка и американец играют в различные языковые игры. В кадре они пытались перевести русское «авось!» на свои языки.
Показалось интересным, что во Франции существует сленговое выражение inchallah («иншааллах», «если Аллах пожелает»), которое, вполне очевидно, пришло из арабоязычной мусульманской среды. Видимо, мусульман во Франции стало настолько много, что выражение вошло в местный разговорный язык.
Мы в Татарстане, кстати, говорим «Алла бирса» («если даст Аллах»), причём так говорят не только мусульмане, я, например, так тоже иногда говорю.