{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "M9K blog: заметки с тегом llm",
    "_rss_description": "Заметки обо всём: devops, lifestyle, культура.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/blog.m9k.space\/tags\/llm\/",
    "feed_url": "https:\/\/blog.m9k.space\/tags\/llm\/json\/",
    "icon": "https:\/\/blog.m9k.space\/pictures\/userpic\/userpic@2x.jpg?1769095194",
    "authors": [
        {
            "name": "M",
            "url": "https:\/\/blog.m9k.space\/",
            "avatar": "https:\/\/blog.m9k.space\/pictures\/userpic\/userpic@2x.jpg?1769095194"
        }
    ],
    "items": [
        {
            "id": "256",
            "url": "https:\/\/blog.m9k.space\/all\/vecherniy-selfhosted-2-5d-parallaks-v-brauzere\/",
            "title": "Вечерний selfhosted. 2.5D — параллакс в браузере.",
            "content_html": "<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.m9k.space\/pictures\/izobrazhenie-2.png\" width=\"655\" height=\"931\" alt=\"\" \/>\n<\/div>\n<p>Владение несколькими IG-аккаунтами, из которых только один реально активный-активный, позволяет выйти из информационного алгоритмического пузыря. Наткнулся на <a href=\"https:\/\/bio.fojcikdominik.com\">Web-дизайнера<\/a>, делающего прикольные сайты — визитки. С точки зрения прикладного использования <s>человека, познавшего grep и cat<\/s>, это понятное дело, специфический изюм — сайт должен быть про быстроту поиска информации — в этом отношение условный tsukumo, вывалившийся прямиком из нулевых отправит в ноудаун все нынешние модные-и-красивые дизайнерские сайты, но иногда можно поиграться и в красивости.<\/p>\n<p>Внимание привлёк <a href=\"https:\/\/lab.revelium.studio\/milkmaid\">Milkmaid<\/a><br \/>\nЦитирую:<\/p>\n<p class=\"loud\">Эффект строится из фотографии и карты глубины — изображения в оттенках серого, где яркость задаёт условное расстояние до камеры. Для новых фотографий карту оценивает нейросеть по одному кадру.<\/p>\n<p class=\"loud\">Фотография преобразуется в облако цветных точек. Каждая точка получает цвет исходного пикселя, положение по горизонтали и вертикали и смещение в глубину. При необходимости создаются дополнительные слои с небольшим отступом. Они добавляют плотность облаку, но не восстанавливают скрытые части объектов.<\/p>\n<p class=\"loud\">При повороте сцены ближние и дальние точки смещаются на экране по-разному. Этот параллакс создаёт ощущение объёма. У краёв изображения прозрачность точек постепенно уменьшается, поэтому фотография мягко растворяется в фоне.<\/p>\n<p class=\"loud\">Движение рассчитывается как система частиц: у каждой точки есть исходное положение и скорость. Виртуальная пружина возвращает её на место, затухание гасит колебания, а вихревое поле и воздействие курсора отклоняют от исходной позиции. Кнопка сборки убирает рассеивание, после чего облако восстанавливает изображение.<\/p>\n<p class=\"loud\">Python заранее готовит фотографию и карту глубины. Отрисовка и движение частиц выполняются на видеочипе устройства через WebGL 2. Получается интерактивная 2.5D-сцена: небольшой поворот выглядит объёмно, но посмотреть за предметы или увидеть их обратную сторону нельзя.<\/p>\n<p><a href=\"https:\/\/particle.m9k.space\/\">Selfhost demo в стилистике<\/a><\/p>\n",
            "summary": "Владение несколькими IG-аккаунтами, из которых только один реально активный-активный, позволяет выйти из информационного алгоритмического пузыря",
            "date_published": "2026-10-14T23:27:01+07:00",
            "date_modified": "2026-10-14T23:27:17+07:00",
            "tags": [
                "llm",
                "selfhosted",
                "нейрогенерация",
                "системное администрирование"
            ],
            "image": "https:\/\/blog.m9k.space\/pictures\/izobrazhenie-2.png",
            "_date_published_rfc2822": "Wed, 14 Oct 2026 23:27:01 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "256",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/blog.m9k.space\/pictures\/izobrazhenie-2.png"
                ]
            }
        },
        {
            "id": "254",
            "url": "https:\/\/blog.m9k.space\/all\/vechernyaya-neyrogeneraciya\/",
            "title": "Вечерняя нейрогенерация",
            "content_html": "<p>После очередного грустного рабочего понедельника (как ноне говорят в мемчиках, «батрачка»), между обработкой давно просроченных фотосетов с воркшопов, залип на генератор изображений ChatGPT. На старте пользования я его избегал, ибо работал он не слишком быстро — и картинки генерил не самые интересные. Но — в мире моделей T2I всё меняется очень быстро. Плюс, сам процесс — это возможность хоть немного приблизиться к тому чувству, которые ощущают <i>действительно<\/i> творческие люди — это какой-никакой, но путь к дофамину, эндорфину и прочей сложной химии мозга.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1453\" data-ratio=\"0.80055096418733\">\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Glamurnaya-diva-na-stancii-metro.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Glamurnaya-puteshestvennica-v-aeroportu_1.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Goticheskiy-vampirskiy-portret-pri-svechah_1.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zhemchuzhnaya-muza-nad-Nyu-Yorkom_1.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zabroshennoe-koleso-obozreniya-v-snezhnoy-mozaike.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zabroshenny-gorod-v-zimnem-tumane.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zabroshenny-gorod-pod-dozhdyom.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zabroshenny-karyer-na-rassvete.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zerkalny-sad-v-osennih-sumerkah.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Zimniy-Belgrad-v-snezhnom-fonare.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Izobrazhenie-ChatGPT-12-okt.-2026-g.,-22_25_47.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Mayak-nad-biryuzovym-morem.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Modny-obraz-na-platforme-Seula.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Neonovaya-geroinya-pod-golograficheskim-ekranom_1.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Neonovaya-koroleva-nuara_1.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Odinokiy-put-skvoz-zatoplenny-gorod.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<img src=\"https:\/\/blog.m9k.space\/pictures\/Serbskiy-poezd-na-zakate-v-gorah.jpg\" width=\"1453\" height=\"1815\" alt=\"\" \/>\n<\/div>\n<\/div>\n",
            "summary": "После очередного грустного рабочего понедельника (как ноне говорят в мемчиках, «батрачка»), между обработкой давно просроченных фотосетов с воркшопов, залип на генератор изображений ChatGPT",
            "date_published": "2026-10-12T22:51:39+07:00",
            "date_modified": "2026-10-12T22:51:36+07:00",
            "tags": [
                "ChatGPT",
                "llm",
                "нейрогенерация"
            ],
            "image": "https:\/\/blog.m9k.space\/pictures\/Glamurnaya-diva-na-stancii-metro.jpg",
            "_date_published_rfc2822": "Mon, 12 Oct 2026 22:51:39 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "254",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/blog.m9k.space\/pictures\/Glamurnaya-diva-na-stancii-metro.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Glamurnaya-puteshestvennica-v-aeroportu_1.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Goticheskiy-vampirskiy-portret-pri-svechah_1.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zhemchuzhnaya-muza-nad-Nyu-Yorkom_1.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zabroshennoe-koleso-obozreniya-v-snezhnoy-mozaike.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zabroshenny-gorod-v-zimnem-tumane.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zabroshenny-gorod-pod-dozhdyom.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zabroshenny-karyer-na-rassvete.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zerkalny-sad-v-osennih-sumerkah.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Zimniy-Belgrad-v-snezhnom-fonare.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Izobrazhenie-ChatGPT-12-okt.-2026-g.,-22_25_47.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Mayak-nad-biryuzovym-morem.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Modny-obraz-na-platforme-Seula.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Neonovaya-geroinya-pod-golograficheskim-ekranom_1.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Neonovaya-koroleva-nuara_1.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Odinokiy-put-skvoz-zatoplenny-gorod.jpg",
                    "https:\/\/blog.m9k.space\/pictures\/Serbskiy-poezd-na-zakate-v-gorah.jpg"
                ]
            }
        },
        {
            "id": "233",
            "url": "https:\/\/blog.m9k.space\/all\/suno-2\/",
            "title": "Suno: личный опыт",
            "content_html": "<p>Неожиданно для себя открыл коммерческую генеративную модель для музыки — Suno.<\/p>\n<p>Если к доступным генераторам картинок и видео у меня по-прежнему есть вопросы — получить нестилизованное изображение, которое не вызывает у восприятия ощущения «здесь что-то не так», всё ещё довольно нетривиальная задача; главная страница Civitai тому регулярно служит наглядным подтверждением, — то с музыкой всё оказалось несколько интереснее.<\/p>\n<p>Музыка в этом смысле куда более схематична и формализуема: Shazam с алгоритмическим анализом музыки в привычном нам виде существует уже добрых полтора десятка лет, а инструменты вроде автотюна, способные вытащить даже весьма безнадёжный вокал, появились тоже далеко не вчера. Поэтому сама идея машины, которая не только разбирает музыку на составляющие, но и собирает их обратно, уже не кажется чем-то совершенно инопланетным.<\/p>\n<p>Но реальность, как обычно, прозаичнее рекламных роликов.<\/p>\n<p>Кнопки «сделать шедевр» там нет.<\/p>\n<p>Есть набор базовых голосов. Есть генератор лирики, который никакой особой магии не делает. Есть возможность описать стиль, инструменты, характер вокала, темп, динамику и структуру композиции. А дальше внезапно выясняется, что всем этим ещё нужно уметь пользоваться.<\/p>\n<p>Нужно возиться с текстовкой: переписывать строки, считать слоги, следить за ритмом и за тем, как слова вообще ложатся на музыку. Нужно расставлять ударения там, где модель упорно слышит их по-своему. Нужно понимать, какие музыкальные теги дадут нужный результат, а какие превратят описание в кашу из жанров. Нужно отдельно думать про интро, куплеты, припевы, бриджи, смену динамики и то, где вокалу стоит разойтись, а где — наоборот, исчезнуть почти до шёпота.<\/p>\n<p>И потом генерировать снова.<\/p>\n<p>И ещё раз.<\/p>\n<p>И брать удачную версию, менять две строчки и обнаруживать, что теперь модель зачем-то переписала половину аранжировки.<\/p>\n<p>То есть никакой пресловутой кнопки «творчество» всё ещё не появилось. Просто возник ещё один инструмент, который очень быстро делает черновую работу и иногда неожиданно хорошо интерпретирует поставленную задачу.<\/p>\n<p>Но чем конкретнее ты понимаешь, что именно хочешь услышать, тем заметнее разница между «я написал запрос нейросети» и «я действительно сделал трек».<\/p>\n<p>В общем, магии не случилось.<\/p>\n<p>Случился ещё один довольно мощный инструмент, который позволяет потратить три часа на то, что, по рекламе, должно было занять три минуты.<\/p>\n<div class=\"e2-text-audio\">\n<div class=\"e2-text-super-wrapper e2-jouele-wrapper\"><a class=\"jouele\" data-space-control=\"true\" data-length=\"130\" href=\"https:\/\/blog.m9k.space\/audio\/When-the-Build-Turns-Green.mp3\">When-the-Build-Turns-Green.mp3<\/a><\/div>\n<\/div>\n<div class=\"e2-text-audio\">\n<div class=\"e2-text-super-wrapper e2-jouele-wrapper\"><a class=\"jouele\" data-space-control=\"true\" data-length=\"219\" href=\"https:\/\/blog.m9k.space\/audio\/Vne-koordinat.mp3\">Vne-koordinat.mp3<\/a><\/div>\n<\/div>\n<div class=\"e2-text-audio\">\n<div class=\"e2-text-super-wrapper e2-jouele-wrapper\"><a class=\"jouele\" data-space-control=\"true\" data-length=\"279\" href=\"https:\/\/blog.m9k.space\/audio\/Voobrazhaemye-linii.mp3\">Voobrazhaemye-linii.mp3<\/a><\/div>\n<\/div>\n",
            "summary": "Неожиданно для себя открыл коммерческую генеративную модель для музыки — Suno",
            "date_published": "2026-09-12T14:39:51+07:00",
            "date_modified": "2026-09-12T14:52:07+07:00",
            "tags": [
                "llm",
                "Suno",
                "творчество"
            ],
            "_date_published_rfc2822": "Sat, 12 Sep 2026 14:39:51 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "233",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "jouele\/jouele.css",
                    "jouele\/jouele.js"
                ],
                "og_images": []
            }
        },
        {
            "id": "222",
            "url": "https:\/\/blog.m9k.space\/all\/progulochny-memories\/",
            "title": "Прогулка по Академу, благоустройство и (пост)советская срань",
            "content_html": "<p>Намедни прошёлся по району, преисполненному тленного советского духа и столь же тленного советского благоустройства. Игра в ассоциации: фотографируешь обычную срань и задаёшь LLM вопросы, о чём думали ответственные лица. Смешно и грустно одновременно:<\/p>\n<blockquote>\n<p>Итог: идея сама по себе симпатичная — прогулочная дорожка по бывшей ЖД ветке. Но реализация выглядит как >“положим плитку между рельсами, а физику попросим не вмешиваться”. Физика, как обычно, пришла без >приглашения.<\/p>\n<\/blockquote>\n<blockquote>\n<p>А по факту это выглядит как “оставить археологию, прикрыть самые страшные дырки и ждать, пока пешеходы >сами выберут траекторию”. То есть не тротуар, а полоса препятствий с юридическим статусом благоустройства.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Эта парковка — почти учебное пособие по матанализу, только с выбоинами и чувством безысходности.<br \/>\nЭкстремум здесь можно объяснять так:<br \/>\nПредставим, что высота\/глубина покрытия — это функция f(x, y), где x и y — координаты на парковке.<br \/>\nЛокальный минимум — яма. Вокруг неё поверхность выше, а в самой точке ниже всего. Колесо туда радостно >проваливается.<br \/>\nЛокальный максимум — бугор или наплыв асфальта. Рядом ниже, а в этой точке выше.<br \/>\nГлобальный минимум — самая глубокая яма на всей парковке.<br \/>\nГлобальный максимум — самая высокая кочка\/наплыв на всей парковке.<br \/>\nТо есть парковка становится графиком функции рельефа:<br \/>\nf(x, y) = высота асфальта в точке.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Cходимость можно объяснять ещё вкуснее.<br \/>\nНапример, машина едет по парковке и пытается найти “самое плохое место” — самую глубокую яму. Каждый следующий манёвр приближает её к яме:<br \/>\nx1 -> x2 -> x3 -> ... -> x*<br \/>\nЕсли координаты машины всё ближе к одной точке x*, то траектория сходится.<br \/>\nЕсли она мечется между ямами, объезжает бугры, попадает в колею и не приходит никуда — не сходится.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Градиентный спуск:<br \/>\n“Идём туда, где поверхность убывает быстрее всего”. На нормальной математической картинке это поиск >минимума функции. На этой парковке — поиск места, где подвеска скажет последнее слово.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Локальный минимум против глобального:<br \/>\nМашина может застрять в одной небольшой яме и “решить”, что хуже уже некуда. Но через три метра может >быть настоящая бездна. Это классическая проблема: алгоритм нашёл локальный минимум, но не факт, что >глобальный.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Сходимость с плохим шагом:<br \/>\nЕсли ехать слишком резко — перескочишь через яму. Если слишком мелко — будешь вечность ползти по >трещинам. Это аналог выбора шага в итерационном методе.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Приращение — это когда было значение функции f(x), а потом мы чуть-чуть сдвинулись по дороге на Δx и >получили новое значение:<br \/>\nΔf = f(x + Δx) — f(x)<br \/>\nНа нормальном графике это “насколько изменилась функция”.<br \/>\nНа этой дороге это: насколько глубже стало колесо после следующих 30 сантиметров движения.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Евклидова модель:<br \/>\n“Есть дорожка шириной N метров, идём прямо”.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Реальная модель:<br \/>\n“Пространство искривлено дефектами покрытия, влажностью, деревьями, уклоном и вероятностью подвернуть >ногу”.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Оптимизация пешеходного потока в условиях провала институционального обслуживания и нестационарной грязевой метрики<\/p>\n<\/blockquote>\n",
            "summary": "Намедни прошёлся по району, преисполненному тленного советского духа и столь же тленного советского благоустройства",
            "date_published": "2026-06-06T14:47:20+07:00",
            "date_modified": "2026-06-06T14:47:12+07:00",
            "tags": [
                "llm",
                "memory",
                "архитектура",
                "размышления"
            ],
            "_date_published_rfc2822": "Sat, 06 Jun 2026 14:47:20 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "222",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4199,
    "_e2_ua_string": "Aegea 11.5 (v4199)"
}