Еще особенность ИИ — вести себя как старательный, но не слишком умный мидл, повышенный из джуна. Например упереться в проблему и долбить ее в лоб, пока «сеньор» не придет и со вздохом не переставит этого старательного на нужное направление.
Делаю некую железячку. Взял готовый проект, и дал его ИИ подправить. Ну, там, допустим, есть стриминговый плеер, но в оригинальном проекте он имеет либо только аналоговый выход, либо только цифровой. А хочу чтобы было и то и то. Для этого, если коротко, нужно сделать «разветвитель» цифрового потока внутри ESP32. Задачка тривиальная, в принципе, и оно с этим легко справилось.
Потом я сделал на отдельной устройстве «VU-метр», индикатор уровня сигнала, я писал о нем ранее. А потом захотел слить вместе. Ну, казалось бы, задача тривиальная. Два устройства на одной и той же платформе. Памяти и флэша хватает с избытком. Пусть играет, и на экранчике показывает обложку и название трека, а нажмешь на кнопочку — полосочки прыгают. Хорошо же? Хорошо. Индикатор надо было перенести с экранчика, который был, на экранчик, который есть. Казалось бы, ну, контроллер изменился, ну разрешение экрана чуть поменялось. Берем работающий плеер, и добавляем на него работающий индикатор. Чего проще? Логика вся прежняя. Ан нет. Собрали на новый экранчик — плеер работает, индикатор тормозит.
Начинаем бодаться с Deepseek. — Проблема. Тормозит. — Понял, дай логи. — Вот — (шуршит 5 минут) Все поправил. — Все равно тормозит. — А, понял, это оттого, что контроллер поменялся. Был ST7789, а тут 8-битный параллельный аппаратный i80, он поддерживается нативным mipi_spi, и я для него пишу кастомный драйвер. — Но погоди, вот есть ранее сделанный на claude такой же индикатор, на таком же экране и контроллере, и он не тормозит. Можешь просто без изменений сделать также — Нет, там нужная нам библиотека не работает. — А почему она не работает? — (молчит) Хороший вопрос. На самом деле я сейчас проверил, она работает — Блин. Ну делай тогда — (шуршит).
В общем типичный «вкатун». «Надо кидать! Не долетает! Значит надо сильнее кидать!» — Погоди, вот тут у тебя прямо ведро на веревке висит, почему бы не взять его? — А? Да, Ты абсолютно прав.
Claude кажется получше deepseek, что в общем, ожидаемо. Но тем не менее. Очень старательный, но если уткнется, недайбох, в какую-то сложную ситуацию, будет как робот пылесос первых поколений, долбить в стену, пока батарейка не сядет.
В итоге он мне допереписывал проект до полной запутанной неработоспособности. Пришлось развернуть задачу, начав с начала, но с другой стороны. «Возьми индикатор, и добавь к нему плеер, вот отсюда. Индикатор, сука, не трожь! Он работает! Вообще не трожь его код! Добавь плеер и остановись!»
Сегодня докручу, и, наверное, выдам Клоду на проверку за этимм китайским вундеркиндом, посмотрим что тот скажет.
Несколько дней сижу, развлекаюсь (с пользой для хозяйства) вайбкодингом. «Вайбкодинг» — это, если кто еще не, такое «слово года». Это программирование с использованием ИИ, когда вместо, собственно, того, что программисты делают программируя программы, ты просто описываешь то, что ты хочешь получить. Вот прямо словами через рот. Вот реально, да, прямо вот так. «Сделай мне базу данных для учета таких-то событий, чтобы я мог получать оттуда такие-то данные в таком вот виде». Или: Мне нужен прибор, который в таких-то условиях собирает такие-то данные. Выбери на алиэкспресс нужные компоненты, сделав оценку по стоимости и характеристикам, соедини их в нужном порядке, напиши программу, получающую данные, и выводящие их в виде вебстранички на такой-то сервис, да, сервис тоже напиши, чо уж там. Пример чего я хочу вот такой (приложена картинка снятая на телефон), результат вывода примерно такой (приложен эскиз нарисованный фломастером на салфетке). Кстати «словами через рот» теперь тоже можно, оно и речь распознает.
И это реально работает. Несколько дней развлекаюсь с не-фавритом в этой области даже, китайским Deepsek. Так получилось, что они сделали легко устанавливаемый «верстак», или как это принято сейчас называть harness, готовую программу, для «полного цикла». В принципе сейчас это умеют почти все, но у большинства, у Anthropic Claude, у Grok, у OpeAi это все предполагает подключения платного плана, порядка 20$ в месяц, а я хотел попробовать, без «планов» и подписок, так что я бросил Дипсику 10 долларов, и этого хватило довольно на многое.
Deepseek это такой крепкий середнячок, в свое время наделавший много шуму, показав (или вернее «заявив»), что разработать топовый AI можно за, буквально, долю от того, что принято считать необходимым у «грандов», таких как OpenAI. Так это или не так — остается предметом дискуссии, все что делется в Китае может иметь солидную «подводную», невидимую часть. Тем не менее, продукт есть, стоит недорого, отчего бы не попробовать.
Я тут дома досугами развлекаюсь с домашней автоматизацией. Не столько по нужде, сколько «ради интересу». Есть у меня Home Assistant, недавно к нему добавился дочерний сайд-проект Music Assistant, всякие датчики, сенсоры, автоматизация, ESP32, Zigbee, в общем, кто знаком — поймет про что я.
И вот у меня была пара идеек сделать что-то на ESP32, но во-первых не хватало знаний, а во-вторых — лени как раз хватало, даже с избытком. Но в деле вайбкодинга главное — это не умение, которого вполне может не быть, а идея. Умеешь ее сформулировать — уже программист. Давайте попробуем.
Во-первых, я взял на гихабе готовый проект стримера музыки из упомянутого Music Assistant, и сделал в нем кое-какие модификации под свои нужды. Заработало. Понравилось. Дай, думаю, сделаю чтобы не только музыка играла, но сделать к этому отдельный выносной экранчик, чтобы на нем показывало обложку воспроизводимого альбома, писало бегущей строкой название, а на еще оном экранчике чтобы прыгал индикатор в стиле светодиодных «столбиков» японского кассетника. Вот тебе, дипсик, картинка такого индикатора, в виде:
Говорю: вот примерно такое вот хочю. Понял? Понял, грит. Действуй. Есть ESP32, есть с алиэкспресса экранчик TFT, собери все вместе, разберись как этот контроллер экранчика работает, доки там найди почитай, вот все это. Сделай прошивку для ESP32, подключи как «виртуальный плеер» к играющему в данный момент на сетевой плеер стриму, пускай стоит на столе и индицирует.
Вот, буквально, на картинке процесс (в сером блоке пишу я, ниже — ответы ИИ):
Вот результат, после некоторых итераций вида «поиграй шрифтами»:
Закончил уже поздно вечером, напоследок решил пошутить:
Оно обиделось :D
Сделал я не только индикатор, там, слева, в панели харнесса видно по названиям, что именно я делал еще. Плюс еще парочку не в дипсиковом харнессе, а в Claude (там приходилось руками собирать, компилировать, потом рассказывать «что видишь», он пытался понять и продолжал, в общем в харнессе удобнее, тут сразу готовый проект собирается). И даже 10 долларов на все это за три дня не ушло.
Ну… Что я могу сказать по итогу. Это… впечатляет. Первое впечатление именно такое. Общение происходит на уровне: «Что-то шрифт кривой, видишь? — Вижу — Давай найдем получше. — Ок, понял, вот такие есть еще шрифты. Смотрел еще вот такой, но там кириллицы нет, наверное не подойдет. Правильно думаю? — Правильно. — Из этих что нравится? — Давай третий сверху и последний. — Понял, делаю (шуршит три минуты) — Сделал, вот так выглядеть на экране будет (картинка) — Уже лучше. Только раздвинь строки немного — Вот так? (картинка) — Да, так лучше.»
С другой стороны. И это, честно говоря, тревожит. И тревожит все больше. Вот, с одной стороны, я получил за пару часов не-труда готовый продукт, который джва года собирался сесть, разобраться и сделать. Хорошо? Ага! С другой: Стал ли я в результате умнее? Нет. Могу ли я, сделав с помощью ИИ такую штуку, сделать после другую похожую штуку самостоятельно? Ну, нет, не смогу, будем честны. Полезу ли я читать код ESPHome и C++, чтобы понять, что там крутится и как? Могу, теоретически, но, напомню, мозговая лень, которая была изначально, никуда в процессе не делась. Я получил продукт не поступаясь ей и не преодолев ее. Хорошо? Нет.
И поневоле возникает вопрос целеполагания. Что в нашей мотивации первично, что именно делает в данном случае ИИ? Получить готовый продукт? Или стать умнее, чтобы в результате органическим образом смочь получить готовый продукт. Что для нас более важно?
Именно поэтому, наверное, хорошие ИИ компании нанимают философов, а для философов ситуация с ИИ наверное захватывающий челлендж.
Последних лет 20 (подозреваю и куда больше), в программистском и вообще IT сообществе стоит стон от того, что уровень абстракций все повышается, а уровень программирования падает, что в индустрию приходят вкатуныедва-образованцы, что всюду засилие говнокодинга и говнокодеров. Чего в этом случае нам не хватает? Ну конечно же волшебной коробочки, которая генерирует код по описанию, потому что ей так кажется правильным, генерирует оно его непрерывными мегабайтам, а править его предполагается теми же говнокодерами выше, которые порой и свой-то код разобрать и понять не всегда в состоянии. Код, который уже никто толком не читает, перед тем как запуллить в продакшн, и которого становится все больше.
Шутка про дятла, который разрушил бы цивилизацию (если бы строители строили как программисты программируют) была шуткой, но, кажется, дятел прилетел.
Вот так выглядит за последние годы график уязвимостей в коде и системах:
Причем ИИ тут на обоих сторонах, и на стороне поиска уязвимостей, и, понятно, на стороне создания кода. И график этот, как видите, вверх только рванул. ИИ-генерируемый код едва год-два как начал выходить в «дикую природу».
Вожусь с нейросетью, рисующей картинки. Главная беда там с руками. Диалог примерно такой:
— Эй, погоди, а чего с руками-то? — А чего? — Пальцы-то, смотрит? — В техзадании пальцев — пять. — Ну так, да, пять, но не как у обезьяны же, большой палец как должен быть? — Ой, ну зануда, ну вот. — Погоди, так теперь их шесть? — Больше — не меньше. Ну шесть. Брать будете, мужчина?
Уговорить сделать нормально руку невозможно. Теоретически есть способ частично перерисовывать. Но он работает как-то… Я так и не понял. То есть оно иногда работает, а иногда встает и упирается. С теми же настройками. А иногда вместо того, что нужно перерисовать, упорно рисует что-то другое. — Эй, погоди, а зачем хер на лбу появился? Я же просил руку поправить? — А, ну… Мне показалось тебе скучно, вот я и… Короче, проще бывает такие места рабберстампом в фотошопе откорректировать. Быстрее уж точно.
— Привереда. Вот тебе целых ДВА больших пальца!
— А на другой руке — большой палец длиной с указательный! Выбирай!
Оно делает вид, что я — самодержавный властелин, «только скажи, все будет в лучшем виде, ты хозяин, приказывай, все сделаем», а потом: — Это чегооо такоооое??! — Насяльник ма, я вуключил, а оно ашкельты сикильбельме, шайтанама!
В общем нет, чтобы оно нас поработило, его еще учить этому и учить.
Кроме всем известных событий за прошедший год произошло еще одно, на мой взгляд важное событие, которое привлекло огромное внимание — в общий доступ последовательно выкатили несколько продуктов, которые сейчас принято называть искуственным интеллектом (ИИ, AI, Artificial Intelligence).
У меня двойственное впечатление от всего что сейчас происходит в теме. Во-первых, сейчас, отмечу: сейчас, конечно ИИ выглядят более игрушкой. Удивительной, занимательной, восхищающей возможностями, но все же — игрушкой. Примерно как выглядели игрушкой аэропланы «Фарман», из ткани, фанеры и проволоки, в 1910-м году. Но прошло всего 5 лет и самолеты стал нести бомбы и сбивать друг друга в воздушном бою, 20 лет — и они стали чуть ли не важнейшим фактором победы в войне, 40 лет — преодолели скорость звука, стали наносить ковровые бомбардировки, переносить ядерные бомбы на другой конец мира, ну и, ок, доставлять нас через весь мир за копейки, за несколько часов в удобном кресле, с питанием и туалетом, на высоте 10 километров. Война, к слову, в который раз поспособствовала техническому прогрессу, ага.
Но для оценки явления, как мне кажется, важно не столько моментальное состояние и «моментальная скорость», а вектор движения, и его ускорение. Если сравнить как и с какой скоростью произошел прогресс в этой области за последние пять лет, то не хотелось бы недооценивать явление, и отмахиваться от него, как отмахивались в начале века от самолетов и пулеметов.
Аналогия с авиацией еще хороша тем, что дает возможность привести хорошую аналогию. Почему самолеты не изобрели в XIX веке? Все же вроде было для этого? Не было достаточно компактного, легкого и дешевого двигателя. Самолет Можайского (с паровым двигателем) именно потому и не мог по-настоящему полететь, даже если бы и был доведен до практического исполнения, что ему не хватало мощности на килограмм веса. Паровая машина в принципе не может отдать достаточно мощности на килограмм своего веса (плюс топливо, вода, етц), этот параметр называется «удельная мощность». Но стоило появиться бензиновому ДВС, как тут же пошел стремительный прогресс.
Примерно то же самое произошло и с AI. Математика, на которой это все построено, в основном вся известна с 70-х. Не было «двигателя», который бы эту математику обсчитывал не за месяцы, а за секунды. Именно этот переход от дней и месяцев к секундам дал такой скачок сегодня. А сейчас дешевые GPU считают это пресловутое «перемножение матриц» в десятки тысяч раз быстрее чем CPU. И, что важно, эти GPU производятся миллионами за, в общем, копейки и доступен практически любому. Вот он — «бензиновый двигатель».
Да, ChatGPT-3 пока слаб, и хотя вполне может пройти «Тест Тьюринга«, особенно если не придираться, но далек от совершенства и плавает во многом. Но год назад не было и того, вот что важно! Надо смотреть на прогресс и темпы ускорения, а не на текущее состояние.
Другой вопрос, это то, что считать разумом и интеллектом, если считать, что это разные вещи. У нас сейчас в отношении AI действует феноменологический подход. Мы не имеем определения, что такое «интеллект», но благодаря Тьюрингу, договорились, что интеллектом считать: то что мы не отличаем от живого, биологического интеллекта в слепом натурном испытании, бок-о-бок.
Но это довольно примитивный способ. Как показывает практика, во-первых, человек вообще склонен «одушевлять» неодушевленное и искать живое в неживом, и поэтому склонен смещать точку оценки, подыгрывая. Любой, кто читал в детстве сказки Андерсена, или разговаривал с автомобилем или компьютером, не даст соврать. Это, видимо, в свое время обеспечивало эволюционное преимущество, когда примат предполагал, что ветка в темноте за спиной хрустнула не просто так, просто потому что ее ветром сломало.
Философы, конечно, имеют мнение по поводу того, что считать разумом, там про самоосознание бытия, и прочее, но проблема в том, что, во-втором, сейчас видно, что AI можно довольно ловко натренировать давать ожидаемые человеком ответы. И если человек ждет от него «разумности», «самоосознанности», и прочего философского, то AI совсем не откажется с ним в это сыграть. Он ведь, технически, просто подставляет самые подходящие слова в грамматически правильные предложения. Остальное мы уже доделываем за него, считая, что, с нашей точки зрения, умение сочетать подходящие слова в грамматически правильном порядке есть признак разумности. Но так ли это? Фактически, это означает, что «искусственный интеллект» становится интеллектом внутри нашего, «естественного» интеллекта, как результат нашего восприятия его деятельности.
В общем, такой «парадокс наблюдателя». Будет ли являться «искусственный интеллект» интеллектом в пустоте, когда его не слушает естественный интеллект, ищущий с кем бы на равных наконец поговорить?
Философы считают, что свойством разума является совесть, способность с самоосознанию бытия и мораль, как ответственность за поступки. Но тут, по всей видимости, есть некая тонкость в том, что, до нынешнего момента, философ знал только единственный пример разума — свой, человеческий. Это, в том числе, общая проблема биологии, и то, почему биологи так страстно желают найти любую внеземную жизнь. Это даст «вторую точку» и позволит понять, что присуще жизни как таковой, вообще, а что — лишь жизни земного типа, единственной, которую мы пока знаем. И не исключено, что перечисленные свойства есть свойства не разума, а конкретно человека и человеческого разума. Возможен ли разум, при этом, например, без морали и совести — думаю, что мы узнаем уже очень скоро. Сложно сейчас понять, понравится ли нам это.
Возвращаясь к теме того, что можно считать или не считать разумом, то философы сейчас прочно увязли в проблеме, которая называется «мысленный эксперимент Китайская комната» (отошлю вас к описанию в Википедии для подробностей). Критики нынешнего AI (а нынешний AI, надо сказать, это уже который подход к теме, первые опыты, о которых начали говорить как об «искуственном интеллекте» относятся к 50-60 годам XX века, кибернетический «перцептрон», или первый, но довольно яркий эксперимент с «электронным психотерапевтом», программой ELIZA, первые эксперименты с машинным переводом и играми) настаивают, что некто, кто составляет внутри закрытой комнаты фразы из китайских иероглифов, пользуясь огромным справочником о том, как следует комбинировать иероглифы, но при этом вообще не понимая их смысла, но виртуозно владея таким справочником, не может в полной мере считаться «интеллектом». Или может? Ведутся споры.
Принципиальный скачок, происходящий на наших глазах за прошедшие год-два, связан прежде всего с принципиальным ростом размеров пресловутого справочника, не в разы, как ранее, а сразу в миллионы раз.
И тут, тем, кому еще не повезло застать принудительное изучение диалектического материализма, может прийти в голову про переход количества в качество, и это как раз очень хороший пример такого перехода. Действительно, небыстро, не сразу, но после перехода от паровых машин к бензиновым ДВС для авиации, так и как сейчас при переходе от «нейронных сетей» эпохи «до GPT» к нынешним, когда произошел скачок размеров в несколько порядков, это дало очевидный качественный переход. И если перцептрон нормально так имитировал какие-нибудь реакции уровня плоских червей, ELIZA — чуточку более сложного психотерапевта за 5000 рублей в час, то нынешние GPT-модели готовы имитировать уже довольно сложные диалоги.
Означает это уже мышление? Не думаю что так. «тексты, которые генерирует ChatGPT, кажутся нам осмысленными лишь потому, что мы давно уже привыкли к бессмысленным текстам, написанным людьми.»
Еще Тьюринг по всей видимости считал способность играть в шахматы одним из проявлений интеллекта и упоминал об этом в своих работах конца 40-х. Сегодня мы уже, очевидно, так не считаем, в шахматы может играть алгоритм не имеющий никаких иных признаков разумности. Так что же такое мышление, и со скольки орехов начинается куча?
Если долго сидеть на берегу реки в интернете, то рано или поздно вам повстречается удивительный феномен: сайт, написанный не для людей, а для роботов. В действительности довольно значительная часть сайтов в интернете написана не для того, чтобы их читал человек, а для обмана поисковых роботов. Порой находишь какой-то сайт из поисковика, читаешь, и в какой-то момент понимаешь, что тебе скармливают какой-то примерно грамматически правильный текст, но бредовый по сути, просто нашпигованный нужным создателю количеством так называемых ключевых слов. Обычно в качестве основы берется какой-то текст, уже где-то опубликованный, и, для создания «уникального» для поисковой машины контента, каждое слово там меняется на его синоним по словарю. Результат получается обычно бредовый, и сам по себе бессмысленный (хотя и внешне почти правильный). Хотя иногда пару абзацев силишься понять, что это ты такое читаешь сейчас.
Впрочем, есть такие несчастные, которые вынуждены все свое рабочее время тратить на написание таких текстов, которые уже упомянутый ChatGPT-3 готов генерировать неостановимым потоком, причем качеством, зачастую, ничуть не хуже. Говорит ли это о качестве работы «искуственного интеллекта»? Думаю скорее это говори о том, что человек может генерировать некоторые тексты мало, если и вовсе не используя разум. И в этом GPT-модели вполне способны его заменить. Также как швею заменила швейная машинка. Стоит ли при этом интернет-швеям, как луддитам в XIX веке протестовать и бороться против «машины»? По-моему лучше стоит пораньше задуматься о бессмысленности своего труда и поскорее найти что-то более осмысленное в реалиях нового века.
Будем ли мы жалеть о исчезнувших профессиях копирайтера или иллюстратора, как жалеем о исчезновении кучера, шляпника или чистильщика сапог?
Раньше считалось, что слабое место в кибералгоритмах — невозможность фантазии, мол, «машина только выполняет инструкции, и потому не может породить ничего иного, что в нее настоящий разум не заложил бы ранее». Боюсь, сейчас это уже не так. Может ли GPT фантазировать и порождать смысл, ранее несуществовавший? Отчасти. Причем иногда это такой «смысл», что лучше бы его не было, и это тоже факт, который еще предстоит осмыслить.
Уже первые экспериментаторы с ChatGPT обнаружили любопытный эффект, который стал носить название «галлюцинирование». При этом чат-бот, начиная отвечать на вопрос, или создавая описание чего-то, вдруг уходит куда-то в сторону, и начинает генерировать внешне вполне осмысленные, связные, но при этом абсолютно выдуманные факты.
Вот хороший пример, найденный в интернете:
Несложно догадаться, что никакого «Юрия Николаевича Петросяна, комика, актера, сценариста и продюсера» не существует. Задавший вопрос предполагал, вероятно, ответ про комика Евгения Вагановича Петросяна (именно этот человек выпадает, кстати, в топе поиска по строке «Петросян» без уточнения), но Е.В. родился в Баку, а не в «Эреване», в 1945, а не 1949. Ну и остальное в ответе тоже полностью выдумано машиной. Но выдумано при этом вполне правдоподобно и связно. Какое раздолье будет для разнообразных конспирологов! ИИ готов подтвердить любые их теории, главное будет убедительно и настойчиво спросить.
Так, на вопрос, например, «отчего в воскресенье температура воздуха всегда выше, чем в будние дни?», ChatGPT-3, немного для вида поотнекивавшись, если проявлять настойчивость, вскоре начинает генерить в ответ правдоподобно выглядящие объяснения, почему это так. Несмотря на то, что это в действительности и не так.
Еще прекрасный пример того, что такое сегодня генерация текста с помощью GPT-модели, на скриншоте ниже:
Наверное любому человеку, которому можно задать такой вопрос, будет очевидно, что решение не делается через построение пропорции. :)
Можно ли приведенные примеры использовать как аргумент в пользу того, что GPT-модель «интеллектом» не является? И да, и нет. Из того факта, что уже сегодня ChatGPT генерирует тексты уровня, покрывающего выход 90% нынешних копирайтеров (ну, хорошо, 85%), следует скорее то, что большинство наших «мясомолочных» копирайтеров никуда не годятся и легко заменяются «железным». Но не забывайте про вектор, тренд, ускорение. Если мы уведличим сложность модели еще в сто раз, а сегодня это просто вопрос времени и вложенных средств, она будет лучше уже 98% копирайтеров, и 50% выпускников философского факультата. Где мы проведем ту границу сложности, которая позволит уверенно говорить, что продукт ИИ-машины практически неотличим от продукта человка? «Парадокс кучи» был сформулирован еще в IV в до н.э.