AI

Будущее SEO

На выходных попалась статья в блоге Semrush про то, что золотая эра SEO заканчивается, AI в результатах поиска Googel даёт всё больше ответов без клики на сайты, а AI-чаты (ChatGPT или Claude) предпочитают давать ссылки на крупные бренды. В результате малому бизнесу, который до сих пор уповал на поисковую оптимизацию и контент-маркетинг, достаётся все меньше трафика и что дальше делать — неизвестно.

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

Возможно, общость рекомендаций связана в том числе и с отсутствием у Semrush готового сервиса, в который можно ткнуть пальцем и сказать “пользуйтесь!”. Но в целом, я бы назвал развитие ситуации справедливым.

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

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

Но поставьте себя на место владельца магазина. Где он возьмет материал на две статьи в неделю? О чем писать? Хорошую статью написать не очень просто, даже если у вас есть материал. А у какого количества магазинов и бизнесов вообще есть какой-то уникальный опыт, достойный статьи? Вы знаете, что получается в итоге — многочисленный статейный мусор “Топ-10 чего угодно”, где на первом месте приведен не имеющий недостатков продукт автора, а дальше всякие недостойные конкуренты, или “Советы начинающим кому угодно”, хоть сантехникам, хоть ядерным физикам. Пройдитесь по сайтам SaaS-продуктов — они все забиты регулярными статьями на совершенно общеобразовательные темы, часто скопированные либо у других, либо из википедии. Это была эпоха великого рерайта, что уж тут скрывать?

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

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

Редизайн блога

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

Собственно, рассказать стоит только то, что весь процесс — от макетирования до полной имплементации и исправления багов, — занял у меня часа полтора. Конечно, благодаря AI — я взял привычный Claude Code, применил уже проверенный на паре мелких задач скилл frontend-design и так всё и сделал. Claude расспросил, какие стили я предпочитаю, какой шрифт для чего лучше использовать, что лучше сохранить из существующей темы (а тут стояла Mainroad, довольно старая тема) и нарисовал три макета в разном стиле.

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

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

Но результат мне нравится. Надеюсь, аудитории тоже будет лучше.

P.S. На самом деле надо честно сказать, что еще полтора часа заняли попытки заставить комментарии отображаться корректно — то есть, используя те же цвета, что и на остальном блоге. Ну, потому что в мире Умпутуна владельцы сайтов не должны хотеть других цветов кнопок и ссылок. Но и это победили.

Не даем заснуть колонкам

На выходных задумался, что за последний год у меня сильно изменился шаблон поведения в совершенно стандартных сценариях использования продуктов. Если раньше, встречая какое-то мелкое неудобство, я пробовал его решить настройками или чьим-то готовым решением, то сейчас я начинаю думать — “А нельзя ли это устранить вообще? Что посоветует AI?”. И по результатам небольшого чата вполне может последовать радикальная перенастройка системы или даже написание программы, которая решит проблему.

История про долгую историю окупаемости

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

На четвертом курсе института нам читал лекции по экономике железнодорожного транспорта профессор Бондаренко и на лекции, посвященной расчету окупаемости капвложений (сейчас бы сказали — “инвестиций”), рассказал о том, что он входил в рабочую группу экономистов, занимавшихся разработкой ТЭО (технико-экономического обоснования) системы “Экспресс” — автоматизированной системы продаж билетов на пассажирские поезда в СССР. Кажется, речь шла о системе “Экспресс-2”, запущенной во всесоюзном масштабе в середине 80-х годов прошлого века.

Приятный сеанс вайбкодинга

Я в последнее время практически большую часть работы делаю с использованием AI-агентов, которые при этом что-то программируют. На меня за это регулярно сердятся “настоящие” программисты, мол, я ничего не понимаю, что там AI пишет, будет масса проблем потом, кто это сможет поддерживать и вообще… Я, правда, честно отвечаю, что меня не волнует, кто это сможет поддерживать, пока с этим справляется даже нынешний AI, тем более, что большинство вещей, которые в итоге получаются — это прототипы, которые используются для разовой или нерегулярной задачи. Если в итоге станет понятно, что идея, алгоритм или последовательность операций даёт нужный результат — “правильной” разработкой займутся живые люди, которые сделают “правильный” проект. Хотя при этом я неплохо представляю, что откуда берется, что с данными происходит и как проверить итоговый результат — а вот какой алгоритм сортировки применен или как не по канонам названы методы, меня и волновать не должно, я такого и про результат работы живых людей не знаю.

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

Контекст ненужных MCP

Если вы начали использовать MCP практически сразу, как я — сходите в конфиг и удалите оттуда первые референсные серверы типа fetch и filesystem. Claude во всех видах давно умеет обращаться к более современному web-fetch, который работает через серверы Anthropic, на порядок реже банится сайтами и нормально извлекает контент. Что касается filesystem, то на Claude Desktop он еще может использоваться, а вот Claude Code гораздо лучше справляется своими силами, а MCP только занимает контекст.

Достаточно стандартная картина при установленном SuperClaude

Что подводит нас к разговору о контексте и его использовании. Любой MCP занимает место в контексте, примерно так же, как любое приложение, запущенное на смартфоне и работающее в фоне, влияет на энергопотребление и заряд батареи. Еще место в контексте занимают сообщения в сессии, файлы вида CLAUDE.md (причем как локальный в проекте, так и общий, на уровне пользователя), агенты, которые настроены в Claude Code. Если при этом поставить что-то типа прекрасного фреймворка SuperClaude и вдобавок согласиться на все предложенные дополнения, включая MCP, то получившийся Claude Code, безусловно справится с немалым количеством задач больше и лучше, чем до этого, но вот свободного контекста останется мало. Если конкретно — поскольку я по этим граблям и прошелся, — можно обнаружить, что из общего контекста в 200k токенов несколько тысяч занято системным промптом, полтора десятка тысяч — системными tools, 68k(!) — всеми MCP, и еще 25k — всеми файлами памяти, от CLAUDE.md до десятка файлов с инструкциями для компонентов SuperClaude. И для собственно сообщений чата остается лишь четверть, а то и меньше общего объема.

В общем, настоятельно рекомендую для начала удалить ненужные вам MCP — начиная с упомянутых выше fetch и filesystem. Из всего, что ставит SuperClaude, я в общем конфиге (на уровне пользователя, он загружается всегда, хоть и последним) оставил sequential-thinking, serena (рекомендую, это полностью заменяет все собственные попытки что-то сохранить в файл, чтобы потом напомнить Claude Code, чем вы занимались в прошлую сессию), tavily (веб-поиск, но не обязательно) и context7 (поиск по документации библиотек, фреймворков и так далее). Если вам нужно что-то типа chrome-tools или playwright — ничто не мешает в корне нужного проекта положить файл .mcp.json, где дописать нужные. Именно в этом проекте они и будут работать. К сожалению, отключить на уровне проекта нельзя, хотя все установщики норовят прописаться именно на user-scope.

Тот же контекст после выключения ненужных в конкретном проекте MCP серверов

Результат подобной чистки контекста вполне достойный — у меня получилось довести MCP tools до 21,5k токенов, что более чем в три раза меньше дефолтного состояния, а объем свободного контекста — до почти 95k. К сожалению, Claude автоматически резервирует 45k в качестве буфера для автосжатия сессии и это тоже не отключается.

Не забудьте, что добавляемые вручную серверы также можно добавить только для текущего проекта — для этого нужно в команде claude mcp add не указывать -s user. Но не забывайте, что в этом случае сервер все равно пропишется в дефолтном .claude.json в контексте текущего проекта, а не отдельным файлом в его директории.

К предыдущему конфигу просто добавлен github-mcp-server

P.S. Напоследок хочу показать еще одну страшную картинку полностью забитого контекста. На ней в MCP tools из приведенных 70+k токенов более 50k занимает один сервер — github_mcp_server. Очень яркий пример того, что комфорт требует компромиссов и наоборот.

Национальная LLM: между политическими амбициями и технологическими реалиями

Последние несколько месяцев мы много слышим о создании национальной LLM. Эта цель была декларирована еще в феврале этого года, потом на DOU вышло интервью CTO Центра AI Excellence Дмитрия Овчаренко, а недавно прозвучало заявление министра цифровой трансформации Михаила Федорова, в котором даже был назван срок запуска первой версии LLM — конец этого года.

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

Хотел только спросить

Я всего лишь хотел спросить…

Взаимодействие с LLM иногда оборачивается непредсказуемо. Вчера, вспомнив про функцию в MyHeritage, которая раскрашивает старые фото, (и попробовав обработать пару фотографий), я решил поинтересоваться у AI, а есть ли другие варианты и вообще хорошие модели, которые это умеют делать.

ChatGPT был конкретен — возьмите GFP-GAN и DeOldify потому-то и потому-то.

А вот Claude решил отвечать иначе.

Зачем нужна национальная LLM

Full disclosure: Этот текст комментирует интервью одного из руководителей Минцифры Украины в области AI. Я участвовал в конкурсе на должность Chief AI Officer, который полгода назад проводило Минцифры.

На ДОУ опубликовано интервью с Дмитрием Овчаренко, CTO центра AI, недавно организованного Министерство цифровой трансформации, посвященное в основном вопросу разработки национальной LLM. Эта разработка была анонсирована при запуске центра и, честно скажу, сразу вызвала у меня недоумение. Интервью это недоумение совершенно не развеяло, скорее усилило.

Продолжаем писать вместе с AI

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

На этой неделе мне попалась свежая статья исследователей из MIT, в которой они описывают свою новую систему Satori. Если упрощать, то существует несколько способов в обучении моделей рассуждениям — использование более мощной модели в качестве учителя, дистилляция модели, обучением с подкреплением на основе человеческих отзывов. Все это требует много ресурсов, поэтому исследователи решили пойти другим путем и попробовать научить модель самообучаться. Ученые придумали новый метод — Chain-of-Action-Though (COAT), то есть “Цепочка действий-мыслей”, чтобы помочь модели остановиться в рассуждениях, проверить себя и принять решение о продолжении.

Мне хамит AI

Естественный стиль общения с AI иногда приводит к таким оборотам, что начинаешь воспринимать это как хамство или любимое действие современной молодежи — “обесценивание”.

Вот, например, занимаемся мы с ним программированием — в данном случае это Claude 3.5 Sonnet. У меня есть небольшое расширение для Cursor, которое мы с ним же написали для генерации коротких commit message — когда писали, в Cursor этой функции вообще не было, а мне при этом не надо больших сообщений, поскольку это блог и там достаточно писать “add article on…”. Но движок там Astro, который не любит пустых полей в мета-информации заметки (frontmatter) и я регулярно удаляю из большого шаблона пару редко заполняемых полей. В итоге мне это надоело и я подумал — пусть расширение это делает.

Сеанс разоблачения магии в AI

Проблема с хайпом вокруг технологий заключается в том, что появляется огромное количество информационного шума, который делает технологию какой-то разновидностью волшебства. Так было с криптовалютами, и теперь такое же наблюдается вокруг AI и LLM. Тем более, что попробовать тот же ChatGPT несложно — это вам не с криптокошельком разбираться, — и общение в привычном интерфейсе вебчата или мессенджера дает какие-то разумные ответы, так что широкой аудитории вполне верится в утверждение «AI можно натренировать так-то и так-то». И это действительно так — натренировать можно, вот только непосредственный процесс тренировки как раз и становится той самой «магией», которая по всем правилам фокуса должна остаться непонятной профанам.

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

Как AI пишет мне тексты

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

Однако я попробовал. И хочу рассказать, что именно получилось.

Мимоходом про AI

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

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