В очередной раз встретил выступления “экспертов” про то, что AI — это пузырь, компании глубоко убыточны, инвестиции никогда не окупятся, ну, вы тоже встречали, — и вспомнил прекрасную историю из прошлого.
На четвертом курсе института нам читал лекции по экономике железнодорожного транспорта профессор Бондаренко и на лекции, посвященной расчету окупаемости капвложений (сейчас бы сказали — “инвестиций”), рассказал о том, что он входил в рабочую группу экономистов, занимавшихся разработкой ТЭО (технико-экономического обоснования) системы “Экспресс” — автоматизированной системы продаж билетов на пассажирские поезда в СССР. Кажется, речь шла о системе “Экспресс-2”, запущенной во всесоюзном масштабе в середине 80-х годов прошлого века.
Я в последнее время практически большую часть работы делаю с использованием AI-агентов, которые при этом что-то программируют. На меня за это регулярно сердятся “настоящие” программисты, мол, я ничего не понимаю, что там AI пишет, будет масса проблем потом, кто это сможет поддерживать и вообще… Я, правда, честно отвечаю, что меня не волнует, кто это сможет поддерживать, пока с этим справляется даже нынешний AI, тем более, что большинство вещей, которые в итоге получаются — это прототипы, которые используются для разовой или нерегулярной задачи. Если в итоге станет понятно, что идея, алгоритм или последовательность операций даёт нужный результат — “правильной” разработкой займутся живые люди, которые сделают “правильный” проект. Хотя при этом я неплохо представляю, что откуда берется, что с данными происходит и как проверить итоговый результат — а вот какой алгоритм сортировки применен или как не по канонам названы методы, меня и волновать не должно, я такого и про результат работы живых людей не знаю.
Но вот случился у меня в качестве разгрузки совершенно хобби-проект, который я даже не особо долго обдумывал. Вообще не обдумывал, если честно, просто вдруг подумалось и за несколько дней проект сделался.
Если вы начали использовать 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. Эта цель была декларирована еще в феврале этого года, потом на DOU вышло интервью CTO Центра AI Excellence Дмитрия Овчаренко, а недавно прозвучало заявление министра цифровой трансформации Михаила Федорова, в котором даже был назван срок запуска первой версии LLM — конец этого года.
Все это время в любой дискуссии непременно встает вопрос — «А вообще нужна ли национальная LLM? Какова цель ее создания? Как ее можно будет использовать? Зачем ее создавать при наличии многих уже существующих моделей достаточно высокого уровня?». К сожалению, ответы представителей государства — это какая-то смесь технологических, безопасностных и политических аргументов, где последние занимают значительное, если не первое, место.
Взаимодействие с LLM иногда оборачивается непредсказуемо. Вчера, вспомнив про функцию в MyHeritage, которая раскрашивает старые фото, (и попробовав обработать пару фотографий), я решил поинтересоваться у AI, а есть ли другие варианты и вообще хорошие модели, которые это умеют делать.
ChatGPT был конкретен — возьмите GFP-GAN и DeOldify потому-то и потому-то.
Full disclosure:Этот текст комментирует интервью одного из руководителей Минцифры Украины в области AI. Я участвовал в конкурсе на должность Chief AI Officer, который полгода назад проводило Минцифры.
На ДОУ опубликовано интервью с Дмитрием Овчаренко, CTO центра AI, недавно организованного Министерство цифровой трансформации, посвященное в основном вопросу разработки национальной LLM. Эта разработка была анонсирована при запуске центра и, честно скажу, сразу вызвала у меня недоумение. Интервью это недоумение совершенно не развеяло, скорее усилило.
Я иногда задумываюсь, что слишком уж много вожусь с процессом прилаживания AI к ведению своего телеграм-канала, но на самом деле это для меня прекрасная тестовая площадка — много готового контента, причем с дополнительными материалами и черновиками, а на практической задаче всё новое изучается гораздо лучше.
На этой неделе мне попалась свежая статья исследователей из MIT, в которой они описывают свою новую систему Satori. Если упрощать, то существует несколько способов в обучении моделей рассуждениям — использование более мощной модели в качестве учителя, дистилляция модели, обучением с подкреплением на основе человеческих отзывов. Все это требует много ресурсов, поэтому исследователи решили пойти другим путем и попробовать научить модель самообучаться. Ученые придумали новый метод — Chain-of-Action-Though (COAT), то есть “Цепочка действий-мыслей”, чтобы помочь модели остановиться в рассуждениях, проверить себя и принять решение о продолжении.
Естественный стиль общения с AI иногда приводит к таким оборотам, что начинаешь воспринимать это как хамство или любимое действие современной молодежи — “обесценивание”.
Вот, например, занимаемся мы с ним программированием — в данном случае это Claude 3.5 Sonnet. У меня есть небольшое расширение для Cursor, которое мы с ним же написали для генерации коротких commit message — когда писали, в Cursor этой функции вообще не было, а мне при этом не надо больших сообщений, поскольку это блог и там достаточно писать “add article on…”. Но движок там Astro, который не любит пустых полей в мета-информации заметки (frontmatter) и я регулярно удаляю из большого шаблона пару редко заполняемых полей. В итоге мне это надоело и я подумал — пусть расширение это делает.
Проблема с хайпом вокруг технологий заключается в том, что появляется огромное количество информационного шума, который делает технологию какой-то разновидностью волшебства. Так было с криптовалютами, и теперь такое же наблюдается вокруг AI и LLM. Тем более, что попробовать тот же ChatGPT несложно — это вам не с криптокошельком разбираться, — и общение в привычном интерфейсе вебчата или мессенджера дает какие-то разумные ответы, так что широкой аудитории вполне верится в утверждение «AI можно натренировать так-то и так-то». И это действительно так — натренировать можно, вот только непосредственный процесс тренировки как раз и становится той самой «магией», которая по всем правилам фокуса должна остаться непонятной профанам.
Я заранее хочу предупредить, что дальнейший текст будет излагать эту магию намеренно очень упрощенно, без математики, так сказать — для общего понимания. Мой собственный опыт довольно специфичен, я не провожу исследований и технически корректных экспериментов, но опыт использования накопить успел и для выводов вида «А вот для этого надо пробовать эту область решений» этого опыта часто хватает.
Одно из популярных мнений относительно AI заключается в том, что искусственный интеллект так хорошо умеет писать тексты, что его можно натренировать в нужном стиле — и он будет за вас писать ну точно, как вы. Я бы назвал это популярным заблуждением — хотя AI в виде GPT-моделей действительно хорошо генерирует тексты, все же натренировать его под чей-то специфический стиль не так уж и просто.
Однако я попробовал. И хочу рассказать, что именно получилось.
Одним из способов использования AI для меня является редакторская и смысловая проверка моего контента. Например, лекций в “Курсе молодого CEO”.
Цель такого использования очень простая и предельно практическая — есть готовая лекция на определенную тему. AI может проверить её содержание на фактические ошибки, он также неплохо справляется со структурированием контента и оценкой его на полноту. Довольно часто он советует дополнить лекцию смежными темами — я, правда, почти всегда обнаруживаю в списке тем те, которые раскрываются в других лекциях курса, поэтому больших изменений не делаю.
Вчера решил, что с меня хватит, и выключил DeepL приложение.
Нет, оно переводит нормально. Если переводит.
Проблема в том, что некоторое время назад они решили, что им будет полезно, если пользователи зарегистрируются. Поэтому они обрезали лимит использования для всех до 1500 символов, оставив прежний лимит в 5000 символов только для тех, кто заведет себе аккаунт. Хорошо, я зарегистрировался. Вообще, я бы им и денег заплатил, но они их не хотят брать от прямо всех, ограничивая свою деятельность только ЕС.
С этого момента начались проблемы. Если раньше достаточно было выделить текст для перевода и дважды нажать Cmd+C, то теперь приложение могло не появиться вовсе, а если появлялось, то в половине случаев без скопированного текста. И в половине случаев оно сообщало, что вам бы зарегистрироваться, а пока вот вам перевод 1500 знаков.
Да, оно в половине случаев теряло состояние логина. Я не знаю, как этого можно было добиться.
Вообще, это худшее поведение для приложения, которое хочет стать утилитой. Сначала вы предлагаете пользователю поставить себя везде, наладить синхронизацию между всем, хоткеи и всё прочее, а потом при попытке воспользоваться привычным приложением сообщаете ему “А не, что-то ошибка, наверное, тебе залогиниться или ввести мастер-пароль надо”.
И DeepL — это единственное расширение для браузера, которое при правом клике не предлагает немедленно что-то сделать с выделенным текстом. LanguageTool предлагает проверить текст в редакторе, Google Translate — перевести текст, UBlock — блокировать элемент, Save To Pocket — сохранить в Pocket, а DeepL открывает еще один уровень меню, где перевод выделенного текста — это вторая строка.
Что как бы подсказывает, что никакие достижения в области AI не помогут, если естественный интеллект не справляется с простыми задачами продуктового дизайна.
Удивительно и даже слегка парадоксально ведет себя искусственный интеллект. Я на днях решил сдать некоторые анализы, сделал кардиограмму и, по получению результатов, решил поэкспериментировать — скормил результаты в разные AI-системы и попросил мне их объяснить.
На самом деле, часть анализов и так были снабжены заключениями живых врачей, а по остальным показателям я в предыдущие разы много гуглил, чтобы уяснить себе смысл каждого из них. Так что сначала задача была простая — пусть он (AI) сам прокомментирует показатели, чтобы я не гуглил.
Результат оказался странным — ChatGPT сначала прокомментировал показания электрокардиограммы, но саму кардиограмму в виде картинки отказался комментировать наотрез.
Ответ ChatGPT на электрокардиограмму
Напротив, недавно запущенный Claude 3 Opus (самая мощная модель от Anthropic) никаких сомнений не испытал и подробно прокомментировал каждый зубец на графике:
Ответ Claude 3 Opus на электрокардиограмму
Удивительно в этом то, что именно Anthropic настаивал на своей “конституционности” и всякой ответственности, причем компания была основана специалистами, ушедшими несколько лет назад из OpenAI по причине несогласия с позицией остальных. И, казалось бы, им и проявлять большую осторожность.
И коротко добавлю, что Claude в итоге прокомментировал и все остальные анализы и даже ответил на наводящие вопросы о диагнозах. Хотя вот тут как раз и напомнил о необходимости консультации специалиста.
Илон Маск решил, что, кроме него, за AI постоять некому и предъявил иск Сэму Альтману и всем возможным организациям, составляющим OpenAI. В иске он обвиняет всех в том, что они:
нарушили исходное соглашение об основании OpenAI как неприбыльной организации,
нарушили обещания, приравненные к контракту относительно развития организации,
нарушили обязанности перед инвесторами (fiduciary duty),
применяли нечестные деловые методы, что привело к материальному ущербу для Маска и других представителей общественности,
нарушали принципы финансирования, не направляя все средства по назначению, то есть для некоммерческого развития AI.
Таким представляется Маск в суде модели Midjourney
В преамбуле также утверждается, что фактически Альтман сделал из некоммерческой организации бизнес-придаток Microsoft, что GPT-4 и тем более разрабатываемая сейчас модель Q* являются AGI (Artificial General Intelligence) и поэтому не должны входить в контракт с Microsoft.
Исковое заявление требует, чтобы:
ответчики продолжили делать хорошо (как положено для некоммерческой организации),
ответчики перестали делать плохо (то есть извлекать прибыль из AI),
суд признал GPT-4 и Q* за научный факт Artificial General Intelligence (тем более, что внутре у них точно нейронка),
и взыскал соответствующий ущерб, какой суд сочтет нужным, каковая сумма будет куда-то передана — в non-profit или на благотворительность.
И чтобы всё это рассматривалось в суде присяжных — очевидно рассчитывая на глас народа, не очень разбирающегося в том, что такое AGI, зато уже опасающегося всей темы.
Правда, до сих пор Маску не очень везло на суды. Даже прямо можно сказать — совсем не везло и вчера же прошла новость, что предыдущий громкий иск, в котором Маск обвинял некоммерческую организацию в распугивании рекламодателей Twitter с причинением ущерба, особой перспективы не имеет.