ИИ и Я

Вот какую я новую аббревиатуру придумал! Круче даже чем ВЛКСМ. Ну, может, это не совсем аббревиатура, но звучит как оная. «ИИ и Я». Красота… Если кто ещё не понял, пост будет про искусственный интеллект.

Джипитишечка

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

Я просматривал свои старые посты и нашёл, что первое упоминание о ChatGPT у меня случилось аж три года назад. В конце того упоминания я добавил, что лет через пять мы все останемся без работы, и, походу, прогноз сбывается. Сегодня это уже через два года, и, возможно, всё-таки не «все», но кто-то определённо отгребёт по безработице. Я ещё держусь, но, временами, ссыкотна, ибо ИИ могуч, силён, и в какие-то моменты без него уже совсем никак.

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

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

Среди последних тем были причины финансового кризиса в Греции и его моральные аспекты, как стареют люминисцентные лампы и можно ли их импортировать в Канаду, почему у меня Скайрим не работает, и, главное, если ёлки такие умные, то почему лиственных лесов на равнинах больше?

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

Кроме ChatGPT в мире хватает и других чат приложений, и джипитишечка среди них даже не самая лучшая, но как бы я не презирал OpenAI с Альтманом и Microsoft, всякие там Anthropic и Google/Gemini я идейно ненавижу.

Локальные картинки

Одна из первых сгенерированных локально картинок, которая добралась в качестве иллюстрации в бложик

Я практически перестал создавать картинки при помощи локального Stable Diffusion. Во многом потому, что платный GPT мне генерит их намного лучше и «бесплатно». Но и Stable Diffusion UI за три года категорически устарел. И установить его становится проблемой, и новые модели не вмещаются в мою видеокарту, и планка ожидания от качества сгенерированных картинок задрана настолько высоко, что Diffusion уже никак не дотягивает.

Вместо него я влез в ComfyUI. Намного проще устанавливать, намного сложнее начать пользоваться, но возможности и гибкость там просто офигенные. Стоило влезть туда пораньше. Я как-то пропустил момент, когда на локальных машинах стало возможным переводить 2D картинки в 3D модели, а 3D модели в видео, но в ComfyUI эти штуки идут уже в качестве шаблонов, работают локально, и разбираться в них одно удовольствие.

Я взял простейший простейший пример, который повторяет функциональность Stable Diffusion (text-to-image), и мало того, что он работает круче, чем я рассчитывал, так ещё часовой разговор с gpt-шечкой о параметрах, настройках, и почему оно работает так, как работает, навёл на мысли о сразу двух интересных экспериментах. В общем, годная игрушка, очень годная.

Локальный текст

Слишком клишейная картинка, даже для ИИ. Но я обещал ему вставить, как есть

Локальные текстовые модели у меня тоже плодятся и размножаются. Кроме Ollama с её терминальным интерфейсом у меня расплодились LM Studio и OpenCode, и в случае конца света и датацентров я смогу запускать рудиментарный ChatGPT локально. Но насколько рудиментарной стала «рудиментарность» за последние два года — это ещё одно открытие.

На моей восьми-гигабайтной видеокарте помещается не так много языковых моделей, но даже те, что влазят, похожи на магию. gpt-oss-20b — маленькая открытая модель от OpenAI — бьёт по качеству GPT3.5-Turbo, на котором работал ChatGPT в 2023-м. А ведь gpt-turbo был офигенен. Я подключил его к OpenCode, и шайтан-машина начала генерировать вполне себе адекватный код. Не как современный codex или claude code, конечно, но тем не менее быстро, и в грамотных руках очень полезно. Всеми любимый Qwen3.8 был бы совсем офигенен, но на моей видеокарте он работает так же, как я над legacy css — т.е. без энтузиазма.

Программистские замуты

Ещё одно клише в духе LinkedIn. Но обещания, даже данные ИИ, надо выполнять

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

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

А теперь мне, наконец, попался Spec-Driven Development (SDD), и на нём стало понятно, что таки да, ИИ отлично ложится на уже существующие принципы программирования, сильно упрощает целый класс задач, и за эту фигню стоит сражаться. Пропади ИИ сейчас, я бы как без рук оказался.

SDD идейно похож на ai-first подход, в котором мы никогда не трогаем код руками и всё делаем исключительно через агента. Но в SDD мы не просто просим агента что-то делать, мы пишем спецификацию. Очень подробную. Про технологический стек, про архитектуру, про ограничения, подходы, протоколы, параметры — вообще всё. А потом просим ИИ эту спецификацию реализовать.

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

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

Мы делали такое раньше. Писали что-то на более абстрактном языке, чтобы программа перевела это на более машинный. Это очень старая и проверенная идея. Просто в этот раз абстрактный язык дошёл до естественного. Ничего особенного.

Теоретически, программисты должны ненавидеть писать спецификации. Это наша вечная боль, спецификация для проекта. Её никогда не бывает, потому что её никто не любит писать. Но в этом случае меня оно не напрягает. Почему? ИИ может написать и спецификацию.

Мои новые проекты сейчас начинаются одинаково — я открываю новую сессию с агентом (copilot на работе и codex дома) и говорю «а давай начнём новый проект». Прошу организовать документы, файлы, требования, задавать мне вопросы, если что-то непонятно. И начинаю бубнеть. Долго, занудливо. О контексте, о причинах, о том, какие практики я нахожу нормальными, какие нет, где я согласен на компромисс, где нет, как должно выглядеть приложение, из каких кусков состоять, и на какие технические решения мне абсолютно по барабану. Агент спрашивает непонятные места, что-то предлагает, но где-то через пол часа у нас появляется начальный набор документов, с которыми можно работать. Тогда я говорю «ну акей, работай», и машина начинает шуршать вентиляторами.

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

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

Так что на пару лет, возможно, я всё ещё в безопасности. А потом… Потом всем и так кирдык. Каково это будет жить в будущем мире, где учится не хочется, потому что машина всё равно знает всё лучше и больше. Зачем учить математику или физику, если все открытия всё равно сделает дата-центр, а платить чисто за знание математики больше никто не будет. Если этого мало, то как насчёт того, что все умные машины, которые всё ещё знают математику и физику, будут принадлежать узкому кругу людей вроде Сэма Альтмана и Дарио Амодеи?

Куда там тому Марксу и его замутами про средства производства… Куда там Тёмным векам…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *